:root{--green: #2e3d32;--green-2: #3d5244;--gold: #c2a671;--gold-light: #d4bc92;--gold-tint: #f7f0e4;--ground: #f2efe8;--card: #faf8f4;--line: #e8e5de;--ink: #1c1c1a;--ink-2: #2e2e2b;--muted: #6e6c64;--red: #9b3b2f;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Jost", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased}h1{font-family:var(--serif);font-weight:400;font-size:40px;color:var(--green);margin:6px 0 24px}p{line-height:1.6}a{color:var(--green)}.eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.rule{height:1px;background:var(--gold);opacity:.6}.card{background:var(--card);border:1px solid var(--line);padding:24px}.splash{min-height:100vh;display:grid;place-items:center;font-family:var(--serif);font-size:32px;color:var(--green)}.shell{display:flex;flex-wrap:wrap;min-height:100vh}.sidebar{flex:1 1 220px;max-width:100%;background:var(--green);color:#faf8f4;padding:28px 22px;display:flex;flex-direction:column;gap:24px}.content{flex:999 1 560px;min-width:0;padding:40px 48px 64px}@media(max-width:800px){.shell{flex-direction:column;flex-wrap:nowrap}.sidebar{flex:none;padding:18px 16px 12px;gap:12px}.content{flex:1;padding:24px 16px 48px}.account .eyebrow{display:none}}.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:.02em}.brand.dark{color:var(--green)}.nav{display:flex;flex-direction:column;gap:4px}@media(max-width:800px){.nav{flex-direction:row;flex-wrap:wrap}}.nav a{color:#faf8f4;text-decoration:none;padding:12px 14px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border-radius:2px}.nav a:hover{background:var(--green-2)}.nav a.active{background:var(--gold);color:var(--green)}.account{margin-top:auto;border:1px solid var(--green-2);padding:14px;font-size:13px;font-weight:300;display:flex;flex-direction:column;gap:4px;word-break:break-all}.account .eyebrow{color:var(--gold-light)}button{font-family:var(--sans);cursor:pointer}button.link{align-self:flex-start;background:none;border:none;color:var(--gold-light);padding:6px 0;font-size:12px;letter-spacing:.1em;text-transform:uppercase;min-height:32px}button.primary{background:var(--green);color:#faf8f4;border:none;padding:15px 22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;min-height:48px}button.primary:hover{background:var(--green-2)}button:disabled{opacity:.6;cursor:default}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);padding:36px 32px;display:flex;flex-direction:column;gap:18px}.tagline{margin:-6px 0 0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:19px;color:var(--ink-2)}label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.06em;color:var(--ink-2)}input{font-family:var(--sans);font-size:16px;padding:12px 14px;border:1px solid var(--line);background:var(--ground);color:var(--ink);border-radius:0}input:focus{outline:2px solid var(--gold);outline-offset:1px}.error{margin:0;color:var(--red);font-size:14px}.page{display:flex;flex-direction:column;gap:20px;max-width:1280px}.page h1{margin:4px 0 0}.page h2{font-family:var(--serif);font-weight:400;font-size:23px;color:var(--green);margin:0 0 14px}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}.head-meta,.muted{color:var(--muted);font-size:13px}.small{font-size:12px}.footnote{color:var(--muted);font-size:11px;margin:10px 0 0;line-height:1.5}.card-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.card-head h2{margin:0}.card.empty{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.notice{margin:0;background:#eef2ee;border-left:0;padding:12px 14px;font-size:13px;line-height:1.5}.notice.gold{background:var(--gold-tint)}.up{color:#2f6b3f}.down,.warn{color:var(--red)}.strong{font-weight:500;color:var(--green)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.kpi{background:var(--card);border:1px solid var(--line);padding:18px 20px;display:flex;flex-direction:column;gap:4px}.kpi.gold{background:var(--gold-tint);border-color:var(--gold-light)}.kpi-value{font-family:var(--serif);font-size:30px;font-weight:500;color:var(--green);line-height:1.15}.kpi-value.up{color:#2f6b3f}.kpi-value.down{color:var(--red)}.kpi-sub{font-size:12px;font-weight:300;color:var(--ink-2)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}.table th{text-align:left;font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:10px 8px;border-bottom:1px solid var(--gold);white-space:nowrap}.table td{padding:11px 8px;border-bottom:1px solid var(--line);vertical-align:top}.table .r{text-align:right;white-space:nowrap}.table td:first-child{min-width:150px}.table.compact,.table.compact td:first-child{min-width:0}.table.compact td.sub{white-space:normal}.table .sub,.sub{font-size:11px;color:var(--muted)}.table tr.editing input{width:96px;padding:6px 8px;font-size:13px;text-align:right}.badge{font-size:11px;padding:3px 8px;letter-spacing:.04em}.badge.buy{background:#eef2ee;color:var(--green)}.badge.sell{background:var(--gold-tint);color:#6b5320}a.button{display:inline-block;text-decoration:none}a.button.primary{background:var(--green);color:#faf8f4;padding:15px 22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}button.secondary{background:transparent;color:var(--green);border:1px solid var(--green);padding:14px 22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;min-height:48px}.page button.link{color:var(--green);text-decoration:underline;text-underline-offset:3px;letter-spacing:.04em;text-transform:none;font-size:13px;padding:4px 2px;min-height:32px}.page button.link.danger{color:var(--red)}.confirm{display:inline-flex;gap:10px}.form{display:flex;flex-direction:column;gap:18px}.form h2{margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}select{font-family:var(--sans);font-size:16px;padding:12px 14px;border:1px solid var(--line);background:var(--ground);color:var(--ink);border-radius:0}.actions{display:flex;flex-wrap:wrap;gap:10px}.segmented{border:none;padding:0;margin:0;display:flex;gap:0}.segmented legend{font-size:12px;letter-spacing:.06em;color:var(--ink-2);margin-bottom:6px}.segmented label{flex-direction:row;align-items:center;justify-content:center;min-width:110px;min-height:44px;border:1px solid var(--green);color:var(--green);font-size:13px;cursor:pointer}.segmented label.on{background:var(--green);color:#faf8f4}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented label:focus-within{outline:2px solid var(--gold);outline-offset:1px}.picked{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--ground);padding:12px 14px}.picker,.add-security{display:flex;flex-direction:column;gap:10px}.add-security>button.primary{align-self:flex-start}.results{list-style:none;margin:0;padding:0;border:1px solid var(--line);max-height:320px;overflow-y:auto}.results li+li{border-top:1px solid var(--line)}.results button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:var(--card);border:none;padding:12px 14px;min-height:52px;color:var(--ink)}.results button:hover,.results button:focus-visible{background:var(--gold-tint)}.results .name{display:block;font-size:14px}.results .tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);white-space:nowrap}.year-switch{display:flex;flex-wrap:wrap;gap:4px}.year-switch button{min-width:64px;min-height:40px;border:1px solid var(--line);background:var(--card);color:var(--green);font-size:13px}.year-switch button.on{background:var(--green);color:#faf8f4;border-color:var(--green)}.legend{display:flex;gap:16px;font-size:12px}.legend span{display:flex;align-items:center;gap:6px}.sw{display:inline-block;width:11px;height:11px}.sw.paid,.bar.paid{background:var(--green)}.sw.expected,.bar.expected{background:var(--gold-light)}.bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;height:220px;padding-top:8px}.bar-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.bar-amt{font-size:10px;color:var(--muted);height:14px;white-space:nowrap}.bar-stack{flex:1;width:100%;max-width:34px;display:flex;flex-direction:column;justify-content:flex-end;border-bottom:1px solid var(--line)}.bar-label{font-size:11px;color:var(--ink-2)}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px}@media(max-width:480px){.two-col{grid-template-columns:1fr}.bars{gap:3px}.bar-amt{display:none}}.upcoming{list-style:none;margin:0;padding:0}.upcoming li{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--line)}.upcoming .day{width:52px;text-align:center;font-family:var(--serif);font-size:20px;color:var(--green);line-height:1}.upcoming .day span{display:block;font-family:var(--sans);font-size:10px;color:var(--muted);margin-top:3px}.upcoming .what{flex:1;min-width:0;font-size:14px}.upcoming .amt{font-weight:500;color:var(--green);white-space:nowrap;font-size:14px}.card.attention{border-color:var(--gold);background:var(--gold-tint);display:flex;flex-direction:column;gap:10px}.card.attention .muted{margin:0;color:var(--ink-2)}.pending{list-style:none;margin:0;padding:0}.pending li{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--gold-light)}.pending .what{flex:1 1 260px;min-width:0;font-size:14px}.pending input{background:var(--card);padding:9px 12px}label.inline{flex-direction:row}button.small-btn{min-height:42px;padding:10px 16px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.announce{border-top:1px solid var(--line);margin-top:12px;padding-top:14px;display:flex;flex-direction:column;gap:12px}.announce h3{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--green);margin:0}.notice a{color:var(--green);font-weight:500}@media(max-width:800px){.account{margin-top:0;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;border:none;padding:0}.account .eyebrow{display:none}}
