/* ============================================================
   ACCOUNTANT TAX SUITE 2026 — Professional Design System v2
   Lucide icon style · Inter typeface · Enterprise-grade UI
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* ── Design Tokens ──────────────────────────────────────────── */
:root {
  --navy:        #0F1F3D;
  --navy-mid:    #1A3260;
  --navy-light:  #2A4A8A;
  --teal:        #0D7C7C;
  --teal-light:  #0FA89E;
  --gold:        #C8940A;
  --gold-light:  #F0B429;

  --gray0:  #F8FAFC;
  --gray1:  #F1F5F9;
  --gray2:  #E2E8F0;
  --gray3:  #CBD5E1;
  --gray4:  #94A3B8;
  --gray5:  #64748B;
  --gray6:  #475569;
  --gray7:  #334155;
  --gray8:  #1E293B;

  --bg-page:      #F1F5F9;
  --bg-surface:   #FFFFFF;
  --bg-secondary: #F8FAFC;
  --border:       #E2E8F0;
  --text-primary: #0F1F3D;
  --text-secondary: #475569;
  --text-muted:   #94A3B8;

  --success:    #059669;
  --success-bg: #ECFDF5;
  --warning:    #D97706;
  --warning-bg: #FFFBEB;
  --danger:     #DC2626;
  --danger-bg:  #FEF2F2;
  --info:       #2563EB;
  --info-bg:    #EFF6FF;

  --sidebar-bg:     #0F1F3D;
  --sidebar-width:  252px;
  --sidebar-text:   #CBD5E1;
  --sidebar-active: rgba(255,255,255,0.10);
  --sidebar-hover:  rgba(255,255,255,0.06);
  --sidebar-border: rgba(255,255,255,0.07);

  --shadow-xs: 0 1px 2px rgba(15,31,61,0.05);
  --shadow-sm: 0 1px 4px rgba(15,31,61,0.07), 0 2px 8px rgba(15,31,61,0.04);
  --shadow-md: 0 4px 12px rgba(15,31,61,0.10), 0 1px 4px rgba(15,31,61,0.06);
  --shadow-lg: 0 8px 24px rgba(15,31,61,0.12), 0 2px 8px rgba(15,31,61,0.06);
  --shadow-xl: 0 20px 48px rgba(15,31,61,0.16), 0 4px 16px rgba(15,31,61,0.08);

  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-xl:   20px;
  --radius-full: 9999px;
  --ease:        cubic-bezier(0.4,0,0.2,1);
  --ease-spring: cubic-bezier(0.34,1.56,0.64,1);
  --dur:         170ms;

  /* ── Aliases for module compatibility ───────────────────── */
  --surface:     #FFFFFF;
  --surface-alt: #F8FAFC;
  --radius:      10px;
  --text-muted:  #94A3B8;

  /* ── Legacy variable aliases (older modules) ─────────────── */
  --bg-card:    #FFFFFF;
  --green:      #059669;
  --red:        #DC2626;
  --text:       #0F1F3D;
  --text-main:  #0F1F3D;
}

/* ── Reset ──────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px;-webkit-font-smoothing:antialiased}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-page);color:var(--text-primary);line-height:1.6;min-height:100vh}

/* ── Layout ─────────────────────────────────────────────────── */
.app-layout{display:flex;min-height:100vh}
.main-content{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-width:0}

/* ── Sidebar ────────────────────────────────────────────────── */
.sidebar{
  width:var(--sidebar-width);background:var(--sidebar-bg);
  position:fixed;top:0;left:0;bottom:0;
  display:flex;flex-direction:column;z-index:100;
  border-right:1px solid rgba(255,255,255,0.04);
  overflow-y:auto;overflow-x:hidden;
}
.sidebar::-webkit-scrollbar{width:3px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:3px}

