:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#17243b;background:#f3f6fb;font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:#235ac0;text-decoration:none}a:hover{text-decoration:underline}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0e234b,#2551a1)}.loginbox{width:min(440px,92vw);background:#fff;border-radius:20px;padding:35px;box-shadow:0 25px 70px #0004}.logo{font-size:25px;font-weight:850;color:#1540a3}.logo span{color:#55a0ff}.loginbox h1{font-size:29px;margin:20px 0 5px}.loginbox p{color:#67768d;line-height:1.6}.loginbox label{display:block;margin-top:13px;font-weight:600}.loginbox input{width:100%;margin:7px 0 8px}.loginbox button{width:100%;margin-top:13px}.loginbox small{display:block;text-align:center;margin-top:20px;color:#68788b}input,select,textarea{padding:10px 12px;border:1px solid #cfd9e7;border-radius:8px;background:white;color:#14253b;max-width:100%;font:inherit}textarea{min-height:70px}button{border:0;padding:10px 14px;border-radius:8px;font-weight:650;cursor:pointer;font:inherit}.primary{background:#2457bf;color:white}.secondary{background:#eaf1ff;color:#17439a}.shell{display:flex;min-height:100vh}.side{width:235px;background:#10264d;color:#d9e5ff;padding:22px 12px;flex-shrink:0}.brand{font-size:23px;font-weight:850;color:white;margin:4px 14px 24px}.side a{display:block;color:#c6d5f2;padding:11px 13px;border-radius:8px;margin:3px 0}.side a.active,.side a:hover{background:#284775;color:#fff;text-decoration:none}.main{flex:1;min-width:0}.top{padding:17px 26px;background:white;border-bottom:1px solid #e2e8f1;display:flex;justify-content:space-between;align-items:center;gap:10px}.content{padding:24px;max-width:1500px;margin:auto}h1{font-size:25px;margin:0 0 8px}h2{font-size:18px;margin:0 0 14px}.muted{color:#64758d}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0}.card,.panel{background:white;border:1px solid #e3e9f3;border-radius:13px;padding:20px;box-shadow:0 3px 12px #17315608}.card strong{display:block;font-size:25px;margin-top:10px}.panel{margin:16px 0;overflow-x:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#485974}.field input,.field select,.field textarea{width:100%}.formactions{margin-top:18px}.table{border-collapse:collapse;width:100%;min-width:650px}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid #e8edf4;vertical-align:top}.table th{color:#64758d;font-size:12px;font-weight:750}.pill{display:inline-block;border-radius:20px;padding:4px 9px;background:#e9eef8;color:#304563;font-size:12px;font-weight:650}.paid{background:#e4f8e9;color:#18763d}.partial{background:#fff1cf;color:#946000}.alert{padding:12px;border-radius:9px;background:#ffe8e8;color:#a42424;margin:14px 0}.success{background:#e4f7ec;color:#176c3c}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions form{display:inline}.mini{padding:6px 9px;font-size:12px}.details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.details div{padding:10px;background:#f4f7fc;border-radius:8px}.details b{display:block;margin-top:5px}.progress{background:#e7edf6;height:12px;border-radius:10px;overflow:hidden}.progress>span{display:block;height:100%;background:#3672d7}.notice{background:#fff5dd;border-left:4px solid #e6a526;padding:12px;margin:12px 0}@media(max-width:780px){.shell{display:block}.side{width:100%;padding:12px;display:flex;flex-wrap:wrap;gap:3px}.brand{width:100%;margin:0 8px 8px}.side a{font-size:12px;padding:8px}.top{padding:14px}.content{padding:14px}.grid{grid-template-columns:1fr}}

