:root{color-scheme:light;--bg: #f8f4ec;--surface: #fffaf4;--surface2: #f1eadf;--text: #1a1714;--muted: #8a7e6d;--border: #e4dccb;--accent: #a47e2e;--accent-soft: rgba(164, 126, 46, .12);--accent-contrast: #fffaf4;--danger: #b3402e;--radius: 14px;--radius-lg: 26px;--border-w: 1px;--shadow-footer: 0 -4px 12px rgba(0, 0, 0, .04);--font-body: "Manrope", system-ui, sans-serif;--font-display: "Cormorant Garamond", Georgia, serif}.dark{color-scheme:dark;--bg: #161310;--surface: #211c16;--surface2: #2a241c;--text: #f2ece0;--muted: #a89c86;--border: #3a3226;--accent: #c9a24b;--accent-soft: rgba(201, 162, 75, .16);--accent-contrast: #1a1714;--danger: #d96b54;--shadow-footer: 0 -4px 12px rgba(0, 0, 0, .2)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0}.display,h1,.money{font-family:var(--font-display)}.money{font-variant-numeric:tabular-nums lining-nums;text-align:right}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.danger-text{color:var(--danger)}.hairline{border:0;border-top:1px solid var(--border);margin:0}.sheet-column{max-width:430px;margin:0 auto;min-height:100dvh;background:var(--surface);border-left:1px solid var(--border);border-right:1px solid var(--border);display:flex;flex-direction:column}.sheet{flex:1;padding:16px 18px 96px}.boot{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.header{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 18px 0}.header-line1{display:flex;align-items:center;gap:8px;min-height:44px}.header-title{font-family:var(--font-display);font-size:22px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:6px}.icon-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:16px}.lang-select{min-height:44px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text);padding:0 8px;font:inherit}.header-nav{display:flex;align-items:center;gap:4px;min-height:44px}.nav-link{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;color:var(--muted);border-bottom:2px solid transparent}.nav-link.active{color:var(--accent);border-bottom-color:var(--accent)}.role-chip{margin-left:auto;font-size:12px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;white-space:nowrap}.btn{min-height:44px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;cursor:pointer;font-weight:500}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-ghost{border-color:transparent;color:var(--muted)}.btn:disabled{opacity:.55;cursor:default}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg button{min-height:44px;padding:0 14px;background:transparent;border:0;border-right:1px solid var(--border);color:var(--muted);cursor:pointer}.seg button:last-child{border-right:0}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;color:var(--muted)}input[type=text],input[type=password],input[type=search],textarea,select{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text);font:inherit}textarea{padding:10px 12px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.card+.card{margin-top:12px}.badge-gold{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 10px;font-size:12px;font-weight:600}.row{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.index-num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;width:20px;flex-shrink:0}.row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.row-desc{width:100%;border:0;background:transparent;color:var(--text);font:inherit;padding:0;min-height:28px}.row-desc:focus-visible{outline-offset:0}.amount-input{width:108px;min-height:36px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text);font-family:var(--font-body);font-variant-numeric:tabular-nums lining-nums;text-align:right;padding:0 10px}.date-display{font-family:var(--font-display);font-size:44px;font-weight:600;line-height:1.1}.date-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.total-display{font-family:var(--font-display);font-size:40px;font-weight:600;font-variant-numeric:tabular-nums lining-nums;text-align:right;line-height:1.1}.sticky-footer{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:428px;background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-footer);padding:12px 18px calc(12px + env(safe-area-inset-bottom));z-index:10}.lock-note{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);padding:10px 12px;font-size:13px}.saved-tick{font-size:12px;color:var(--muted);opacity:0;transition:opacity .4s ease}.saved-tick.show{opacity:1}.tabs{display:flex;gap:4px;margin-bottom:14px}.list-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);min-height:44px}.list-row:last-child{border-bottom:0}.chip{display:inline-block;background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--muted);white-space:nowrap}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px}.login-title{text-align:center;font-size:34px}.section-title{font-size:22px;margin-bottom:10px}.stack{display:flex;flex-direction:column;gap:12px}.stack-row{display:flex;align-items:center;gap:10px}.grow{flex:1;min-width:0}.perm-grid{display:grid;grid-template-columns:1fr;gap:2px}.perm-item{display:flex;align-items:center;gap:10px;min-height:36px;font-size:14px}.no-access{text-align:center;padding:48px 0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.accent-text{color:var(--accent)}.error-inline{font-size:13px;margin:4px 0 0;color:var(--danger)}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent)}.pill.muted{background:transparent;border:1px solid var(--border);color:var(--muted)}.seg{display:inline-flex;gap:2px;border:1px solid var(--border);border-radius:999px;padding:2px}.seg button{min-height:40px;padding:0 18px;border:none;background:transparent;border-radius:999px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.seg button.active{background:var(--accent-soft);color:var(--accent)}.date-nav{display:flex;align-items:center;gap:8px;margin-top:16px}.day-heading{flex:1;min-width:0}.date-display{font-size:30px;line-height:1.15;margin:0;font-weight:600}.day-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:13px}.nav-arrow{width:44px;min-width:44px;font-size:22px;line-height:1;padding:0}.add-form{margin-top:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.add-line{display:flex;gap:8px;align-items:stretch}.add-amount{flex:1}.add-btn{min-width:56px;font-size:26px;line-height:1;padding:0}.exp-card{margin-top:16px;padding:6px 14px}.exp-empty{padding:18px 0 22px;text-align:center;font-size:14px}.exp-group{padding:6px 0}.exp-group+.exp-group{border-top:1px solid var(--border)}.exp-group-head{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0 4px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.exp-group-total{font-variant-numeric:tabular-nums lining-nums;color:var(--accent);font-weight:700}.exp-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);min-height:44px}.exp-group .exp-row:last-child{border-bottom:none}.exp-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.exp-desc{font-size:15px;font-weight:500;color:var(--text);overflow-wrap:anywhere}.exp-amount{font-size:16px;font-weight:600;color:var(--text);white-space:nowrap}.entered-by{font-size:11px}.exp-del{width:44px;height:44px;border:none;background:transparent;color:var(--muted);font-size:16px;cursor:pointer;border-radius:var(--radius);flex:none}.exp-del:hover{color:var(--danger);background:var(--surface2)}.exp-edit{flex:1;display:flex;flex-direction:column;gap:8px;padding:4px 0}.exp-edit .add-line .field{flex:1}.saved-tick{display:inline-block;font-size:12px;font-weight:600}.period-nav{margin-top:16px;display:flex;align-items:center;gap:8px}.period-range{flex:1;text-align:center;font-size:15px;font-weight:600;color:var(--text)}.period-input{max-width:160px}.reconcile-area{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}.total-main{display:flex;justify-content:space-between;align-items:baseline}.total-main .total-display{font-size:40px}.total-sub{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-top:2px}.people-list,.roles-list{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-bottom:120px}.user-row,.role-card{padding:14px}.user-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-name{font-weight:600}.user-controls{margin-top:10px;display:flex;flex-direction:column;gap:8px}.user-pw{display:flex;gap:8px}.user-pw .field{flex:1}.user-role{display:flex;gap:8px}.user-role select{flex:1;min-height:44px}.role-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-name{margin:0;font-size:17px;font-weight:600}.role-desc{margin:6px 0 0;font-size:13px}.perm-grid{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.chip{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.chip-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.role-actions{display:flex;gap:8px;flex-wrap:wrap}.create-form{margin-top:16px;padding:14px;display:flex;flex-direction:column;gap:10px;margin-bottom:120px}.sticky-footer{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-footer, 0 -4px 12px rgba(0,0,0,.05));z-index:5}select,.lang-select,select option{background-color:var(--surface);color:var(--text)}.dark select option{background-color:#1a1712;color:var(--text)}select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.report-row{justify-content:space-between;text-align:left;width:100%}button.report-row{border:none;background:transparent;font:inherit;color:inherit;cursor:pointer}.report-label{font-size:15px;font-weight:500;color:var(--text);flex:1;min-width:0}.report-count{font-size:12px;white-space:nowrap}.report-amt{font-size:15px;font-weight:600;white-space:nowrap}.reports-screen{padding-bottom:140px}.install-btn{color:var(--accent)}.modal-overlay{position:fixed;inset:0;z-index:30;background:#14100a66;display:flex;align-items:center;justify-content:center;padding:24px}.modal-card{max-width:340px;width:100%;padding:20px;box-shadow:0 12px 32px #0000002e}.modal-title{margin:0;font-size:24px;font-weight:600}.modal-body{margin:10px 0 0;font-size:14px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
