:root{font-family:ui-rounded,system-ui,sans-serif;color:#173b57;background:#eaf1f4}*{box-sizing:border-box}body{margin:0}.app-shell{max-width:720px;min-height:100vh;margin:auto;padding-bottom:86px;background:#f7fafb}.topbar{height:68px;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;background:#fff}.brand{display:flex;gap:10px;align-items:center}.brand-mark,.login-mark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#ef7351,#d5485c);color:#fff;font-size:22px;font-weight:800;box-shadow:0 5px 12px #d5485c42}.brand b{display:block;font-size:19px}.brand small{display:block;font-size:11px;color:#718493}.round-button{width:40px;height:40px;border:0;border-radius:50%;background:#e7f0f5;color:#1d4967;font-weight:800}.hero{overflow:hidden;position:relative;padding:24px 20px 28px;color:#fff;background:linear-gradient(135deg,#1d4967,#2d7892)}.hero>*:not(.hero-orb){position:relative;z-index:1}.eyebrow,.card-kicker,.login-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800;color:#698497}.hero .eyebrow{color:#c7e3eb}.hero h1{margin:7px 0 4px;font-size:28px;letter-spacing:-.04em}.hero-date{margin:0;font-size:14px;opacity:.85}.hero-orb{position:absolute;border-radius:50%;background:#73c8d8;opacity:.23}.orb-one{width:150px;height:150px;right:-48px;top:-65px}.orb-two{width:80px;height:80px;right:68px;bottom:-45px}.quick-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:-11px 14px 18px;position:relative;z-index:2}.quick-summary article{min-height:94px;padding:12px 10px;border-radius:16px;background:#fff;box-shadow:0 7px 17px #173b5715}.quick-summary span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e6f4f6;color:#2d7892;font-weight:900}.quick-summary b{display:block;margin-top:7px;font-size:18px}.quick-summary small{display:block;margin-top:2px;color:#718493;font-size:10px}.weather-card{margin:0 14px 23px;padding:14px 15px;border-radius:18px;background:#fff0c7;display:flex;align-items:center;justify-content:space-between;gap:8px}.weather-card>div{display:flex;align-items:center;gap:11px}.weather-icon{font-size:32px}.weather-card b{display:block;font-size:15px}.weather-card small{display:block;margin-top:2px;color:#76633c;font-size:12px}.text-button{border:0;background:#fff8e4;border-radius:10px;padding:9px 10px;color:#806829;font-weight:800;font-size:12px}.main-section,.reminder-panel{padding:0 14px;margin-bottom:25px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.section-title h2{margin:3px 0 0;font-size:21px}.pulse{width:9px;height:9px;border-radius:50%;background:#55ba8a;animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px #55ba8a00}}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.service-card{position:relative;min-height:142px;padding:13px;border:0;border-radius:19px;text-align:left;color:#173b57;display:grid;grid-template-columns:39px 1fr;grid-template-rows:auto 1fr auto;column-gap:8px;box-shadow:0 4px 10px #173b570d}.service-card:active{transform:scale(.97)}.water{background:#dff4f7}.light{background:#fff0bf}.gas{background:#ffe3d8}.condo{background:#e2f0dd}.solar{background:#eae6fb}.calendar{background:#e4edf2}.icon{font-size:29px;grid-row:1/3}.service-card b{display:block;font-size:17px}.service-card small{display:block;font-size:10px;color:#557285;margin-top:3px}.service-card em{grid-column:1/3;align-self:end;font-style:normal;color:#416377;font-size:11px}.service-card i{position:absolute;right:11px;bottom:9px;font-size:20px;font-style:normal;color:#5d7a8b}.reminder-panel{padding-top:19px;padding-bottom:17px;background:#fff;border-top:1px solid #e9eff2;border-bottom:1px solid #e9eff2}.notification-button{border:0;border-radius:11px;padding:9px 11px;background:#e6f2f6;color:#24617d;font-size:12px;font-weight:800}.notification-status{margin:0 0 10px;padding:10px 11px;border-radius:11px;background:#fff5db;color:#83682b;font-size:12px}.notification-status.ready{background:#e4f5ea;color:#28734d}.task-list article{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #edf1f3}.date-badge{flex:0 0 40px;border-radius:11px;padding:4px 0;text-align:center;background:#e6f2f6;color:#2a6e88}.date-badge.warm{background:#fff0df;color:#bd7142}.date-badge b,.date-badge small{display:block}.date-badge b{font-size:16px}.date-badge small{font-size:9px;font-weight:800}.task-list div{flex:1}.task-list div b{display:block;font-size:14px}.task-list div small{display:block;margin-top:3px;color:#708594;font-size:11px}.task-list strong{font-size:10px;color:#9a7130}.wide-button{width:100%;margin-top:9px;padding:12px;border:0;border-radius:12px;background:#e8f1f5;color:#276480;font-weight:800;font-size:13px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:3;width:min(720px,100%);height:73px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #dfe9ed;background:#fff}.bottom-nav button{border:0;background:transparent;color:#788c98;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:21px}.bottom-nav span{font-size:10px}.bottom-nav .active{color:#2a708c;font-weight:800}.toast{position:fixed;left:50%;bottom:88px;z-index:5;transform:translate(-50%,15px);opacity:0;pointer-events:none;padding:12px 15px;border-radius:12px;background:#173b57;color:#fff;font-size:13px;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:24px;width:min(92%,400px);padding:0;color:#173b57;box-shadow:0 24px 60px #173b5754}dialog::backdrop{background:#edf3f6}dialog form,.section-dialog{padding:24px}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2,dialog h2{margin:0;font-size:25px;letter-spacing:-.03em}.close{border:0;background:transparent;color:#6f8694;font-size:26px}label{display:block;margin-top:13px;font-weight:750;font-size:12px}input,select{display:block;width:100%;margin-top:5px;padding:12px;border:1px solid #cad9e1;border-radius:11px;font:inherit;color:#173b57;background:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;gap:7px;align-items:center;font-weight:550}.check input{width:auto;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions button,.primary{border:0;border-radius:10px;padding:11px 14px;font-weight:800}.secondary{border:0;border-radius:10px;padding:11px 14px;background:#ecf2f4;color:#4b6979;font-weight:800}.primary{background:#286f8c;color:#fff}.link-button{width:100%;margin-top:10px;border:0;background:transparent;color:#286f8c;font-weight:750;padding:8px}.auth-pending{background:#edf3f6}.auth-pending .app-shell>:not(#loginDialog){display:none}.auth-pending .app-shell{padding:0;background:transparent}.login-mark{width:58px;height:58px;border-radius:20px;margin:0 auto 17px;font-size:31px}.login-eyebrow{text-align:center;color:#c85662;margin-bottom:7px}.login-copy{margin:8px 0 17px;color:#597586;line-height:1.4}.login-submit{width:100%;margin-top:20px;padding:13px;font-size:15px}.login-help{text-align:center;color:#7c919e;font-size:11px;margin:13px 0 0}#authError{min-height:17px;color:#b54552;font-size:12px;margin:8px 0 0}.section-hero{display:flex;gap:12px;align-items:center;margin:17px 0 12px;padding:14px;border-radius:16px;background:#e9f3f6}.section-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#fff;font-size:27px}.section-hero b{display:block;font-size:15px}.section-hero small{display:block;margin-top:4px;color:#597687;font-size:12px}.detail-rows{border-top:1px solid #e7eef1}.detail-rows div{display:flex;justify-content:space-between;gap:16px;padding:12px 2px;border-bottom:1px solid #e7eef1;font-size:13px}.detail-rows span{color:#6d8593}.detail-rows b{text-align:right;font-size:13px}.wide-action{width:100%;margin-top:17px;padding:13px;font-size:14px}.section-footnote{margin:12px 0 0;color:#758b97;text-align:center;font-size:11px;line-height:1.4}@media(min-width:600px){.app-shell{box-shadow:0 0 35px #173b5714}}@media(max-width:360px){.quick-summary{gap:6px}.quick-summary article{padding:10px 7px}.quick-summary b{font-size:16px}.service-card{min-height:133px}}
