/* Circuit: the shared Agreement Tracker layout with light and dark palettes. */
:root {
  color-scheme:light;
  --brand:#26334e;--brand-light:#364765;--accent:#087f87;--accent-hover:#076b72;
  --bg:#f2f5fa;--surface:#fff;--surface2:#edf2f8;--border:#dce3ee;--border-strong:#becbdc;
  --text:#202841;--text-muted:#586880;--text-light:#63728a;--purple:#7960a5;
  --font:system-ui,-apple-system,sans-serif;--radius:4px;
  --shadow:0 4px 16px #273d600a;--shadow-lg:0 16px 50px #182b4820;
  --button-text:#fff;--warning:#81541a;--warning-bg:#fff3dd;
}
:root[data-circuit-theme=dark] {
  color-scheme:dark;
  --brand:#e5ecff;--brand-light:#c2d1ee;--accent:#70d9da;--accent-hover:#92e5e5;
  --bg:#0e1425;--surface:#151e33;--surface2:#1d2b44;--border:#2b3a56;--border-strong:#4c5e7b;
  --text:#edf2ff;--text-muted:#abb9d0;--text-light:#a4b2c9;--purple:#b9a1e4;
  --signed:#8ee0b8;--signed-bg:#173b32;--pending:#f0d294;--pending-bg:#403626;
  --paid:#b4cbff;--paid-bg:#253754;--expired:#bcc5d6;--expired-bg:#2b3345;
  --attention:#ffbbcc;--attention-bg:#48283e;--button-text:#10212c;
  --warning:#f0ca8a;--warning-bg:#403326;--shadow:0 6px 24px #0001;--shadow-lg:0 16px 50px #0005;
}
body{font-size:14px;line-height:1.5}
button,input,select,textarea{font-family:var(--font-ui)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
header{background:var(--surface);color:var(--text);border-top:2px solid var(--purple);border-bottom:1px solid var(--border);box-shadow:none;min-height:70px;height:auto;padding:12px 28px;gap:18px;flex-shrink:0}
.header-title,.header-divider,.user-pill,.sign-out-btn{color:var(--text-muted)}
.header-title{font-size:13px;letter-spacing:.03em}
.user-pill{background:var(--surface2)}
.user-avatar{background:var(--accent);color:var(--button-text)}
#app>div[style*="text-align: center"]{background:var(--warning-bg)!important;color:var(--warning)!important;border-bottom:1px solid var(--border);font-size:12px}
.sign-out-btn{border-color:var(--border-strong);min-height:36px}
.sign-out-btn:hover{color:var(--text);border-color:var(--accent)}
.plan-badge{color:var(--purple);border-color:var(--purple);border-radius:3px;font-size:11px}
.auth-card>.appearance-control{margin:0 0 16px auto}
.appearance-control.appearance-compact{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface2);color:var(--text-muted);cursor:pointer}
.appearance-compact>span{display:flex;pointer-events:none}
.appearance-compact:hover{border-color:var(--accent);color:var(--text)}
.appearance-compact:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.auth-card{border-radius:6px;border-top:2px solid var(--purple)}
.auth-logo{object-fit:contain;background:#fff;border-radius:4px}
.auth-btn,.btn-primary,.btn-accent,.add-btn,.split-btn-main{background:var(--accent);border-color:var(--accent);color:var(--button-text)}
.auth-btn:hover,.btn-primary:hover,.btn-accent:hover{background:var(--accent-hover)}
.tab-nav{padding:0 28px;background:var(--surface);gap:8px;overflow-x:auto;flex-shrink:0}
.tab-nav{scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tab-nav::-webkit-scrollbar{display:none}
.tab-btn{font-size:13px;min-height:48px;white-space:nowrap}
.tab-btn.tab-active{color:var(--accent);border-bottom-color:var(--accent)}
.circuit-intro{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 32px 20px;flex-shrink:0}
.circuit-intro span{color:var(--purple);font-size:11px;letter-spacing:1.2px;font-weight:650}
.circuit-intro h1{font-size:28px;letter-spacing:-.8px;line-height:1.2;margin:7px 0}
.circuit-intro p{font-size:13px;color:var(--text-muted)}
.circuit-intro svg{width:240px;height:85px;color:var(--accent);opacity:.18}
.summary-strip{margin:0 32px 18px;padding:0;background:transparent;border:0;gap:14px;align-items:stretch;flex-wrap:wrap}
.stat{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--border-strong);border-radius:4px;padding:16px 22px;flex:1;min-width:130px}
.stat:nth-of-type(3){border-top-color:var(--purple)}
.stat:last-of-type{border-top-color:var(--accent)}
.stat-val{font-size:27px;letter-spacing:-.5px;font-weight:650;font-variant-numeric:tabular-nums}
.stat-label{font-size:12px;letter-spacing:.03em}
.stat-divider{display:none}
.toolbar{padding:14px 32px;gap:10px;background:var(--surface);border-block:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}
.search-input,.filter-select{min-height:39px;font-size:13px;border-radius:4px}
.table-wrap{padding:20px 32px}
table{border-radius:4px;border:1px solid var(--border);box-shadow:var(--shadow)}
th{background:var(--surface2);color:var(--text-muted);font-size:12px;letter-spacing:.025em;padding:13px 16px}
thead tr{background:var(--surface2);color:var(--text-muted)}
th:hover,th.sorted{color:var(--text);background:var(--surface2)}
th.sorted{box-shadow:inset 0 -2px var(--accent);font-weight:650}
th .sort-icon{color:inherit;opacity:.8}
th.sorted .sort-icon{color:var(--accent);opacity:1}
tbody tr:hover,tbody tr.expanded{background:var(--surface2)}
td{padding:16px}
.vendor-name,.product-name,.amount-val{font-size:14px}
.vendor-doc,.product-detail,.amount-sub,.term-label{font-size:12px}
.badge,.renewal-badge{border-radius:3px;font-size:11px}
.detail-row td{background:var(--surface2)}
.detail-card,.notes-box,.modal,.analytics-card,.savings-card,.pdf-processing-card,.split-btn-menu{border-radius:4px;background:var(--surface);border-color:var(--border)}
.modal-header{border-top:2px solid var(--purple)}
.modal-title{font-size:18px;letter-spacing:-.4px}
.form-label{font-size:12px;color:var(--text-muted)}
.circuit-check{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;font-size:14px;line-height:1.5;color:var(--text);cursor:pointer}
.circuit-check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}
#spend-choice{padding:16px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;margin:8px 0 20px}
#spend-choice p{margin:8px 0 0 28px;color:var(--text-muted);font-size:12px;line-height:1.6}
.form-row.circuit-notice{grid-template-columns:1fr;gap:0;margin-bottom:16px}
.circuit-notice .form-group:first-child{max-width:240px}
#pipeline-outer article,#pipeline-container article,#tab-pipeline .pipeline-container article{background:var(--surface)!important;color:var(--text);border:1px solid var(--border)!important;border-left:3px solid var(--purple)!important;border-radius:4px!important;padding:18px 20px!important}
#pipeline-outer article p,#pipeline-container article p,#tab-pipeline .pipeline-container article p{color:var(--text-muted);margin-top:6px;font-size:13px}
#intake-panel{background:var(--surface)!important;color:var(--text);border:1px solid var(--border);border-radius:4px!important}
.form-input,.form-select,.form-textarea{background:var(--surface2);color:var(--text);font-size:14px;border-radius:4px}
.btn{border-radius:4px;min-height:36px}
.expiry-soon,.sv-hero-val.warn{color:var(--warning)}
.flag-box,.savings-empty,.ai-config-warn,.expiring-badge{background:var(--warning-bg);color:var(--warning);border-color:var(--warning)}
:root[data-circuit-theme=dark] .expiry-urgent{color:#ffb4b4}
:root[data-circuit-theme=dark] .savings-headline strong,:root[data-circuit-theme=dark] .sv-delta-pos,:root[data-circuit-theme=dark] .sv-hero-val.good{color:#8ee0b8}
:root[data-circuit-theme=dark] .sv-delta-neg{color:#ffb4b4}
:root[data-circuit-theme=dark] .field-extracted{background:#173b32!important;color:#d6f4e5!important}
:root[data-circuit-theme=dark] [style*="background:#fff"],:root[data-circuit-theme=dark] [style*="background: #fff"]{background:var(--surface2)!important;color:var(--text)!important}
:root[data-circuit-theme=dark] .notes-content{background:var(--surface2);color:var(--text)}
@media(max-width:1050px){.circuit-intro svg{display:none}.tab-nav{padding-inline:12px}.tab-btn{padding-inline:10px;font-size:12px}}
@media(max-width:850px){
  header{padding:10px 16px;gap:10px}.header-left{min-width:0}.header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right{gap:8px}
  .circuit-intro{padding:18px 16px}.circuit-intro h1{font-size:24px}
  .summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 16px 14px;gap:8px}.stat{padding:12px;min-width:0}.expiring-badge{grid-column:1/-1;margin-left:0;text-align:center}
  .toolbar{padding:12px 16px}.search-wrap{flex:1 0 100%;max-width:none}.filter-select{flex:1 1 145px;min-width:0}.toolbar-count{flex:1 0 100%;text-align:right}
  .table-wrap{padding:14px 16px}#contracts-table{min-width:760px}.tab-nav{padding:0 16px}
  .detail-grid,.form-row,.analytics-grid{grid-template-columns:1fr}.appearance-control{font-size:11px}
  .modal{width:calc(100% - 24px);max-height:94vh;padding:18px}.modal-footer{position:sticky;bottom:-18px;margin-inline:-18px;padding:12px 18px 18px;background:var(--surface);z-index:2;flex-wrap:wrap}.modal-footer .btn{flex:1 1 auto}
  .analytics-outer,.pipeline-outer,.savings-outer,.plans-outer{padding:16px}
}
@media(max-width:560px){.user-pill #user-name,.header-title,.header-divider{display:none}.user-pill{padding:5px}.header-mark img{max-width:54px}.sign-out-btn{padding-inline:9px;white-space:nowrap}.auth-card{padding:24px 18px}.auth-logo{height:auto}.stat-val{font-size:23px}.stat-label{font-size:10px}.toolbar>.archive-view-btn,.toolbar>.export-btn,.toolbar>.alert-btn,.split-btn-wrap{flex:1 1 calc(50% - 8px);min-width:0;justify-content:center}.split-btn-main{width:100%;min-width:0;padding-inline:8px;justify-content:center;font-size:12px}.toolbar-count{padding-right:2px}}
@media(max-height:700px){.circuit-intro{padding-block:12px}.circuit-intro svg{height:55px}.stat{padding-block:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{:root[data-circuit-theme]{color-scheme:light;--brand:#26334e;--bg:#fff;--surface:#fff;--surface2:#edf2f8;--text:#202841;--text-muted:#586880;--text-light:#63728a}.appearance-control,.circuit-intro{display:none}}
