body{font-family:"Segoe UI",Arial,sans-serif}*{letter-spacing:0!important}
button.menu-toggle{display:none}
@media(max-width:700px){.sidebar{position:relative;min-height:78px}.sidebar .brand{margin:0 54px 0 0}.sidebar nav,.sidebar .menu-label,.sidebar .sidebar-bottom{display:none}.sidebar button.menu-toggle{position:absolute;right:16px;top:20px;display:grid}.nav-open .sidebar nav{display:flex}.nav-open .sidebar .menu-label{display:block}.nav-open .sidebar .sidebar-bottom{display:block}}
.app-shell main{max-width:1440px}.topbar-title{display:flex;align-items:center;min-width:0;gap:6px}
button.icon-button{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;padding:0;border:1px solid var(--line);background:white;color:var(--ink);font-size:21px;border-radius:6px}
.back-button{margin-right:12px}.ledger-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 12px;font-size:13px}.ledger-key{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.payment-book{border:1px solid var(--line);background:white}.payment-book table{min-width:1560px;font-size:12px;margin:0}.payment-book th,.payment-book td{padding:12px 10px;vertical-align:top;min-width:95px}
.payment-book .sticky-name{position:sticky;left:0;z-index:1;background:white;min-width:250px;max-width:300px;border-right:1px solid var(--line)}.sticky-name strong{display:block;white-space:normal;overflow-wrap:anywhere}.sticky-name small{color:var(--muted);display:block;margin-top:5px}
.payment-book .selected-month{background:#f0f6f4}.payment-book .payment-cell{display:block;font-size:12px;padding:8px 4px;min-height:34px;border:0;border-radius:4px;font-weight:600;text-align:center;white-space:nowrap}
.payment-book .paid{background:#e9f5ee;color:#16633b}.payment-book .pending{background:#fff2d9;color:#885b12}.payment-book .empty{background:transparent;color:#929ba7}
.paid-detail summary{cursor:pointer;list-style:none}.paid-detail div{display:grid;gap:8px;white-space:normal;margin-top:10px}.paid-detail button{font-size:11px;padding:5px}
dialog{width:min(440px,calc(100% - 32px));max-height:90vh;overflow:auto;padding:26px;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 70px #0003}
dialog::backdrop{background:#10182070}.dialog-heading,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{margin:0}.dialog-actions{margin-top:22px;flex-wrap:wrap}
.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.quick-links a{position:relative;display:grid;gap:4px;padding:22px 30px 22px 0;border-bottom:1px solid var(--line);text-decoration:none}.quick-links span{color:var(--muted);font-size:13px}.quick-links b{position:absolute;right:5px;top:25px}
.danger-zone{border-top:1px solid #e6beb8;margin-top:40px;padding-top:22px}.danger-zone summary{color:var(--danger)}button.danger{background:#a33a32;border-color:#a33a32}
body.login-page{min-height:100vh;background:#f5f4ec url('/static/brand/login-background.png') center/cover fixed no-repeat}
.login-page .app-shell{margin:0;min-height:100vh}.login-page main{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}.login-access{width:min(380px,100%);text-align:center}.login-logo{width:94px;height:94px;object-fit:contain;display:block;margin:0 auto 20px}.login-access h1{font-size:32px;margin:7px 0 12px}.login-access h2{font-size:15px;color:#526458;font-weight:500;margin-bottom:24px}.login-access form{text-align:left}.login-access button{width:100%;margin-top:18px}.login-access .field{margin:15px 0}.login-page footer{padding:15px;background:transparent;color:#536257;text-align:center}.login-page .alert{width:min(420px,100%)}
@media(max-width:700px){.ledger-heading{align-items:flex-start;flex-direction:column}.quick-links{grid-template-columns:1fr}.topbar{padding:10px 16px;height:auto;min-height:64px}.topbar-title{font-size:11px}.account>span:not(.account-avatar){display:none}.back-button{margin-right:3px}.finance-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-actions button{flex:1}.login-page main{padding:28px 22px}.login-page{background-position:center!important}}
 .guardian-choice { display:flex; flex-wrap:wrap; gap:16px; margin:8px 0 16px; }
