:root{--bg:#151515;--text:#e8eaed;--muted:#9aa0a6;--accent:#5ec4b6;--accent-hover:#7dd8cc;--positive:#5ec4b6;--negative:#d96f6f;--border:#2a2f3a;--max-width:42rem;--dashboard-max-width:64rem;--line-height:1.6}body{background-color:var(--bg);color:var(--text);min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;line-height:var(--line-height);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover);text-decoration:underline}.link-button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.link-button:hover{color:var(--accent-hover);text-decoration:underline}.page{max-width:var(--max-width);box-sizing:border-box;flex-direction:column;min-height:100vh;margin:0 auto;padding:4rem 1.5rem 3rem;display:flex}.dashboard{max-width:var(--dashboard-max-width);box-sizing:border-box;min-height:100vh;margin:0 auto;padding:3rem 1.5rem}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2.5rem;display:flex}.dashboard-header h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:600}.dashboard-subtitle{color:var(--muted);margin:0}.dashboard-main{flex-direction:column;gap:2.5rem;display:flex}.dashboard-error{color:#f28b82;margin:0}.net-worth-label{color:var(--muted);text-transform:lowercase;letter-spacing:.02em;margin:0 0 .5rem;font-size:.875rem}.net-worth-value{margin:0;font-size:2.75rem;font-weight:600;line-height:1.1}.net-worth-filter-note{color:var(--muted);margin:.5rem 0 0;font-size:.875rem}.text-button{color:var(--accent);font:inherit;font-size:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.text-button:hover{color:var(--foreground)}.chart-section h2,.instruments-section h2,.cash-accounts-section h2{margin:0;font-size:1.125rem;font-weight:600}.instruments-header{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.instruments-title-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.instruments-connect{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.instruments-add-button{width:1.75rem;height:1.75rem;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:flex}.instruments-add-button:hover:not(:disabled){color:var(--accent-hover);background:#5ec4b61f}.instruments-add-button:disabled{opacity:.6;cursor:not-allowed}.instruments-filter-note{color:var(--muted);margin:0;font-size:.875rem}.chart-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.chart-range-tabs{flex-wrap:wrap;gap:.375rem;display:flex}.chart-range-tab{border:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .75rem;font-size:.8125rem;transition:color .15s,border-color .15s,background .15s}.chart-range-tab:hover{color:var(--foreground);border-color:var(--accent)}.chart-range-tab-active{color:var(--foreground);border-color:var(--accent);background:#5ec4b61f}.chart-note,.chart-empty,.instruments-empty,.cash-accounts-note{color:var(--muted);margin:0 0 1rem;font-size:.9375rem}.chart{border:1px solid var(--border);box-sizing:border-box;background:#ffffff05;border-radius:.5rem;width:100%;padding:1rem}.chart-plot{position:relative}.chart svg{width:100%;height:auto;display:block}.chart-loading{align-items:flex-end;min-height:12rem;display:flex;overflow:hidden}.chart-loading-line{background:linear-gradient(90deg,#5ec4b614 0%,#5ec4b633 50%,#5ec4b614 100%) 0 0/200% 100%;border-radius:.25rem;width:100%;height:3rem;animation:1.2s ease-in-out infinite chart-shimmer}@keyframes chart-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.chart-grid-line{stroke:var(--border);stroke-width:1px}.chart-line{stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-area{fill:#5ec4b61f}.chart-axis-label{fill:var(--muted);font-size:11px}.chart-hit-area{cursor:crosshair}.chart-crosshair{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3;opacity:.6;pointer-events:none}.chart-hover-dot{fill:var(--accent);stroke:var(--background);stroke-width:2px;pointer-events:none}.chart-tooltip{border:1px solid var(--border);background:var(--background);pointer-events:none;white-space:nowrap;border-radius:.375rem;flex-direction:column;gap:.125rem;padding:.375rem .5rem;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 4px 12px #00000040}.chart-tooltip-date{color:var(--muted);font-size:.75rem}.chart-tooltip-value{color:var(--foreground);font-size:.875rem;font-weight:600}.connect-error{color:#f28b82;margin:0;font-size:.9375rem}.instruments-table-wrapper{border:1px solid var(--border);border-radius:.5rem}.instruments-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.9375rem}.instruments-table th,.instruments-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.instruments-table thead th{z-index:2;color:var(--muted);text-transform:lowercase;background-color:var(--bg);box-shadow:inset 0 -1px 0 var(--border);font-size:.8125rem;font-weight:500;position:sticky;top:0}.instruments-table thead th:first-child{border-top-left-radius:calc(.5rem - 1px)}.instruments-table thead th:last-child{border-top-right-radius:calc(.5rem - 1px)}.instruments-table tbody tr:last-child td:first-child{border-bottom-left-radius:calc(.5rem - 1px)}.instruments-table tbody tr:last-child td:last-child{border-bottom-right-radius:calc(.5rem - 1px)}.instruments-table tbody tr:last-child td{border-bottom:none}.instruments-table .align-right{text-align:right}.security-row td.security-change-positive{color:var(--positive)}.security-row td.security-change-negative{color:var(--negative)}.account-row td{font-weight:500}.security-row td{color:var(--muted);font-size:.875rem}.security-row td:nth-child(3){padding-left:2rem}.security-name{color:var(--muted)}.account-visibility-button{color:var(--muted);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.8125rem;text-decoration:underline}.account-visibility-button:hover{color:var(--accent)}.hidden-accounts{border:1px dashed var(--border);border-radius:.5rem;margin-top:1rem;padding:.75rem 1rem}.hidden-accounts-label{color:var(--muted);text-transform:lowercase;margin:0 0 .5rem;font-size:.8125rem}.hidden-accounts-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.hidden-account-item{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.875rem;display:flex}.cash-accounts-section{border-top:1px solid var(--border);padding-top:.5rem}.danger-zone{border-top:1px solid var(--border);margin-top:2rem;padding-top:1rem}.danger-button{color:#c44}.account-connections{text-align:center}.account-connections-list{text-align:left;width:fit-content;margin:0 auto;padding-left:1.25rem;list-style:outside}.account-connection-row{align-items:center;gap:.5rem;display:inline-flex}
