:root{--paper: #f3f0e8;--card: #fffdf8;--ink: #1c1b17;--muted: #6d685d;--faint: #98917f;--line: #e6e0d2;--line-strong: #d8d1bf;--accent: #1f6b4f;--accent-deep: #164e3a;--accent-soft: #e9f1ec;--pos: #1f7a46;--neg: #b23a3a;--amber-bg: #fbf3df;--amber-line: #ecd9a6;--amber-ink: #7a5a17;--radius: 14px;--shadow: 0 1px 2px rgba(28, 27, 23, .04), 0 12px 30px -18px rgba(30, 50, 40, .28);--sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--serif: "Fraunces", Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(1100px 520px at 78% -8%,rgba(31,107,79,.1),transparent 60%),radial-gradient(900px 500px at 0% 0%,rgba(180,150,90,.08),transparent 55%);background-attachment:fixed;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:1080px;margin:0 auto;padding:2.2rem 1.25rem 4rem}.app-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:1.1rem;margin-bottom:1.6rem;border-bottom:1px solid var(--line-strong)}.brand{display:flex;align-items:baseline;gap:.6rem}.brand h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,3.2vw,2.35rem);letter-spacing:-.02em;margin:0;line-height:1}.brand .tag{font-size:.82rem;color:var(--muted);letter-spacing:.02em}.brand .mark{color:var(--accent)}.whoami{font-size:.82rem;color:var(--muted);text-align:right}.linkbtn{font:inherit;font-size:inherit;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.linkbtn:hover{color:var(--accent-deep)}.nav{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1.6rem;border-bottom:1px solid var(--line-strong)}.nav-item{font-family:var(--sans);font-size:.92rem;font-weight:500;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;padding:.55rem .95rem;margin-bottom:-1px;cursor:pointer;transition:color .12s,border-color .12s,background .12s;border-radius:8px 8px 0 0}.nav-item:hover{color:var(--ink);background:var(--accent-soft)}.nav-item.active{color:var(--accent-deep);border-bottom-color:var(--accent);font-weight:600}.equity-hero{position:relative;margin:-1.35rem -1.4rem 1.3rem;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;height:150px}.equity-hero svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.equity-hero-title{position:absolute;left:1.4rem;bottom:1rem;right:1.4rem}.equity-hero-title h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;color:#f4f1ea;margin:0;padding:0;border:none;letter-spacing:-.01em}.equity-hero-title h2:before{display:none}.equity-hero-title p{margin:.2rem 0 0;color:#c7cfce;font-size:.82rem}.chart{width:100%;height:auto;display:block;background:var(--paper);border:1px solid var(--line);border-radius:10px;margin:.4rem 0 .6rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.4rem;margin-bottom:1.2rem}.form-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.83rem;color:var(--muted)}.form-grid input{width:100%}@media (max-width: 620px){.form-grid{grid-template-columns:1fr}}.caption.neg{color:var(--neg);font-style:normal}.callout.danger{border-color:#e6c3c3;border-left-color:#b23a3a;background:#f9ecec;color:#7a2222}section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.35rem 1.4rem;margin-bottom:1.25rem;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}section:nth-of-type(2){animation-delay:.05s}section:nth-of-type(3){animation-delay:.1s}section:nth-of-type(4){animation-delay:.15s}section:nth-of-type(5){animation-delay:.2s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){section{animation:none}}h2{font-family:var(--serif);font-weight:500;font-size:1.16rem;letter-spacing:-.01em;margin:0 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.55rem}h2:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--accent);transform:rotate(45deg);flex:none}h3{font-family:var(--serif);font-weight:500;font-size:1rem;margin:0 0 .6rem}.stats{display:flex;gap:2.4rem;flex-wrap:wrap;margin-bottom:.4rem}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:var(--faint);margin-bottom:.28rem}.stat-value{font-family:var(--serif);font-weight:500;font-size:1.7rem;letter-spacing:-.015em}.stat-value .sub{font-size:.95rem;opacity:.85}table{border-collapse:collapse;width:100%;font-size:.9rem}thead th{text-align:left;font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);padding:0 .6rem .5rem;border-bottom:1px solid var(--line-strong);white-space:nowrap}tbody td{padding:.5rem .6rem;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--accent-soft)}tbody tr.sold{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}th.num{text-align:right}.pos{color:var(--pos)}.neg{color:var(--neg)}.muted{color:var(--muted)}.disclaimer{color:var(--muted);font-size:.8rem;margin:.9rem 0 0;line-height:1.55}.callout{margin-top:1.1rem;padding:.95rem 1.1rem;border:1px solid var(--amber-line);border-left:4px solid #c9992f;background:var(--amber-bg);color:var(--amber-ink);border-radius:10px;font-size:.9rem;line-height:1.6}.callout p{margin:0 0 .5rem}.callout p:last-child{margin-bottom:0}.caption{color:var(--muted);font-size:.8rem;margin:.5rem 0 0;font-style:italic}input,select,button{font-family:var(--sans);font-size:.9rem;color:var(--ink)}input[type=text],input[type=number],input:not([type]),select{background:#fff;border:1px solid var(--line-strong);border-radius:8px;padding:.42rem .6rem;transition:border-color .12s,box-shadow .12s}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=number]{font-family:var(--mono);font-variant-numeric:tabular-nums}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}input[type=file]{font-size:.85rem;color:var(--muted)}input[type=file]::file-selector-button{font:inherit;margin-right:.7rem;padding:.4rem .8rem;border:1px solid var(--line-strong);border-radius:8px;background:var(--paper);color:var(--ink);cursor:pointer}input[type=file]::file-selector-button:hover{background:var(--accent-soft);border-color:var(--accent)}.btn{font-weight:500;background:var(--accent);color:#fff;border:none;border-radius:9px;padding:.5rem 1rem;cursor:pointer;transition:background .14s,transform .05s}.btn:hover{background:var(--accent-deep)}.btn:active{transform:translateY(1px)}.add-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}.entity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.entity-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.6rem .8rem;background:var(--paper);border:1px solid var(--line);border-radius:10px}.entity-row .ename{font-weight:600}.etype{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-soft);padding:.1rem .45rem;border-radius:999px}.entity-row label{margin-left:auto;font-size:.83rem;color:var(--muted);display:flex;align-items:center;gap:.4rem}.entity-row label input{width:130px}.import-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.warnings{background:var(--amber-bg);border-color:var(--amber-line)}.warnings h3{color:var(--amber-ink)}.warnings ul{margin:0;padding-left:1.1rem}.warnings li{color:var(--amber-ink);font-size:.85rem;margin-bottom:.25rem}.login{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:2.6rem 2.4rem;text-align:center;max-width:380px;width:100%;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.login-card h1{font-family:var(--serif);font-weight:600;font-size:2rem;letter-spacing:-.02em;margin:0 0 .3rem}.login-card .mark{color:var(--accent)}.login-card p{color:var(--muted);margin:0 0 1.6rem}.login-card .btn{width:100%;padding:.7rem 1rem;font-size:.95rem}
