:root{--ink:#08252c;--muted:#668086;--line:#dce7e4;--canvas:#f4f7f5;--mint:#c9f1df;--lime:#bbf04a;--orange:#ffb35c;--red:#d95c53;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.eyebrow{letter-spacing:.13em;font:500 10px 'DM Mono';margin:0 0 10px;color:#6e8687}.auth-shell{display:grid;min-height:100vh;grid-template-columns:1.15fr .85fr}.auth-brand{background:var(--ink);color:#ecf9f2;padding:11vh 11%;position:relative;overflow:hidden}.brand-mark{display:inline-grid;place-items:center;color:var(--lime);font-size:38px;line-height:1}.auth-brand h1{font:700 clamp(48px,6vw,90px)/.96 Fraunces,serif;letter-spacing:-.06em;margin:18vh 0 25px;position:relative}.auth-brand h1 em{color:var(--lime)}.auth-brand>p:not(.eyebrow){font-size:17px;color:#b5cdca;max-width:330px;line-height:1.6;position:relative}.brand-orbit{position:absolute;border:1px solid #4a7474;border-radius:50%}.orbit-one{width:640px;height:640px;bottom:-330px;right:-160px}.orbit-two{width:380px;height:380px;bottom:-200px;right:-35px}.auth-panel{display:grid;place-items:center;padding:30px;background:#f9fbfa}.login-card{width:min(380px,100%)}h2{font:600 28px/1.1 Fraunces,serif;letter-spacing:-.035em;margin:0 0 10px}.muted{color:var(--muted);margin:0 0 30px}.login-card label,.form-grid label{display:grid;gap:8px;font-size:13px;font-weight:600;margin:16px 0}.login-card input,.form-grid input,.form-grid select{background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px 14px;outline:none;width:100%;color:var(--ink)}input:focus,select:focus{border-color:#4d918a;box-shadow:0 0 0 3px #dcefe9}.password-wrap{position:relative}.password-wrap input{padding-right:44px}.password-wrap button{position:absolute;right:6px;top:4px;border:0;background:none;color:#527073;padding:9px}.primary-btn,.secondary-btn{border:0;border-radius:9px;padding:13px 18px;font-weight:700}.primary-btn{background:var(--ink);color:#fff}.primary-btn:hover{background:#17414a}.primary-btn span{margin-left:12px;color:var(--lime)}.full{width:100%;margin-top:8px}.security-note{text-align:center;font:11px 'DM Mono';color:#789091;margin-top:22px}.form-error{color:#b53d36;min-height:18px;font-size:12px;margin:10px 0}.app-shell{min-height:100vh;display:flex}.sidebar{width:240px;background:var(--ink);color:#e6f5ef;padding:27px 16px;display:flex;flex-direction:column;position:fixed;height:100vh}.side-brand{font:700 21px Fraunces;display:flex;align-items:center;gap:9px;padding:0 11px}.side-brand .brand-mark{font-size:27px}nav{margin-top:68px;display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#9eb6b6;text-align:left;padding:12px;border-radius:8px;font-weight:600}.nav-item span{font:19px 'DM Mono';margin-right:11px}.nav-item:hover,.nav-item.active{background:#163940;color:white}.sidebar-bottom{margin-top:auto;border-top:1px solid #244951;padding:18px 9px 0;display:flex;align-items:center;gap:9px;font-size:12px}.sidebar-bottom small{display:block;color:#86a3a2;margin-top:3px}.avatar{background:var(--lime);color:var(--ink);font-weight:700;border-radius:50%;width:31px;height:31px;display:grid;place-items:center}.sidebar-bottom button{margin-left:auto;background:transparent;border:0;color:#9eb6b6;font-size:19px}.content{margin-left:240px;width:calc(100% - 240px);padding:34px clamp(24px,5vw,76px) 70px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.topbar h1{font:600 34px/1 Fraunces;margin:0;letter-spacing:-.04em}.today{color:var(--muted);font:13px 'DM Mono'}.page{display:none}.page.active{display:block}.hero-card{min-height:215px;background:var(--ink);color:#fff;border-radius:16px;padding:31px 35px;position:relative;overflow:hidden;display:flex;align-items:flex-end}.hero-card p,.stat-highlight p{font:11px 'DM Mono';color:#b5d2cc;margin:0 0 10px}.hero-card h2{font-size:45px;letter-spacing:-.06em}.hero-card span{color:var(--lime);font-size:13px}.hero-chart{position:absolute;inset:0 0 0 40%;opacity:.65;background:linear-gradient(155deg,transparent 48%,#73c9a6 49%,transparent 50%),linear-gradient(25deg,transparent 42%,#bbf04a 43%,transparent 44%)}.round-add{position:absolute;right:28px;top:25px;background:var(--lime);border:0;border-radius:50%;height:42px;width:42px;color:var(--ink);font-size:28px}.metric-grid,.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:15px 0 43px}.metric-grid article,.stats-grid article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:20px}.metric-grid span,.stats-grid p{display:block;font-size:12px;color:var(--muted);margin:0 0 15px}.metric-grid strong,.stats-grid strong{font:600 25px Fraunces;letter-spacing:-.04em}.metric-grid small,.stats-grid span{display:block;font-size:11px;color:#84999b;margin-top:7px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:25px 0 15px}.section-heading h2{font-size:24px}.text-btn{border:0;background:transparent;color:#278477;font-weight:700}.position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.position-card{background:white;border:1px solid var(--line);padding:18px;border-radius:11px}.position-card header{display:flex;gap:11px;align-items:center}.asset-icon{width:36px;height:36px;border-radius:9px;background:#e3f4ea;display:grid;place-items:center;font-weight:700;color:#187060}.position-card h3{font-size:15px;margin:0}.position-card header small{font:11px 'DM Mono';color:var(--muted)}.position-card .numbers{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:18px;padding-top:14px;font-size:12px}.position-card .numbers strong{display:block;font:600 18px Fraunces;margin-top:3px}.page-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-actions p{color:var(--muted);margin:0}.investment-list{display:grid;gap:11px}.investment-row{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px 18px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:center;gap:15px}.investment-row strong{display:block}.investment-row small{color:var(--muted);font-size:12px}.badge{display:inline-block;background:#e6f4ed;color:#257061;border-radius:20px;font:10px 'DM Mono';padding:4px 7px}.badge.closed{background:#edf0f0;color:#607477}.sale-link{border:0;border-radius:7px;background:#e9f5f0;color:#17675c;font-weight:700;padding:8px 11px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:11px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font:10px 'DM Mono';color:#749092;background:#f7faf8;padding:13px 18px}td{padding:16px 18px;border-top:1px solid var(--line)}td strong{font-weight:700}.positive{color:#13805f}.negative{color:#c04d47}.empty{background:#fff;border:1px dashed #bfcfcb;border-radius:11px;color:var(--muted);padding:36px;text-align:center}.stats-grid{margin-top:0}.stat-highlight{background:var(--ink)!important;color:white}.chart-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 22px 22px;margin-top:15px}.profit-chart{height:180px;display:flex;align-items:flex-end;gap:8px;padding-top:20px;border-bottom:1px solid var(--line)}.bar{background:var(--lime);min-width:18px;flex:1;border-radius:5px 5px 0 0;position:relative}.bar.negative{background:var(--red)}.bar i{position:absolute;bottom:-20px;font:9px 'DM Mono';font-style:normal;color:var(--muted);white-space:nowrap}.asset-breakdown{display:flex;gap:12px;flex-wrap:wrap}.breakdown-item{padding:12px 15px;border-radius:8px;background:#f1f7f4;font-size:13px}.breakdown-item strong{margin-left:6px}.modal{border:0;border-radius:15px;padding:0;width:min(610px,calc(100vw - 28px));box-shadow:0 25px 80px #08252c55}.modal::backdrop{background:#08252c99}.modal form{padding:26px}.modal-head{display:flex;justify-content:space-between;align-items:start}.close-modal{background:transparent;border:0;font-size:27px;color:#5d7779}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-grid label{margin:10px 0}.span-2{grid-column:span 2}.upload-zone{border:1px dashed #8db7ad;border-radius:9px;min-height:110px;place-items:center;text-align:center;padding:14px!important;cursor:pointer;color:#436e6c}.upload-zone.drag{background:#eaf8f1;border-color:#1a8b72}.upload-zone strong{font-size:13px}.upload-zone small{font-size:11px;color:#718c8d}.upload-icon{font-size:22px}.upload-zone #image-preview img{max-height:65px;max-width:100px;border-radius:5px;margin-top:8px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.secondary-btn{background:#edf2f0;color:#426468}.available-info{background:#eff7f3;padding:12px;border-radius:8px;font-size:12px;color:#386965}.sale-preview{background:var(--ink);color:#fff;border-radius:10px;margin-top:16px;padding:14px 17px}.sale-preview span,.sale-preview small{font-size:11px;color:#b6d2ca}.sale-preview strong{font:600 22px Fraunces;display:block;margin:3px 0}.toast{position:fixed;bottom:22px;right:22px;background:var(--ink);color:#fff;padding:13px 16px;border-radius:8px;font-size:13px;transform:translateY(80px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}.mobile-menu{display:none}@media(max-width:760px){.auth-shell{grid-template-columns:1fr}.auth-brand{min-height:220px;padding:35px}.auth-brand h1{margin:34px 0 12px;font-size:48px}.auth-panel{padding:45px 25px}.sidebar{transform:translateX(-100%);transition:.2s;z-index:5}.sidebar.show{transform:none}.content{margin:0;width:100%;padding:25px 18px 50px}.mobile-menu{display:block;border:0;background:none;font-size:21px;color:var(--ink);margin-right:10px}.topbar{justify-content:start}.today{display:none}.topbar h1{font-size:28px}.metric-grid,.stats-grid{grid-template-columns:1fr;gap:9px;margin-bottom:30px}.hero-card{padding:25px;min-height:180px}.hero-card h2{font-size:35px}.page-actions{align-items:flex-start;gap:15px}.page-actions p{font-size:13px}.investment-row{grid-template-columns:1fr 1fr}.investment-row>div:first-child{grid-column:span 2}.investment-row .sale-link{justify-self:end}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.modal form{padding:20px}.position-grid{grid-template-columns:1fr}}
