*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-width:220px;--sidebar-bg:#0f1117;--sidebar-border:#1e2130;--sidebar-text:#8b92a5;--sidebar-text-hover:#e2e8f0;--sidebar-active-bg:#1e2130;--sidebar-active-text:#fff;--sidebar-logo:#fff;--sidebar-divider:#1e2130;--bg:#f8f9fc;--surface:#fff;--border:#e5e7eb;--text:#374151;--text-muted:#6b7280;--text-heading:#111827;--accent:#6366f1;--accent-light:#eef2ff;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}body,#root{min-height:100vh}.layout{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);background:var(--bg);flex:1;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:100;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-header{border-bottom:1px solid var(--sidebar-border);padding:20px 16px 16px}.sidebar-logo{letter-spacing:.02em;color:var(--sidebar-logo);font-size:15px;font-weight:600}.sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}.sidebar-link{color:var(--sidebar-text);border-radius:7px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:450;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-link:hover{background:var(--sidebar-active-bg);color:var(--sidebar-text-hover)}.sidebar-link--active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar-link--sub{opacity:.85;padding-left:28px;font-size:12.5px}.sidebar-divider{background:var(--sidebar-divider);height:1px;margin:8px 4px}.page{max-width:1200px;padding:36px 40px}.page-title{color:var(--text-heading);margin-bottom:4px;font-size:24px;font-weight:600}.page-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px 24px}.card-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:500}.card-value{color:var(--text-heading);font-size:26px;font-weight:600}.card-sub{color:var(--text-muted);margin-top:4px;font-size:13px}.positive{color:var(--success)}.negative{color:var(--danger)}.text-muted{color:var(--text-muted)}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.stats-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:#fafafa;padding:11px 16px;font-size:11.5px;font-weight:600}.table td{border-bottom:1px solid var(--border);color:var(--text);padding:12px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#f9fafb}.table th.num,.table td.num{text-align:right}.table-empty,.table-placeholder{text-align:center;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:48px;font-size:14px}.symbol-badge{color:var(--text-heading);font-family:ui-monospace,monospace;font-size:13px;font-weight:600}.row-actions{justify-content:flex-end;gap:6px;display:flex}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:7px;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:500;transition:opacity .12s,background .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){opacity:.88}.btn-secondary{color:var(--text);border:1px solid var(--border);background:#f3f4f6}.btn-secondary:hover:not(:disabled){background:#e9ebf0}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text);background:#f3f4f6}.btn-ghost-danger{color:var(--danger);background:0 0;border:1px solid #fecaca}.btn-ghost-danger:hover:not(:disabled){background:#fef2f2}.btn-icon{padding:8px}.btn-xs{border-radius:5px;padding:4px 10px;font-size:12px}.modal-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:12px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000002e}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{color:var(--text-heading);font-size:16px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:4px;display:flex}.modal-close:hover{color:var(--text);background:#f3f4f6}.modal-body{padding:20px 24px 24px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.modal-actions--spread{justify-content:space-between}.form-group{margin-bottom:16px}.form-label{color:var(--text-muted);margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.form-input{border:1px solid var(--border);width:100%;color:var(--text-heading);background:var(--surface);box-sizing:border-box;border-radius:7px;outline:none;padding:8px 12px;font-size:14px;transition:border-color .12s}.form-input:focus{border-color:var(--accent)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-error{color:var(--danger);margin-top:6px;font-size:12.5px}.input-row{gap:8px;display:flex}.input-row .form-input{flex:1}.lookup-result{background:var(--accent-light);border:1px solid #c7d2fe;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:18px;padding:10px 14px;display:flex}.lookup-result--manual{border-color:var(--border);background:#fafafa}.lookup-name{color:var(--text-heading);font-size:13.5px;font-weight:500}.lookup-price{color:var(--accent);font-size:13px;font-weight:600}.lookup-error-row{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.link-btn{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}.link-btn:hover{opacity:.75}.trade-holding-info{border:1px solid var(--border);color:var(--text-heading);background:#f9fafb;border-radius:8px;flex-direction:column;gap:3px;margin-bottom:18px;padding:12px 14px;font-size:13.5px;display:flex}.trade-summary{color:var(--text-muted);margin-bottom:4px;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}
