:root{font-family:Arial,'Malgun Gothic',sans-serif;color:#26334a;background:#f7f6f3}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.rail{background:#344b62;color:#fff;padding:34px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 9px}.brand-symbol{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e7e1d8;color:#344b62;font-family:Georgia,serif;font-size:22px;font-weight:700}.brand strong{display:block;font-size:17px;letter-spacing:-.04em}.brand small{display:block;color:#bac8df;font-size:12px;margin-top:3px}.rail-caption{font-size:10px;letter-spacing:.19em;color:#9fb0d0;margin:59px 9px 18px}.rail nav{display:grid;gap:5px}.rail nav a{color:#c6d2e8;text-decoration:none;padding:13px 13px;border-radius:9px;font-size:14px;display:flex;justify-content:space-between;align-items:center}.rail nav a.current{color:#fff;background:#516b86;font-weight:700}.rail nav a.disabled{opacity:.6;cursor:default}.rail nav span{font-size:10px;opacity:.7}.rail-bottom{margin-top:auto;border-top:1px solid #65778b;padding:21px 10px 0;color:#b7c5df;font-size:12px}.rail-bottom b{color:#e7e1d8}.topbar{height:64px;background:#fff;border-bottom:1px solid #e2e4e9;display:flex;align-items:center;justify-content:space-between;padding:0 42px;color:#687588;font-size:13px}.topbar em{font-style:normal;color:#a4adbc;padding:0 8px}.topbar-user{display:flex;gap:12px;align-items:center}.avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#edf0f1;color:#38527e;font-weight:700}.content{max-width:1550px;margin:auto;padding:42px}.headline{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:28px}.eyebrow{margin:0 0 9px;color:#6b8195;font-size:11px;font-weight:800;letter-spacing:.16em}.headline h1{margin:0;color:#30485f;font-size:30px;letter-spacing:-.06em}.headline p:last-child,.panel-title p:last-child{margin:10px 0 0;color:#788497;font-size:14px}.head-actions{display:flex;gap:9px}.button{border:1px solid #cbd4e1;background:#fff;color:#334f80;border-radius:8px;padding:11px 15px;font-size:13px;font-weight:700;white-space:nowrap}.button:hover{background:#f1f5fb}.button.primary{background:#527493;color:#fff;border-color:#527493;box-shadow:0 3px 7px #294c8c21}.button.primary:hover{background:#426480}.button.quiet{border-color:transparent;background:transparent}.button.small{padding:8px 12px}.button.wide{width:100%}.week-strip{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid #e0e4e9;border-radius:11px;padding:17px 20px;margin-bottom:16px;box-shadow:0 2px 8px #253b5710}.week-strip label{display:block;color:#8190a3;font-size:11px;font-weight:700;margin-bottom:6px}.week-strip input{border:1px solid #d8dee8;border-radius:6px;padding:9px 10px;color:#263e67}.week-info{display:grid;gap:5px}.week-info strong{font-size:15px;color:#253a5e}.week-info span{font-size:12px;color:#8994a4}.status-pill{margin-left:auto;color:#466ca7;background:#edf3fb;padding:8px 12px;border-radius:100px;font-size:12px;font-weight:700}.status-pill i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5d82bd;margin-right:5px}.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:23px}.summary-row article{border:1px solid #e0e4ea;border-radius:10px;padding:19px 22px;background:#fff}.summary-row span{display:block;color:#8290a3;font-size:12px;margin-bottom:10px}.summary-row strong{font-size:23px;letter-spacing:-.04em;color:#30485f}.summary-row .net{background:#eff1f1;border-color:#dbe4f2}.layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:20px;align-items:start}.work{min-width:0}.panel,.side-card{background:#fff;border:1px solid #e0e4e9;border-radius:12px;box-shadow:0 2px 10px #263b5810}.panel{padding:26px;margin-bottom:20px}.panel-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:22px}.panel-title h2,.side-card h2{font-size:19px;letter-spacing:-.04em;margin:0;color:#263b60}.panel-title p:last-child{font-size:12px}.count{background:#eef2f8;color:#4c6692;border-radius:100px;padding:7px 11px;font-size:12px;font-weight:700}.income-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.group{border:1px solid #e2e6ec;border-radius:9px;overflow:hidden}.group-header{background:#f6f7f9;padding:11px 13px;display:flex;align-items:center;justify-content:space-between}.group-header strong{font-size:13px;color:#30476f}.group-header span{font-size:12px;color:#697b94}.group-columns,.income-row{display:grid;grid-template-columns:minmax(0,1fr) 112px 26px;gap:6px;align-items:center}.group-columns{font-size:11px;color:#8e9bae;padding:9px 12px 3px}.group-rows{padding:0 10px}.income-row{padding:4px 0}.income-row input,.expense-row input,.expense-row select{min-width:0;width:100%;border:1px solid #dfe4ec;border-radius:5px;background:#fff;padding:9px 8px;font-size:13px;color:#263b60}.income-row input:focus,.expense-row input:focus,.expense-row select:focus,.week-strip input:focus{outline:2px solid #a8bde5;outline-offset:0}.income-row .amount,.expense-row .amount{text-align:right}.remove{border:0;background:transparent;color:#a6b1c0;font-size:20px;padding:2px}.remove:hover{color:#b74545}.add-row{border:0;background:transparent;color:#4166a6;padding:9px 13px 12px;font-size:12px;font-weight:700}.expense-head,.expense-row{display:grid;grid-template-columns:125px 160px minmax(0,1fr) 130px 26px;gap:8px;align-items:center}.expense-head{font-size:11px;color:#8e9bae;padding:0 0 7px}.expense-row{margin-bottom:7px}.side-card{padding:23px;position:sticky;top:22px}.side-total{display:flex;justify-content:space-between;font-size:13px;color:#708096;margin:19px 0}.side-total strong{color:#31466b}.side-total.final{border-top:1px solid #e3e7ed;padding-top:17px;color:#263b60;font-weight:700}.side-total.final strong{font-size:18px}.category-totals{border-top:1px solid #e3e7ed;padding:14px 0;margin-top:15px}.category-total{display:flex;justify-content:space-between;gap:8px;color:#748196;font-size:11px;margin:8px 0}.category-total strong{color:#516483}.hint{text-align:center;font-size:11px;color:#8894a6;margin:12px 0 0}.login-layer{position:fixed;inset:0;background:#e9ebeedb;backdrop-filter:blur(5px);display:grid;place-items:center;z-index:10}.login-layer.hidden{display:none}.login-card{background:#fff;border:1px solid #dae0e8;border-radius:14px;padding:38px;width:min(410px,calc(100vw - 32px));box-shadow:0 20px 70px #1e315437}.login-card .brand-symbol{margin-bottom:25px}.login-card h2{color:#263b60;font-size:24px;margin:0}.login-card>p:not(.eyebrow){font-size:13px;color:#7c899a;margin:11px 0 24px}.login-card label{display:block;font-size:12px;font-weight:700;color:#53637b;margin-bottom:8px}.login-card input{width:100%;border:1px solid #cdd6e3;border-radius:7px;padding:12px;margin-bottom:14px}.login-error{color:#b14a4a!important;min-height:16px;margin:10px 0 0!important}.toast{position:fixed;bottom:24px;right:24px;background:#243d68;color:#fff;border-radius:9px;padding:12px 17px;box-shadow:0 8px 30px #1d2e4c44;display:none;font-size:13px;z-index:20}.toast.show{display:block}@media(max-width:1180px){.layout{grid-template-columns:1fr}.side{order:-1}.side-card{position:static}.category-totals{display:none}}@media(max-width:800px){.shell{grid-template-columns:1fr}.rail{padding:14px 18px}.rail-caption,.rail-bottom,.rail nav{display:none}.topbar{display:none}.content{padding:23px 15px}.headline{align-items:start}.headline h1{font-size:25px}.head-actions{flex-direction:column}.income-groups{grid-template-columns:1fr}.summary-row{gap:7px}.summary-row article{padding:13px}.summary-row strong{font-size:16px}.panel{padding:17px}.expense-head{display:none}.expense-row{grid-template-columns:1fr 1fr 26px}.expense-row .memo{grid-column:1/2}.expense-row .amount{grid-column:2/3}.expense-row .remove{grid-column:3;grid-row:1/3}.week-strip{flex-wrap:wrap}.status-pill{display:none}}
.logout{border:0;background:transparent;color:#687588;font-size:12px;padding:4px 2px}.logout:hover{color:#527493;text-decoration:underline}
#pin{text-align:center;letter-spacing:.45em;font-size:23px;font-variant-numeric:tabular-nums}

/* Weekly ledger controls and quieter report palette */
.content{padding-top:34px}
.headline{margin-bottom:20px}
.week-strip{border-color:#e4e4e0}
.week-control{flex:none}
.week-picker{display:flex;align-items:center;gap:4px}
.week-picker input{width:156px}
.week-picker button{width:31px;height:36px;border:1px solid #d9dfe3;border-radius:6px;background:#f7f8f8;color:#344b62;font-size:22px;line-height:1}
.week-picker button:hover{background:#e9eef1}
.week-info span:first-of-type{color:#62768a;font-weight:600}
.week-info span:last-child{font-size:11px}
.category-tools{display:flex;align-items:center;gap:10px;border-top:1px solid #eaebe9;padding:15px 0 18px;margin-top:-3px}
.category-tools label{white-space:nowrap;color:#596e83;font-size:12px;font-weight:700}
.category-tools input{min-width:0;flex:1;border:1px solid #dbe1e3;border-radius:6px;padding:9px 11px;font-size:12px;color:#30485f;background:#fbfbfa}
.category-tools button{border:0;background:transparent;color:#527493;font-size:12px;font-weight:700;white-space:nowrap}
.category-tools span{font-size:11px;color:#8b98a1;white-space:nowrap}
.group[hidden]{display:none}
.group{border-color:#e1e5e5}
.group-header{background:#f3f5f5;border-bottom:1px solid #e4e8e9}
.summary-row article{padding-top:15px;padding-bottom:15px}
@media(max-width:800px){.content{padding-top:23px}.week-picker input{width:140px}.category-tools{flex-wrap:wrap}.category-tools input{flex-basis:60%}.category-tools span{margin-left:auto}}
.group-columns,.income-row{grid-template-columns:108px minmax(0,1fr) 104px 24px;gap:5px}
.income-row .date{font-size:11px;padding:9px 4px;color:#5a6e80}
@media(max-width:800px){.group-columns,.income-row{grid-template-columns:99px minmax(0,1fr) 85px 20px;gap:4px}.income-row input{font-size:11px;padding:8px 4px}.group-columns{font-size:10px}}