.sidebar-logo{padding:20px 16px 16px;border-bottom:1px solid var(--sidebar-border);flex-shrink:0}
.logo-lockup{display:flex;align-items:center;gap:10px;margin-bottom:2px}
.logo-icon-wrap{
  width:36px;height:36px;border-radius:10px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 2px 8px rgba(200,148,10,0.40);
}
.logo-icon-wrap svg{width:18px;height:18px;stroke:#0F1F3D;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.logo-text-wrap .logo-name{font-size:.88rem;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.2}
.logo-text-wrap .logo-name span{color:var(--gold-light)}
.logo-sub{font-size:.62rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#475569;margin-top:2px;padding-left:46px}

.sidebar-nav{flex:1;padding:10px 8px;display:flex;flex-direction:column;gap:1px}
.nav-section-label{
  font-size:.60rem;font-weight:700;letter-spacing:.10em;
  text-transform:uppercase;color:#3D5070;
  padding:14px 10px 5px;
}
.nav-section-label:first-child{padding-top:6px}

.nav-item{
  display:flex;align-items:center;gap:9px;
  padding:7.5px 10px;border-radius:7px;
  color:var(--sidebar-text);text-decoration:none;
  font-size:.80rem;font-weight:500;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
  position:relative;
}
.nav-item:hover{background:var(--sidebar-hover);color:#fff}
.nav-item.active{background:var(--sidebar-active);color:#fff;font-weight:600}
.nav-item.active::before{
  content:'';position:absolute;left:0;top:7px;bottom:7px;
  width:3px;background:var(--gold-light);border-radius:0 3px 3px 0;
}
.nav-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-icon svg{
  width:15px;height:15px;stroke:#64748B;stroke-width:2;
  fill:none;stroke-linecap:round;stroke-linejoin:round;
  transition:stroke var(--dur) var(--ease);
}
.nav-item:hover .nav-icon svg{stroke:#fff}
.nav-item.active .nav-icon svg{stroke:var(--gold-light)}

.sidebar-footer{padding:12px 14px;border-top:1px solid var(--sidebar-border);flex-shrink:0}
.sidebar-user{display:flex;align-items:center;gap:10px}
.user-avatar{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,var(--navy-light),var(--teal));
  color:#fff;font-size:.78rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  border:2px solid rgba(255,255,255,0.12);
}
.user-name{font-size:.76rem;font-weight:600;color:#E2E8F0;line-height:1.2}
.user-role{font-size:.64rem;color:#64748B}

/* ── Topbar ─────────────────────────────────────────────────── */
.topbar{
  background:var(--bg-surface);border-bottom:1px solid var(--border);
  padding:0 28px;height:62px;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:50;box-shadow:var(--shadow-xs);
}
.topbar-left h2{font-size:1.02rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}
.topbar-left p{font-size:.70rem;color:var(--text-muted);margin-top:1px}
.topbar-right{display:flex;align-items:center;gap:8px}

/* ── Page Content ───────────────────────────────────────────── */
.page-content{padding:24px 28px 40px;flex:1}

/* ── Cards ──────────────────────────────────────────────────── */
.card{
  background:var(--bg-surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;
}
.card-header{
  padding:14px 20px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--bg-secondary);
}
.card-header h3,.card-title{font-size:.85rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}
.card-header p{font-size:.72rem;color:var(--text-muted);margin-top:2px}
.card-body{padding:20px}
.card-footer{padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-secondary)}
.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}
.mt-2{margin-top:16px}.mt-3{margin-top:24px}

/* ── KPI Grid ───────────────────────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;margin-bottom:22px}
.kpi-card{
  background:var(--bg-surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:18px 20px;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden;
  transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.kpi-card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--gray2);
}
.kpi-card.gold::after{background:linear-gradient(90deg,var(--gold),var(--gold-light))}
.kpi-card.navy::after{background:linear-gradient(90deg,var(--navy),var(--navy-light))}
.kpi-card.teal::after{background:linear-gradient(90deg,var(--teal),var(--teal-light))}
.kpi-card.red::after {background:linear-gradient(90deg,var(--danger),#f87171)}
.kpi-card.green::after{background:linear-gradient(90deg,var(--success),#34d399)}

.kpi-icon{
  width:36px;height:36px;border-radius:9px;background:var(--gray1);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.kpi-icon svg{width:18px;height:18px;stroke:var(--gray6);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.kpi-card.gold .kpi-icon{background:rgba(200,148,10,.10)}.kpi-card.gold .kpi-icon svg{stroke:var(--gold)}
.kpi-card.navy .kpi-icon{background:rgba(42,74,138,.10)}.kpi-card.navy .kpi-icon svg{stroke:var(--navy-light)}
.kpi-card.teal .kpi-icon{background:rgba(13,124,124,.10)}.kpi-card.teal .kpi-icon svg{stroke:var(--teal)}
.kpi-card.red  .kpi-icon{background:rgba(220,38,38,.08)}.kpi-card.red  .kpi-icon svg{stroke:var(--danger)}
.kpi-card.green .kpi-icon{background:rgba(5,150,105,.08)}.kpi-card.green .kpi-icon svg{stroke:var(--success)}

.kpi-value{font-size:1.75rem;font-weight:800;color:var(--text-primary);letter-spacing:-.04em;line-height:1;margin-bottom:4px}
.kpi-label{font-size:.68rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}
.kpi-trend{font-size:.69rem;color:var(--text-muted);margin-top:6px}
.kpi-trend.up{color:var(--success)}.kpi-trend.down{color:var(--danger)}

/* ── Buttons ────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 16px;border-radius:var(--radius-sm);
  font-family:inherit;font-size:.80rem;font-weight:600;line-height:1;
  border:1.5px solid transparent;cursor:pointer;text-decoration:none;
  transition:all var(--dur) var(--ease);white-space:nowrap;letter-spacing:-.01em;
}
.btn:active{transform:scale(.97)}
.btn svg{width:14px;height:14px;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-mid);box-shadow:0 2px 8px rgba(15,31,61,.25)}
.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold);font-weight:700}
.btn-gold:hover{background:#b07d08;box-shadow:0 2px 8px rgba(200,148,10,.35)}
.btn-teal{background:var(--teal);color:#fff;border-color:var(--teal)}
.btn-teal:hover{background:var(--teal-light)}
.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}
.btn-ghost:hover{background:var(--gray1);color:var(--text-primary);border-color:var(--gray3)}
.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#fecaca}
.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}

.btn-sm{padding:5px 11px;font-size:.73rem;border-radius:5px}
.btn-lg{padding:11px 22px;font-size:.88rem;border-radius:var(--radius-md)}
.btn-full{width:100%}
.btn-icon{padding:7px;border-radius:var(--radius-sm)}
.btn-icon svg{width:15px;height:15px;margin:0}

/* ── Forms ──────────────────────────────────────────────────── */
.form-group{margin-bottom:14px}
.form-row{display:flex;gap:14px;flex-wrap:wrap}
.form-row.col2>*{flex:1 1 calc(50% - 7px);min-width:180px}
.form-row.col3>*{flex:1 1 calc(33% - 10px);min-width:160px}
.form-row.col4>*{flex:1 1 calc(25% - 11px);min-width:140px}

label,.form-label{display:block;font-size:.72rem;font-weight:600;color:var(--text-secondary);margin-bottom:5px;letter-spacing:.01em}
label small{font-weight:400;color:var(--text-muted);font-size:.66rem}

.form-control{
  width:100%;padding:8px 11px;
  border:1.5px solid var(--border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.80rem;color:var(--text-primary);
  background:var(--bg-surface);line-height:1.5;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.form-control:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px rgba(42,74,138,.09)}
.form-control::placeholder{color:var(--text-muted)}
.form-control:disabled{background:var(--gray1);color:var(--text-muted);cursor:not-allowed}
select.form-control{cursor:pointer}
textarea.form-control{resize:vertical;min-height:80px}

/* ── Tabs ───────────────────────────────────────────────────── */
.tabs{
  display:flex;gap:2px;background:var(--gray1);
  padding:4px;border-radius:var(--radius-md);margin-bottom:20px;width:fit-content;
}
.tab-btn{
  padding:6px 15px;border:none;background:transparent;
  border-radius:7px;font-family:inherit;font-size:.76rem;font-weight:600;
  color:var(--text-muted);cursor:pointer;
  transition:all var(--dur) var(--ease);white-space:nowrap;
}
.tab-btn:hover{color:var(--text-primary);background:rgba(255,255,255,.6)}
.tab-btn.active{background:var(--bg-surface);color:var(--navy);box-shadow:var(--shadow-xs)}
.tab-pane{display:none}.tab-pane.active{display:block}

/* ── Tables ─────────────────────────────────────────────────── */
.table-wrapper{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-xs)}
.table{width:100%;border-collapse:collapse;font-size:.78rem}
.table th{
  background:var(--gray0);padding:9px 14px;text-align:left;
  font-size:.66rem;font-weight:700;color:var(--text-secondary);
  text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--border);white-space:nowrap;
}
.table td{padding:10px 14px;border-bottom:1px solid var(--gray1);color:var(--text-primary);vertical-align:middle}
.table tbody tr:last-child td{border-bottom:none}
.table tbody tr:hover td{background:var(--gray0)}

/* ── Badges ─────────────────────────────────────────────────── */
.badge{
  display:inline-flex;align-items:center;gap:3px;padding:2px 8px;
  border-radius:var(--radius-full);font-size:.65rem;font-weight:700;
  letter-spacing:.03em;white-space:nowrap;
}
.badge svg{width:10px;height:10px}
.badge-navy  {background:rgba(15,31,61,.08);color:var(--navy)}
.badge-blue  {background:#EFF6FF;color:#1D4ED8}
.badge-teal  {background:rgba(13,124,124,.10);color:var(--teal)}
.badge-gold  {background:rgba(200,148,10,.10);color:#7A5A00}
.badge-green {background:var(--success-bg);color:var(--success)}
.badge-red   {background:var(--danger-bg);color:var(--danger)}
.badge-gray  {background:var(--gray2);color:var(--gray6)}
.badge-orange{background:#FFF7ED;color:#C2410C}

/* ── Alerts ─────────────────────────────────────────────────── */
.alert{
  display:flex;align-items:flex-start;gap:10px;
  padding:11px 15px;border-radius:var(--radius-md);
  font-size:.78rem;line-height:1.55;margin-bottom:14px;border:1px solid transparent;
}
.alert svg{width:15px;height:15px;flex-shrink:0;margin-top:1px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.alert-info   {background:var(--info-bg);  color:#1E40AF;border-color:#BFDBFE}.alert-info svg   {stroke:#2563EB}
.alert-success{background:var(--success-bg);color:#065F46;border-color:#A7F3D0}.alert-success svg{stroke:var(--success)}
.alert-warning{background:var(--warning-bg);color:#92400E;border-color:#FDE68A}.alert-warning svg{stroke:var(--warning)}
.alert-error  {background:var(--danger-bg); color:#991B1B;border-color:#FECACA}.alert-error svg  {stroke:var(--danger)}

/* ── Result Boxes ───────────────────────────────────────────── */
.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}
.result-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px}
.result-label{font-size:.66rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.result-value{font-size:1.30rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em;line-height:1.1}
.result-note{font-size:.66rem;color:var(--text-muted);margin-top:4px}

/* ── Client Selector Bar ────────────────────────────────────── */
.client-selector-bar{
  background:var(--bg-surface);border-bottom:1px solid var(--border);
  padding:9px 28px;display:flex;align-items:center;gap:12px;font-size:.76rem;
}
.client-selector-bar label{margin:0;font-weight:600;color:var(--text-secondary);white-space:nowrap}
.client-selector-bar select{max-width:260px;padding:5px 10px;font-size:.76rem}

/* ── Progress ───────────────────────────────────────────────── */
.progress-bar-wrap{height:5px;background:var(--gray2);border-radius:var(--radius-full);overflow:hidden}
.progress-bar-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--navy-light),var(--teal));transition:width .4s var(--ease)}

/* ── Checklist ──────────────────────────────────────────────── */
.checklist-item{
  display:flex;align-items:flex-start;gap:10px;padding:9px 12px;
  border-radius:var(--radius-sm);cursor:pointer;
  transition:background var(--dur) var(--ease);font-size:.78rem;
}
.checklist-item:hover{background:var(--gray1)}
.checklist-item.checked{background:var(--success-bg);color:var(--success);text-decoration:line-through;opacity:.75}
.checklist-item input[type="checkbox"]{margin-top:2px;accent-color:var(--navy)}

/* ── Modal ──────────────────────────────────────────────────── */
.modal-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(15,31,61,.50);backdrop-filter:blur(4px);
  z-index:900;align-items:center;justify-content:center;padding:20px;
}
.modal-overlay.open{display:flex}
.modal-box{
  background:var(--bg-surface);border-radius:var(--radius-xl);
  width:100%;max-width:480px;max-height:90vh;overflow-y:auto;
  box-shadow:var(--shadow-xl);border:1px solid var(--border);
}
.modal-box.modal-lg{max-width:760px}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px 14px;border-bottom:1px solid var(--border)}
.modal-header h3{font-size:.95rem;font-weight:700}
.modal-body{padding:22px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--border);background:var(--bg-secondary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}

/* ── Deadline List ──────────────────────────────────────────── */
.dl-item{
  display:flex;align-items:center;gap:12px;padding:10px 14px;
  border-radius:var(--radius-md);border:1px solid var(--border);
  background:var(--bg-surface);margin-bottom:7px;
  transition:box-shadow var(--dur) var(--ease);
}
.dl-item:hover{box-shadow:var(--shadow-sm)}
.dl-item.urgent{border-left:3px solid var(--danger)}
.dl-item.soon  {border-left:3px solid var(--warning)}
.dl-item.past  {opacity:.55}
.dl-days-badge{
  min-width:46px;text-align:center;padding:4px 7px;border-radius:6px;
  font-size:.68rem;font-weight:800;background:var(--gray1);color:var(--gray6);flex-shrink:0;
}
.dl-days-badge.urgent{background:var(--danger-bg);color:var(--danger)}
.dl-days-badge.soon  {background:var(--warning-bg);color:var(--warning)}
.dl-days-badge.past  {background:var(--gray2);color:var(--gray5)}
.dl-info{flex:1;min-width:0}
.dl-name{font-size:.78rem;font-weight:600;color:var(--text-primary)}
.dl-date{font-size:.68rem;color:var(--text-muted);margin-top:1px}

/* ── AI Chat ────────────────────────────────────────────────── */
.ai-chat-btn{
  position:fixed;bottom:24px;right:24px;z-index:600;
  width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,var(--navy-mid),var(--navy-light));
  color:#fff;border:2px solid rgba(255,255,255,.14);cursor:pointer;
  box-shadow:0 4px 20px rgba(15,31,61,.35);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.ai-chat-btn svg{width:22px;height:22px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ai-chat-btn:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(15,31,61,.45)}
.ai-badge{
  position:absolute;top:-4px;right:-4px;
  background:var(--gold-light);color:var(--navy);
  font-size:.53rem;font-weight:800;padding:2px 5px;
  border-radius:var(--radius-full);border:2px solid var(--bg-surface);line-height:1.2;
}

.ai-chat-panel{
  position:fixed;bottom:88px;right:20px;z-index:599;
  width:380px;height:540px;background:var(--bg-surface);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:1px solid var(--border);
  display:flex;flex-direction:column;overflow:hidden;
  transform:scale(.88) translateY(16px);opacity:0;pointer-events:none;
  transition:all .22s var(--ease-spring);
}
.ai-chat-panel.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all}
.ai-chat-header,.ai-panel-header{
  background:linear-gradient(135deg,var(--navy),var(--navy-mid));
  color:#fff;padding:14px 16px;
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.ai-chat-header svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2;flex-shrink:0}
.aph-title{font-weight:700;font-size:.83rem}
.aph-sub{font-size:.65rem;opacity:.65;margin-top:1px}
.ai-panel-close{
  background:rgba(255,255,255,.12);border:none;border-radius:6px;
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:#fff;font-size:14px;transition:background var(--dur) var(--ease);
}
.ai-panel-close:hover{background:rgba(255,255,255,.22)}

.ai-chat-messages,.ai-messages{
  flex:1;overflow-y:auto;padding:14px;
  display:flex;flex-direction:column;gap:9px;background:var(--gray0);
}
.ai-chat-messages::-webkit-scrollbar{width:4px}
.ai-chat-messages::-webkit-scrollbar-thumb{background:var(--gray3);border-radius:4px}
.ai-msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:.77rem;line-height:1.55;word-break:break-word}
.ai-msg.ai{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:4px 12px 12px 12px;align-self:flex-start;box-shadow:var(--shadow-xs)}
.ai-msg.user{background:var(--navy);color:#fff;border-radius:12px 4px 12px 12px;align-self:flex-end}
.msg-label{font-size:.60rem;font-weight:700;opacity:.6;margin-bottom:3px;text-transform:uppercase;letter-spacing:.05em}

.ai-chat-input-row,.ai-input-row{
  display:flex;align-items:flex-end;gap:8px;padding:11px 13px;
  border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;
}
.ai-chat-input,.ai-input{
  flex:1;border:1.5px solid var(--border);border-radius:var(--radius-md);
  padding:7px 11px;font-family:inherit;font-size:.77rem;resize:none;
  max-height:90px;background:var(--bg-secondary);color:var(--text-primary);
  transition:border-color var(--dur) var(--ease);line-height:1.5;
}
.ai-chat-input:focus,.ai-input:focus{outline:none;border-color:var(--navy-light)}
.ai-send-btn{
  width:33px;height:33px;border-radius:50%;background:var(--navy);
  border:none;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background var(--dur) var(--ease);
}
.ai-send-btn:hover{background:var(--navy-mid)}
.ai-send-btn svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

.ai-suggestions,.ai-panel-suggestions{
  display:flex;flex-wrap:wrap;gap:5px;padding:8px 13px;
  border-top:1px solid var(--border);background:var(--bg-secondary);
}
.ai-suggestion-chip{
  padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-full);
  background:var(--bg-surface);font-size:.68rem;color:var(--text-secondary);
  cursor:pointer;transition:all var(--dur) var(--ease);font-family:inherit;
}
.ai-suggestion-chip:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

.ai-key-prompt{padding:16px;text-align:center}
.ai-key-prompt p{font-size:.76rem;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}
.ai-key-input{
  width:100%;padding:8px 12px;border:1.5px solid var(--border);
  border-radius:var(--radius-sm);font-size:.77rem;font-family:monospace;
  margin-bottom:10px;background:var(--bg-secondary);
}
.ai-key-input:focus{outline:none;border-color:var(--navy-light)}

/* ── OCR Bar ────────────────────────────────────────────────── */
.ocr-scan-bar{
  background:var(--info-bg);border:1px solid #BFDBFE;border-radius:var(--radius-md);
  padding:13px 17px;display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.ocr-scan-bar svg{width:19px;height:19px;stroke:#2563EB;flex-shrink:0;fill:none;stroke-width:2}

/* ── Login ──────────────────────────────────────────────────── */
.login-page{
  min-height:100vh;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 55%,#0D5C6E 100%);
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.login-card{
  background:var(--bg-surface);border-radius:var(--radius-xl);
  padding:36px;width:100%;max-width:420px;box-shadow:var(--shadow-xl);
}
.login-logo{text-align:center;margin-bottom:26px}
.login-logo-icon{
  width:54px;height:54px;background:linear-gradient(135deg,var(--gold),var(--gold-light));
  border-radius:15px;display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:12px;box-shadow:0 4px 16px rgba(200,148,10,.35);
}
.login-logo-icon svg{width:26px;height:26px;stroke:var(--navy);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.login-logo h1{font-size:1.18rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em}
.login-logo h1 span{color:var(--navy-light)}
.login-logo p{font-size:.72rem;color:var(--text-muted);margin-top:3px}

/* ── Disclaimer ─────────────────────────────────────────────── */
.disclaimer-footer{
  margin-top:28px;padding:14px 18px;background:var(--gray0);
  border:1px solid var(--border);border-radius:var(--radius-md);
  font-size:.67rem;color:var(--text-muted);line-height:1.6;
}
.disclaimer-footer strong{color:var(--gray6)}

/* ── Utilities ──────────────────────────────────────────────── */
.text-muted   {color:var(--text-muted)!important}
.text-success {color:var(--success)!important}
.text-danger  {color:var(--danger)!important}
.text-warning {color:var(--warning)!important}
.text-center  {text-align:center}
.text-right   {text-align:right}
.font-mono    {font-family:'Courier New',monospace}
.flex         {display:flex}
.items-center {align-items:center}
.justify-between{justify-content:space-between}
.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
.w-full{width:100%}
.hidden{display:none!important}

/* ── Scrollbar ──────────────────────────────────────────────── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray3);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--gray4)}


/* -- Print ----------------------------------------------------------------- */
@media print{
  .sidebar,.topbar,.tabs,.tab-btn,.btn,.btn-sm,.btn-lg,
  .no-print,.ai-chat-btn,.ai-chat-panel,.ocr-scan-bar,
  .client-selector-bar,.topbar-right{display:none!important}
  .main-content{margin-left:0!important}
  .page-content{padding:0!important}
  .card{box-shadow:none!important;border:1px solid #ddd!important}
  body{background:#fff!important}
}
