/* ============================================
   Shared Styles — Operations Dashboard
   ============================================ */

/* --- Base Reset --- */
* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #1e293b; }

/* --- Management pages --- */
.management-page { max-width:1440px; margin:0 auto; padding:6px 0 34px; color:#172033; }
.management-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin:4px 0 18px; }
.management-header-main { min-width:0; }
.management-eyebrow { margin-bottom:5px; color:#315caa; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.management-header h1 { margin:0 0 5px; color:#172033; font-size:25px; letter-spacing:-.02em; }
.management-subtitle { max-width:720px; color:#667085; font-size:13px; line-height:1.5; }
.management-header-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.management-breadcrumbs { display:flex; align-items:center; gap:7px; margin:0 0 13px; color:#98a2b3; font-size:12px; }
.management-breadcrumbs a { color:#315caa; text-decoration:none; font-weight:650; }
.management-breadcrumbs a:hover { text-decoration:underline; }
.management-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,360px); gap:16px; align-items:start; }
.management-grid.wide-aside { grid-template-columns:minmax(0,1fr) minmax(340px,430px); }
.management-grid.equal { grid-template-columns:repeat(2,minmax(0,1fr)); }
.management-stack { display:grid; gap:16px; }
.management-card { overflow:hidden; border:1px solid #e1e6ed; border-radius:12px; background:#fff; box-shadow:0 2px 8px rgba(15,23,42,.045); }
.management-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:15px 17px; border-bottom:1px solid #e9edf2; }
.management-card-header h2, .management-card-header h3 { margin:0; color:#243047; font-size:15px; }
.management-card-header p { margin:4px 0 0; color:#7b8495; font-size:11px; line-height:1.45; }
.management-card-count { flex:0 0 auto; padding:4px 8px; border-radius:999px; background:#edf2f8; color:#566174; font-size:10px; font-weight:800; }
.management-card-body { padding:17px; }
.management-card-body.flush { padding:0; }
.management-card-footer { display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:12px 17px; border-top:1px solid #e9edf2; background:#fafbfd; }
.management-alert { display:flex; align-items:flex-start; gap:9px; margin-bottom:14px; padding:11px 13px; border:1px solid; border-radius:9px; font-size:12px; line-height:1.45; }
.management-alert::before { content:'i'; display:inline-flex; flex:0 0 18px; width:18px; height:18px; align-items:center; justify-content:center; border-radius:50%; font-size:11px; font-weight:900; }
.management-alert.success { border-color:#bde8ce; background:#effaf4; color:#176b42; }
.management-alert.success::before { content:'✓'; background:#d4f1df; }
.management-alert.error { border-color:#f1c2c2; background:#fff3f3; color:#9b2c2c; }
.management-alert.error::before { content:'!'; background:#fbdada; }
.management-alert.warning { border-color:#f3d39a; background:#fffaeb; color:#8a4b08; }
.management-alert.warning::before { content:'!'; background:#fde7b2; }
.management-form { display:grid; gap:13px; }
.management-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.management-field { display:flex; min-width:0; flex-direction:column; gap:5px; color:#566174; font-size:11px; font-weight:700; }
.management-field.full { grid-column:1 / -1; }
.management-field input, .management-field select { width:100%; height:38px; padding:0 10px; border:1px solid #cfd7e3; border-radius:8px; outline:0; background:#fff; color:#172033; font:inherit; font-size:13px; font-weight:500; transition:border-color .14s, box-shadow .14s; }
.management-field input:focus, .management-field select:focus, .management-inline-input:focus, .management-inline-select:focus { border-color:#5d7fba; box-shadow:0 0 0 3px rgba(49,92,170,.12); }
.management-field-help { color:#98a2b3; font-size:10px; font-weight:500; line-height:1.35; }
.management-check { display:flex; align-items:flex-start; gap:9px; padding:10px 11px; border:1px solid #e2e7ee; border-radius:8px; background:#fafbfd; color:#344054; cursor:pointer; }
.management-check input { width:16px; height:16px; margin:1px 0 0; accent-color:#315caa; }
.management-check-copy { display:flex; flex-direction:column; gap:2px; font-size:12px; font-weight:700; }
.management-check-copy small { color:#7b8495; font-size:10px; font-weight:500; line-height:1.35; }
.management-button { display:inline-flex; min-height:34px; align-items:center; justify-content:center; gap:6px; padding:0 12px; border:1px solid transparent; border-radius:7px; cursor:pointer; text-decoration:none; white-space:nowrap; font:inherit; font-size:12px; font-weight:750; transition:background .14s, border-color .14s, transform .14s, box-shadow .14s; }
.management-button:hover { transform:translateY(-1px); box-shadow:0 2px 5px rgba(15,23,42,.1); }
.management-button.primary { border-color:#315caa; background:#315caa; color:#fff; }
.management-button.primary:hover { background:#274d91; }
.management-button.secondary { border-color:#cfd7e3; background:#fff; color:#344054; }
.management-button.secondary:hover { border-color:#9eabc0; background:#f8fafc; }
.management-button.danger { border-color:#efc5c5; background:#fff7f7; color:#a13b3b; }
.management-button.danger:hover { border-color:#dfa3a3; background:#fff0f0; }
.management-button.success { border-color:#b8dfc8; background:#effaf4; color:#176b42; }
.management-button.compact { min-height:29px; padding:0 9px; font-size:11px; }
.management-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
.management-inline-form { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:0; }
.management-inline-input, .management-inline-select { height:31px; min-width:70px; padding:0 8px; border:1px solid #d5dce6; border-radius:6px; outline:0; background:#fff; color:#344054; font:inherit; font-size:11px; }
.management-inline-input.name { width:130px; }
.management-inline-input.number { width:74px; text-align:right; font-variant-numeric:tabular-nums; }
.management-inline-input.password { width:112px; }
.management-inline-select { max-width:145px; }
.management-table-wrap { width:100%; overflow-x:auto; }
.management-table { width:100%; min-width:680px; border-collapse:collapse; font-size:12px; }
.management-table th { padding:9px 12px; border-bottom:1px solid #dce2ea; background:#f6f8fb; color:#667085; text-align:left; white-space:nowrap; font-size:10px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.management-table td { padding:11px 12px; border-bottom:1px solid #edf0f4; color:#344054; vertical-align:middle; }
.management-table tbody tr:last-child td { border-bottom:0; }
.management-table tbody tr:hover { background:#fbfcfe; }
.management-table a { color:#315caa; text-decoration:none; font-weight:750; }
.management-table a:hover { text-decoration:underline; }
.management-table .number { text-align:right; font-variant-numeric:tabular-nums; }
.management-table .actions { text-align:right; }
.management-primary { color:#243047; font-weight:750; }
.management-muted { color:#8a94a4; font-size:11px; }
.management-code { display:inline-flex; max-width:270px; padding:4px 7px; overflow:hidden; border:1px solid #e1e6ed; border-radius:6px; background:#f7f9fc; color:#475467; font:11px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-overflow:ellipsis; white-space:nowrap; }
.management-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border-radius:999px; background:#edf2f8; color:#566174; font-size:10px; font-weight:800; white-space:nowrap; }
.management-badge.blue { background:#eaf2ff; color:#2456a4; }
.management-badge.green { background:#e8f7ef; color:#176b42; }
.management-badge.amber { background:#fff3d6; color:#875700; }
.management-badge.red { background:#fff0f0; color:#9b2c2c; }
.management-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.8; }
.management-empty { padding:34px 20px; color:#7b8495; text-align:center; }
.management-empty strong { display:block; margin-bottom:4px; color:#475467; font-size:13px; }
.management-empty p { margin:0; font-size:11px; }
.management-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.management-list-item { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:50px; padding:10px 12px; border:1px solid #e3e8ef; border-radius:9px; background:#fff; transition:border-color .14s, background .14s; }
.management-list-item:hover { border-color:#c5d1e2; background:#fbfdff; }
.management-list-main { display:flex; min-width:0; align-items:center; gap:10px; }
.management-list-icon { display:inline-flex; flex:0 0 32px; width:32px; height:32px; align-items:center; justify-content:center; border-radius:8px; background:#edf3fc; color:#315caa; font-size:11px; font-weight:850; }
.management-list-copy { min-width:0; }
.management-list-copy a, .management-list-copy strong { display:block; overflow:hidden; color:#243047; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:750; }
.management-list-copy a:hover { color:#315caa; }
.management-list-copy span { display:block; margin-top:2px; color:#8a94a4; font-size:10px; }
.management-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.management-stat { padding:13px; border:1px solid #e2e7ee; border-radius:9px; background:#f9fbfd; }
.management-stat span { display:block; margin-bottom:5px; color:#7b8495; font-size:10px; font-weight:700; }
.management-stat strong { color:#172033; font-size:21px; letter-spacing:-.02em; }
.management-note { margin:0; padding:10px 11px; border-radius:8px; background:#f5f7fa; color:#667085; font-size:11px; line-height:1.5; }
.management-section-label { margin:18px 0 9px; color:#566174; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.management-tags { display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.management-tag { display:inline-flex; align-items:center; gap:4px; padding:4px 7px; border:1px solid #dce3ec; border-radius:6px; background:#f8fafc; color:#475467; font-size:10px; font-weight:650; }
.management-tag form { display:inline-flex; margin:0; }
.management-tag-remove { width:16px; height:16px; padding:0; border:0; border-radius:4px; background:transparent; color:#a13b3b; cursor:pointer; font-size:14px; line-height:14px; }
.management-tag-remove:hover { background:#feecec; }
.management-tabs { display:flex; align-items:center; gap:0; margin:0 0 18px; border-bottom:2px solid #e1e6ed; }
.management-tab { display:inline-flex; align-items:center; padding:10px 16px; border-bottom:2px solid transparent; margin-bottom:-2px; color:#667085; text-decoration:none; font-size:13px; font-weight:700; transition:color .14s, border-color .14s; }
.management-tab:hover { color:#315caa; }
.management-tab.active { color:#315caa; border-bottom-color:#315caa; }
.management-details { border-top:1px solid #edf0f4; }
.management-details:first-child { border-top:0; }
.management-details summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 17px; cursor:pointer; list-style:none; color:#344054; font-size:12px; font-weight:750; }
.management-details summary::-webkit-details-marker { display:none; }
.management-details summary::after { content:'+'; color:#7b8495; font-size:17px; }
.management-details[open] summary::after { content:'−'; }
.management-details-body { padding:0 17px 16px; }
.management-role { color:#667085; font-size:10px; }
.management-toggle-button { min-width:32px; min-height:29px; padding:0 8px; border:1px solid #cfd7e3; border-radius:6px; background:#fff; color:#667085; cursor:pointer; font-weight:800; }
.management-toggle-button.on { border-color:#b8dfc8; background:#effaf4; color:#176b42; }
.management-modal { box-sizing:border-box; width:min(560px,calc(100% - 32px)); max-height:calc(100vh - 32px); padding:0; overflow:hidden; border:1px solid #d8dee8; border-radius:14px; background:#fff; color:#172033; box-shadow:0 24px 70px rgba(15,23,42,.28); }
.management-modal::backdrop { background:rgba(15,23,42,.58); backdrop-filter:blur(3px); }
.management-modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 22px 16px; border-bottom:1px solid #e9edf2; }
.management-modal-header h2 { margin:0; color:#172033; font-size:19px; }
.management-modal-header p { margin:5px 0 0; color:#667085; font-size:12px; }
.management-modal-close { display:grid; width:30px; height:30px; padding:0; place-items:center; border:0; border-radius:50%; background:#f1f5f9; color:#64748b; font-size:21px; line-height:1; cursor:pointer; }
.management-modal-close:hover { background:#e2e8f0; color:#1e293b; }
.management-modal-body { max-height:calc(100vh - 190px); padding:20px 22px; overflow-y:auto; }
.management-modal-actions { display:flex; justify-content:flex-end; gap:8px; padding:15px 22px 20px; border-top:1px solid #e9edf2; background:#fff; }
.wallet-copy { display:inline-flex; align-items:center; gap:7px; padding:5px 7px; border:1px solid transparent; border-radius:6px; background:transparent; cursor:pointer; transition:background .15s,border-color .15s,color .15s; }
.wallet-copy:hover { border-color:#cbd5e1; background:#f8fafc; color:#1d4ed8; }
.wallet-copy-feedback { color:#667085; font-family:inherit; font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.wallet-copy.copied { border-color:#b8dfc8; background:#effaf4; color:#176b42; }
.wallet-copy.copied .wallet-copy-feedback { color:#176b42; }
.wallet-window-warning { margin:2px 0 0; font-size:12px; line-height:1.5; }
@media (max-width:980px) {
  .management-grid, .management-grid.wide-aside, .management-grid.equal { grid-template-columns:1fr; }
  .management-grid > aside { order:-1; }
}
@media (max-width:680px) {
  .management-header { flex-direction:column; }
  .management-form-grid, .management-stats { grid-template-columns:1fr; }
  .management-field.full { grid-column:auto; }
  .management-card-header { padding:13px 14px; }
  .management-card-body { padding:14px; }
  .management-page { padding-bottom:20px; }
}

/* --- Navbar --- */
.navbar { display:flex; justify-content:space-between; align-items:center; background:#1e293b; padding:0 20px; height:48px; }
.nav-left { display:flex; align-items:center; gap:0; }
.nav-right { display:flex; align-items:center; gap:12px; }
.nav-item { position:relative; display:inline-flex; align-items:center; }
.nav-link { display:inline-block; padding:12px 14px; color:#cbd5e1; text-decoration:none; font-size:13px; font-weight:500; transition:color 0.15s, background 0.15s; cursor:pointer; height:48px; line-height:24px; }
.nav-link:hover { color:#fff; background:#334155; }
.nav-link.active { color:#fff; background:#334155; border-bottom:2px solid #3b82f6; }
.nav-alert-badge { display:inline-flex; width:17px; height:17px; margin:0 2px 0 5px; align-items:center; justify-content:center; border:2px solid #1e293b; border-radius:999px; background:#dc2626; color:#fff; font-size:11px; font-weight:900; line-height:1; vertical-align:middle; box-shadow:0 0 0 1px rgba(255,255,255,.18); }
.nav-link:hover .nav-alert-badge, .nav-link.active .nav-alert-badge { border-color:#334155; }
.nav-dropdown { display:none; position:absolute; left:0; top:48px; background:#1e293b; border:1px solid #334155; border-radius:0 0 6px 6px; min-width:160px; padding:4px 0; z-index:200; box-shadow:0 4px 12px rgba(0,0,0,0.3); }
.nav-item:hover .nav-dropdown { display:block; }
.nav-dropdown a { display:block; padding:8px 16px; color:#cbd5e1; text-decoration:none; font-size:13px; }
.nav-dropdown a:hover { background:#334155; color:#fff; }
.nav-user { color:#94a3b8; font-size:12px; }
.nav-user strong { color:#e2e8f0; font-weight:600; }
.nav-logout { border:none; background:none; color:#94a3b8; cursor:pointer; font-size:12px; padding:4px 8px; border-radius:4px; }
.nav-logout:hover { color:#fff; background:#475569; }

/* --- Page Content --- */
.page-content { padding:12px 20px; }
h1 { margin:0 0 12px 0; font-size:22px; }
h2 { margin:0 0 10px 0; font-size:17px; }

/* --- Tables --- */
.data-table { width:100%; border-collapse:collapse; font-size:13px; text-align:center; }
.data-table th, .data-table td { border:1px solid #dee2e6; padding:6px 8px; }
.data-table thead th { background:#f8f9fa; font-weight:600; }
.data-table .total-row { background:#e9ecef; font-weight:bold; }
.data-table .info-cell { font-size:12px; color:#555; }

/* --- Buttons --- */
.btn { display:inline-block; padding:8px 16px; border:none; border-radius:6px; font-size:13px; font-weight:500; cursor:pointer; text-decoration:none; transition:all 0.15s; }
.btn-primary { background:#0d6efd; color:#fff; }
.btn-primary:hover { background:#0b5ed7; }
.btn-success { background:#28a745; color:#fff; }
.btn-success:hover { background:#218838; }
.btn-danger { background:#dc3545; color:#fff; }
.btn-danger:hover { background:#c82333; }
.btn-outline { background:#fff; border:1px solid #0d6efd; color:#0d6efd; }
.btn-outline:hover { background:#0d6efd; color:#fff; }
.btn-outline.active { background:#0d6efd; color:#fff; }
.btn-sm { padding:4px 10px; font-size:12px; }

/* --- Office Selector Buttons --- */
.office-btn { width:56px; height:56px; display:inline-flex; align-items:center; justify-content:center; border:2px solid #0d6efd; background:#fff; border-radius:8px; cursor:pointer; font-size:30px; font-weight:700; margin:4px; transition:all 0.2s; color:#0d6efd; text-decoration:none; line-height:1; }
.office-btn:hover { background:#0d6efd; color:#fff; }
.office-btn.active { background:#0d6efd; color:#fff; }

/* --- Tab Navigation --- */
.tab-nav { display:flex; gap:0; border-bottom:2px solid #dee2e6; margin-bottom:16px; }
.tab-btn { padding:8px 16px; border:none; background:none; cursor:pointer; font-size:13px; border-bottom:2px solid transparent; margin-bottom:-2px; color:#666; text-decoration:none; }
.tab-btn.active { color:#0d6efd; border-bottom-color:#0d6efd; font-weight:bold; }
.tab-btn:hover { color:#0d6efd; }

/* --- Action Menu (hamburger dropdown) --- */
.action-wrap { position:relative; display:inline-block; }
.action-wrap:hover .action-menu { display:block; }
.action-trigger { cursor:pointer; font-size:18px; padding:2px 6px; }
.action-menu { display:none; position:absolute; right:0; top:100%; background:#fff; border:1px solid #dee2e6; border-radius:6px; box-shadow:0 2px 8px rgba(0,0,0,0.15); z-index:50; min-width:160px; padding:4px 0; }
.action-menu a, .action-menu button { display:block; width:100%; text-align:left; padding:6px 12px; text-decoration:none; color:#333; font-size:12px; background:none; border:none; cursor:pointer; }
.action-menu a:hover, .action-menu button:hover { background:#f0f0f0; }

/* --- Note Popup --- */
.note-wrap { position:relative; display:inline-block; cursor:pointer; font-size:16px; }
.note-wrap:hover .note-box { display:block; }
.note-box { display:none; position:absolute; bottom:100%; left:50%; transform:translateX(-50%); background:#333; color:#fff; padding:8px 12px; border-radius:6px; font-size:12px; white-space:pre-wrap; min-width:200px; max-width:320px; box-shadow:0 2px 8px rgba(0,0,0,0.3); z-index:100; margin-bottom:6px; }

/* --- Badges --- */
.badge { padding:2px 8px; border-radius:4px; font-size:11px; font-weight:500; }
.badge-warning { background:#ffc107; color:#333; }
.badge-muted { color:#666; font-size:11px; }

/* --- Column Toggle Buttons --- */
.col-toggle { margin:2px; padding:4px 10px; border:1px solid #6c757d; border-radius:4px; cursor:pointer; font-size:12px; transition:all 0.15s; }
.col-toggle.on { background:#28a745; color:#fff; }
.col-toggle.off { background:#e9ecef; color:#333; }

/* --- Scrollable Table Container --- */
.table-scroll-wrap { overflow-x:auto; overflow-y:visible; position:relative; max-width:100%; }

/* --- Selection Circle --- */
.select-circle-wrap { display:none; align-items:center; justify-content:center; cursor:pointer; padding:4px; }
.select-circle-wrap:hover svg circle:first-child { stroke:#0d6efd; }
.select-circle { transition:all 0.15s; }

/* --- TX Hash Copy Box --- */
.txhash-box { display:inline-flex; align-items:center; gap:3px; background:#f8f9fa; border:1px solid #dee2e6; border-radius:4px; padding:1px 5px; cursor:pointer; font-family:monospace; font-size:11px; transition:border-color 0.15s; }
button.txhash-box { color:inherit; line-height:inherit; appearance:none; }
.txhash-box:hover { border-color:#0d6efd; }
.txhash-box .txhash-icon { font-size:11px; opacity:0.6; transition:opacity 0.15s; }
.txhash-box:hover .txhash-icon { opacity:1; }

/* --- Forms --- */
.form-input { padding:8px; border:1px solid #ced4da; border-radius:4px; width:100%; font-size:14px; }
.form-select { padding:8px; border:1px solid #ced4da; border-radius:4px; width:100%; font-size:14px; }
.form-label { font-weight:500; font-size:14px; margin-bottom:4px; display:block; }

/* --- Editable Table Inputs (General Table) --- */
.gt-edit {
  padding:2px 2px;
  border:1px solid transparent;
  border-radius:0;
  font-size:11px;
  font-family:inherit;
  background:transparent;
  color:#1e293b;
  transition:border-color 0.15s, background 0.15s;
  outline:none;
}
.gt-edit:focus {
  border-color:#3b82f6;
  background:#fff;
}
.gt-edit:hover:not(:focus):not([disabled]) {
  border-color:#cbd5e1;
  background:#f8fafc;
}
.gt-edit[disabled] {
  color:#334155;
  cursor:default;
}
input.gt-edit { height:22px; width:100%; }
input.gt-edit.gt-num { width:50px; }
input.gt-edit.gt-text-sm { width:65px; }
input.gt-edit.gt-text-md { width:80px; }
select.gt-edit { height:22px; cursor:pointer; -webkit-appearance:none; -moz-appearance:none; appearance:none; padding-right:4px; }
input[type="date"].gt-edit { width:90px; padding-right:0; }

/* Compact text inputs */
.gt-text-sm { width:65px; }
.gt-text-md { width:80px; }

/* Save state indicators */
.gt-edit.saving { border-color:#f59e0b; background:#fffbeb; }
.gt-edit.saved { border-color:#22c55e; background:#f0fdf4; }
.gt-edit.requested { border-color:#8b5cf6; background:#f5f3ff; }
.gt-edit.error { border-color:#ef4444; background:#fef2f2; }

/* --- Inline Table Styling --- */
.gt-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 16px;
  padding:9px 12px;
  background:#f8f9fa;
  border:1px solid #dee2e6;
  border-radius:6px;
}
.gt-toolbar-views { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.gt-toolbar-views strong { margin-right:2px; font-size:12px; }
.gt-saved-view-buttons { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.gt-saved-view-item { position:relative; display:inline-flex; }
.gt-view-btn {
  max-width:160px;
  padding:4px 12px;
  border:1px solid #6c757d;
  border-radius:4px;
  background:#fff;
  color:#334155;
  cursor:pointer;
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.gt-view-btn:hover { background:#e9ecef; }
.gt-view-delete {
  display:none;
  position:absolute;
  top:-7px;
  right:-7px;
  z-index:2;
  width:17px;
  height:17px;
  padding:0;
  border:1px solid #fff;
  border-radius:50%;
  background:#dc3545;
  color:#fff;
  cursor:pointer;
  font-size:13px;
  font-weight:700;
  line-height:15px;
  text-align:center;
  box-shadow:0 1px 4px rgba(15,23,42,.28);
}
.gt-saved-view-item:hover .gt-view-delete,
.gt-view-delete:focus { display:block; }
.gt-view-delete:hover { background:#b91c1c; }
.gt-add-view-btn {
  padding:4px 10px;
  border:1px dashed #64748b;
  border-radius:4px;
  background:#fff;
  color:#475569;
  cursor:pointer;
  font-size:12px;
  font-weight:600;
}
.gt-add-view-btn:hover { border-color:#0d6efd; color:#0d6efd; background:#eff6ff; }
.gt-custom-view-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
}
.gt-custom-view-header strong { font-size:12px; }
.gt-custom-column-buttons { display:flex; flex-wrap:wrap; }
.gt-custom-column-buttons[hidden] { display:none; }
.gt-columns-toggle {
  padding:3px 9px;
  border:1px solid #cbd5e1;
  border-radius:4px;
  background:#fff;
  color:#475569;
  cursor:pointer;
  font-size:11px;
  font-weight:600;
}
.gt-columns-toggle:hover { border-color:#0d6efd; color:#0d6efd; background:#eff6ff; }
.gt-reset-filters { flex:0 0 auto; margin-left:auto; white-space:nowrap; }
@media (max-width:800px) {
  .gt-toolbar { align-items:flex-start; flex-direction:column; }
  .gt-reset-filters { align-self:flex-end; }
}

#generalTable { width:max-content; max-width:none; table-layout:auto; font-size:11px; border-spacing:0; }
#generalTable th { 
  position:sticky;
  top:0;
  z-index:20;
  padding:5px 0; 
  font-size:10px; 
  font-weight:600; 
  text-transform:uppercase; 
  letter-spacing:0.3px; 
  color:#64748b; 
  background:#f8fafc;
  box-shadow:0 1px 0 #cbd5e1;
  border-bottom:1px solid #e2e8f0;
  white-space:nowrap;
  width:auto;
  max-width:130px;
  line-height:1.2;
  user-select:none;
  transition:opacity 0.15s;
  text-align:center;
}
#generalTable .gt-convrate { font-size:11px; }
#generalTable td { 
  padding:2px 0; 
  width:auto;
  max-width:130px;
  vertical-align:middle; 
  border-bottom:1px solid #f1f5f9; 
  white-space:nowrap;
  overflow-wrap:normal;
  text-align:center;
}
#generalTable td > input.gt-edit,
#generalTable td > select.gt-edit,
#generalTable td > .gt-dropdown { max-width:100%; box-sizing:border-box; }
#generalTable input.gt-edit { text-align:center !important; }
#generalTable select.gt-edit { text-align:center; text-align-last:center; }
#generalTable .gt-dropdown-trigger { justify-content:center; text-align:center; }
#generalTable tr:hover td { background:#f1f5f9; }
#generalTable tr.gt-boris-colored-row > td,
#generalTable tr.gt-boris-colored-row:hover > td {
  background-color:var(--boris-group-row-background) !important;
  background-image:none !important;
}

/* --- Step Indicators --- */
.step-indicator { flex:1; text-align:center; padding:8px; border-radius:4px; font-size:13px; }
.step-active { background:#0d6efd; color:#fff; font-weight:bold; }
.step-done { background:#28a745; color:#fff; }
.step-pending { background:#e9ecef; color:#666; }

/* --- Status Button Cards --- */
.status-card { padding:16px; border:2px solid #dee2e6; background:#fff; border-radius:8px; cursor:pointer; text-align:center; transition:all 0.2s; }
.status-card:hover { transform:translateY(-1px); box-shadow:0 2px 8px rgba(0,0,0,0.1); }
.status-card.selected { color:#fff; }

/* --- Batch Indicator (General Table) --- */
tr[data-batch-id] { cursor: pointer; }
tr.batch-mates-row td { padding: 8px 16px; background: #f8f5ff; }
tr.batch-mates-row table { width: auto; margin: 4px 0; border-collapse: collapse; font-size: 12px; }
tr.batch-mates-row table th, tr.batch-mates-row table td { padding: 4px 10px; border: 1px solid #dee2e6; text-align: left; }
tr.batch-mates-row table th { background: #e9ecef; font-weight: 600; }

/* --- Compact numeric inputs --- */
.gt-num { width:50px; text-align:right; }

/* --- Note icon cell --- */
.gt-note-cell { position:relative; width:20px; text-align:center; }
.gt-note-icon { cursor:pointer; font-size:13px; opacity:0.5; }
.gt-note-icon:hover { opacity:1; }
.gt-note-icon.has-note { opacity:1; color:#0d6efd; }
.gt-note-popup { display:none; position:absolute; bottom:100%; right:0; background:#fff; border:1px solid #dee2e6; border-radius:6px; padding:8px; box-shadow:0 2px 8px rgba(0,0,0,0.15); z-index:100; min-width:200px; }
.gt-note-popup textarea { width:100%; min-height:60px; border:1px solid #e2e8f0; border-radius:4px; padding:4px; font-size:11px; font-family:inherit; resize:vertical; }

/* --- Custom Dropdown (replaces native select for table) --- */
.gt-dropdown { position:relative; display:block; width:100%; }
.gt-dropdown-trigger {
  padding:2px 2px;
  border:1px solid transparent;
  border-radius:0;
  font-size:11px;
  font-family:inherit;
  background:transparent;
  color:#1e293b;
  cursor:pointer;
  width:100%;
  height:22px;
  display:flex;
  align-items:center;
  transition:border-color 0.15s, background 0.15s;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.gt-dropdown-trigger:hover { border-color:#cbd5e1; background:#f8fafc; }
.gt-dropdown-trigger.open { border-color:#3b82f6; background:#fff; }
.gt-dropdown-trigger.empty { color:#94a3b8; font-style:italic; }
.gt-dropdown-list {
  display:none;
  position:fixed;
  z-index:200;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:6px;
  box-shadow:0 4px 12px rgba(0,0,0,0.12);
  min-width:120px;
  max-height:200px;
  overflow-y:auto;
  padding:4px 0;
}
.gt-dropdown-list.open { display:block; }
.gt-dropdown-search {
  width:calc(100% - 8px);
  margin:4px;
  padding:4px 6px;
  border:1px solid #e2e8f0;
  border-radius:3px;
  font-size:11px;
  outline:none;
}
.gt-dropdown-search:focus { border-color:#3b82f6; }
.gt-dropdown-item {
  padding:5px 10px;
  font-size:11px;
  cursor:pointer;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-height:22px;
  line-height:1.4;
}
.gt-dropdown-item:hover { background:#f1f5f9; }
.gt-dropdown-item.selected { background:#eff6ff; color:#1d4ed8; font-weight:500; }
.gt-dropdown-item.empty-opt { color:#94a3b8; font-style:italic; min-height:22px; }

/* Inline select (stays native, no custom dropdown) */
select.gt-inline { display:inline-block; width:auto; font-size:10px; height:20px; vertical-align:middle; }

/* --- Column Filter Popup --- */
.gt-filter-icon { display:inline-block; margin-left:2px; font-size:11px; color:#94a3b8; cursor:pointer; vertical-align:middle; padding:2px 3px; border-radius:3px; }
.gt-filter-icon:hover { color:#3b82f6; background:#eff6ff; }
.gt-filter-icon.active { color:#3b82f6; font-weight:bold; background:#eff6ff; }
.gt-filter-popup {
  position:fixed;
  z-index:300;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,0.12);
  width:175px;
  padding:0;
  overflow:hidden;
}
.gt-filter-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px 10px;
  background:#f8fafc;
  border-bottom:1px solid #e2e8f0;
  font-size:11px;
  font-weight:600;
  color:#475569;
}
.gt-filter-clear { color:#3b82f6; cursor:pointer; font-weight:normal; font-size:10px; }
.gt-filter-clear:hover { color:#1d4ed8; }
.gt-filter-list {
  max-height:160px;
  overflow-y:auto;
  padding:6px 0;
}
.gt-filter-item {
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  font-size:11px;
  cursor:pointer;
  color:#334155;
}
.gt-filter-item:hover { background:#f1f5f9; }
.gt-filter-item input[type="checkbox"] { width:12px; height:12px; margin:0; }
.gt-filter-selection-actions {
  display:flex;
  justify-content:space-between;
  gap:6px;
  padding:4px 8px 6px;
}
.gt-filter-selection-action {
  flex:1;
  padding:3px 4px;
  border:1px solid #cbd5e1;
  border-radius:4px;
  background:#fff;
  color:#475569;
  font-size:10px;
  cursor:pointer;
}
.gt-filter-selection-action:hover { background:#f1f5f9; color:#1d4ed8; }
.gt-filter-apply {
  display:block;
  width:100%;
  padding:8px;
  border:none;
  background:#3b82f6;
  color:#fff;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  border-top:1px solid #e2e8f0;
}
.gt-filter-apply:hover { background:#2563eb; }
.gt-range-filter-popup { width:230px; }
.gt-date-range-filter-popup { width:270px; }
.gt-range-filter-body { padding:10px; }
.gt-range-filter-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.gt-range-filter-body label {
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#64748b;
  font-size:10px;
  font-weight:600;
}
.gt-range-filter-body input,
.gt-range-filter-body select {
  width:100%;
  height:30px;
  padding:4px 6px;
  border:1px solid #cbd5e1;
  border-radius:4px;
  background:#fff;
  color:#334155;
  font-size:11px;
  outline:none;
}
.gt-range-filter-body input:focus,
.gt-range-filter-body select:focus { border-color:#3b82f6; box-shadow:0 0 0 2px #dbeafe; }
.gt-range-currency { margin-top:9px; }
.gt-range-fixed-currency {
  margin-top:9px;
  padding:6px 8px;
  border-radius:4px;
  background:#f1f5f9;
  color:#64748b;
  font-size:10px;
  font-weight:600;
}

/* --- Persistent Full Logs --- */
.logs-page { max-width:1500px; margin:0 auto; color:#1e293b; }
.logs-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }
.logs-kicker { margin:0 0 4px; color:#64748b; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.logs-page h1 { margin:0; color:#0f172a; font-size:25px; }
.logs-intro { max-width:760px; margin:7px 0 0; color:#64748b; font-size:13px; line-height:1.45; }
.logs-view-tabs { display:flex; gap:4px; margin:-4px 0 16px; padding:4px; width:max-content; border:1px solid #dbe3ee; border-radius:9px; background:#f8fafc; }
.logs-view-tab { padding:7px 12px; border-radius:6px; color:#64748b; font-size:12px; font-weight:800; text-decoration:none; }
.logs-view-tab:hover { color:#1d4ed8; background:#eff6ff; }
.logs-view-tab.is-active { color:#fff; background:#2563eb; box-shadow:0 1px 2px rgba(15,23,42,.12); }
.logs-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.logs-status-card { padding:15px 16px; border:1px solid #dbe3ee; border-left:4px solid #94a3b8; border-radius:9px; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.logs-status-card.is-ok { border-left-color:#16a34a; }
.logs-status-card.is-error { border-left-color:#dc2626; background:#fffafa; }
.logs-status-card.is-unknown { border-left-color:#94a3b8; background:#f8fafc; }
.logs-status-card-header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.logs-status-title-wrap { display:flex; align-items:center; gap:8px; min-width:0; }
.logs-status-title-wrap h2 { margin:0; color:#0f172a; font-size:14px; }
.logs-status-dot { width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:#94a3b8; }
.is-ok .logs-status-dot { background:#16a34a; box-shadow:0 0 0 3px #dcfce7; }
.is-error .logs-status-dot { background:#dc2626; box-shadow:0 0 0 3px #fee2e2; }
.logs-status-pill { padding:4px 8px; border-radius:999px; background:#e2e8f0; color:#475569; font-size:10px; font-weight:800; white-space:nowrap; }
.is-ok .logs-status-pill { background:#dcfce7; color:#166534; }
.is-error .logs-status-pill { background:#fee2e2; color:#991b1b; }
.logs-status-copy { min-height:19px; margin:12px 0 5px; color:#334155; font-size:13px; }
.logs-status-meta, .logs-status-time { margin:4px 0 0; color:#64748b; font-size:11px; }
.logs-status-time { color:#94a3b8; }
.logs-technical-details { margin-top:10px; padding-top:8px; border-top:1px solid #e2e8f0; color:#64748b; font-size:11px; }
.logs-technical-details summary, .logs-details summary, .logs-more-filters summary { cursor:pointer; color:#2563eb; font-weight:700; }
.logs-technical-details code { display:block; margin-top:6px; color:#7f1d1d; overflow-wrap:anywhere; white-space:pre-wrap; }
.logs-review-panel { padding:18px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.logs-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px; }
.logs-section-heading h2 { margin:0; color:#0f172a; font-size:17px; }
.logs-section-heading p { margin:4px 0 0; color:#64748b; font-size:12px; }
.logs-count { padding:4px 8px; border-radius:999px; background:#eff6ff; color:#1d4ed8; font-size:11px; font-weight:800; white-space:nowrap; }
.logs-filter-form { margin-bottom:14px; padding:13px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
.logs-filter-grid { display:grid; grid-template-columns:1.1fr .9fr 1.25fr .9fr .9fr auto; align-items:end; gap:10px; }
.logs-filter-form label, .logs-more-filter-grid label { display:flex; flex-direction:column; gap:4px; color:#475569; font-size:11px; font-weight:700; }
.logs-filter-form input, .logs-filter-form select { width:100%; min-height:32px; padding:6px 8px; border:1px solid #cbd5e1; border-radius:5px; background:#fff; color:#1e293b; font:inherit; font-size:12px; font-weight:400; }
.logs-filter-form input:focus, .logs-filter-form select:focus { border-color:#60a5fa; outline:2px solid rgba(96,165,250,.18); }
.logs-filter-actions { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.logs-more-filters { margin-top:10px; color:#64748b; font-size:11px; }
.logs-more-filter-grid { display:grid; grid-template-columns:repeat(2,minmax(200px,300px)); gap:10px; margin-top:10px; }
.logs-results-summary { margin:0 0 10px; color:#64748b; font-size:12px; }
.logs-table-wrap { overflow-x:auto; border:1px solid #e2e8f0; border-radius:7px; }
.logs-table { width:100%; min-width:980px; border-collapse:collapse; font-size:12px; }
.logs-table th { padding:10px 11px; border-bottom:1px solid #cbd5e1; background:#f8fafc; color:#64748b; font-size:10px; letter-spacing:.04em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.logs-table td { padding:11px; border-bottom:1px solid #eef2f7; vertical-align:top; }
.logs-table tbody tr:last-child td { border-bottom:0; }
.logs-table tbody tr:hover td { background:#fbfdff; }
.logs-action { display:block; color:#0f172a; font-size:12px; }
.logs-category-pill { display:inline-block; margin-bottom:5px; padding:3px 7px; border-radius:999px; background:#eef2ff; color:#4338ca; font-size:10px; font-weight:800; }
.logs-entity { display:block; margin-top:3px; color:#2563eb; font-size:11px; }
.logs-muted { display:block; margin-top:3px; color:#94a3b8; font-size:10px; }
.logs-nowrap { white-space:nowrap; color:#475569; }
.logs-change-list { display:flex; flex-direction:column; gap:5px; min-width:360px; }
.logs-change-list-compact { min-width:420px; margin-top:9px; }
.logs-change-row { display:grid; grid-template-columns:minmax(100px,1fr) auto auto minmax(100px,1fr); align-items:center; gap:6px; }
.logs-change-row strong { color:#334155; font-size:11px; }
.logs-old-value, .logs-new-value { padding:3px 5px; border-radius:4px; overflow-wrap:anywhere; }
.logs-old-value { background:#fff1f2; color:#9f1239; text-decoration:line-through; }
.logs-new-value { background:#f0fdf4; color:#166534; }
.logs-arrow { color:#94a3b8; }
.logs-more-count { display:block; margin-top:6px; color:#64748b; font-size:10px; font-weight:700; }
.logs-details { min-width:115px; }
.logs-details p { margin:8px 0; color:#64748b; font-size:11px; }
.logs-raw-grid { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:8px; min-width:500px; margin:8px 0; }
.logs-raw-grid span { display:block; margin-bottom:3px; color:#64748b; font-size:10px; font-weight:800; text-transform:uppercase; }
.logs-raw-grid pre { max-height:180px; margin:0; padding:7px; overflow:auto; border:1px solid #e2e8f0; border-radius:4px; background:#f8fafc; color:#334155; font-size:10px; white-space:pre-wrap; }
.logs-activity-description { min-width:430px; color:#0f172a; line-height:1.45; }
.logs-context-list { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.logs-context-list span { padding:3px 7px; border:1px solid #dbeafe; border-radius:999px; background:#eff6ff; color:#1e40af; font-size:10px; font-weight:700; }
.logs-record-list { display:flex; flex-direction:column; gap:5px; max-height:220px; min-width:360px; margin-top:8px; padding:8px; overflow:auto; border:1px solid #e2e8f0; border-radius:5px; background:#f8fafc; font-size:10px; }
.logs-record-list div { display:grid; grid-template-columns:55px 130px minmax(150px,1fr); gap:6px; align-items:start; }
.logs-record-list span { color:#64748b; text-transform:uppercase; }
.logs-record-list code { color:#475569; overflow-wrap:anywhere; }
.logs-technical-link { display:inline-block; margin-top:5px; color:#2563eb; font-size:11px; font-weight:700; text-decoration:none; }
.logs-technical-link:hover { text-decoration:underline; }
.logs-empty-state { padding:42px 18px; border:1px dashed #cbd5e1; border-radius:7px; background:#f8fafc; text-align:center; }
.logs-empty-icon { display:inline-flex; width:32px; height:32px; align-items:center; justify-content:center; border-radius:50%; background:#dcfce7; color:#15803d; font-weight:800; }
.logs-empty-state h3 { margin:10px 0 3px; color:#334155; font-size:14px; }
.logs-empty-state p { margin:0; color:#64748b; font-size:12px; }
.logs-pagination { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
@media (max-width:1000px) {
  .logs-filter-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); }
  .logs-filter-actions { grid-column:1/-1; }
}
@media (max-width:700px) {
  .logs-status-grid { grid-template-columns:1fr; }
  .logs-review-panel { padding:12px; }
  .logs-section-heading { flex-direction:column; }
  .logs-view-tabs { width:100%; }
  .logs-view-tab { flex:1; text-align:center; }
  .logs-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .logs-filter-actions { grid-column:auto; }
  .logs-more-filter-grid { grid-template-columns:1fr; }
  .logs-change-row { grid-template-columns:1fr; gap:3px; }
  .logs-arrow { display:none; }
}

/* Confirmation pages */
.confirm-page { max-width:1180px; margin:0 auto; color:#1e293b; }
.confirm-page-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }
.confirm-kicker { margin:0 0 5px; color:#64748b; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.confirm-page h1 { margin:0; color:#0f172a; font-size:24px; line-height:1.2; }
.confirm-page h2 { margin:0; color:#0f172a; font-size:17px; }
.confirm-page h3 { margin:0; color:#334155; font-size:14px; }
.confirm-page-muted { color:#64748b; font-size:13px; }
.confirm-page-link { color:#2563eb; font-size:13px; font-weight:600; text-decoration:none; }
.confirm-page-link:hover { text-decoration:underline; }
.confirm-alert { display:flex; align-items:flex-start; gap:10px; margin-bottom:18px; padding:12px 14px; border:1px solid #fecaca; border-radius:8px; background:#fef2f2; color:#991b1b; font-size:13px; }
.confirm-alert strong { color:#7f1d1d; }
.confirm-summary-card { display:flex; justify-content:space-between; align-items:stretch; gap:20px; margin-bottom:18px; padding:18px; border:1px solid #dee2e6; border-radius:8px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.confirm-summary-primary { min-width:220px; display:flex; flex-direction:column; justify-content:center; gap:5px; }
.confirm-summary-primary strong { color:#0f172a; font-size:17px; }
.confirm-summary-id { color:#64748b; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11px; }
.confirm-summary-metrics { display:flex; flex:1; justify-content:flex-end; flex-wrap:wrap; gap:22px; }
.confirm-summary-metric { display:flex; min-width:120px; flex-direction:column; justify-content:center; gap:5px; }
.confirm-summary-metric-label { color:#64748b; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.confirm-summary-metric-value { color:#0f172a; font-size:14px; font-weight:700; }
.confirm-summary-metric-value.is-accent { color:#0e7490; }
.confirm-callout { display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; padding:14px 16px; border:1px solid #bae6fd; border-radius:8px; background:#f0f9ff; color:#0c4a6e; font-size:13px; }
.confirm-callout-icon { display:flex; width:24px; height:24px; flex:0 0 24px; align-items:center; justify-content:center; border-radius:50%; background:#e0f2fe; color:#0369a1; font-weight:800; }
.confirm-callout p { margin:0; line-height:1.45; }
.confirm-callout strong { color:#075985; }
.confirm-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:18px; }
.confirm-step-indicator { display:flex; align-items:center; gap:9px; min-height:52px; padding:10px 12px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; color:#94a3b8; }
.confirm-step-indicator-number { display:flex; width:28px; height:28px; flex:0 0 28px; align-items:center; justify-content:center; border-radius:50%; background:#e2e8f0; color:#64748b; font-size:12px; font-weight:800; }
.confirm-step-indicator-copy { display:flex; flex-direction:column; gap:2px; }
.confirm-step-indicator-copy strong { color:inherit; font-size:12px; }
.confirm-step-indicator-copy span { font-size:11px; }
.confirm-step-indicator.active { border-color:#93c5fd; background:#eff6ff; color:#1d4ed8; }
.confirm-step-indicator.active .confirm-step-indicator-number { background:#2563eb; color:#fff; }
.confirm-step-indicator.done { border-color:#bbf7d0; background:#f0fdf4; color:#15803d; }
.confirm-step-indicator.done .confirm-step-indicator-number { background:#16a34a; color:#fff; }
.confirm-stage { padding:22px; border:1px solid #dee2e6; border-radius:8px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.confirm-stage-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; }
.confirm-stage-heading p { margin:5px 0 0; color:#64748b; font-size:13px; line-height:1.45; }
.confirm-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.confirm-choice-card { display:flex; min-height:108px; flex-direction:column; align-items:flex-start; gap:7px; padding:16px; border:2px solid #e2e8f0; border-radius:8px; background:#fff; color:#334155; text-align:left; cursor:pointer; transition:border-color .15s,box-shadow .15s,background .15s; }
.confirm-choice-card:hover { border-color:#93c5fd; box-shadow:0 3px 8px rgba(37,99,235,.1); }
.confirm-choice-card.selected { border-color:#2563eb; background:#eff6ff; box-shadow:0 0 0 3px rgba(37,99,235,.1); }
.confirm-choice-icon { display:flex; width:28px; height:28px; align-items:center; justify-content:center; border-radius:50%; background:#f1f5f9; color:#64748b; font-size:14px; font-weight:800; }
.confirm-choice-card.selected .confirm-choice-icon { background:#dbeafe; color:#1d4ed8; }
.confirm-choice-card.is-danger.selected { border-color:#dc2626; background:#fef2f2; box-shadow:0 0 0 3px rgba(220,38,38,.08); }
.confirm-choice-card.is-danger.selected .confirm-choice-icon { background:#fee2e2; color:#b91c1c; }
.confirm-choice-title { color:#0f172a; font-size:14px; font-weight:800; }
.confirm-choice-description { color:#64748b; font-size:12px; line-height:1.4; }
.confirm-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
.confirm-detail-grid-single { grid-template-columns:1fr; }
.confirm-field { display:flex; flex-direction:column; gap:7px; }
.confirm-field label { color:#334155; font-size:12px; font-weight:700; }
.confirm-field textarea { min-height:92px; resize:vertical; }
.confirm-form-input { width:100%; box-sizing:border-box; padding:9px 11px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:#1e293b; font:inherit; font-size:13px; }
.confirm-form-input:focus { border-color:#60a5fa; outline:2px solid rgba(96,165,250,.18); }
.confirm-provider-group { margin-top:18px; }
.confirm-provider-group > label { display:block; margin-bottom:9px; color:#334155; font-size:12px; font-weight:700; }
.confirm-provider-options { display:flex; flex-wrap:wrap; gap:9px; }
.confirm-provider-button { padding:9px 13px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:#475569; font-size:13px; font-weight:700; cursor:pointer; }
.confirm-provider-button:hover { border-color:#60a5fa; color:#1d4ed8; }
.confirm-provider-button.selected { border-color:#2563eb; background:#eff6ff; color:#1d4ed8; box-shadow:0 0 0 2px rgba(37,99,235,.08); }
.confirm-step-actions { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:22px; }
.confirm-step-actions-right { display:flex; justify-content:flex-end; gap:9px; }
.confirm-button { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:8px 14px; border:1px solid transparent; border-radius:6px; font-size:13px; font-weight:700; cursor:pointer; text-decoration:none; }
.confirm-button-primary { background:#2563eb; color:#fff; }
.confirm-button-primary:hover { background:#1d4ed8; }
.confirm-button-secondary { border-color:#cbd5e1; background:#fff; color:#475569; }
.confirm-button-secondary:hover { border-color:#94a3b8; background:#f8fafc; }
.confirm-button-danger { background:#dc2626; color:#fff; }
.confirm-button-danger:hover { background:#b91c1c; }
.confirm-button-success { background:#16a34a; color:#fff; }
.confirm-button-success:hover { background:#15803d; }
.confirm-button:disabled { cursor:not-allowed; opacity:.55; }
.confirm-assignment-panel { overflow:hidden; margin-top:18px; border:1px solid #e2e8f0; border-radius:8px; }
.confirm-assignment-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 16px; border-bottom:1px solid #e2e8f0; background:#f8fafc; }
.confirm-assignment-toolbar strong { color:#0f172a; font-size:14px; }
.confirm-assignment-toolbar p { margin:3px 0 0; color:#64748b; font-size:12px; }
.confirm-assignment-count { display:flex; flex:0 0 auto; flex-direction:column; align-items:flex-end; gap:3px; color:#64748b; font-size:11px; font-weight:700; text-transform:uppercase; }
.confirm-assignment-count strong { color:#2563eb; font-size:18px; line-height:1; }
.confirm-assignment-tools { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; padding:12px 16px; border-bottom:1px solid #e2e8f0; background:#fff; }
.confirm-assignment-tools label { display:flex; flex:1 1 360px; flex-direction:column; gap:5px; color:#475569; font-size:12px; font-weight:800; }
.confirm-assignment-tools input { width:100%; max-width:520px; box-sizing:border-box; padding:8px 10px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:#0f172a; font:inherit; font-weight:500; }
.confirm-assignment-tools input:focus { outline:2px solid rgba(37,99,235,.2); border-color:#2563eb; }
.confirm-search-count { flex:0 0 auto; padding-bottom:9px; color:#64748b; font-size:12px; font-weight:700; }
.confirm-assignment-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.confirm-assignment-table { width:100%; min-width:1040px; border-collapse:collapse; font-size:13px; }
.confirm-assignment-table th { padding:10px 12px; border-bottom:1px solid #e2e8f0; background:#fff; color:#64748b; font-size:11px; letter-spacing:.03em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.confirm-assignment-table td { padding:12px; border-bottom:1px solid #f1f5f9; vertical-align:middle; }
.confirm-assignment-table tbody tr:last-child td { border-bottom:0; }
.confirm-assignment-table tbody tr:hover { background:#f8fafc; }
.confirm-tx-hash { color:#334155; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.confirm-wallet-detail { display:flex; min-width:125px; flex-direction:column; gap:3px; }
.confirm-wallet-detail strong { color:#0f172a; font-size:12px; }
.confirm-wallet-detail span { color:#64748b; font-size:11px; white-space:nowrap; }
.confirm-direction-badge { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:800; }
.confirm-direction-badge.inbound { background:#dcfce7; color:#166534; }
.confirm-address { white-space:nowrap; }
.confirm-no-search-results td { padding:18px; color:#64748b; text-align:center; }
.confirm-wallet-badge { display:inline-flex; padding:4px 8px; border-radius:999px; background:#f1f5f9; color:#475569; font-size:11px; font-weight:700; }
.confirm-wallet-badge.is-internal { background:#fef3c7; color:#92400e; }
.confirm-amount { color:#0f172a; font-weight:800; white-space:nowrap; }
.confirm-amount-currency { margin-left:4px; color:#64748b; font-size:11px; font-weight:700; }
.confirm-assign-button { min-width:82px; padding:7px 11px; border:1px solid #bfdbfe; border-radius:6px; background:#eff6ff; color:#1d4ed8; font-size:12px; font-weight:800; cursor:pointer; }
.confirm-assign-button:hover { background:#dbeafe; }
.confirm-assign-button.assigned { border-color:#86efac; background:#f0fdf4; color:#15803d; }
.confirm-empty-state { padding:24px 16px; color:#64748b; font-size:13px; text-align:center; }
.confirm-batch-list { overflow:auto; border:1px solid #e2e8f0; border-radius:8px; }
.confirm-batch-table { width:100%; border-collapse:collapse; font-size:13px; }
.confirm-batch-table th { padding:10px 12px; background:#f8fafc; color:#64748b; font-size:11px; text-align:left; text-transform:uppercase; }
.confirm-batch-table td { padding:11px 12px; border-top:1px solid #f1f5f9; }
.confirm-batch-table td:nth-child(2), .confirm-batch-table td:nth-child(3) { white-space:nowrap; }
.confirm-batch-confirmation { margin-top:18px; }
.confirm-batch-confirmation .confirm-stage-heading { margin-bottom:12px; }
.confirm-batch-confirmation .confirm-assignment-panel { margin-top:0; }
.confirm-batch-status-choice { display:flex; flex-wrap:wrap; gap:9px; margin:14px 0 0; }
.confirm-batch-status-choice label { display:flex; align-items:center; gap:7px; padding:9px 12px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:#475569; cursor:pointer; font-size:13px; font-weight:700; }
.confirm-batch-status-choice label:has(input:checked) { border-color:#2563eb; background:#eff6ff; color:#1d4ed8; }
.confirm-batch-status-choice input { accent-color:#2563eb; }
.confirm-table-action-form { display:inline; }
@media (max-width:760px) {
  .confirm-page-header, .confirm-summary-card, .confirm-assignment-toolbar { align-items:flex-start; flex-direction:column; }
  .confirm-summary-metrics { justify-content:flex-start; }
  .confirm-detail-grid { grid-template-columns:1fr; }
  .confirm-steps { grid-template-columns:1fr; }
  .confirm-step-indicator { min-height:42px; }
  .confirm-assignment-tools { align-items:stretch; flex-direction:column; }
  .confirm-assignment-tools input { max-width:none; }
  .confirm-search-count { padding-bottom:0; }
  .confirm-assignment-table th, .confirm-assignment-table td { padding:9px 8px; }
}

/* --- Alerts workspace --- */
.alerts-page { max-width:1440px; margin:0 auto; color:#1e293b; }
.alerts-feedback { margin:0 0 16px; padding:11px 14px; border:1px solid; border-radius:8px; font-size:13px; }
.alerts-feedback.is-error { border-color:#fecaca; background:#fef2f2; color:#b91c1c; }
.alerts-feedback.is-success { border-color:#bbf7d0; background:#f0fdf4; color:#166534; }
.alerts-view-only-note { margin-bottom:14px; padding:10px 12px; border:1px solid #dbeafe; border-radius:7px; background:#eff6ff; color:#1d4ed8; font-size:12px; font-weight:700; }
.alerts-tab-nav { display:flex; gap:5px; overflow-x:auto; padding:5px; border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; scrollbar-width:thin; }
.alerts-tab-nav .alert-tab { display:inline-flex; flex:0 0 auto; align-items:center; gap:6px; padding:9px 12px; border:1px solid transparent !important; border-radius:7px; background:transparent; color:#64748b; font-size:12px; font-weight:700; white-space:nowrap; }
.alerts-tab-nav .alert-tab:hover { background:#eef4fb; color:#1d4ed8; }
.alerts-tab-nav .alert-tab.active { border-color:#bfdbfe !important; background:#fff; color:#1d4ed8; box-shadow:0 1px 3px rgba(37,99,235,.12); }
.alerts-tab-nav .alert-count { display:inline-flex; min-width:19px; height:19px; align-items:center; justify-content:center; padding:0 5px; border-radius:999px; background:#e2e8f0 !important; color:#475569 !important; font-size:10px; font-weight:800; }
.alerts-tab-nav .alert-tab.active .alert-count { background:#dbeafe !important; color:#1d4ed8 !important; }
.alerts-page .alert-panel { overflow-x:auto; margin-top:12px; padding:20px; border:1px solid #e2e8f0; border-radius:10px; background:#fff; box-shadow:0 2px 6px rgba(15,23,42,.04); }
.alerts-page .alert-panel > p { margin:0; padding:24px 10px; color:#64748b; font-size:13px; text-align:center; }
.alerts-page .alert-panel table { width:100%; border:0 !important; border-collapse:separate !important; border-spacing:0; font-size:13px; }
.alerts-page .alert-panel th { padding:10px 11px !important; border:0 !important; border-bottom:1px solid #e2e8f0 !important; background:#f8fafc !important; color:#64748b; font-size:10px; font-weight:800; letter-spacing:.05em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.alerts-page .alert-panel td { padding:11px !important; border:0 !important; border-bottom:1px solid #f1f5f9 !important; vertical-align:middle; }
.alerts-page .alert-panel tbody tr:hover { background:#f8fbff !important; }
.alerts-page .alert-panel tbody tr:last-child td { border-bottom:0 !important; }
.alerts-page .alert-panel details { border:1px solid #e2e8f0 !important; border-radius:10px !important; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.03); }
.alerts-page .alert-panel details > summary { padding:10px 12px; border-radius:9px; background:#f8fafc; color:#334155; }
.alerts-page .alert-panel details[open] > summary { border-bottom:1px solid #e2e8f0; border-radius:9px 9px 0 0; }
.alerts-page .alert-panel .boris-item { border:1px solid #e2e8f0 !important; box-shadow:0 2px 5px rgba(15,23,42,.04); }
.alerts-page .alert-panel .boris-item.kiro-item { border-color:#f3c969 !important; box-shadow:0 2px 8px rgba(245,158,11,.12); }
.alerts-page .alert-panel .boris-item table th { background:#f8fafc !important; }
.alerts-page .alert-panel .txhash-box { max-width:100%; }
.alerts-page .alert-panel .btn { box-shadow:none; }
.alerts-page .alert-panel button, .alerts-page .alert-panel a.btn { transition:transform .12s ease, box-shadow .12s ease, filter .12s ease; }
.alerts-page .alert-panel button:hover, .alerts-page .alert-panel a.btn:hover { transform:translateY(-1px); box-shadow:0 2px 5px rgba(15,23,42,.12); filter:saturate(1.05); }
.kiro-batch-form { min-width:980px; }
.kiro-batch-toolbar { display:flex; align-items:center; gap:10px; margin-bottom:12px; padding:12px; border:1px solid #fde68a; border-radius:9px; background:#fffbeb; }
.kiro-select-all { display:inline-flex; align-items:center; gap:7px; color:#92400e; font-size:12px; font-weight:800; white-space:nowrap; }
.kiro-select-cell { width:62px; text-align:center !important; }
.kiro-expense-checkbox, #kiroSelectAll { width:16px; height:16px; accent-color:#2563eb; cursor:pointer; }
.kiro-batch-summary { margin-right:auto; color:#64748b; font-size:12px; font-weight:700; }
.kiro-tx-label { color:#475569; font-size:11px; font-weight:750; white-space:nowrap; }
.kiro-tx-select { min-width:290px; max-width:390px; padding:8px 10px; border:1px solid #cbd5e1; border-radius:7px; background:#fff; color:#334155; font-size:12px; }
.kiro-batch-submit { padding:8px 13px; border:0; border-radius:7px; background:#15803d; color:#fff; font-size:11px; font-weight:800; cursor:pointer; white-space:nowrap; }
.kiro-batch-submit:disabled { background:#cbd5e1; color:#64748b; cursor:not-allowed; }
.kiro-row-link { color:#2563eb; font-size:11px; font-weight:750; text-decoration:none; white-space:nowrap; }
.kiro-row-link:hover { text-decoration:underline; }
@media (max-width:760px) {
  .alerts-page .alert-panel { padding:12px; }
  .alerts-page .alert-panel table { min-width:680px; }
  .kiro-batch-toolbar { align-items:stretch; flex-direction:column; }
  .kiro-batch-summary { margin-right:0; }
  .kiro-tx-select { max-width:none; }
}

/* --- Transaction edit approval comparison --- */
.approval-requests-list { display:grid; gap:14px; }
.approval-request-card { overflow:hidden; border:1px solid #e2e8f0; border-radius:10px; background:#fff; box-shadow:0 2px 6px rgba(15,23,42,.04); }
.approval-request-card.is-transaction-edit { border-color:#cbd5e1; }
.approval-request-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:15px 16px; border-bottom:1px solid #e2e8f0; background:#f8fafc; }
.approval-request-heading { display:flex; flex-direction:column; gap:4px; }
.approval-request-heading strong { color:#0f172a; font-size:15px; }
.approval-request-kicker { color:#2563eb; font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.approval-request-meta { display:flex; align-items:flex-end; flex-direction:column; gap:4px; color:#64748b; font-size:11px; text-align:right; }
.approval-request-meta strong { color:#334155; font-weight:750; }
.approval-transaction-context { display:grid; grid-template-columns:minmax(170px,1.5fr) repeat(5,minmax(90px,1fr)); gap:1px; padding:12px 16px; border-bottom:1px solid #e2e8f0; background:#fff; }
.approval-context-item { display:flex; min-width:0; flex-direction:column; gap:4px; padding:5px 10px; border-left:1px solid #eef2f7; }
.approval-context-item:first-child { border-left:0; padding-left:0; }
.approval-context-item span { color:#64748b; font-size:10px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.approval-context-item strong { overflow:hidden; color:#0f172a; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.approval-context-client strong { color:#1d4ed8; font-size:14px; }
.approval-change-table-wrap { overflow-x:auto; padding:14px 16px 4px; }
.alerts-page .approval-change-table { width:100%; min-width:560px; border:0 !important; border-collapse:separate !important; border-spacing:0 6px; font-size:12px; }
.alerts-page .approval-change-table th,
.alerts-page .approval-change-table td { border:0 !important; padding:9px 10px !important; }
.alerts-page .approval-change-table thead th { padding:0 10px 3px !important; background:transparent !important; color:#64748b; font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.alerts-page .approval-change-table thead th:first-child { width:28%; text-align:left; }
.alerts-page .approval-change-table tbody th { border:1px solid #e2e8f0 !important; border-right:0 !important; border-radius:7px 0 0 7px; background:#f8fafc !important; color:#334155; font-size:12px; font-weight:750; text-align:left; }
.alerts-page .approval-change-table tbody td { width:36%; vertical-align:middle; }
.alerts-page .approval-change-table tbody td:nth-child(2) { border-top:1px solid #fecdd3 !important; border-bottom:1px solid #fecdd3 !important; background:#fff1f2 !important; }
.alerts-page .approval-change-table tbody td:last-child { border:1px solid #bbf7d0 !important; border-left:0 !important; border-radius:0 7px 7px 0; background:#f0fdf4 !important; }
.approval-value { display:block; min-height:18px; overflow-wrap:anywhere; line-height:1.4; }
.approval-value-original { color:#9f1239; }
.approval-value-new { color:#166534; font-weight:750; }
.approval-request-footer { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-height:50px; padding:10px 16px; border-top:1px solid #f1f5f9; }
.approval-request-actions { display:flex; gap:8px; }
.approval-request-actions form { margin:0; }
.approval-request-link { margin-right:auto; color:#2563eb; font-size:12px; font-weight:750; text-decoration:none; }
.approval-request-link:hover { text-decoration:underline; }
.approval-request-readonly { color:#64748b; font-size:12px; }
.approval-request-empty { margin:0; padding:16px; color:#64748b; font-size:12px; }
.approval-request-payload { padding:16px; color:#475569; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11px; overflow-wrap:anywhere; }
@media (max-width:700px) {
  .approval-request-header { flex-direction:column; }
  .approval-request-meta { align-items:flex-start; text-align:left; }
  .approval-transaction-context { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 0; }
  .approval-context-item,
  .approval-context-item:first-child { border-left:0; padding:5px 8px; }
  .approval-context-client { grid-column:1/-1; }
  .approval-change-table-wrap { padding-right:10px; padding-left:10px; }
  .approval-request-footer { justify-content:flex-start; }
}

/* --- Authentication --- */
body.auth-body {
  min-height:100vh;
  color:#0f172a;
  background:#eef4f8;
}
.auth-page-content { min-height:100vh; padding:0; }
.login-page {
  position:relative;
  display:grid;
  min-height:100vh;
  place-items:center;
  overflow:hidden;
  padding:40px 24px;
  background:
    radial-gradient(circle at 8% 8%, rgba(186,230,253,.55), transparent 28%),
    radial-gradient(circle at 92% 90%, rgba(191,219,254,.45), transparent 30%),
    #eef4f8;
}
.login-page::before {
  position:absolute;
  top:-180px;
  right:-120px;
  width:440px;
  height:440px;
  border:1px solid rgba(59,130,246,.12);
  border-radius:50%;
  content:"";
  box-shadow:0 0 0 42px rgba(59,130,246,.035), 0 0 0 84px rgba(59,130,246,.025);
}
.login-shell {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);
  width:min(1100px,100%);
  min-height:650px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.34);
  border-radius:24px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.12), 0 3px 12px rgba(15,23,42,.04);
}
.login-panel {
  display:flex;
  flex-direction:column;
  padding:46px 58px 30px;
  background:#fff;
}
.login-header { max-width:460px; }
.login-brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#102b48;
  text-decoration:none;
}
.login-brand-mark {
  display:inline-flex;
  width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  border:1px solid #bfdbfe;
  border-radius:11px;
  background:#eff6ff;
  color:#2563eb;
}
.login-brand-mark svg { width:25px; height:25px; }
.login-alert {
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:26px 0 -4px;
  padding:11px 13px;
  border:1px solid #fecaca;
  border-radius:9px;
  background:#fff7f7;
  color:#b91c1c;
  font-size:12px;
  line-height:1.45;
}
.login-alert svg { width:17px; height:17px; flex:0 0 17px; margin-top:1px; }
.login-form { max-width:460px; margin-top:72px; }
.login-field + .login-field { margin-top:20px; }
.login-field label { display:block; margin-bottom:8px; color:#334155; font-size:12px; font-weight:750; }
.login-label-row { display:flex; align-items:center; justify-content:space-between; }
.login-input-wrap { position:relative; }
.login-input-icon {
  position:absolute;
  top:50%;
  left:14px;
  width:19px;
  height:19px;
  transform:translateY(-50%);
  color:#94a3b8;
  pointer-events:none;
}
.login-input-wrap input {
  width:100%;
  height:48px;
  padding:0 14px 0 43px;
  border:1px solid #cbd5e1;
  border-radius:9px;
  outline:none;
  background:#fff;
  color:#0f172a;
  font:inherit;
  font-size:13px;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.login-input-wrap input::placeholder { color:#94a3b8; }
.login-input-wrap input:hover { border-color:#94a3b8; }
.login-input-wrap input:focus { border-color:#3b82f6; box-shadow:0 0 0 4px rgba(59,130,246,.12); }
.login-input-wrap input:focus + .login-password-toggle,
.login-input-wrap input:focus ~ .login-input-icon { color:#2563eb; }
.login-field:focus-within .login-input-icon { color:#2563eb; }
.login-input-wrap input[type="password"] { padding-right:68px; }
.login-password-toggle {
  position:absolute;
  display:inline-flex;
  top:50%;
  right:12px;
  width:28px;
  height:28px;
  align-items:center;
  justify-content:center;
  transform:translateY(-50%);
  padding:4px;
  border:0;
  background:transparent;
  color:#2563eb;
  cursor:pointer;
}
.login-password-toggle svg { width:17px; height:17px; }
.login-password-toggle:hover { color:#1d4ed8; }
.login-password-toggle:focus-visible { border-radius:4px; outline:2px solid #93c5fd; outline-offset:2px; }
.login-submit {
  display:flex;
  width:100%;
  height:49px;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:25px;
  border:0;
  border-radius:9px;
  background:#2563eb;
  color:#fff;
  cursor:pointer;
  font:inherit;
  font-size:13px;
  font-weight:750;
  box-shadow:0 8px 18px rgba(37,99,235,.2);
  transition:background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.login-submit svg { width:20px; height:20px; transition:transform .15s ease; }
.login-submit:hover { background:#1d4ed8; box-shadow:0 10px 22px rgba(37,99,235,.26); transform:translateY(-1px); }
.login-submit:hover svg { transform:translateX(2px); }
.login-submit:active { transform:translateY(0); }
.login-submit:focus-visible { outline:3px solid #bfdbfe; outline-offset:3px; }
.login-aside {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  padding:48px 46px 30px;
  background:linear-gradient(155deg,#102b48 0%,#123955 51%,#0a6270 100%);
  color:#fff;
}
.login-aside::before,
.login-aside::after {
  position:absolute;
  border:1px solid rgba(186,230,253,.18);
  border-radius:50%;
  content:"";
  pointer-events:none;
}
.login-aside::before { top:-155px; right:-110px; width:390px; height:390px; box-shadow:0 0 0 35px rgba(186,230,253,.04), 0 0 0 70px rgba(186,230,253,.035); }
.login-aside::after { right:33px; bottom:95px; width:116px; height:116px; border-color:rgba(186,230,253,.12); }
.login-aside-grid { position:absolute; inset:0; opacity:.3; background-image:linear-gradient(rgba(186,230,253,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(186,230,253,.1) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(to bottom,transparent 0%,#000 35%,#000 100%); }
.login-aside-content, .login-aside-card, .login-aside-footer { position:relative; z-index:1; }
.login-aside-kicker { margin:0 0 21px; color:#a5f3fc; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.login-aside h2 { max-width:315px; margin:0; color:#fff; font-size:33px; font-weight:720; letter-spacing:-.04em; line-height:1.08; }
.login-aside-lede { max-width:335px; margin:17px 0 0; color:#c4d9e6; font-size:13px; line-height:1.65; }
.login-feature-list { display:grid; gap:16px; margin:37px 0 0; padding:0; list-style:none; }
.login-feature-list li { display:flex; align-items:center; gap:11px; color:#e2edf4; font-size:12px; line-height:1.35; }
.login-feature-icon { display:inline-flex; width:25px; height:25px; flex:0 0 25px; align-items:center; justify-content:center; border:1px solid rgba(165,243,252,.3); border-radius:8px; background:rgba(165,243,252,.1); color:#a5f3fc; }
.login-feature-icon svg { width:15px; height:15px; }
.login-aside-card { display:flex; align-items:center; gap:12px; padding:14px; border:1px solid rgba(186,230,253,.19); border-radius:11px; background:rgba(8,30,51,.25); box-shadow:0 8px 20px rgba(8,30,51,.1); }
.login-aside-card-icon { display:inline-flex; width:30px; height:30px; flex:0 0 30px; align-items:center; justify-content:center; border-radius:9px; background:rgba(165,243,252,.14); color:#a5f3fc; }
.login-aside-card-icon svg { width:18px; height:18px; }
.login-aside-card > span:last-child { display:flex; flex-direction:column; gap:3px; }
.login-aside-card strong { color:#fff; font-size:11px; }
.login-aside-card > span:last-child > span { color:#a9c4d4; font-size:10px; }
.login-aside-footer { display:flex; align-items:center; gap:10px; color:#94b9c9; font-size:9px; font-weight:750; letter-spacing:.15em; text-transform:uppercase; }
.login-aside-footer-line { width:40px; height:1px; background:rgba(165,243,252,.38); }
@media (max-width:900px) {
  .login-shell { grid-template-columns:minmax(0,1fr) minmax(315px,.82fr); }
  .login-panel { padding-right:42px; padding-left:42px; }
  .login-aside { padding-right:34px; padding-left:34px; }
}
@media (max-width:720px) {
  .login-page { padding:20px 14px; }
  .login-shell { display:block; min-height:0; border-radius:18px; }
  .login-panel { min-height:650px; padding:32px 26px 24px; }
  .login-form { margin-top:58px; }
  .login-aside { display:none; }
}
@media (max-width:380px) {
  .login-panel { padding-right:20px; padding-left:20px; }
}

/* --- Reusable transaction assignee picker --- */
.assignee-picker { min-width:120px; max-width:260px; }
.assignee-picker-trigger { display:flex; width:100%; min-height:30px; align-items:center; justify-content:space-between; gap:8px; padding:5px 8px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:#334155; cursor:pointer; font:inherit; font-size:11px; text-align:left; }
.assignee-picker-trigger:hover { border-color:#3b82f6; background:#f8fafc; }
.assignee-picker-summary { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.assignee-picker-edit { flex:0 0 auto; color:#2563eb; font-size:10px; font-weight:700; }
.assignee-modal { display:none; position:fixed; inset:0; z-index:4000; align-items:center; justify-content:center; padding:16px; background:rgba(15,23,42,.58); backdrop-filter:blur(3px); }
.assignee-modal.is-open { display:flex; }
.assignee-modal-card { width:min(520px,100%); max-height:calc(100vh - 32px); overflow:hidden; border:1px solid #d8dee8; border-radius:14px; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.28); }
.assignee-modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px 14px; border-bottom:1px solid #e5e7eb; }
.assignee-modal-header h2 { margin:0; font-size:18px; }
.assignee-modal-header p { margin:4px 0 0; color:#64748b; font-size:12px; }
.assignee-modal-close { width:30px; height:30px; border:0; border-radius:50%; background:#f1f5f9; color:#64748b; cursor:pointer; font-size:20px; }
.assignee-modal-body { padding:16px 20px; }
.assignee-modal-search { width:100%; height:38px; margin-bottom:12px; padding:0 10px; border:1px solid #cbd5e1; border-radius:7px; font:inherit; }
.assignee-modal-list { display:grid; gap:7px; max-height:330px; overflow-y:auto; }
.assignee-modal-option { display:flex; align-items:center; gap:10px; padding:9px 10px; border:1px solid #e2e8f0; border-radius:7px; cursor:pointer; }
.assignee-modal-option:hover { border-color:#93c5fd; background:#eff6ff; }
.assignee-modal-option input { width:16px; height:16px; margin:0; accent-color:#2563eb; }
.assignee-modal-option span { display:flex; flex-direction:column; gap:2px; }
.assignee-modal-option strong { color:#334155; font-size:13px; }
.assignee-modal-option small { color:#64748b; font-size:10px; text-transform:capitalize; }
.assignee-modal-empty { margin:16px 0; color:#64748b; text-align:center; font-size:12px; }
.assignee-modal-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:14px 20px 18px; border-top:1px solid #e5e7eb; }
.assignee-modal-count { margin-right:auto; color:#64748b; font-size:11px; }
.assignee-picker.saving .assignee-picker-trigger { border-color:#f59e0b; background:#fffbeb; }
.assignee-picker.saved .assignee-picker-trigger { border-color:#22c55e; background:#f0fdf4; }
.assignee-picker.requested .assignee-picker-trigger { border-color:#8b5cf6; background:#f5f3ff; }
.assignee-picker.error .assignee-picker-trigger { border-color:#ef4444; background:#fef2f2; }
@media (max-width:600px) { .assignee-modal { align-items:flex-end; padding:8px; } .assignee-modal-card { max-height:calc(100vh - 16px); } .assignee-modal-actions { flex-wrap:wrap; } }
