:root{color-scheme:light dark;--bg: #f7f7f8;--surface: #ffffff;--surface-sunken: #f0f1f3;--border: #e3e4e8;--border-strong: #d3d5db;--text: #16171a;--text-muted: #71747c;--text-faint: #a1a3ab;--accent: #191a1d;--accent-hover: #34363b;--accent-contrast: #ffffff;--positive: #0f8a4b;--negative: #d13b3b;--focus-ring: #191a1d;--shadow: none}@media (prefers-color-scheme: dark){:root{--bg: #101113;--surface: #17181b;--surface-sunken: #1e1f23;--border: #26282d;--border-strong: #34363c;--text: #eeeef0;--text-muted: #8b8d96;--text-faint: #5c5e66;--accent: #eeeef0;--accent-hover: #ffffff;--accent-contrast: #0b0c0e;--positive: #3ecf82;--negative: #ff6b6b;--focus-ring: #eeeef0}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13.5px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{max-width:1040px;margin:0 auto;padding:32px 20px 72px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:38px;height:38px;flex-shrink:0;display:block}.app-header h1{font-size:30px;font-weight:700;margin:0;letter-spacing:-.02em;display:flex;align-items:flex-start}.brand-trademark{font-size:14px;font-weight:500;color:var(--text-faint);margin-left:2px;letter-spacing:0}.disclaimer{margin:0;font-size:11.5px;color:var(--text-faint);max-width:46ch;text-align:right;line-height:1.5}@media (max-width: 640px){.disclaimer{text-align:left}}.app-main{display:flex;flex-direction:column;gap:14px}.top-controls{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}@media (max-width: 780px){.top-controls{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px}.panel-title{font-size:12px;font-weight:300;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 14px}.stats-bar{display:flex;gap:0;padding:20px 20px 18px;border-bottom:1px solid var(--border)}.stat{flex:1;display:flex;flex-direction:column;gap:4px;padding:0 20px;border-left:1px solid var(--border)}.stat:first-child{border-left:none;padding-left:0}.stat-label{font-size:11px;color:var(--text-muted);font-weight:300;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-sub{font-size:13px;font-weight:500;margin-left:8px;opacity:.85}@media (max-width: 640px){.stats-bar{flex-direction:column;gap:12px}.stat{border-left:none;padding-left:0;flex-direction:row;justify-content:space-between;align-items:baseline}}.settings-row,.bank-import-row{display:flex;gap:8px}label{font-size:11.5px;color:var(--text-muted);font-weight:500}input,select,button{font-family:inherit;font-size:13px}input[type=text],input[type=number],input[type=date],select{background:var(--surface-sunken);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px;width:100%}select{width:auto}.input-adorned{display:flex;align-items:stretch}.input-adorn{display:flex;align-items:center;padding:0 9px;background:var(--surface-sunken);border:1px solid var(--border);border-right:none;border-radius:6px 0 0 6px;color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap}.input-adorned input{border-radius:0 6px 6px 0;min-width:0}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.add-form{display:grid;grid-template-columns:1fr .8fr 1fr 1fr auto;gap:10px;align-items:end}.field{display:flex;flex-direction:column;gap:5px}.field-submit{justify-content:flex-end}@media (max-width: 780px){.add-form{grid-template-columns:1fr 1fr}.field-submit{grid-column:1 / -1}}.btn{background:var(--surface-sunken);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 14px;cursor:pointer;white-space:nowrap;font-weight:500;transition:border-color .12s ease,background .12s ease}.btn:hover{border-color:var(--border-strong);background:var(--surface)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:none;border:none;padding:4px 6px;color:var(--text-muted)}.btn-ghost:hover{background:var(--surface-sunken);border:none;color:var(--text)}.btn-danger{color:var(--negative)}.row-menu{position:relative;display:inline-block}.kebab-btn{font-size:16px;line-height:1;padding:4px 8px;border-radius:6px}.dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:120px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 4px 16px #0000001f;z-index:20}.dropdown-item{display:block;width:100%;text-align:left;background:none;border:none;padding:7px 10px;border-radius:5px;font-size:12.5px;font-weight:500;color:var(--text);cursor:pointer}.dropdown-item:hover{background:var(--surface-sunken)}.dropdown-item-danger{color:var(--negative)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0c73;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:22px;width:100%;max-width:480px;max-height:85vh;overflow-y:auto}.modal-title{font-size:15px;font-weight:600;margin:0 0 10px}.modal-hint{margin:0 0 16px}.edit-lots{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}.edit-lot-row{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:8px;align-items:end}.edit-lot-index{font-size:11px;color:var(--text-faint);padding-bottom:9px}@media (max-width: 480px){.edit-lot-row{grid-template-columns:1fr 1fr}.edit-lot-index{grid-column:1 / -1;padding-bottom:0}}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.refresh-panel{padding:14px 20px}.refresh-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.hint{font-size:11.5px;color:var(--text-faint);margin:8px 0 0}.hint-success{color:var(--positive)}.edit-notice{color:var(--accent)}.error{font-size:12px;color:var(--negative);margin:8px 0 0}.empty-state{color:var(--text-muted);margin:0;text-align:center;padding:32px 0;font-size:13px}.table-panel{padding:0;overflow:hidden}.table-scroll{overflow-x:auto}.holdings-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.holdings-table th,.holdings-table td{padding:11px 20px;text-align:left;white-space:nowrap}.holdings-table thead th{font-size:11px;font-weight:300;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);padding-top:14px;padding-bottom:10px}.holdings-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s ease}.holdings-table tbody tr:hover{background:var(--surface-sunken)}.holdings-table tbody tr:last-child{border-bottom:none}.holdings-table .num{text-align:left}.figure{display:inline-flex;align-items:baseline;gap:6px}.figure-prefix{color:var(--text-faint);font-size:11px;font-weight:500}.figure-amount{display:inline-block;text-align:right}.holding-name{display:flex;align-items:baseline;gap:8px}.holding-desc{font-size:11px;color:var(--text-faint);margin-top:2px;white-space:normal}.symbol-btn{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--text);cursor:pointer;text-decoration:underline dotted var(--text-faint);text-underline-offset:3px}.symbol-btn:hover{color:var(--accent);text-decoration-color:var(--accent)}.symbol-static{font-weight:600}.totals-row td{font-weight:600;border-top:1px solid var(--border-strong);padding-top:14px;padding-bottom:14px}.muted{color:var(--text-faint)}.muted-inline{color:var(--text-faint);font-weight:400;font-size:11px}.positive{color:var(--positive)}.negative{color:var(--negative)}.export-import-row{display:flex;gap:8px}.app-footer{margin-top:2px;padding:12px 20px;border:1px solid var(--border);border-radius:10px;background:var(--surface-sunken);text-align:center}.app-footer p{margin:0;font-size:11.5px;color:var(--text-muted)}.footer-link{color:var(--text);font-weight:600;text-decoration:underline;text-underline-offset:2px}.footer-link:hover{color:var(--accent)}
