:root{--bg:#0b0f17;--panel:#111827;--panel2:#182231;--text:#f5f7fb;--muted:#91a0b5;--line:#263244;--gold:#dfa404;--green:#36d399;--red:#fb7185;--blue:#60a5fa;--purple:#a78bfa;--cyan:#22d3ee}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.panel{background:linear-gradient(180deg,#131c29,#0f1723);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px #0003}.login-card{width:min(440px,100%);padding:34px}.brand-mark{width:48px;height:48px;border-radius:12px;background:var(--gold);color:#161616;font-weight:900;display:grid;place-items:center;font-size:20px}.login-card input{width:100%;margin:16px 0}.login-card small{display:block;margin-top:14px;color:var(--muted)}header{min-height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0b0f17ee;backdrop-filter:blur(12px);z-index:5}.brandline{justify-self:start}.privacy{margin-left:10px;color:var(--green);font-size:12px;border:1px solid #1c5f4b;padding:3px 7px;border-radius:999px}nav{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}header>#logoutBtn{justify-self:end}button{border:0;border-radius:9px;background:var(--gold);color:#111;padding:9px 13px;font-weight:700;cursor:pointer}button:hover{filter:brightness(1.06)}button.ghost,nav button{background:transparent;color:var(--muted)}nav button.active{background:#1b2635;color:#fff}main{max-width:1440px;margin:auto;padding:24px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}.section-head h2,h2{font-size:25px;margin:0 0 3px}.section-head p{margin:0;color:var(--muted)}.head-actions,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar label{display:flex;align-items:center;gap:7px;color:var(--muted)}.toolbar select{width:auto;min-width:110px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.cards.six{grid-template-columns:repeat(6,1fr)}.card{padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.card .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.card .value{font-size:25px;font-weight:800;margin-top:5px}.card .sub{font-size:12px;color:var(--muted);margin-top:4px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.muted{color:var(--muted)}.trade-form{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:16px;margin-bottom:16px}.trade-form label,.filters label,.settings-grid label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.trade-form .wide{grid-column:span 3}.trade-form small{color:var(--gold)}input,select,textarea{width:100%;background:#0b111b;border:1px solid #2a384c;color:#fff;border-radius:9px;padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold)}.form-actions{display:flex;gap:8px;align-items:end}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 2fr;gap:10px;align-items:end;padding:12px;margin-bottom:12px}.mini-summary{align-self:center;text-align:right;font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.future-row{background:#10233a}.badge{padding:3px 7px;border-radius:999px;font-size:11px;font-weight:800}.badge.futures{background:#15365e;color:#91c8ff}.badge.stock{background:#15392f;color:#90e5c5}.badge.options{background:#3a2753;color:#d3b5ff}.badge.crypto{background:#3f3213;color:#ffd86f}.badge.manual{background:#2a3342;color:#c5cfdb}.badge.sync{background:#173a34;color:#91e5d1}.badge.import{background:#413213;color:#f8d874}.split{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chart-panel{padding:18px;min-height:300px}.chart-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.chart-title h2{font-size:18px}.svg-chart{width:100%;height:230px;display:block;overflow:visible}.axis{stroke:#344154;stroke-width:1}.line{fill:none;stroke:var(--cyan);stroke-width:3}.area{fill:url(#areaGradient);opacity:.24}.dot{fill:var(--cyan)}.bar-month{fill:#50647e}.bar-month.pos{fill:#1f8b6c}.bar-month.neg{fill:#a33a4e}.chart-label{fill:var(--muted);font-size:10px}.calendar-head{display:flex;justify-content:space-between;align-items:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dow,.day{padding:9px;border-radius:9px}.dow{text-align:center;color:var(--muted);font-size:11px}.day{min-height:96px;background:var(--panel);border:1px solid var(--line);cursor:pointer}.day:hover{border-color:#53677f}.day.empty{opacity:.2;cursor:default}.day .num{color:var(--muted)}.day .pnl{font-weight:800;margin-top:13px}.day .trades{font-size:11px;color:var(--muted);margin-top:5px}.day.win{border-color:#235e4c;background:#10261f}.day.loss{border-color:#6d2834;background:#28131a}.report-table{display:grid;grid-template-columns:minmax(150px,1fr) 90px 100px 120px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}.report-table>div{background:var(--panel);padding:10px}.bar-row{display:grid;grid-template-columns:150px 1fr 110px;gap:10px;align-items:center;margin:12px 0}.bar{height:8px;border-radius:99px;background:#1b2735;overflow:hidden}.bar i{display:block;height:100%;background:var(--gold);border-radius:99px}.connector{display:grid;grid-template-columns:1.1fr 1.7fr .8fr;gap:18px;padding:18px;border-bottom:1px solid var(--line);align-items:center}.connector:last-child{border-bottom:0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-box{padding:18px}.settings-box textarea{min-height:220px;resize:vertical}.hint{font-size:12px;color:var(--muted);margin-top:8px}.modal{position:fixed;inset:0;background:#000a;z-index:20;display:grid;place-items:center;padding:20px}.modal-card{width:min(900px,100%);max-height:85vh;overflow:auto;padding:18px}.modal-head{display:flex;justify-content:space-between;align-items:start}.empty-state{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:1050px){header{grid-template-columns:1fr auto}.brandline{grid-column:1}nav{grid-column:1/-1;grid-row:2}header>#logoutBtn{grid-column:2;grid-row:1}.cards,.cards.six{grid-template-columns:repeat(2,1fr)}.trade-form{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:repeat(2,1fr)}.mini-summary{text-align:left}.split,.grid-2{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}}
@media(max-width:640px){main{padding:14px}.cards,.cards.six{grid-template-columns:1fr}.trade-form{grid-template-columns:1fr}.trade-form .wide{grid-column:auto}.filters{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.bar-row{grid-template-columns:100px 1fr 90px}.connector{grid-template-columns:1fr}.cal-grid{gap:3px}.day{min-height:78px;padding:6px}.day .pnl{font-size:12px}header{padding:8px}.privacy{display:none}}
.tiny{font-size:10px;color:var(--muted);margin-top:2px}.dimmed{opacity:.45}.checkline{flex-direction:row!important;align-items:center!important;gap:8px!important;padding-top:8px}.checkline input{width:auto}.status-good,.status-warn{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:800;font-size:12px}.status-good{background:#15392f;color:#90e5c5}.status-warn{background:#413213;color:#f8d874}

.review{color:#f8d874;font-weight:800}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.detail-grid>div{padding:10px;border:1px solid var(--line);border-radius:9px;background:#0d1520}.detail-grid b{font-size:11px;color:var(--muted);text-transform:uppercase}.rebuild-tt{color:#f8d874!important}
@media(max-width:640px){.detail-grid{grid-template-columns:1fr 1fr}}

code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;background:#f3f5f8;padding:2px 5px;border-radius:5px}.fee-strip{margin:12px 0;padding:10px 12px;background:#f7f8fa;border:1px solid #e2e7ee;border-radius:10px;font-size:13px}
.audit-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:14px}.audit-toolbar label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.audit-toolbar select,.audit-toolbar input{min-width:150px}.audit-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.audit-status-grid>div{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px;background:#0d1520}.audit-status-grid>div>span:last-child{grid-column:1/-1;color:var(--muted);font-size:12px}.audit-pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}.audit-good{background:#15392f;color:#90e5c5}.audit-warn{background:#413213;color:#f8d874}.audit-bad{background:#4a1f2a;color:#ff9cab}
code{background:#0b111b!important;color:#dbeafe!important;border:1px solid #2a384c!important}
@media(max-width:900px){.audit-status-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.audit-status-grid{grid-template-columns:1fr}}

/* v1.7.1 interactive button states */
button{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .08s ease,filter .16s ease}
button:hover:not(:disabled){filter:none;transform:translateY(-1px);box-shadow:0 0 0 1px rgba(223,164,4,.28),0 6px 18px rgba(0,0,0,.18)}
button:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:0 0 0 2px rgba(223,164,4,.26)}
button.ghost:hover:not(:disabled),nav button:hover:not(:disabled){background:#172131;color:#fff;border-color:#42536a}
.report-presets{gap:10px}
.report-preset{border:1px solid transparent;position:relative;min-height:38px}
.report-preset:hover:not(.active){background:#172131!important;color:#fff!important;border-color:#42536a;box-shadow:0 0 0 1px rgba(96,165,250,.08)}
.report-preset.active,.report-preset[aria-pressed="true"]{background:var(--gold)!important;color:#111!important;border-color:#f1bd28!important;box-shadow:0 0 0 2px rgba(223,164,4,.18),0 6px 20px rgba(223,164,4,.15)}
.report-preset.active::after{content:"✓";margin-left:7px;font-weight:900}
.report-preset.active:hover{background:#edb20a!important;color:#111!important}
.selected-period{display:inline-block;margin-left:2px;padding:2px 8px;border-radius:999px;background:rgba(223,164,4,.14);border:1px solid rgba(223,164,4,.4);color:#f2bd31;font-weight:800;font-size:12px}
.action-state:hover:not(:disabled){border-color:var(--gold)}
.action-state:active:not(:disabled){background:#c99100;color:#111}
button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.audit-dashboard{width:100%;margin:14px 0;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:16px 18px;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:inherit;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.audit-dashboard:hover{transform:translateY(-1px);border-color:#d8a600;box-shadow:0 0 0 1px rgba(216,166,0,.15)}
.audit-dashboard.audit-ok{border-color:rgba(52,211,153,.45);background:linear-gradient(90deg,rgba(52,211,153,.08),var(--panel) 55%)}
.audit-dashboard.audit-pending{border-color:rgba(245,158,11,.35)}
.audit-dashboard .eyebrow{font-size:11px;letter-spacing:.09em;color:var(--muted)}
.audit-dashboard h2{margin:4px 0 2px}.audit-arrow{font-size:24px;color:#d8a600}

/* v1.8.1 broker import interaction states */
.import-label{cursor:pointer;border:1px solid #2a384c;border-radius:9px;padding:8px 11px;color:var(--muted);transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .08s ease;user-select:none}
.import-label:hover{background:#172131;color:#fff;border-color:var(--gold);transform:translateY(-1px);box-shadow:0 0 0 1px rgba(223,164,4,.18),0 6px 18px rgba(0,0,0,.18)}
.import-label:active{transform:translateY(0) scale(.98);background:#c99100;color:#111;border-color:#f1bd28}
.import-label.is-loading{pointer-events:none;opacity:.78;border-color:#60a5fa;color:#bfdbfe;background:#10213a}
.import-label.is-success{border-color:#34d399;color:#90e5c5;background:#123026;box-shadow:0 0 0 2px rgba(52,211,153,.12)}
.import-label.is-error{border-color:#fb7185;color:#fda4af;background:#35151d}

/* v2.0 Balance view, calendar week totals, misc */
.toolbar-gap{flex:1}
.balance-table tbody tr.clickable{cursor:pointer}
.balance-table tbody tr.clickable:hover td{background:#152132}
.balance-table tfoot td{border-top:2px solid var(--line);font-weight:700;background:#0f1824}
.period-bar{cursor:pointer}
.period-bar:hover{filter:brightness(1.35)}
.svg-chart.small{height:150px}
.cal-grid.with-week{grid-template-columns:repeat(7,minmax(0,1fr)) minmax(92px,.9fr)}
.day.week-total{background:#0e1622;border-style:dashed}
.day.week-total .num{text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.day.week-total.win{background:#0f2a22}
.day.week-total.loss{background:#2a121a}
.day.today{outline:2px solid var(--gold);outline-offset:-2px}
.generic-import{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:center}
.generic-import .hint{grid-column:1/-1;margin:0}
.generic-import a,.settings-box a:not(.button-link){color:var(--gold)}
.button-link{display:inline-block;background:var(--gold);color:#111;border-radius:9px;padding:9px 13px;font-weight:700;text-decoration:none}
.button-link:hover{filter:brightness(1.06)}
.empty-state{padding:24px;text-align:center;color:var(--muted)}
@media(max-width:900px){
  .generic-import{grid-template-columns:1fr}
  .cal-grid.with-week{grid-template-columns:repeat(7,minmax(0,1fr))}
  .cal-grid.with-week .dow:nth-child(8){display:none}
  .day.week-total{grid-column:1/-1;min-height:auto;display:flex;gap:14px;align-items:center}
  .day.week-total .pnl{margin-top:0}
  .day{min-height:70px;padding:6px}
  .day .pnl{font-size:11px;margin-top:6px}
}
@media(max-width:640px){
  .cal-grid{gap:3px}
  .day{padding:4px;min-height:62px}
  .day .pnl{font-size:9px;letter-spacing:-.03em;overflow:hidden;text-overflow:clip;white-space:nowrap}
  .day .trades{font-size:9px}
}

/* v2.1 PDF import preview */
.modal-card h3{font-size:15px;margin:16px 0 6px}
.pdf-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.pdf-map label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.pdf-map label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;font-weight:700}
.pdf-map select{padding:7px 8px;font-size:12px}
.pdf-preview{max-height:360px;border:1px solid var(--line);border-radius:10px}
.pdf-preview th{position:sticky;top:0;background:var(--panel)}
.pdf-actions{margin:14px 0 6px}
button:disabled{opacity:.45;cursor:not-allowed}
.pdf-lines{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.pdf-lines summary{cursor:pointer;color:var(--gold);font-weight:700}
.pdf-line-list{max-height:260px;overflow:auto;margin-top:8px;font-family:ui-monospace,Menlo,monospace;font-size:11px}
.pdf-line{padding:5px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdf-line:hover{background:#172131}
.pdf-line.active{background:rgba(223,164,4,.18);outline:1px solid rgba(223,164,4,.5)}

/* v2.2 auto-sync */
.autosync-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;margin-bottom:14px}
.autosync-banner.ok{border-color:rgba(52,211,153,.4);background:linear-gradient(90deg,rgba(52,211,153,.07),var(--panel) 60%)}
.autosync-banner.warn{border-color:rgba(251,113,133,.5);background:linear-gradient(90deg,rgba(251,113,133,.08),var(--panel) 60%)}
.autosync-banner.off{border-style:dashed}
.autosync-banner code{color:var(--gold)}
.sync-error{color:var(--red);font-size:12px;margin-top:4px;white-space:normal}
.sync-status{margin-left:10px;font-size:12px;white-space:nowrap}
@media(max-width:1150px){.sync-status{display:none}}
@media(max-width:640px){.autosync-banner{flex-direction:column;align-items:flex-start}.sync-status{display:none}}

/* v1.10.2 single-click interaction hardening */
button,.import-trigger,label,input,select{touch-action:manipulation}
button,.import-trigger{pointer-events:auto;user-select:none;-webkit-user-select:none}
button:hover:not(:disabled),button:active:not(:disabled),.import-trigger:hover,.import-trigger:active{transform:none!important}
.import-trigger{display:inline-block!important;position:relative;z-index:1;border:1px solid #2a384c!important;padding:8px 11px!important;border-radius:9px!important;cursor:pointer!important;color:var(--muted)!important;background:transparent!important}
.import-trigger:hover:not(:disabled){background:#172131!important;color:#fff!important;border-color:var(--gold)!important;box-shadow:0 0 0 1px rgba(223,164,4,.18)!important}
.import-trigger:active:not(:disabled){background:#c99100!important;color:#111!important;border-color:#f1bd28!important;box-shadow:0 0 0 2px rgba(223,164,4,.20)!important}
.import-trigger:focus-visible{outline:2px solid var(--gold)!important;outline-offset:2px}
.import-trigger.is-loading{opacity:.78;color:#bfdbfe!important;border-color:#60a5fa!important;background:#10213a!important}
.import-trigger.is-success{color:#90e5c5!important;border-color:#34d399!important;background:#123026!important}
.import-trigger.is-error{color:#fda4af!important;border-color:#fb7185!important;background:#35151d!important}

/* v1.13 universal importer */
.universal-import-panel{padding:18px;margin-bottom:14px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border-color:rgba(223,164,4,.32);background:linear-gradient(90deg,rgba(223,164,4,.06),var(--panel) 50%)}
.universal-import-panel h2{margin-bottom:5px}
@media(max-width:700px){.universal-import-panel{grid-template-columns:1fr}.universal-import-panel button{width:100%}}

/* v2.3 merged brokers tab */
.connector-actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.universal-import-panel .toolbar{justify-content:flex-end}
.universal-import-panel a{color:var(--gold)}
td.wrap{white-space:normal;min-width:220px;max-width:420px}
.status-good{color:var(--green);font-weight:700}.status-warn{color:#f59e0b;font-weight:700}

/* v2.4 Daily P&L */
.daily-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:16px;margin-bottom:6px}
.daily-form label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;min-width:140px}
.daily-form label.grow{flex:1;min-width:200px}
.daily-sign{display:flex;gap:6px}
.sign-btn{border:1px solid #2a384c!important;min-width:92px}
.sign-btn.gain-on{background:#123026!important;color:#90e5c5!important;border-color:#34d399!important}
.sign-btn.loss-on{background:#35151d!important;color:#fda4af!important;border-color:#fb7185!important}
#daily .calendar-head{margin-top:8px}
@media(max-width:640px){.daily-form label{min-width:100%}.daily-sign{width:100%}.sign-btn{flex:1}}
