:root{color:#1b2721;background:#f4f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}a{color:#2f6f88;font-weight:700;text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:#173128;color:#f7fbf7;padding:28px 18px;position:sticky;top:0;height:100vh}.brand{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;padding:0 6px 26px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:#d9efe1;color:#173128}.brand h1{margin:0;font-size:1.15rem;line-height:1.2}.brand p{margin:4px 0 0;color:#b7c8bd;font-size:.85rem}.tab-list{display:grid;gap:6px}.tab{align-items:center;background:transparent;border:0;border-radius:8px;color:#c7d8ce;display:grid;grid-template-columns:24px 1fr;gap:10px;min-height:44px;padding:0 12px;text-align:left}.tab:hover,.tab.active{background:#24483b;color:#fff}.main-panel{padding:28px;min-width:0}.topbar{align-items:center;display:flex;justify-content:space-between;gap:18px;margin-bottom:22px}.eyebrow{color:#668074;font-size:.74rem;font-weight:800;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}.net-worth{color:#14231c;font-size:clamp(2rem,5vw,4rem);font-weight:850;line-height:1}.topbar-actions{align-items:center;display:flex;gap:10px}.primary-button,.icon-button{align-items:center;border:0;border-radius:8px;display:inline-flex;justify-content:center;min-height:42px;transition:transform .15s ease,background .15s ease}.primary-button{background:#23694f;color:#fff;font-weight:800;gap:8px;padding:0 16px}.primary-button:hover,.icon-button:hover{transform:translateY(-1px)}.icon-button{background:#e6eee9;color:#173128;width:42px}.icon-button.danger{background:#f4e6e3;color:#a23b2a}.notice{background:#fff8db;border:1px solid #ead879;border-radius:8px;color:#6b5a16;margin-bottom:16px;padding:12px 14px}.lookup-status{align-items:center;background:#eaf4f0;border:1px solid #cbded5;border-radius:8px;color:#315748;display:flex;font-size:.9rem;font-weight:800;min-height:42px;padding:0 14px}.content-stack{display:grid;gap:18px}.metric-grid{display:grid;gap:14px;grid-template-columns:repeat(5,minmax(0,1fr))}.metric-card,.panel,.entry-form{background:#fff;border:1px solid #dfe7e2;border-radius:8px;box-shadow:0 18px 50px #21342a14}.metric-card{min-height:152px;padding:18px}.metric-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#e6f2ec;color:#23694f;margin-bottom:16px}.metric-card p{color:#668074;font-size:.9rem;font-weight:700;margin:0 0 8px}.metric-card strong{display:block;font-size:1.45rem;line-height:1.1}.metric-card span{color:#789085;display:block;font-size:.82rem;margin-top:8px}.split-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.panel{min-width:0;padding:20px}.panel-heading{align-items:center;display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.panel h2{font-size:1.15rem;margin:0}.allocation-list,.source-list{display:grid;gap:14px}.allocation-row{align-items:center;display:grid;grid-template-columns:120px minmax(80px,1fr) 54px;gap:12px}.allocation-row span{color:#40594d;font-weight:700}.bar-track{background:#edf2ef;border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:#2f7d65;height:100%}.source-row{align-items:center;border-bottom:1px solid #edf2ef;display:flex;justify-content:space-between;gap:12px;padding-bottom:12px}.source-row:last-child{border-bottom:0;padding-bottom:0}.source-row strong,.source-row span{display:block}.source-row span{color:#789085;font-size:.84rem;margin-top:3px}.source-row em{color:#40594d;font-style:normal;font-weight:800;text-align:right}.entry-form{align-items:end;display:grid;gap:12px;grid-template-columns:repeat(5,minmax(110px,1fr)) auto;padding:16px}.entry-form.wide{grid-template-columns:repeat(4,minmax(120px,1fr)) auto}.field{display:grid;gap:6px}.field span{color:#526b5f;font-size:.78rem;font-weight:800}.field input,.field select,.table-input{background:#f8faf8;border:1px solid #d6e0da;border-radius:8px;color:#1b2721;min-height:42px;min-width:0;padding:0 11px;width:100%}.field input:focus,.field select:focus,.table-input:focus{border-color:#2f7d65;box-shadow:0 0 0 3px #2f7d6529;outline:0}.form-button{min-width:84px}.table-panel{padding:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:760px;width:100%}th,td{border-bottom:1px solid #edf2ef;padding:14px 16px;text-align:left;vertical-align:middle}th{color:#668074;font-size:.76rem;font-weight:850;text-transform:uppercase}.sort-button{align-items:center;background:transparent;border:0;color:inherit;display:inline-flex;gap:8px;min-height:28px;padding:0;text-transform:uppercase}.sort-button span:last-child{color:#7e958a;font-size:.68rem;font-weight:850}.sort-button.active{color:#23694f}tbody tr:last-child td{border-bottom:0}.name-cell{display:grid;gap:4px}.name-cell strong{color:#1b2721}.name-cell span{color:#789085;font-size:.86rem}.empty-cell{color:#789085;height:140px;text-align:center}.positive{color:#23734f;font-weight:800}.negative{color:#b74432;font-weight:800}.row-actions{align-items:center;display:flex;gap:8px}.row-actions .icon-button{min-height:36px;width:36px}.shares-input{max-width:120px}.chart-panel{min-height:420px}.empty-state{align-items:center;color:#789085;display:grid;gap:8px;min-height:300px;place-items:center;text-align:center}.empty-state strong{color:#1b2721;font-size:2rem}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-form,.entry-form.wide{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.tab-list{grid-template-columns:repeat(2,minmax(0,1fr))}.main-panel{padding:20px}.topbar{align-items:stretch;flex-direction:column}.topbar-actions{justify-content:flex-start}.split-grid,.metric-grid,.entry-form,.entry-form.wide{grid-template-columns:1fr}}.lock-screen{align-items:center;background:#0d1f18;display:flex;justify-content:center;min-height:100vh;overflow:hidden;position:relative}.lock-bg-orb{border-radius:50%;filter:blur(80px);opacity:.45;position:absolute;pointer-events:none}.lock-bg-orb-1{animation:orb-float 8s ease-in-out infinite;background:radial-gradient(circle,#1f6b50 0%,transparent 70%);height:500px;left:-100px;top:-100px;width:500px}.lock-bg-orb-2{animation:orb-float 11s ease-in-out infinite reverse;background:radial-gradient(circle,#123d2b 0%,transparent 70%);bottom:-120px;height:450px;right:-80px;width:450px}.lock-bg-orb-3{animation:orb-float 14s ease-in-out infinite;background:radial-gradient(circle,#2b8a68 0%,transparent 70%);bottom:30%;height:300px;left:40%;opacity:.25;width:300px}@keyframes orb-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-40px) scale(1.05)}66%{transform:translate(-20px,25px) scale(.97)}}.lock-card{animation:card-in .5s cubic-bezier(.22,1,.36,1) both;background:#ffffff0f;backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1px solid rgba(255,255,255,.12);border-radius:20px;box-shadow:0 4px 6px #0006,0 24px 60px #00000080,inset 0 1px #ffffff1a;padding:44px 40px 36px;position:relative;width:min(420px,calc(100vw - 32px));z-index:1}@keyframes card-in{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.lock-logo{margin-bottom:32px;text-align:center}.lock-logo-icon{align-items:center;background:linear-gradient(135deg,#2f7d65,#1c5e4a);border-radius:16px;box-shadow:0 8px 24px #2f7d6566;color:#d9efe1;display:inline-flex;height:64px;justify-content:center;margin-bottom:16px;width:64px}.lock-title{color:#f0f8f4;font-size:1.45rem;font-weight:850;letter-spacing:-.02em;line-height:1.2;margin:0 0 8px}.lock-subtitle{color:#7aaa94;font-size:.9rem;margin:0}.lock-form{display:grid;gap:14px}.lock-input-wrapper{align-items:center;display:flex;position:relative}.lock-input-icon{color:#5a9a7e;left:14px;pointer-events:none;position:absolute}.lock-input{background:#ffffff12;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#f0f8f4;font-size:1rem;height:50px;padding:0 14px 0 40px;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;width:100%}.lock-input::placeholder{color:#5a7a6e}.lock-input:focus{background:#ffffff1a;border-color:#2f7d65;box-shadow:0 0 0 3px #2f7d6540;outline:none}.lock-input:disabled{opacity:.5}.lock-error{animation:shake .4s ease;background:#b43c282e;border:1px solid rgba(180,60,40,.4);border-radius:8px;color:#f4a090;font-size:.875rem;margin:0;padding:10px 14px;text-align:center}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.lock-button{align-items:center;background:linear-gradient(135deg,#2f7d65,#1d5a46);border:0;border-radius:10px;box-shadow:0 4px 16px #2f7d6559,inset 0 1px #ffffff1f;color:#fff;display:flex;font-size:1rem;font-weight:800;height:50px;justify-content:center;letter-spacing:.02em;position:relative;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;width:100%}.lock-button:hover:not(:disabled){box-shadow:0 6px 20px #2f7d6580,inset 0 1px #ffffff26;transform:translateY(-1px)}.lock-button:active:not(:disabled){transform:translateY(0)}.lock-button:disabled{opacity:.55;cursor:not-allowed}.lock-button-spinner{animation:spin .7s linear infinite;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;display:inline-block;height:20px;width:20px}.lock-divider{border:none;border-top:1px solid rgba(255,255,255,.08);margin:24px 0 0}.lock-forgot{padding-top:16px;text-align:center}.lock-forgot-link{background:transparent;border:0;color:#5a9a7e;cursor:pointer;font-size:.875rem;font-weight:700;padding:0;transition:color .15s ease}.lock-forgot-link:hover:not(:disabled){color:#78c4a0;text-decoration:underline}.lock-forgot-link:disabled{opacity:.6;cursor:not-allowed}.lock-forgot-ok{align-items:center;color:#78c4a0;display:inline-flex;font-size:.875rem;font-weight:700;gap:6px;margin:0}.lock-forgot-fail{color:#f4a090;font-size:.875rem;margin:0}