/* v1.1 city directory, calendar, calculator */
.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal-label{text-align:center;font-weight:700;padding:9px 0;background:#edf2f9}.cal-day,.cal-empty{min-height:105px;border:1px solid #e1e8f1;border-radius:7px;padding:7px;min-width:0}.cal-day strong{display:block;margin-bottom:7px}.cal-day a{display:block;font-size:11px;padding:4px;background:#eaf1ff;border-radius:4px;margin:3px 0;overflow-wrap:anywhere}.calc-toggle{position:fixed;bottom:18px;right:20px;z-index:15;box-shadow:0 5px 20px #0003}.calc-panel{position:fixed;bottom:72px;right:20px;z-index:20;width:min(310px,calc(100vw - 32px));padding:16px;border-radius:15px;background:white;border:1px solid #d7e0ed;box-shadow:0 15px 55px #0003}.calc-panel[hidden]{display:none}.calc-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calc-panel input{width:100%;margin-bottom:12px}.calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.calc-keys button{background:#eaf1ff;color:#143f8e}.calc-keys button:hover{background:#d5e5ff}@media(max-width:680px){.cal-day{min-height:76px;padding:3px}.cal-day a{font-size:9px}.calendar-grid{gap:2px}}

/* v1.4.1: sticky application header and accessible dark theme */
.top{position:sticky;top:0;z-index:60;min-height:64px;background:#fff;box-shadow:0 2px 8px rgba(18,40,70,.05)}
.main{min-width:0}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.header-user{font-weight:500;color:#32435c}
.theme-toggle{background:#edf2f9;color:#183b66;border:1px solid #d6e0ee;padding:8px 12px;white-space:nowrap}
.theme-toggle:hover{background:#e2eaf5}
.header-logout{white-space:nowrap}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}
:root[data-theme="dark"]{color-scheme:dark;color:#e6edf8;background:#0b1220}
:root[data-theme="dark"] body{background:#0b1220;color:#e6edf8}
:root[data-theme="dark"] .main{background:#0b1220}
:root[data-theme="dark"] .top{background:#151f31;border-color:#2a3a53;box-shadow:0 2px 12px #0003}
:root[data-theme="dark"] .header-user{color:#dce7f6}
:root[data-theme="dark"] .side{background:#0a172b}
:root[data-theme="dark"] .side a{color:#c5d5ec}
:root[data-theme="dark"] .side a.active,:root[data-theme="dark"] .side a:hover{background:#253d61;color:#fff}
:root[data-theme="dark"] .card,:root[data-theme="dark"] .panel,:root[data-theme="dark"] .calc-panel{background:#162338;border-color:#2d3f59;color:#e6edf8;box-shadow:0 4px 16px #0002}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:#0e1b2d;border-color:#41546d;color:#e6edf8}
:root[data-theme="dark"] input::placeholder,:root[data-theme="dark"] textarea::placeholder{color:#9daec5}
:root[data-theme="dark"] .field label,:root[data-theme="dark"] .muted,:root[data-theme="dark"] .table th{color:#b1c2db}
:root[data-theme="dark"] .table th,:root[data-theme="dark"] .table td{border-color:#2c405b}
:root[data-theme="dark"] .table tr:hover{background:#1b2d47}
:root[data-theme="dark"] .details div,:root[data-theme="dark"] .cal-label{background:#20314b}
:root[data-theme="dark"] .cal-day,:root[data-theme="dark"] .cal-empty{border-color:#34445c}
:root[data-theme="dark"] .cal-day a,:root[data-theme="dark"] .secondary,:root[data-theme="dark"] .calc-keys button,:root[data-theme="dark"] .theme-toggle{background:#273d5d;color:#d7e7ff;border-color:#405979}
:root[data-theme="dark"] .cal-day a:hover,:root[data-theme="dark"] .secondary:hover,:root[data-theme="dark"] .theme-toggle:hover{background:#335177}
:root[data-theme="dark"] .pill{background:#2c415c;color:#e0edff}
:root[data-theme="dark"] .pill.paid{background:#123d2a;color:#9bf0b9}
:root[data-theme="dark"] .pill.partial{background:#503b13;color:#ffe2a3}
:root[data-theme="dark"] .notice{background:#3a2d14;color:#ffe3a4}
:root[data-theme="dark"] .alert{background:#4b2027;color:#ffd2d2}
:root[data-theme="dark"] .alert.success{background:#153d2a;color:#b0f5c6}
:root[data-theme="dark"] .progress{background:#31455f}
:root[data-theme="dark"] a{color:#93b9ff}
:root[data-theme="dark"] .primary{color:#fff}
@media(max-width:780px){.side{position:relative;height:auto;max-height:none}.top{top:0;padding:12px 14px}.header-actions{gap:8px}.header-user{font-size:12px}}
@media print{.top{position:static;box-shadow:none}.theme-toggle{display:none!important}}

/* v1.4.2: calendar shortcut next to theme toggle */
.header-calendar{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 12px;border-radius:8px;background:#edf2f9;border:1px solid #d6e0ee;color:#183b66;white-space:nowrap;font-weight:600}
.header-calendar:hover{text-decoration:none;background:#e2eaf5}
:root[data-theme="dark"] .header-calendar{background:#273d5d;color:#d7e7ff;border-color:#405979}
:root[data-theme="dark"] .header-calendar:hover{background:#335177}
@media(max-width:780px){.header-calendar{padding:7px 9px}}
@media print{.header-calendar{display:none!important}}

/* v1.5.1 feedback notes */
.review-note{padding:16px 0;border-top:1px solid #d8e1ee}
.review-note-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.review-description{white-space:normal;overflow-wrap:anywhere}
.review-note-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.review-note-form label{display:flex;flex-direction:column;gap:5px;min-width:140px;flex:1}
.review-note-form input,.review-note-form select{width:100%}
:root[data-theme="dark"] .review-note{border-color:#30415b}
:root[data-theme="dark"] .review-description{color:#e6edf8}
