:root{--color-surface:#fff;--color-text:#111;--color-muted:#666;--color-border:#d9d9d9;--color-focus:#000;--color-positive:#1a7f37;--color-allowance:#1f5fd1;--radius:8px;--font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;background:var(--color-surface);color:var(--color-text);font-family:var(--font-family);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}h1,h2,p{overflow-wrap:anywhere}h1{margin:0;font-size:2rem;line-height:1.1}#root{min-height:100svh}.app-shell{background:var(--color-surface);min-height:100svh;color:var(--color-text);flex-direction:column;display:flex}.app-header{border-bottom:1px solid var(--color-border);padding:calc(20px + env(safe-area-inset-top)) 16px 16px;gap:14px;display:grid}.app-header-top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.app-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.header-actions{gap:8px;display:flex}.icon-button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;width:44px;height:44px;padding:0;text-decoration:none;display:inline-flex}.icon-button svg{width:28px;height:28px}.icon-button[aria-pressed=true]{background:var(--color-text);color:var(--color-surface)}.eyebrow{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}.app-main{padding:20px 16px calc(28px + env(safe-area-inset-bottom));flex:1}.page{gap:16px;display:grid}.page-header{gap:6px;display:grid}.page-header-with-action{grid-template-columns:1fr auto;align-items:start}.page-title{margin:0;font-size:1.5rem}.page-copy{color:var(--color-muted);margin:0;font-size:.98rem}.empty-state,.info-panel,.form-panel,.balance-panel,.notice-panel,.account-balance-card,.account-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:18px}.empty-state{align-content:center;justify-items:start;gap:8px;min-height:160px;display:grid}.empty-title{margin:0;font-size:1.1rem;font-weight:700}.empty-copy{color:var(--color-muted);margin:0}.button{border:1px solid var(--color-text);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;min-height:44px;padding:0 14px;font-weight:750;text-decoration:none;display:inline-flex}.button,.icon-button,.child-card,.booking-card,.back-link,.account-card,.transaction-row{transition:background-color .16s,border-color .16s,color .16s,transform .16s}.button:active,.icon-button:active,.child-card:active,.booking-card:active,.back-link:active,.account-card:active,.transaction-row:active{transform:scale(.99)}.button-primary{background:var(--color-text);color:var(--color-surface)}.button-secondary,.button-danger{background:var(--color-surface);color:var(--color-text)}.button-danger{width:100%}.full-width-button{width:100%;margin-top:16px}.button:focus-visible,.text-link:focus-visible,.icon-button:focus-visible,.child-card:focus-visible,.booking-card:focus-visible,.back-link:focus-visible,.account-card:focus-visible,.transaction-row:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.text-link{color:var(--color-text);font-weight:700;text-decoration:none}.notice-panel{margin:0;font-weight:700}.loading-message{min-height:44px}.card-list{gap:12px;display:grid}.child-card{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:14px 16px;text-decoration:none;display:grid}.card-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.05rem;font-weight:750;display:block;overflow:hidden}.card-balance{text-align:right;white-space:nowrap;justify-self:end;font-size:1.05rem;font-weight:800;line-height:1}.section-action-button{justify-self:end}.balance-panel{gap:8px;display:grid}.balance-panel strong{font-size:2.6rem;line-height:1}.panel-label{color:var(--color-muted);font-weight:700}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.page-section{gap:12px;display:grid}.section-title{margin:0;font-size:1.2rem}.account-header{gap:10px;display:grid}.account-header-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.back-link{color:var(--color-muted);align-items:center;gap:2px;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.account-title{margin:0;font-size:1.7rem;line-height:1.15}.account-balance-card{gap:14px;display:grid}.account-balance-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.account-balance-amount{text-align:right;white-space:nowrap;font-size:2rem;font-weight:800;line-height:1}.account-balance-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.account-balance-button{gap:8px;min-height:48px}.account-card{color:var(--color-text);gap:10px;text-decoration:none;display:grid}.account-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.account-card-header h3{margin:0;font-size:1.1rem}.account-card-heading{gap:4px;min-width:0;display:grid}.account-card-subtext{color:var(--color-muted);font-size:.9rem}.account-card-subtext-icon{align-items:center;gap:4px;display:inline-flex}.account-card-amount{text-align:right;white-space:nowrap;font-size:1.3rem;font-weight:800}.account-card-count{color:var(--color-muted);white-space:nowrap;font-weight:700}.account-card-footer{border-top:1px solid var(--color-border);color:var(--color-muted);justify-content:space-between;align-items:center;padding-top:10px;font-size:.9rem;display:flex}.account-card-footer-plain{border-top:0;padding-top:0}.account-card-value{color:var(--color-text);align-items:center;gap:2px;font-weight:700;display:inline-flex}.transaction-list{border:1px solid var(--color-border);border-radius:var(--radius);display:grid;overflow:hidden}.transaction-row{color:var(--color-text);align-items:center;gap:10px;min-height:84px;padding:14px 16px;text-decoration:none;display:flex}.transaction-row+.transaction-row{border-top:1px solid var(--color-border)}.transaction-icon{background:var(--color-border);color:var(--color-text);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.transaction-icon-positive{background:color-mix(in srgb, var(--color-positive) 20%, var(--color-border));color:var(--color-positive)}.transaction-icon-allowance{background:color-mix(in srgb, var(--color-allowance) 20%, var(--color-border));color:var(--color-allowance)}.transaction-info{flex:0 118px;gap:2px;min-width:56px;display:grid}.transaction-date{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.transaction-title{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.transaction-amounts{text-align:right;flex:1;gap:2px;min-width:0;display:grid}.transaction-line{justify-content:flex-end;align-items:baseline;gap:6px;width:100%;min-width:0;display:flex}.transaction-purpose{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.85rem;overflow:hidden}.transaction-amount{white-space:nowrap;flex-shrink:0;font-size:1.05rem;font-weight:800}.transaction-amount-positive{color:var(--color-positive)}.transaction-amount-allowance{color:var(--color-allowance)}.transaction-balance{color:var(--color-muted);white-space:nowrap;font-size:.82rem}.transaction-chevron{color:var(--color-muted);flex-shrink:0;display:inline-flex}.transaction-footnote{color:var(--color-muted);text-align:center;margin:0;font-size:.82rem}.form-panel{gap:16px;display:grid}.compact-form{border:0;padding:0}.field{gap:8px;display:grid}.field span{color:var(--color-muted);font-weight:700}.field input,.field select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);min-height:48px;padding:0 12px}.field input:focus,.field select:focus{border-color:var(--color-text);outline:none}.form-error{border:1px solid var(--color-text);border-radius:var(--radius);margin:0;padding:12px}.booking-list{gap:12px;display:grid}.booking-card{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);gap:6px;padding:16px;text-decoration:none;display:grid}.booking-date,.booking-balance{color:var(--color-muted);font-size:.92rem;font-weight:650}.booking-purpose{font-size:1.05rem;font-weight:750}.booking-amount{font-size:1.7rem;font-weight:800;line-height:1.05}.compact-empty{min-height:auto}.info-list{gap:0;margin:0;display:grid}.info-row{grid-template-columns:1fr auto;gap:6px;padding:14px 0;display:grid}.info-row+.info-row{border-top:1px solid var(--color-border)}.info-row dt{color:var(--color-muted);font-weight:650}.info-row dd{margin:0;font-weight:750}.modal-backdrop{z-index:10;background:#00000059;align-items:end;padding:16px;display:grid;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border:1px solid var(--color-text);border-radius:var(--radius);gap:16px;width:100%;max-width:480px;margin:0 auto;padding:18px;display:grid}@media (width<=380px){.action-grid,.page-header-with-action,.account-balance-actions{grid-template-columns:1fr}.balance-panel strong{font-size:1.8rem}.account-balance-amount{font-size:1.6rem}}@media (width>=720px){.app-shell{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);max-width:520px;margin:0 auto}.app-header,.app-main{padding-left:24px;padding-right:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media (prefers-color-scheme:dark){:root{--color-surface:#0d0d0d;--color-text:#f6f6f6;--color-muted:#b8b8b8;--color-border:#343434;--color-focus:#fff;--color-positive:#6fcf97;--color-allowance:#8ab4ff}.modal-backdrop{background:#000000a6}}
