:root{--color-background:#10151f;--color-background-glow:#223b4e;--color-surface:#161f2c;--color-surface-muted:#183c3d;--color-text:#edf2fb;--color-text-muted:#8fa2b7;--color-text-subtle:#aebdcd;--color-border:#2a3747;--color-primary:#6ec9ad;--color-primary-strong:#8bdcc2;--color-danger:#ff8a8a;--color-danger-surface:#3b2028;--color-warning:#f0c674;--trade-action-clearance:5.5rem;color:var(--color-text);background:var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{scroll-padding-top:var(--trade-action-clearance)}*{box-sizing:border-box}body{background:radial-gradient(circle at 85% -10%, var(--color-background-glow) 0, transparent 38rem), var(--color-background);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}input,select{border:1px solid var(--color-border);width:100%;color:var(--color-text);background:#101824;border-radius:.55rem;padding:.65rem .75rem}input:focus,select:focus{border-color:var(--color-primary);outline:2px solid color-mix(in srgb, var(--color-primary) 25%, transparent)}:where(button,input,select,a,[tabindex]):focus-visible{outline:3px solid var(--color-primary-strong);outline-offset:3px}input[aria-invalid=true]{border-color:var(--color-danger)}.app-shell{width:min(100% - 2rem,1180px);margin:0 auto;padding:clamp(1.5rem,6vw,4.5rem) 0}.auth-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 96%, transparent);border-radius:1rem;width:min(100%,30rem);padding:clamp(1.4rem,5vw,2.25rem);box-shadow:0 1rem 4rem #0005}.auth-card h1{margin-top:.15rem}.auth-intro{color:var(--color-text-subtle);margin:.8rem 0 1.3rem;line-height:1.6}.auth-form{gap:1rem;display:grid}.auth-form label{color:var(--color-text-subtle);gap:.4rem;font-size:.82rem;font-weight:650;display:grid}.auth-form small{color:var(--color-text-muted);font-weight:500}.auth-form .button{width:100%;margin-top:.2rem}.auth-links{flex-wrap:wrap;gap:.8rem;margin-top:1.2rem;display:flex}.auth-links button{cursor:pointer;color:var(--color-primary-strong);background:0 0;border:0;padding:0;font-size:.84rem}.auth-links button:disabled{cursor:not-allowed;color:var(--color-text-muted)}.auth-alert{margin:0 0 1rem}.app-header{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2rem;display:flex}.connection-panel{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, transparent);border-radius:.85rem;margin:-.65rem 0 1.35rem;padding:.7rem .8rem}.connection-summary{align-items:center;gap:.65rem;display:flex}.connection-summary>p{color:var(--color-text-subtle);flex:1;margin:0;font-size:.84rem}.connection-dot{background:var(--color-warning);width:.62rem;height:.62rem;box-shadow:0 0 0 .22rem color-mix(in srgb, var(--color-warning) 12%, transparent);border-radius:50%}.connection-panel.is-connected .connection-dot{background:var(--color-primary);box-shadow:0 0 0 .22rem color-mix(in srgb, var(--color-primary) 12%, transparent)}.connection-actions{flex-wrap:wrap;gap:.45rem;display:flex}.button.compact{padding:.42rem .7rem;font-size:.78rem}.connection-settings{border-top:1px solid var(--color-border);grid-template-columns:minmax(13rem,1.6fr) minmax(9rem,1fr) minmax(7rem,.55fr) auto;align-items:end;gap:.65rem;margin-top:.75rem;padding-top:.75rem;display:grid}.connection-settings label{color:var(--color-text-subtle);gap:.35rem;font-size:.76rem;font-weight:650;display:grid}.connection-settings input{padding:.48rem .6rem}.settings-explanation,.connection-settings-error,.connection-settings-notice{grid-column:1/-1;margin:0;font-size:.76rem}.settings-explanation{color:var(--color-text-muted)}.connection-settings-error{color:var(--color-danger)}.connection-settings-notice{color:var(--color-primary)}.market-controls{border:0;min-width:0;margin:.75rem 0 0;padding:0}.eyebrow,.privacy-note{color:var(--color-text-muted);margin:0;font-size:.875rem}.eyebrow{color:var(--color-primary);letter-spacing:.08em;margin-bottom:.4rem}h1,h2{letter-spacing:-.03em;margin:0}h1{font-size:clamp(1.8rem,5vw,2.5rem)}.tab-list{border-bottom:1px solid var(--color-border);gap:.5rem;margin-bottom:1.25rem;display:flex}.tab{cursor:pointer;color:var(--color-text-muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:.8rem 1rem}.tab:hover{color:var(--color-text)}.tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.tab.is-active{border-bottom-color:var(--color-primary);color:var(--color-text)}.error-banner{border:1px solid color-mix(in srgb, var(--color-danger) 50%, transparent);color:#ffd6d6;background:var(--color-danger-surface);border-radius:.75rem;margin:-.75rem 0 1.25rem;padding:.8rem 1rem}.success-banner{border:1px solid color-mix(in srgb, var(--color-primary) 52%, transparent);color:#c9ffed;background:color-mix(in srgb, var(--color-surface-muted) 74%, #0a1d19);border-radius:.75rem;margin:-.75rem 0 1.25rem;padding:.8rem 1rem}.button{cursor:pointer;border:1px solid #0000;border-radius:.65rem;padding:.65rem 1rem;font-weight:700}.button.primary{color:#09231d;background:var(--color-primary)}.button.primary:hover{background:var(--color-primary-strong)}.button.secondary{border-color:var(--color-border);background:0 0}.section-kicker{color:var(--color-primary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .3rem;font-size:.75rem;font-weight:700}.records-heading,.form-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem;display:flex}.records-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.dialog-backdrop{z-index:30;background:#050810c9;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.import-dialog{border:1px solid var(--color-border);background:var(--color-surface);border-radius:1rem;width:min(100%,36rem);max-height:calc(100vh - 2rem);padding:1.4rem;overflow:auto;box-shadow:0 1.4rem 5rem #0009}.dialog-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.dialog-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:0;font-size:1.6rem}.dialog-note{color:var(--color-text-subtle);font-size:.86rem;line-height:1.65}.file-picker{color:var(--color-text-subtle);gap:.45rem;font-size:.82rem;font-weight:650;display:grid}.import-preview{background:#111a26;border-radius:.7rem;grid-template-columns:1fr repeat(3,auto);gap:.8rem;margin-top:1rem;padding:.85rem;display:grid}.import-preview span{color:var(--color-text-subtle);font-size:.82rem}.import-issues{max-height:8rem;color:var(--color-danger);margin:.8rem 0 0;padding-left:1.2rem;font-size:.78rem;overflow:auto}.import-error{color:var(--color-danger)}.import-success{color:var(--color-primary)}.button:disabled{cursor:not-allowed;opacity:.5}.form-heading>p{max-width:24rem;color:var(--color-text-muted);text-align:right;margin:0;font-size:.85rem}.trade-form,.records-panel{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 94%, transparent);border-radius:1rem;padding:clamp(1rem,3vw,1.5rem)}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.form-field,.filter-bar label{color:var(--color-text-subtle);gap:.4rem;font-size:.82rem;font-weight:650;display:grid}.field-error{color:var(--color-danger);font-size:.75rem;font-weight:500}.expiry-selector{min-width:0}.expiry-selector-status{color:var(--color-text-muted);margin:0;font-size:.82rem}.expiry-calendar-controls{grid-template-columns:minmax(2.75rem,auto) 1fr minmax(2.75rem,auto);align-items:center;gap:.45rem;display:grid}.expiry-calendar-controls h3{color:var(--color-text);text-align:center;margin:0;font-size:.95rem}.expiry-month-button{cursor:pointer;border:1px solid var(--color-border);min-width:2.75rem;min-height:2.75rem;color:var(--color-text);background:#101824;border-radius:.55rem;font-size:1.35rem;line-height:1}.expiry-calendar{border:1px solid var(--color-border);background:#101824;border-radius:.7rem;padding:.35rem;overflow:hidden}.expiry-calendar-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:.16rem;display:grid}.expiry-calendar-row [role=columnheader]{color:var(--color-text-muted);text-align:center;padding:.35rem 0;font-size:.7rem}.expiry-calendar-cell,.expiry-calendar-empty{min-width:0;min-height:2.75rem}.expiry-calendar-cell button{cursor:pointer;width:100%;min-height:2.75rem;color:var(--color-text);font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:.45rem;padding:.2rem}.expiry-calendar-cell button:not(:disabled):hover{background:color-mix(in srgb, var(--color-primary) 16%, transparent)}.expiry-calendar-cell button:disabled{cursor:not-allowed;color:var(--color-text-muted);opacity:.42}.expiry-calendar-cell button.is-selected{border-color:var(--color-primary-strong);color:#09231d;background:var(--color-primary);opacity:1;font-weight:750}.expiry-selected-date{color:var(--color-text-subtle);margin:0;font-size:.78rem;font-weight:500}.symbol-search,.symbol-search-control{position:relative}.symbol-search-spinner{color:var(--color-text-muted);font-size:.7rem;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.market-field-status:empty{display:none}.market-field-status{color:var(--color-text-muted);font-size:.72rem;font-weight:500}.market-field-status[role=alert]{color:var(--color-danger)}.symbol-results{z-index:10;border:1px solid var(--color-border);background:#101824;border-radius:.7rem;max-height:17rem;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + .3rem);left:0;right:0;overflow-y:auto;box-shadow:0 1rem 2.5rem #0008}.symbol-results li{cursor:pointer;border-radius:.45rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.62rem;display:grid}.symbol-results li:hover,.symbol-results li.is-active{background:var(--color-surface-muted)}.symbol-results li span{min-width:0;color:var(--color-text-subtle);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.symbol-results li small{color:var(--color-text-muted)}.market-form-error{color:var(--color-danger);margin:1rem 0 0;font-size:.8rem}.option-chain-panel{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.option-chain-heading h3{margin:0;font-size:1rem}.option-chain-heading p,.option-chain-status{color:var(--color-text-muted);margin:.3rem 0 0;font-size:.78rem}.option-chain-scroll{max-height:min(32rem,60vh);margin-top:.8rem;overflow:auto}.option-chain-table{min-width:760px}.option-chain-table thead{z-index:1;background:var(--color-surface);position:sticky;top:0}.option-chain-table tbody tr{scroll-margin-top:2.75rem}.option-chain-table input[type=radio]{width:auto}.option-chain-table tr.is-selected td{background:color-mix(in srgb, var(--color-primary) 9%, transparent)}.form-note{border-left:3px solid var(--color-warning);color:var(--color-text-subtle);background:color-mix(in srgb, var(--color-warning) 8%, transparent);margin:1rem 0 0;padding:.45rem .75rem;font-size:.85rem}.metric-preview{border-top:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.7rem;margin-top:1.25rem;padding-top:1.25rem;display:grid}.preview-item{background:#111a26;border-radius:.7rem;gap:.3rem;padding:.8rem;display:grid}.preview-item span{color:var(--color-text-muted);font-size:.75rem}.preview-item strong{font-variant-numeric:tabular-nums}.trade-actions{justify-content:flex-end;gap:.7rem;margin-top:1.25rem;display:flex}.trade-actions-top{z-index:20;border-block:1px solid var(--color-border);background:var(--color-surface);margin:.85rem 0 1rem;padding:.75rem;position:sticky;top:0}.trade-form :where(.form-field,input,select,button,.field-error,.market-form-error,.option-chain-status,.option-chain-panel,.option-chain-heading,.option-chain-table){scroll-margin-top:var(--trade-action-clearance)}.option-side-control{border:0;gap:.5rem;margin:0 0 1rem;padding:0;display:flex}.option-side-control legend{width:100%;color:var(--color-text-muted);margin-bottom:.45rem;font-size:.78rem;font-weight:700}.option-side-control label{cursor:pointer;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:.65rem;padding:.65rem 1rem;font-weight:700}.option-side-control label.is-selected{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));color:var(--color-text)}.option-side-control input{margin-right:.45rem}.filter-bar{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.quick-search-filter{grid-column:span 2}.date-filter-start{grid-column:1}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1280px;font-size:.83rem}th,td{border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap;padding:.8rem .65rem}th{color:var(--color-text-muted);font-size:.72rem}tbody tr:last-child td{border-bottom:0}td small{color:var(--color-text-muted);margin-top:.2rem;display:block}.sort-button,.row-actions button,.icon-button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}.sort-button{color:var(--color-text-muted);font-size:inherit;font-weight:700}.sort-button:hover,.row-actions button:hover{color:var(--color-primary)}.status-badge{border-radius:999px;padding:.24rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.status-open{color:#99ead0;background:#173a34}.status-closed{color:#a9cfff;background:#1d304c}.status-expired{color:#c9d2df;background:#303947}.status-assigned{color:#f3c38f;background:#442f24}.positive{color:#8fe1c6}.negative{color:var(--color-danger)}.quick-price{align-items:center;gap:.4rem;display:flex}.quick-price input{width:5.5rem;padding:.4rem .5rem}.quote-price-cell{gap:.35rem;min-width:12rem;display:grid}.quote-updated,.quote-error{line-height:1.35;display:block}.quote-updated{color:var(--color-text-muted)}.quote-error{color:var(--color-danger)}.icon-button{color:var(--color-primary);font-size:.75rem}.icon-button:disabled{cursor:not-allowed;color:var(--color-text-muted);opacity:.55}.row-actions{gap:.65rem;display:flex}.row-actions .danger-link{color:var(--color-danger)}.sticky-actions-column{z-index:2;background:var(--color-surface);position:sticky;right:0;box-shadow:-.65rem 0 .8rem -.8rem #000c}thead .sticky-actions-column{z-index:3}.table-empty,.loading-state{min-height:11rem;color:var(--color-text-muted);text-align:center;place-items:center;gap:.35rem;display:grid}.table-empty strong{color:var(--color-text);font-size:1rem}.empty-panel{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 82%, transparent);text-align:center;border-radius:1rem;place-items:center;min-height:19rem;padding:2.5rem 1.5rem;display:grid}.empty-icon{width:3.25rem;height:3.25rem;color:var(--color-primary);background:var(--color-surface-muted);border-radius:50%;place-items:center;font-size:1.8rem;display:grid}.empty-panel p{max-width:32rem;color:var(--color-text-subtle);margin:.75rem 0 0;line-height:1.7}.load-failure{border:1px solid color-mix(in srgb, var(--color-danger) 45%, var(--color-border));background:color-mix(in srgb, var(--color-danger-surface) 38%, var(--color-surface));border-radius:1rem;align-content:center;justify-items:start;gap:.75rem;min-height:12rem;padding:1.5rem;display:grid}.load-failure p{color:var(--color-text-subtle);margin:0}.dashboard{gap:1.25rem;display:grid}.dashboard-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.dashboard-heading>p{color:var(--color-text-muted);margin:0;font-size:.82rem}.dashboard-empty-note{border:1px dashed color-mix(in srgb, var(--color-primary) 45%, var(--color-border));color:var(--color-text-subtle);background:color-mix(in srgb, var(--color-surface-muted) 38%, transparent);border-radius:.8rem;margin:0;padding:.85rem 1rem}.metric-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.metric-card{border:1px solid var(--color-border);background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 96%, white 2%), var(--color-surface));border-radius:.9rem;align-content:start;gap:.45rem;min-height:7rem;padding:1rem;display:grid;box-shadow:0 .8rem 2rem #05081024}.metric-label{color:var(--color-text-muted);font-size:.76rem;font-weight:650}.metric-value{font-variant-numeric:tabular-nums;margin-top:auto;font-size:clamp(1.08rem,2vw,1.35rem)}.metric-detail{color:var(--color-text-muted);font-size:.72rem}.metric-positive{color:#8fe1c6}.metric-negative{color:var(--color-danger)}.metric-neutral{color:var(--color-text)}.charts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.chart-panel{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 94%, transparent);border-radius:1rem;min-width:0;padding:1rem}.chart-panel h3{margin:0 0 1rem;font-size:.98rem}.chart-canvas{width:100%;height:15rem}.chart-data-list{gap:.45rem;max-height:9rem;margin:.8rem 0 0;padding:0;list-style:none;display:grid;overflow:auto}.chart-data-list li{color:var(--color-text-subtle);justify-content:space-between;align-items:center;gap:.8rem;font-size:.78rem;display:flex}.chart-data-list strong{font-variant-numeric:tabular-nums}.status-data-list{grid-template-columns:repeat(2,minmax(0,1fr))}.status-data-list span{align-items:center;gap:.45rem;display:inline-flex}.status-data-list i{border-radius:50%;width:.55rem;height:.55rem}.chart-empty{min-height:15rem;color:var(--color-text-muted);place-items:center;margin:0;display:grid}.chart-tooltip{border:1px solid var(--color-border);color:var(--color-text);background:#101824;border-radius:.55rem;gap:.2rem;padding:.55rem .7rem;font-size:.75rem;display:grid;box-shadow:0 .6rem 1.4rem #0006}.admin-page{gap:1rem;display:grid}.admin-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.9rem;gap:1rem;padding:1.25rem;display:grid}.admin-panel h2{margin:0}.admin-panel-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-toolbar{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.admin-toolbar label{color:var(--color-text-subtle);gap:.35rem;display:grid}.admin-toolbar input{min-height:2.5rem}.admin-table-scroll{width:100%;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem}.admin-row-actions{gap:.4rem;display:flex}.admin-dialog{border:1px solid var(--color-border);background:var(--color-surface);border-radius:1rem;width:min(100%,34rem);max-height:calc(100vh - 2rem);padding:1.4rem;overflow:auto;box-shadow:0 1.4rem 5rem #0009}.admin-history-dialog{width:min(100%,58rem)}.admin-form{gap:.9rem;display:grid}.admin-dialog-error{color:var(--color-danger);margin:0}.admin-empty-state{border:1px dashed var(--color-border);color:var(--color-text-muted);text-align:center;border-radius:.7rem;padding:1.25rem}.admin-history-table td:last-child{text-overflow:ellipsis;max-width:24rem;overflow:hidden}.admin-secret{border:1px solid var(--color-accent);border-radius:.6rem;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.8rem;display:flex}.admin-secret code{overflow-wrap:anywhere}.admin-health{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.admin-health div{border:1px solid var(--color-border);border-radius:.6rem;padding:.85rem}.admin-health dt{color:var(--color-text-subtle)}.admin-health dd{margin:.3rem 0 0;font-weight:700}@media (width<=520px){.app-shell{width:min(100% - 1rem,1180px);padding-top:1rem}.app-header{flex-direction:column;align-items:start;margin-bottom:1.5rem}.privacy-note{font-size:.8rem}.connection-summary{flex-wrap:wrap;align-items:flex-start}.connection-actions{width:100%}.connection-actions .button{flex:1}.connection-settings{grid-template-columns:1fr}.empty-panel{min-height:16rem}.records-heading,.form-heading{flex-direction:column;align-items:stretch}.form-heading>p{text-align:left}.form-grid,.filter-bar{grid-template-columns:1fr}.trade-actions .button{flex:1}.records-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.records-actions .button{width:100%;padding-inline:.55rem}.trade-form,.records-panel,.chart-panel{border-radius:.75rem}.import-dialog{padding:1rem}.import-preview{grid-template-columns:1fr}.quick-price{align-items:stretch}.expiry-calendar{padding:.25rem}.expiry-calendar-row{gap:.1rem}.tab-list{overflow-x:auto}.tab{flex:1 0 auto}.dashboard-heading{flex-direction:column;align-items:start}.metric-card-grid,.charts-grid,.status-data-list{grid-template-columns:1fr}.chart-canvas{height:13rem}.admin-health{grid-template-columns:1fr}.admin-table{font-size:.86rem}}@media (width<=380px){:root{--trade-action-clearance:8rem}.records-actions,.trade-actions{grid-template-columns:1fr;display:grid}.trade-actions .button{width:100%}.metric-card{min-height:6.25rem}}@media (width>=521px) and (width<=780px){.form-grid,.filter-bar,.metric-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.charts-grid{grid-template-columns:1fr}}@media (width>=781px) and (width<=1040px){.metric-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
