@font-face{font-family:'Inter Variable';font-style:normal;font-display:swap;font-weight:100 900;src:url("fonts/inter-latin-ext.1ad231aac0a8.woff2") format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter Variable';font-style:normal;font-display:swap;font-weight:100 900;src:url("fonts/inter-latin.260c81a4759b.woff2") format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{font-family:'Inter Variable',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;-webkit-font-smoothing:antialiased;
--bg:#f6f7f9;--surface:#fff;--surface-alt:#f8f9fb;--text:#1d2939;--muted:#7b8595;--secondary:#566376;--border:#e9ecf1;--accent:#e9b860;--accent-ink:#9b835a;--positive:#22866d;--negative:#bd5364;--shadow:0 1px 2px #15243d06,0 6px 20px #15243d06;color:var(--text);background:var(--bg)}
:root[data-theme=dark]{color-scheme:dark;--bg:#0c131d;--surface:#141e2b;--surface-alt:#192534;--text:#e7edf6;--muted:#94a1b3;--secondary:#afbacb;--border:#273343;--positive:#55c4a2;--negative:#ef8797;--accent-ink:#c9ab77;--shadow:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text)}
h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}
input,select,textarea{width:100%;min-width:0;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{border-color:#c4a166;box-shadow:0 0 0 3px #e9b86022;outline:none}
a:focus-visible,button:focus-visible{outline:3px solid #b88738;outline-offset:2px}
.icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}

/* shell */
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#111c2b;color:#a8b3c5;display:flex;flex-direction:column;padding:28px 16px 16px;z-index:40;overflow-y:auto;transition:transform .2s}
.brand{display:flex;align-items:flex-end;gap:2px;color:#f4f6fa;padding:0 12px;font-weight:650;font-size:23px;letter-spacing:-1.2px;margin-bottom:30px}
.brand .dot{color:#e9b860}.brand .tag{font-size:8px;letter-spacing:1px;font-weight:500;color:#8b98ae;margin:0 0 5px 4px}
.nav-group{margin-bottom:22px}.nav-group>span{display:block;color:#728097;font-size:9px;letter-spacing:1.4px;font-weight:600;margin:0 13px 8px}
.nav-group a{display:flex;align-items:center;gap:12px;min-height:40px;margin:3px 0;padding:9px 13px;border-radius:7px;font-size:13px;transition:background .15s,color .15s}
.nav-group a .icon{opacity:.75}.nav-group a:hover{background:#1a2a3d;color:#e6ecf5}
.nav-group a.active{background:#283445;color:#e9be73;font-weight:550;box-shadow:inset 2px 0 0 #e9b860}.nav-group a.active .icon{opacity:1}
.sidebar-bottom{margin-top:auto}
.sidebar-note{padding:13px 12px;margin-bottom:16px;border:1px solid #2b3646;border-radius:9px;background:linear-gradient(120deg,#1c2b3c,#172332)}
.sidebar-note strong{font-size:11px;font-weight:550;color:#d3dce8}.sidebar-note p{font-size:10.5px;line-height:1.7;margin-top:5px;color:#8493a8}
.user-menu{border-top:1px solid #2a3545;padding:16px 5px 0;display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e9dfcd;color:#69573e;font-size:11px;font-weight:650;flex-shrink:0}
.user-menu strong{display:block;color:#e0e6ef;font-size:12px;font-weight:500}.user-menu small{font-size:10px;color:#7f8ca0}
.user-menu form{margin-left:auto}.user-menu button{color:#8f9db2;padding:6px;border-radius:6px}.user-menu button:hover{background:#1a2a3d;color:#fff}
.main-shell{margin-left:244px;min-width:0}
.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 32px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}
.breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.breadcrumb strong{color:var(--text);font-weight:500}
.topbar-actions{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--secondary)}
.env{display:flex;align-items:center;gap:7px;border-left:1px solid var(--border);padding-left:16px}.env i{width:6px;height:6px;border-radius:50%;background:#8dac9d}
.icon-btn{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:var(--secondary)}.icon-btn:hover{background:var(--surface-alt)}
.menu-btn{display:none}.theme-moon{display:none}:root[data-theme=dark] .theme-moon{display:block}:root[data-theme=dark] .theme-sun{display:none}
.content{max-width:1180px;margin:0 auto;padding:30px 32px 60px}

/* page parts */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:650;color:var(--accent-ink);margin-bottom:9px}
.page-head h1{font-size:26px;font-weight:600;letter-spacing:-.7px}.page-head .sub{color:var(--muted);font-size:13px;margin-top:6px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#1d2530;font-weight:550;font-size:13px;border-radius:8px;padding:9px 15px;border:1px solid transparent;transition:filter .15s}
.btn:hover{filter:brightness(1.05)}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn.secondary:hover{background:var(--surface-alt)}
.btn.danger{background:var(--negative);color:#fff}.btn.sm{padding:6px 11px;font-size:12px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}
.metric{padding:20px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);min-width:0}
.metric.accent{border-top:2px solid #d6b579}
.metric-label{font-size:12px;color:var(--secondary)}
.metric strong{display:block;font-size:27px;letter-spacing:-.8px;font-weight:570;margin:13px 0 10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.metric-detail{font-size:11.5px;color:var(--muted);min-height:16px}
.positive{color:var(--positive)}.negative{color:var(--negative)}.muted{color:var(--muted)}
.panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;box-shadow:var(--shadow);min-width:0;overflow:hidden;margin-bottom:22px}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px}
.panel-title h2{font-size:15px;font-weight:600;letter-spacing:-.2px}.panel-title p{font-size:12px;color:var(--muted);margin-top:4px}
.panel-body{padding:0 22px 20px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.grid-2>.panel{margin-bottom:22px}
.table-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:13px}
th{font-weight:500;color:var(--muted);font-size:11px;text-align:left;padding:11px 18px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-alt)}
td{padding:14px 18px;border-bottom:1px solid var(--border);color:var(--secondary);font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}td strong{color:var(--text);font-weight:550}td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
th.num,td.num{text-align:right}tbody tr:hover td{background:var(--surface-alt)}
td.row-actions{text-align:right}td.row-actions a{color:var(--accent-ink);font-size:12px;margin-left:12px}td.row-actions a:hover{text-decoration:underline}
.empty{padding:26px 22px;color:var(--muted);font-size:13px}.empty a{color:var(--accent-ink);text-decoration:underline}
.badge{display:inline-flex;align-items:center;font-size:11px;border-radius:5px;padding:3px 8px;font-weight:500;background:var(--surface-alt);color:var(--secondary);border:1px solid var(--border)}
.badge.buy,.badge.income{color:var(--positive);background:#2397700a;border-color:#23977025}.badge.sell,.badge.expense{color:var(--negative);background:#d0607510;border-color:#d0607525}
.badge.dividend{color:#a27c37;background:#dcac5912;border-color:#dcac5930}
.warn{padding:12px 16px;border:1px solid #d0607540;background:#d0607510;color:var(--negative);border-radius:9px;margin-bottom:18px;font-size:13px}.warn a{text-decoration:underline}
.msg{padding:12px 16px;border:1px solid var(--border);background:var(--surface);border-left:3px solid var(--accent);border-radius:9px;margin-bottom:18px;font-size:13px}
.bar{height:6px;border-radius:3px;background:var(--surface-alt);overflow:hidden;min-width:70px}.bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.cat-row{margin-bottom:14px}.cat-row div:first-child{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}
.donut-wrap{display:flex;align-items:center;gap:26px;padding:0 22px 22px;flex-wrap:wrap}
.donut{width:148px;height:148px;border-radius:50%;position:relative;flex-shrink:0;background:var(--surface-alt)}.donut::after{content:"";position:absolute;inset:24%;border-radius:50%;background:var(--surface)}
.legend{flex:1;min-width:170px;list-style:none;margin:0;padding:0;font-size:13px}
.legend li{display:flex;align-items:center;gap:10px;padding:5px 0}.legend i{width:9px;height:9px;border-radius:3px;flex-shrink:0}.legend b{margin-left:auto;font-weight:550;color:var(--text);font-variant-numeric:tabular-nums}.legend span{color:var(--secondary)}
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;padding:0 22px 18px}.filters label{font-size:11px;color:var(--muted);display:block}.filters input,.filters select{margin-top:5px;width:auto;min-width:130px;padding:8px 10px}
.pager{padding:14px 22px;font-size:12px;color:var(--muted);display:flex;gap:16px;border-top:1px solid var(--border)}.pager a{color:var(--accent-ink)}

/* forms */
.form-card{max-width:640px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:6px 22px 8px}
.field label{display:block;font-size:12px;font-weight:550;color:var(--secondary);margin-bottom:6px}.field .help{display:block;font-size:11.5px;color:var(--muted);margin-top:5px}
.field.full{grid-column:1/-1}.errorlist{margin:5px 0 0;padding:0;list-style:none;color:var(--negative);font-size:12px}
.form-actions{display:flex;gap:10px;padding:16px 22px 22px}
.price-row{display:grid;grid-template-columns:1fr 150px 160px;gap:14px;align-items:center;padding:12px 22px;border-top:1px solid var(--border)}.price-row small{color:var(--muted)}

/* auth */
.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
.auth-story{background:#0e1826;color:#c4cddb;padding:44px 56px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.auth-story .brand{padding:0;margin-bottom:0}.auth-story-content{margin:auto 0;max-width:480px}
.auth-story .eyebrow{color:#c9ab77;letter-spacing:2px;margin-bottom:22px}.auth-story h1{font-size:40px;line-height:1.1;letter-spacing:-1.5px;color:#f4f6fa;font-weight:600;margin-bottom:18px}
.auth-story p{line-height:1.7;color:#97a4b8;margin-bottom:30px}
.auth-visual{border:1px solid #243145;border-radius:12px;padding:16px 18px;background:#111d2d}.auth-visual-label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#7f8da2;margin-bottom:6px}
.auth-visual svg{width:100%;height:auto;display:block}.auth-features{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#97a4b8}.auth-features span{display:flex;align-items:center;gap:7px}
.auth-footer{font-size:10px;letter-spacing:1.5px;color:#5f6e84}
.auth-form-panel{display:grid;place-items:center;padding:40px 24px;background:var(--bg)}.auth-form{width:100%;max-width:380px}
.auth-form h2{font-size:26px;font-weight:600;letter-spacing:-.7px;margin:4px 0 8px}.auth-form>p{color:var(--muted);margin-bottom:26px}.auth-form .field{margin-bottom:16px}.auth-form .btn{width:100%;justify-content:center;padding:12px}

@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr}.auth-story{display:none}}
@media(max-width:900px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:none;box-shadow:0 0 0 100vmax #0007}.main-shell{margin-left:0}.menu-btn{display:grid}.content{padding:22px 16px 50px}.topbar{padding:0 16px}.env{display:none}}
@media(max-width:560px){.metric strong{font-size:21px}.metric{padding:15px 13px}.form-grid{grid-template-columns:1fr}.price-row{grid-template-columns:1fr 1fr}.price-row>:first-child{grid-column:1/-1}}
