:root{--ink:#20242a;--muted:#66717f;--line:#d7dee7;--paper:#f5f7fa;--panel:#fff;--blue:#2d64a8;--green:#29735a;--red:#b9473f;--shadow:0 18px 44px #1f293714}*{box-sizing:border-box}body{color:var(--ink);background:linear-gradient(135deg, #2d64a81f, transparent 34%), linear-gradient(315deg, #29735a24, transparent 38%), var(--paper);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{color:#fff;background:var(--ink);cursor:pointer;border:0;border-radius:7px;padding:.7rem .95rem;font-weight:800}button:hover{filter:brightness(1.08)}button:disabled,input:disabled{cursor:not-allowed;opacity:.62}.button-content{white-space:nowrap;justify-content:center;align-items:center;gap:.45rem;display:inline-flex}.button-spinner{visibility:hidden;border:2px solid;border-right-color:#0000;border-radius:50%;flex:0 0 14px;width:14px;height:14px}.button-spinner.active{visibility:visible;animation:.7s linear infinite button-spin}@keyframes button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.button-spinner.active{animation-duration:1.4s}}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:7px;padding:.64rem .7rem}label{color:var(--muted);gap:.35rem;font-size:.82rem;font-weight:800;display:grid}.login-shell{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-panel{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#fffffff5;border-radius:8px;padding:1.5rem}.login-brand{color:#fff;background:var(--ink);border-radius:8px;place-items:center;width:52px;height:52px;margin-bottom:1.5rem;font-weight:900;display:grid}.login-panel h1{margin:.3rem 0 0;font-size:2rem;line-height:1.1}.login-copy{color:var(--muted);margin:.65rem 0 1.35rem;line-height:1.5}.login-form{gap:.85rem;display:grid}.login-form input,.login-form button{min-height:46px}.login-error{color:#6b4a00;background:#fff8df;border:1px solid #e8c165;border-radius:7px;margin:1rem 0 0;padding:.75rem;font-size:.84rem;font-weight:800}.shell{grid-template-columns:285px minmax(0,1fr);width:100%;min-width:0;min-height:100vh;display:grid}.shell.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd6;flex-direction:column;gap:1.4rem;min-width:0;height:100vh;padding:1.3rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.9rem;display:flex}.brand>div{flex:1;min-width:0}.brand>span{color:#fff;background:var(--ink);border-radius:8px;flex:none;place-items:center;width:48px;height:48px;font-weight:900;display:grid}.sidebar-toggle{border:1px solid var(--line);width:34px;height:34px;color:var(--ink);background:#fff;border-radius:50%;flex:none;place-items:center;padding:0;font-size:1rem;display:grid}.sidebar-toggle:hover,.sidebar-toggle:focus-visible{color:#fff;border-color:var(--ink);background:var(--ink);filter:none;outline-offset:2px;outline:2px solid #2d64a847}.brand h1,.brand p,.topbar h2,.topbar p,.panel-title h3,.panel-title p{margin:0}.brand h1{font-size:1.05rem}.brand p,.eyebrow,.access p,.hero p,small{color:var(--muted)}nav{gap:.35rem;display:grid}nav button{color:var(--ink);text-align:left;background:0 0;border-radius:7px;align-items:center;gap:.65rem;padding:.75rem .8rem;font-weight:800;display:flex}.nav-icon{border:1px solid var(--line);background:#fff;border-radius:6px;flex:none;place-items:center;width:24px;height:24px;font-size:.72rem;font-weight:900;display:inline-grid}nav button.nav-active .nav-icon{border-color:#b9c3cf}nav button:hover,nav button.nav-active{filter:none;background:#eef2f6}.sidebar-collapsed .sidebar{gap:1rem;padding:.8rem}.sidebar-collapsed .brand{flex-direction:column;gap:.65rem}.sidebar-collapsed .brand>div,.sidebar-collapsed .nav-label,.sidebar-collapsed .access{display:none}.sidebar-collapsed nav button{justify-content:center;padding:.65rem}.access{border:1px solid var(--line);background:#f9fbfd;border-radius:8px;gap:.75rem;margin-top:auto;padding:1rem;display:grid}.access p{margin:0;font-size:.82rem;line-height:1.35}.workspace{grid-template-columns:minmax(0,1fr);gap:1rem;min-width:0;padding:1.35rem;display:grid}.topbar,.panel-title{justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar h2{font-size:clamp(1.8rem,3.8vw,3.4rem);line-height:1}.topbar label{width:min(230px,100%)}.eyebrow{text-transform:uppercase;letter-spacing:0;font-size:.72rem}.notice{color:#6b4a00;background:#fff8df;border:1px solid #e8c165;border-radius:8px;padding:.9rem 1rem;font-weight:800}.date-tabs{gap:.55rem;display:grid}.year-tabs,.month-tabs{gap:.55rem;padding:0 0 .25rem;display:flex;overflow-x:auto}.year-tabs button{border:1px solid var(--line);min-width:74px;color:var(--muted);box-shadow:none;background:#eef2f6;padding:.58rem .8rem}.year-tabs button.active{border-color:var(--blue);color:#fff;background:var(--blue)}.month-tabs button{border:1px solid var(--line);min-width:98px;color:var(--ink);background:#fff;justify-items:start;gap:.18rem;display:grid;box-shadow:0 8px 18px #1f29370a}.month-tabs button.active{border-color:var(--ink);background:var(--ink);color:#fff}.month-tabs small{color:inherit;opacity:.72}.hero,.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#ffffffeb;border-radius:8px;padding:1.1rem}.collapsible-panel{padding:0;overflow:visible}.collapsible-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:82px;padding:1.1rem 3.4rem 1.1rem 1.1rem;list-style:none;display:flex;position:relative}.collapsible-summary::-webkit-details-marker{display:none}.collapsible-summary:after{content:"+";border:1px solid var(--line);width:24px;height:24px;color:var(--ink);background:#fff;border-radius:50%;place-items:center;font-size:1rem;font-weight:900;display:grid;position:absolute;top:50%;right:1.1rem;transform:translateY(-50%)}.collapsible-panel[open]>.collapsible-summary:after{content:"-"}.collapsible-summary:hover,.collapsible-summary:focus-visible{background:#f7f9fb;outline:none}.collapsible-summary h3,.collapsible-summary p{margin:0}.collapsible-summary h3{margin-top:.18rem}.collapsible-summary>span{color:var(--muted);white-space:nowrap;font-size:.82rem;font-weight:800}.collapsible-content{border-top:1px solid var(--line);padding:0 1.1rem 1.1rem}.hero{background:linear-gradient(125deg,#fffffff5,#ffffffc7),repeating-linear-gradient(90deg,#2d64a81c 0 1px,#0000 1px 44px),repeating-linear-gradient(0deg,#29735a14 0 1px,#0000 1px 44px);grid-template-columns:minmax(280px,.78fr) minmax(360px,1.22fr);align-items:end;gap:1.1rem;min-height:220px;display:grid}.split-lines{gap:.35rem;margin:.35rem 0 .8rem;display:grid}.split-lines>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;max-width:330px;padding-bottom:.35rem;display:flex}.split-lines span{font-size:1.1rem;font-weight:900}.split-lines strong{font-size:clamp(2rem,4vw,3.5rem);line-height:1}.hero p{max-width:56ch;line-height:1.5}.metrics{grid-template-columns:repeat(4,minmax(130px,1fr));gap:.7rem;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(150px,1fr));gap:.75rem;display:grid}.metric,.person-grid>div{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;padding:.9rem}.metric span{color:var(--muted);font-size:.78rem;font-weight:800;display:block}.metric strong{margin-top:.35rem;font-size:1.32rem;display:block}.good{color:var(--green)}.bad{color:var(--red)}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.bar{background:#edf1f5;border-radius:7px;height:22px;margin:1rem 0;display:flex;overflow:hidden}.bar span:first-child{background:var(--blue)}.bar span:last-child{background:var(--green)}.person-grid,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.person-transfer{gap:.85rem;display:grid}.person-heading{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.person-heading strong{font-size:1.25rem}.person-heading span,.transfer-plan>div>span{color:var(--muted);font-size:.78rem;font-weight:800}.money-lines{gap:0;margin:0;display:grid}.money-lines>div{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.58rem 0;display:flex}.money-lines dt{color:var(--muted);font-size:.82rem;font-weight:800}.money-lines dd{margin:0;font-size:1.02rem;font-weight:900}.transfer-plan{border:1px solid var(--line);background:#f2f5f8;border-radius:7px;padding:.72rem}.transfer-plan>div,.transfer-plan li{justify-content:space-between;align-items:center;gap:1rem;display:flex}.transfer-plan ol{gap:.35rem;margin:.65rem 0 0;padding:0;list-style:none;display:grid}.transfer-plan li{border-top:1px solid var(--line);color:var(--muted);padding-top:.45rem;font-size:.82rem;font-weight:800}.transfer-plan li strong{color:var(--ink);font-size:.95rem}.transfer-plan p{color:var(--muted);margin:.65rem 0 0;font-size:.82rem;font-weight:800}.form-grid,.checks,.row-form{margin-top:1rem}.checks{grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;display:grid}.checks label{border:1px solid var(--line);color:var(--ink);background:#fbfcfe;border-radius:7px;align-items:center;gap:.45rem;padding:.62rem;display:flex}.checks input{width:18px;height:18px;accent-color:var(--green)}.row-form{grid-template-columns:150px 90px repeat(5,minmax(105px,1fr)) minmax(140px,1.2fr) auto;gap:.55rem;display:grid}.expense-form{grid-template-columns:150px minmax(180px,1.6fr) 120px 130px 140px minmax(170px,1.4fr) auto}.suggestion-form{gap:.8rem;margin-top:1rem;display:grid}.suggestion-list{gap:.55rem;display:grid}.suggestion-row{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;grid-template-columns:34px 150px minmax(180px,1.6fr) 120px 130px 140px minmax(170px,1.4fr);align-items:center;gap:.55rem;padding:.62rem;display:grid}.suggestion-check{place-items:center;display:grid}.suggestion-check input{width:18px;height:18px;accent-color:var(--green)}.empty-state{color:var(--muted);margin:0;font-weight:800}.term-guide{border:1px solid var(--line);color:var(--muted);background:#f7f9fb;border-radius:7px;gap:.55rem;margin-top:.9rem;padding:.7rem .8rem;font-size:.78rem;display:grid}.term-guide>div{flex-wrap:wrap;align-items:center;gap:.45rem .75rem;display:flex}.term-guide strong{color:var(--ink)}.defined-term{align-items:center;gap:.28rem;display:inline-flex}.info-tip{color:var(--ink);text-transform:none;place-items:center;display:inline-grid;position:relative}.info-tip>button{color:#55616f;background:#fff;border:1px solid #9ca8b5;border-radius:50%;place-items:center;width:17px;min-width:17px;height:17px;padding:0;font-size:.68rem;font-weight:900;line-height:1;display:grid}.info-tip>button:hover,.info-tip>button:focus-visible{color:#fff;border-color:var(--ink);background:var(--ink);filter:none;outline-offset:2px;outline:2px solid #2d64a847}.info-tip>span[role=tooltip]{z-index:30;color:#fff;text-align:left;text-transform:none;opacity:0;visibility:hidden;pointer-events:none;background:#20242a;border-radius:7px;width:min(280px,100vw - 36px);padding:.65rem .72rem;font-size:.76rem;font-weight:650;line-height:1.4;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-3px);box-shadow:0 12px 28px #1f293738}.info-tip:hover>span[role=tooltip],.info-tip:focus-within>span[role=tooltip]{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.metrics .metric:nth-child(n+3) .info-tip>span[role=tooltip],.stats-grid .metric:nth-child(n+3) .info-tip>span[role=tooltip],.person-grid>div:last-child .info-tip>span[role=tooltip]{left:auto;right:0;transform:translateY(-3px)}.metrics .metric:nth-child(n+3) .info-tip:hover>span[role=tooltip],.metrics .metric:nth-child(n+3) .info-tip:focus-within>span[role=tooltip],.stats-grid .metric:nth-child(n+3) .info-tip:hover>span[role=tooltip],.stats-grid .metric:nth-child(n+3) .info-tip:focus-within>span[role=tooltip],.person-grid>div:last-child .info-tip:hover>span[role=tooltip],.person-grid>div:last-child .info-tip:focus-within>span[role=tooltip]{transform:translateY(0)}.trend-chart{gap:.7rem;margin-top:1rem;display:grid}.trend-row{grid-template-columns:80px minmax(180px,1fr) 140px;align-items:center;gap:.75rem;display:grid}.trend-row>span{color:var(--muted);font-weight:800}.trend-row>div{background:#edf1f5;border-radius:7px;height:30px;position:relative;overflow:hidden}.trend-row i,.trend-row b{min-width:2px;height:50%;position:absolute;left:0}.trend-row i{background:#2d64a89e;top:0}.trend-row b{background:#29735ac7;bottom:0}.trend-row strong{text-align:right}.card-trend-scroll{margin-top:1rem;overflow-x:auto}.card-trend-chart{width:100%;min-width:760px;height:auto;display:block}.card-grid-line{stroke:#dfe5ec;stroke-width:1px}.card-axis-label,.card-month-label{fill:var(--muted);font-size:12px;font-weight:800}.card-line{fill:none;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.card-line.costco,.card-point.costco{stroke:var(--blue)}.card-line.rogers,.card-point.rogers{stroke:var(--green)}.card-point{fill:#fff;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none}.card-point-target{cursor:pointer;outline:none}.card-point-hit-area{fill:#0000}.card-point-tooltip{opacity:0;pointer-events:none;transition:opacity .12s}.card-point-target:hover .card-point-tooltip,.card-point-target:focus .card-point-tooltip,.card-point-target:focus-visible .card-point-tooltip{opacity:1}.card-point-target:focus-visible .card-point{stroke-width:5px}.card-point-tooltip rect{fill:#20252d;stroke:#fff3;stroke-width:1px}.card-point-tooltip text{fill:#fff;letter-spacing:0;font-size:12px}.card-tooltip-month{font-weight:800}.card-tooltip-value{fill:#dce4ed;font-weight:700}.legend{color:var(--muted);gap:1rem;margin-top:.9rem;font-size:.85rem;font-weight:800;display:flex}.legend span{align-items:center;gap:.4rem;display:inline-flex}.legend i{border-radius:999px;width:18px;height:10px;display:inline-block}.legend .planned{background:#2d64a89e}.legend .actual{background:#29735ac7}.legend .costco{background:var(--blue)}.legend .rogers{background:var(--green)}.category-list{gap:.65rem;margin-top:1rem;display:grid}.category-list div{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;justify-content:space-between;gap:1rem;padding:.75rem;display:flex}.category-list span{color:var(--muted);font-weight:800}.table-wrap{border:1px solid var(--line);border-radius:8px;margin-top:1rem;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:780px}.editable-table.paystub-table{min-width:1260px}.editable-table.expense-table{min-width:1040px}.editable-table input,.editable-table select{width:100%;min-width:100px;padding:.48rem .55rem;font-size:.82rem}.editable-table td:last-child,.editable-table th:last-child{white-space:nowrap;z-index:1;background:#fff;width:1%;position:sticky;right:0;box-shadow:-8px 0 12px #1f29370d}.editable-table th:last-child{background:#f2f5f8}.table-actions{align-items:center;gap:.35rem;display:flex}.panel-actions{align-items:center;gap:.55rem;display:flex}.secondary-button{border:1px solid var(--line);color:var(--ink);box-shadow:none;background:#eef2f6}.table-button{border:1px solid var(--line);min-height:34px;color:var(--ink);box-shadow:none;background:#eef2f6;padding:.42rem .6rem;font-size:.76rem}.table-button.save{border-color:var(--green);background:var(--green);color:#fff}.table-button.delete{color:var(--red);background:#fff;border-color:#b03e3e52}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.72rem}th{color:#3b4652;text-transform:uppercase;letter-spacing:0;background:#f2f5f8;font-size:.76rem}.report{resize:vertical;min-height:430px;margin-top:1rem;line-height:1.45}@media (max-width:1180px){.shell,.hero,.grid.two{grid-template-columns:1fr}.sidebar{height:auto;position:static}.shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar-collapsed .sidebar{flex-direction:row;align-items:center;padding:.75rem}.sidebar-collapsed .brand{flex-direction:row}.sidebar-collapsed .brand>span{width:40px;height:40px}.sidebar-collapsed nav{margin-left:auto;display:flex}.access{margin-top:0}.row-form,.expense-form,.suggestion-row,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.workspace,.sidebar{padding:.9rem}.topbar,.panel-title{flex-direction:column;align-items:stretch}.panel-actions{grid-template-columns:1fr;display:grid}.metrics,.person-grid,.form-grid,.checks,.row-form,.expense-form,.suggestion-row,.stats-grid,.trend-row{grid-template-columns:1fr}.trend-row strong{text-align:left}.info-tip>span[role=tooltip]{width:auto;position:fixed;inset:auto 15px 15px;transform:translateY(3px)!important}.info-tip:hover>span[role=tooltip],.info-tip:focus-within>span[role=tooltip]{transform:translateY(0)!important}}
