:root{--bg: #fafafa;--surface: #ffffff;--surface-raised: #ffffff;--border: #eeeeee;--border-strong: #dddddd;--text: #1a1a1a;--text-muted: #888888;--accent: #d1272c;--accent-dark: #a81f24;--positive: #1f8a4c;--negative: #d1272c;--grid-line: #f0f0f0;--font-display: "Inter", -apple-system, sans-serif;--font-body: "Inter", -apple-system, sans-serif;--font-mono: "Inter", -apple-system, sans-serif;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}.mono{font-variant-numeric:tabular-nums}button{font-family:var(--font-body);cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-mark{display:flex;align-items:center;gap:10px}.brand-logo-fallback{width:32px;height:32px;border-radius:7px;background:var(--accent);border:1.5px solid #fff;box-shadow:0 0 0 1px var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;font-family:Arial,sans-serif}.brand-name{font-family:Arial,sans-serif;font-size:19px;font-weight:700;color:var(--accent);letter-spacing:.4px}.ticker{background:#f0f0f0;border-bottom:1px solid var(--border);overflow:hidden;white-space:nowrap}.ticker-pinned{position:sticky;top:0;z-index:30}.pin-toggle{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);cursor:pointer}.pin-toggle input{accent-color:var(--accent)}.ticker-track{display:inline-flex;animation:scroll-left 40s linear infinite}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-family:var(--font-mono);font-size:.8rem;border-right:1px solid var(--border)}.ticker-symbol{color:var(--text-muted);letter-spacing:.04em}.ticker-price{color:var(--text)}.ticker-change.positive{color:var(--positive)}.ticker-change.negative{color:var(--negative)}@media (prefers-reduced-motion: reduce){.ticker-track{animation:none}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 2rem;border-bottom:1px solid var(--border)}.app-main{max-width:1100px;margin:0 auto;padding:2rem}.content-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.5rem;margin-top:1.5rem}@media (max-width: 860px){.content-grid{grid-template-columns:1fr}}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media (max-width: 640px){.summary-grid{grid-template-columns:1fr}}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem;display:flex;flex-direction:column;gap:.4rem}.summary-label{font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.summary-value{font-family:var(--font-mono);font-size:1.4rem}.summary-card.positive .summary-value{color:var(--positive)}.summary-card.negative .summary-value{color:var(--negative)}.summary-pct{font-size:.85rem;opacity:.85}.currency-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.9rem;flex-wrap:wrap}.currency-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:.35rem .8rem;font-family:var(--font-mono);font-size:.8rem}.currency-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.currency-note{color:var(--text-muted);font-size:.78rem}.currency-tag{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:.05rem .3rem;margin-left:.3rem}.range-tabs,.tab-row{display:flex;gap:.35rem;margin-bottom:1rem;flex-wrap:wrap}.range-tab,.tab-btn{background:#f5f5f5;border:none;color:#666;border-radius:8px;padding:.4rem .8rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500}.range-tab.active,.tab-btn.active{background:var(--text);color:#fff;font-weight:600}.custom-range-inputs{display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.custom-range-inputs input{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text)}.chart-legend span{display:inline-flex;align-items:center;gap:.4rem}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.benchmark-toggle{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);font-family:var(--font-mono);cursor:pointer}.benchmark-toggle input{accent-color:var(--accent)}.chart-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:.4rem}.chart-controls{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.chart-tooltip{position:absolute;background:var(--text);color:#fff;font-family:var(--font-mono);font-size:.72rem;padding:.3rem .55rem;border-radius:5px;pointer-events:none;white-space:nowrap;transform:translate(-50%,-120%);z-index:5}.chart-wrap{position:relative}.bar-list{display:flex;flex-direction:column;gap:.5rem}.bar-row-label{display:flex;justify-content:space-between;font-size:.72rem;margin-bottom:.15rem}.bar-track{background:#f0f0f0;border-radius:3px;height:7px}.bar-fill{height:7px;border-radius:3px;background:var(--text-muted)}.bar-fill.top{background:var(--accent)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-card);padding:1.4rem}.panel-header h2{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin:0;letter-spacing:-.01em}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.panel-header button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.5rem .9rem;font-weight:600;font-size:.85rem}.holdings-table,.dividends-table{width:100%;border-collapse:collapse;font-size:.88rem}.holdings-table th,.dividends-table th{text-align:left;color:var(--text-muted);font-weight:500;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding:.5rem .6rem;border-bottom:1px solid var(--border)}.holdings-table td,.dividends-table td{padding:.6rem;border-bottom:1px solid var(--border)}.holdings-table .num,.dividends-table .num{text-align:right}.holdings-table .mono,.dividends-table .mono{font-family:var(--font-mono)}.holdings-table .muted,.dividends-table .muted{color:var(--text-muted)}.positive{color:var(--positive)}.negative{color:var(--negative)}.row-actions{display:flex;align-items:center;gap:.4rem;white-space:nowrap}.row-sell{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:5px;padding:.25rem .55rem;font-size:.75rem}.row-sell:hover{color:var(--accent);border-color:var(--accent)}.row-delete{background:none;border:none;color:var(--text-muted);font-size:1.1rem;line-height:1;padding:.2rem .4rem;border-radius:4px}.row-delete:hover{color:var(--negative);background:#d1272c14}.empty-state,.empty-note{color:var(--text-muted);font-size:.9rem}.ticker-suggestions{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-top:2px;max-height:220px;overflow-y:auto;box-shadow:0 6px 16px #0000001f}.ticker-suggestion-row{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .7rem;cursor:pointer;font-size:.8rem}.ticker-suggestion-row:hover{background:var(--bg)}.ticker-suggestion-name{color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticker-suggestion-exchange{color:var(--text-muted);font-family:var(--font-mono);font-size:.72rem}.field-hint{font-size:.76rem;color:var(--text-muted);margin:.3rem 0 .2rem;line-height:1.4}.company-name{color:var(--text-muted);font-family:var(--font-body);font-size:.72rem;margin-top:.1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:var(--surface-raised);border:1px solid var(--border);border-radius:12px;padding:1.6rem;width:100%;max-width:380px}.modal h2{font-family:var(--font-display);font-weight:600;margin:0 0 1rem}.modal-form{display:flex;flex-direction:column;gap:.4rem}.modal-form label{font-size:.8rem;color:var(--text-muted);margin-top:.5rem}.modal-form input,.modal-form select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.55rem .7rem;font-family:var(--font-mono);font-size:.9rem}.sell-preview{display:flex;flex-direction:column;gap:.2rem;margin-top:.8rem;padding:.7rem .8rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.2rem}.modal-actions button,.modal-form>button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.6rem 1rem;font-weight:600}.btn-secondary{background:transparent!important;color:var(--text)!important;border:1px solid var(--border)!important}.compare-dropdown{position:relative}.compare-dropdown-panel{position:absolute;top:110%;right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 16px #0000001a;padding:.5rem .7rem;width:160px;z-index:10}.compare-dropdown-item{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-family:var(--font-mono);padding:.3rem 0;cursor:pointer}.compare-dropdown-item input{accent-color:var(--accent)}.options-table{width:100%;border-collapse:collapse;font-size:.85rem}.options-table th{text-align:left;color:var(--text-muted);font-weight:500;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding:.5rem;border-bottom:1px solid var(--border)}.options-table td{padding:.55rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}.options-table .num{text-align:right}.options-table .mono{font-family:var(--font-mono)}.status-badge{font-size:.7rem;border-radius:5px;padding:.15rem .5rem;white-space:nowrap}.status-open{background:#f0f0f0;color:var(--text-muted)}.status-expired_worthless{background:#1f8a4c1a;color:var(--positive)}.status-assigned{background:#d1272c14;color:var(--negative)}.status-closed,.status-rolled{background:#f0f0f0;color:var(--text-muted)}.naked-inline-warning{font-size:.68rem;color:var(--negative);margin-top:.25rem;max-width:220px}.option-outcome-note{font-size:.68rem;color:var(--text-muted);margin-top:.25rem}.naked-warning{font-size:.78rem;color:var(--negative);background:#d1272c0f;border:1px solid rgba(209,39,44,.2);border-radius:6px;padding:.6rem .7rem;margin-top:.6rem;line-height:1.4}.option-type-toggle{display:flex;gap:.4rem}.option-type-toggle button{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:6px;padding:.5rem;font-size:.85rem}.option-type-toggle button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.earnings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}@media (max-width: 700px){.earnings-grid{grid-template-columns:1fr}}.earnings-column{border-right:1px solid var(--border);padding-right:1rem}.earnings-column:last-child{border-right:none;padding-right:0}.earnings-entry-row{display:flex;justify-content:space-between;font-size:.75rem;padding:.3rem 0;border-top:1px solid var(--border)}.market-status-pill{display:inline-flex;align-items:center;gap:4px;background:#f0f0f0;border-radius:12px;padding:3px 9px;font-size:.7rem;color:#666;font-weight:500}.market-status-dot{width:6px;height:6px;border-radius:50%;background:#999}.market-status-pill.market-open .market-status-dot{background:var(--positive)}.market-status-pill.market-closed .market-status-dot{background:#999}.itm-badge{display:inline-block;font-size:.64rem;font-weight:700;border-radius:4px;padding:.08rem .35rem;margin-left:.4rem;letter-spacing:.03em}.itm-badge.itm{background:#d1272c1a;color:var(--negative)}.itm-badge.otm{background:#1f8a4c1a;color:var(--positive)}.legend-square{display:inline-block;width:8px;height:8px;border-radius:2px}.legend-ring{display:inline-block;width:8px;height:8px;border-radius:50%;border:2px solid #3b6fd6;background:#fff}.news-fallback-link{font-size:.78rem;color:#3b6fd6;text-decoration:none}.news-fallback-link:hover{text-decoration:underline}.key-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.7rem;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--border)}.key-stat-label{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.key-stat-value{font-family:var(--font-mono);font-size:.85rem;margin-top:.15rem}.next-earnings-badge{display:inline-block;margin-top:.7rem;background:#fff5f0;border:1px solid #ffd9c7;border-radius:8px;padding:.4rem .7rem;font-size:.8rem;color:#a04a1f}.transcript-modal{max-width:720px;width:90vw;max-height:88vh;overflow-y:auto}.transcript-actions{margin:.6rem 0}.transcript-summary{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.8rem;font-size:.85rem;line-height:1.5;margin-bottom:.8rem;white-space:pre-wrap}.transcript-summary-unavailable{color:var(--text-muted);font-style:italic}.transcript-body{font-size:.78rem;line-height:1.6;color:var(--text-muted);white-space:pre-wrap;max-height:300px;overflow-y:auto;border-top:1px solid var(--border);padding-top:.8rem}.fee-row{display:grid;grid-template-columns:1fr 130px 90px;gap:.5rem;align-items:center;margin-bottom:.6rem}.fee-row-label{font-size:.82rem;color:var(--text)}.fee-row select,.fee-row input{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem;font-size:.8rem;font-family:var(--font-body);color:var(--text)}@media (max-width: 600px){.fee-row{grid-template-columns:1fr}}.balance-list{display:flex;flex-direction:column;gap:1rem}.balance-bar-track{display:flex;height:9px;border-radius:5px;overflow:hidden;background:#f0f0f0}.balance-bar-fill-a{background:var(--accent)}.balance-bar-fill-b{background:#e0e0e0}.ticker-tab-group{margin-bottom:.3rem}.ticker-tab-group-label{display:block;font-size:.66rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}.watchlist-tab{position:relative}.notification-badge{position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;min-width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.target-distance{font-size:.68rem;color:var(--text-muted)}.target-distance.negative{color:var(--accent)}.total-earnings-sum{font-size:.85rem;color:var(--text-muted)}.total-earnings-sum strong{font-size:1rem}.earnings-filter-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem;font-size:.78rem;color:var(--text-muted)}.earnings-filter-row select{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;font-size:.78rem;font-family:var(--font-body);color:var(--text)}.earnings-entry-list{max-height:220px;overflow-y:auto;padding-right:.3rem}.chart-type-toggle{display:flex;gap:4px;margin-bottom:.6rem}.chart-type-toggle button{background:#f5f5f5;border:none;color:#666;font-size:.72rem;font-weight:500;border-radius:6px;padding:.3rem .7rem}.chart-type-toggle button.active{background:var(--text);color:#fff;font-weight:600}@keyframes flash-up-anim{0%{background-color:#1f8a4c47}to{background-color:transparent}}@keyframes flash-down-anim{0%{background-color:#d1272c47}to{background-color:transparent}}.flash-up{animation:flash-up-anim .9s ease-out;border-radius:4px}.flash-down{animation:flash-down-anim .9s ease-out;border-radius:4px}.earnings-grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 800px){.earnings-grid-4{grid-template-columns:repeat(2,1fr)}}.rules-section{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--border)}.rules-section-title{font-family:var(--font-display);font-weight:600;font-size:1rem;margin:0 0 .8rem}.rules-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}.rule-chip{display:flex;align-items:center;gap:.4rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.35rem .6rem;font-size:.78rem}.rule-chip button{background:none;border:none;color:var(--text-muted);font-size:.9rem;line-height:1;padding:0}.rule-chip button:hover{color:var(--negative)}.rule-builder{border:1px dashed var(--border);border-radius:8px;padding:.8rem;margin-bottom:.8rem}.rule-builder-row{display:flex;gap:.5rem;align-items:flex-start}.rule-builder-row select,.rule-builder-row input{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;font-size:.82rem;font-family:var(--font-body);color:var(--text)}.rule-matches{display:flex;flex-direction:column;gap:.4rem}.rule-match-item{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.6rem .7rem;background:#1f8a4c0f;border:1px solid rgba(31,138,76,.2);border-radius:8px;font-size:.82rem;flex-wrap:wrap}.rule-match-ticker{font-weight:600}.rule-match-values{color:var(--positive);font-size:.76rem}.fee-row-with-caps{grid-template-columns:1fr 130px 70px 60px 60px}.fee-row-header{display:grid;gap:.5rem;font-size:.68rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:.3rem}.key-stat-highlight{background:#1f8a4c14;border-radius:6px;padding:.3rem .4rem;margin:-.3rem -.4rem}.key-stat-highlight .key-stat-label,.key-stat-highlight .key-stat-value{color:var(--positive);font-weight:600}.rule-tag{font-size:.6rem;font-weight:700;border-radius:3px;padding:.05rem .3rem;letter-spacing:.03em}.rule-tag-coarse{background:#e8e8e8;color:#666}.rule-tag-precise{background:#d1272c1a;color:var(--accent)}.country-chip{border:none;border-radius:14px;padding:.35rem .8rem;font-size:.76rem;background:#f5f5f5;color:#888}.country-chip.active{background:var(--text);color:#fff;font-weight:600}.metric-group-label{padding:.35rem .6rem;font-size:.62rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--bg)}.metric-group-empty{padding:.4rem .6rem;font-size:.75rem;color:#ccc}.watchlist-alert{background:#fff5f0;border:1px solid #ffd9c7;border-radius:10px;padding:.7rem .9rem;margin-bottom:.7rem;font-size:.85rem;color:#a04a1f}.target-hit{color:var(--positive);font-weight:600}.grouped-header-row{display:grid;grid-template-columns:1fr 140px 180px 100px;gap:.5rem;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.grouped-header-row .num{text-align:right}.grouped-holding-item{border-bottom:1px solid var(--border)}.grouped-holding-row{display:grid;grid-template-columns:1fr 140px 180px 100px;gap:.5rem;align-items:center;padding:1rem 0}.grouped-holding-row .num{text-align:right;font-family:var(--font-mono);font-size:.85rem}.grouped-holding-label{min-width:0}.lots-toggle{font-size:.72rem;color:var(--accent);margin-left:.4rem}.lots-detail{margin:0 0 .8rem 1rem;padding:.6rem .9rem;background:var(--bg);border-radius:6px;display:flex;flex-direction:column;gap:.4rem}.lot-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.75rem;color:var(--text-muted)}@media (max-width: 700px){.grouped-header-row{display:none}.grouped-holding-row{grid-template-columns:1fr;gap:.3rem}.grouped-holding-row .num{text-align:left}}.chart-svg-box{position:relative;margin-bottom:26px}.chart-axis-label{position:absolute;font-size:.68rem;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;pointer-events:none}.chart-y-label{left:0;transform:translateY(-50%)}.chart-x-label{bottom:-22px}.chart-legend{display:flex;gap:1.2rem;margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted);flex-wrap:wrap}.link-btn{background:none;border:none;color:var(--accent);font-size:.74rem;padding:.3rem 0;text-decoration:underline;display:block}.marker-detail{margin-top:.5rem;padding:.5rem .8rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:.78rem;color:var(--text)}.stock-price-header{margin-bottom:.8rem}.stock-price-main{display:flex;align-items:baseline;gap:.6rem}.stock-price-value{font-family:var(--font-mono);font-size:1.7rem;font-weight:700}.stock-price-change{font-family:var(--font-mono);font-size:.95rem;font-weight:600}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--positive);display:inline-block}.live-label{font-size:.65rem;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.05em}.stock-price-sub{font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.15rem}.stock-news{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--border)}.news-item{display:block;text-decoration:none;color:inherit;padding:.5rem 0;border-top:1px solid var(--border)}.news-item:first-of-type{border-top:none;padding-top:0}.news-title{font-size:.82rem;color:var(--text)}.news-title:hover{color:var(--accent)}.news-meta{font-size:.7rem;color:var(--text-muted);margin-top:.15rem}.current-price-readout{font-size:.78rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .7rem;margin:.2rem 0 .3rem;font-family:var(--font-mono)}.dividend-totals{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}.dividend-total-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.8rem 1.1rem;display:flex;flex-direction:column;gap:.3rem}.auth-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;text-align:center}.auth-card h1{font-family:var(--font-display);font-weight:600;font-size:1.4rem;margin:1rem 0 .4rem}.auth-subtitle{color:var(--text-muted);font-size:.9rem;margin-bottom:1.4rem}.auth-form{display:flex;flex-direction:column;gap:.6rem;text-align:left}.auth-form label{font-size:.8rem;color:var(--text-muted)}.auth-form input{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.6rem .7rem;font-family:var(--font-mono)}.auth-form button{margin-top:.6rem;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.65rem;font-weight:600}.auth-sent{color:var(--text-muted);font-size:.9rem}.auth-error{color:var(--negative);font-size:.85rem}.banner-error{background:#d1272c14;border:1px solid var(--negative);color:var(--negative);padding:.7rem 1rem;border-radius:8px;margin-bottom:1.2rem;font-size:.88rem}.loading-screen{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-family:var(--font-mono)}
