@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_81a33cc5-module___RQdfW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_81a33cc5-module___RQdfW__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.outfit_cbfa4884-module__hWmOPq__className{font-family:Outfit,Outfit Fallback;font-style:normal}.outfit_cbfa4884-module__hWmOPq__variable{--font-outfit:"Outfit", "Outfit Fallback"}
:root{--bg:#f4f3f0;--surface:#fff;--surface-alt:#edecea;--text:#1a1a1a;--text-secondary:#6b6965;--text-tertiary:#9c9890;--accent:#e07b3c;--accent-light:#fdf0e8;--accent-hover:#c46a30;--accent-dark:#c84f00;--status-good:#2d8a4e;--status-good-bg:#e6f4ec;--status-upcoming:#c67b1c;--status-upcoming-bg:#fff3e0;--status-overdue:#c62828;--status-overdue-bg:#ffebee;--border:#e0ded9;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014;--radius:14px;--radius-sm:10px;--nav-height:56px;--header-height:60px}[data-theme=dark]{--bg:#1a1a1a;--surface:#242424;--surface-alt:#2c2c2c;--text:#f0efec;--text-secondary:#a09c96;--text-tertiary:#6b6965;--accent-light:#3d2a1a;--accent-hover:#f0924e;--status-good-bg:#1a3326;--status-upcoming-bg:#33261a;--status-overdue-bg:#331a1a;--border:#3a3835;--shadow:0 1px 3px #0003, 0 1px 2px #00000026;--shadow-md:0 4px 12px #0000004d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{background:var(--bg)}body{font-family:var(--font-dm-sans), "DM Sans", sans-serif;background:var(--bg);color:var(--text);min-height:100dvh;position:relative;overflow-x:hidden}body.scroll-locked{width:100%;position:fixed;overflow:hidden}html.scroll-locked{overflow:hidden}.pin-screen{z-index:1000;background:#c84f00;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pin-logo{background:var(--accent);border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;display:flex}.pin-title{font-family:var(--font-outfit), "Outfit", sans-serif;color:#fff;margin-bottom:6px;font-size:22px;font-weight:700}.pin-subtitle{color:#fff9;margin-bottom:36px;font-size:14px}.pin-dots{gap:14px;margin-bottom:40px;display:flex}.pin-dot{border:2px solid #fff6;border-radius:50%;width:14px;height:14px;transition:all .2s}.pin-dot.filled{background:var(--accent);border-color:var(--accent);transform:scale(1.1)}.pin-dot.error{background:#ff6b6b;border-color:#ff6b6b;animation:.4s pinShake}@keyframes pinShake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pin-pad{grid-template-columns:repeat(3,72px);gap:12px;display:grid}.pin-key{color:#fff;width:72px;height:54px;font-family:var(--font-outfit), "Outfit", sans-serif;cursor:pointer;background:#ffffff1f;border:none;border-radius:12px;justify-content:center;align-items:center;font-size:22px;font-weight:600;transition:background .15s;display:flex}.pin-key:active{background:#ffffff40}.pin-key.empty{pointer-events:none;background:0 0}.header{z-index:100;background:var(--surface);border-bottom:1px solid var(--border);width:100%;position:sticky;top:0}.header-inner{max-width:430px;height:var(--header-height);align-items:center;margin:0 auto;padding:0 20px;display:flex}.header-back{background:var(--surface);cursor:pointer;width:36px;height:36px;box-shadow:var(--shadow);border:none;border-radius:10px;justify-content:center;align-items:center;margin-right:14px;display:flex}.header-back svg{width:18px;height:18px;fill:var(--text)}.header-logo{align-items:center;margin-right:10px;display:flex}.header-title{font-family:var(--font-outfit), "Outfit", sans-serif;flex:1;font-size:20px;font-weight:700}.header-action{background:var(--accent);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.header-action svg{fill:#fff;width:18px;height:18px}.theme-toggle{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:36px;height:36px;margin-right:8px;display:flex}.theme-toggle svg{width:18px;height:18px;fill:var(--text-secondary)}.content-area{max-width:430px;padding:16px 20px;padding-bottom:calc(var(--nav-height) + 24px);margin:0 auto}.bottom-nav{z-index:100;background:var(--surface);border-top:1px solid var(--border);position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{max-width:430px;height:var(--nav-height);padding-bottom:env(safe-area-inset-bottom,8px);justify-content:space-around;align-items:center;margin:0 auto;display:flex}.nav-tab{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;transition:color .2s;display:flex}.nav-tab svg{fill:currentColor;width:22px;height:22px}.nav-tab span{font-family:var(--font-dm-sans), "DM Sans", sans-serif;font-size:10px;font-weight:600}.nav-tab.active{color:var(--accent)}.zone-grid{grid-template-columns:1fr;gap:12px;margin-bottom:12px;display:grid}.zone-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;align-items:center;gap:14px;padding:16px;transition:transform .15s,box-shadow .15s;display:flex}.zone-card:active{box-shadow:var(--shadow-md);transform:scale(.98)}.zone-icon{background:var(--accent-light);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.zone-icon svg{width:22px;height:22px;fill:var(--accent)}.zone-body{flex:1;grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:2px 8px;min-width:0;display:grid}.zone-name{font-family:var(--font-outfit), "Outfit", sans-serif;font-size:15px;font-weight:700}.zone-item-count{color:var(--text-secondary);font-size:12px}.zone-spent{text-align:right;font-size:13px;font-weight:600}.zone-status{text-align:right}.add-zone-btn{border-radius:var(--radius);border:2px dashed var(--border);width:100%;color:var(--text-secondary);font-family:var(--font-dm-sans), "DM Sans", sans-serif;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:15px;font-weight:500;transition:border-color .15s,color .15s;display:flex}.add-zone-btn:hover{border-color:var(--accent);color:var(--accent)}.add-zone-btn svg{fill:currentColor;width:18px;height:18px}.badge{text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-radius:8px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-sm{text-transform:none;letter-spacing:0;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.badge-xs{border-radius:8px;padding:3px 8px;font-size:10px}.badge.good{background:var(--status-good-bg);color:var(--status-good)}.badge.upcoming{background:var(--status-upcoming-bg);color:var(--status-upcoming)}.badge.overdue{background:var(--status-overdue-bg);color:var(--status-overdue)}.type-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:6px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.type-badge.diy{color:#5e35b1;background:#ede7f6}.type-badge.pro{background:var(--accent-light);color:var(--accent)}[data-theme=dark] .type-badge.diy{color:#b39ddb;background:#2a1f3d}.item-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;flex-direction:column;gap:8px;margin-bottom:10px;padding:14px 16px;transition:transform .15s;display:flex}.item-card:active{transform:scale(.98)}.item-card-top{align-items:center;gap:10px;display:flex}.item-info{flex:1;min-width:0}.item-name{margin-bottom:2px;font-size:15px;font-weight:600}.item-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.meta-dot{background:var(--text-tertiary);border-radius:50%;flex-shrink:0;width:3px;height:3px}.item-card-bottom{color:var(--text-secondary);border-top:1px solid #0000000d;align-items:center;gap:8px;padding-top:8px;font-size:12px;display:flex}[data-theme=dark] .item-card-bottom{border-top-color:#ffffff0d}.service-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;flex-direction:column;gap:8px;margin-bottom:10px;padding:14px 16px;transition:transform .15s;display:flex}.service-card:active{transform:scale(.98)}.service-card-top{align-items:center;gap:10px;display:flex}.service-info{flex:1;min-width:0}.service-name{margin-bottom:2px;font-size:15px;font-weight:600}.service-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.service-card-bottom{color:var(--text-secondary);border-top:1px solid #0000000d;align-items:center;gap:8px;padding-top:8px;font-size:12px;display:flex}[data-theme=dark] .service-card-bottom{border-top-color:#ffffff0d}.filter-bar{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:16px;display:flex;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s}.filter-chip.active{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}.filter-sort-bar{align-items:center;gap:8px;margin-bottom:16px;display:flex}.filter-select{border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text);appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B6965' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border-radius:8px;flex:1;min-width:0;padding:9px 30px 9px 12px;font-size:13px;font-weight:500}.filter-select:focus{border-color:var(--accent);outline:none}.sort-controls{flex-shrink:0;gap:4px;display:flex}.sort-btn{border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:3px;padding:9px 10px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.sort-btn.active{border-color:var(--accent);color:var(--accent);font-weight:600}.section-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-top:20px;margin-bottom:10px;font-size:12px;font-weight:600}.section-label:first-child{margin-top:0}.schedule-view-toggle{background:var(--surface-alt);border-radius:8px;gap:2px;margin-right:8px;padding:3px;display:flex}.schedule-toggle-btn{font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.schedule-toggle-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.schedule-toggle-btn svg{fill:currentColor;width:14px;height:14px}.schedule-month-header{font-family:var(--font-outfit), "Outfit", sans-serif;justify-content:space-between;align-items:center;margin-top:20px;margin-bottom:8px;padding:12px 0;font-size:16px;font-weight:700;display:flex}.schedule-month-header:first-child{margin-top:0}.schedule-month-count{font-family:var(--font-dm-sans), "DM Sans", sans-serif;background:var(--surface-alt);color:var(--text-secondary);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.schedule-item{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;margin-bottom:8px;padding:14px 16px;display:flex}.schedule-date{text-align:center;min-width:44px}.schedule-date-day{font-family:var(--font-outfit), "Outfit", sans-serif;font-size:20px;font-weight:700;line-height:1}.schedule-date-month{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.schedule-divider{background:var(--border);width:1px;height:36px}.schedule-info{flex:1;min-width:0}.schedule-service-name{margin-bottom:2px;font-size:14px;font-weight:600}.schedule-service-meta{color:var(--text-secondary);font-size:12px}.seasonal-tag{border-radius:6px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.seasonal-tag.spring{color:#2e7d32;background:#e8f5e9}.seasonal-tag.summer{color:#f57f17;background:#fff8e1}.seasonal-tag.fall{color:#bf360c;background:#fbe9e7}.seasonal-tag.winter{color:#1565c0;background:#e3f2fd}[data-theme=dark] .seasonal-tag.spring{color:#66bb6a;background:#1a2e1a}[data-theme=dark] .seasonal-tag.summer{color:#ffb74d;background:#2e2a1a}[data-theme=dark] .seasonal-tag.fall{color:#ff8a65;background:#2e1f1a}[data-theme=dark] .seasonal-tag.winter{color:#64b5f6;background:#1a2433}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.cal-nav-title{font-family:var(--font-outfit), "Outfit", sans-serif;font-size:16px;font-weight:700}.cal-nav-btn{background:var(--surface);width:32px;height:32px;box-shadow:var(--shadow);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.cal-nav-btn svg{width:16px;height:16px;fill:var(--text-secondary)}.cal-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.cal-month{background:var(--surface);border-radius:var(--radius-sm);text-align:center;cursor:pointer;box-shadow:var(--shadow);padding:14px 10px;transition:all .15s}.cal-month:active{transform:scale(.97)}.cal-month-name{font-family:var(--font-outfit), "Outfit", sans-serif;margin-bottom:6px;font-size:14px;font-weight:600}.cal-month-dots{justify-content:center;gap:4px;min-height:8px;display:flex}.cal-dot{border-radius:50%;width:7px;height:7px}.cal-dot.upcoming{background:var(--status-upcoming)}.cal-dot.overdue{background:var(--status-overdue)}.cal-dot.good{background:var(--status-good)}.cal-month.has-services{border:1.5px solid var(--border)}.cal-month.empty{opacity:.5;border:1.5px solid #0000}.cal-month-count{color:var(--text-tertiary);margin-top:4px;font-size:11px}.spending-hero{background:var(--status-good);border-radius:var(--radius);text-align:center;color:#fff;margin-bottom:20px;padding:24px 20px}.spending-hero-label{opacity:.7;margin-bottom:4px;font-size:13px}.spending-hero-value{font-family:var(--font-outfit), "Outfit", sans-serif;color:#fff;margin-bottom:4px;font-size:36px;font-weight:800}.spending-hero-sub{opacity:.6;font-size:13px}.spending-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;margin-bottom:8px;padding:16px 18px;display:flex}.spending-row-left{flex:1;min-width:0}.spending-row-name{margin-bottom:2px;font-size:14px;font-weight:600}.spending-row-sub{color:var(--text-secondary);font-size:12px}.spending-row-right{text-align:right;min-width:90px}.spending-row-amount{font-family:var(--font-outfit), "Outfit", sans-serif;margin-bottom:6px;font-size:16px;font-weight:700}.spending-bar-track{background:var(--surface-alt);border-radius:3px;width:90px;height:6px;overflow:hidden}.spending-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.business-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;margin-bottom:12px;padding:18px;transition:transform .15s}.business-card:active{transform:scale(.98)}.business-name{font-family:var(--font-outfit), "Outfit", sans-serif;font-size:16px;font-weight:700}.business-contact{color:var(--text-secondary);margin-top:2px;font-size:13px}.business-services-list{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:12px;display:flex}.business-service-tag{background:var(--accent-light);color:var(--accent);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.business-zones-row{color:var(--text-secondary);gap:4px;margin-top:10px;font-size:12px;display:flex}.business-zones-label{color:var(--text-tertiary);font-weight:600}.form-group{margin-bottom:18px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);width:100%;font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text);-webkit-appearance:none;padding:14px 16px;font-size:15px;transition:border-color .2s}.form-input:focus{border-color:var(--accent);outline:none}.form-input::placeholder{color:var(--text-tertiary)}.form-select-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.form-chip{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text);cursor:pointer;text-align:center;padding:12px 14px;font-size:13px;font-weight:500;transition:all .15s}.form-chip.selected{border-color:var(--accent);background:var(--accent-light);color:var(--accent);font-weight:600}.form-chip:active{transform:scale(.97)}.form-row{gap:10px;display:flex}.form-row .form-group{flex:1}.form-section-title{font-family:var(--font-outfit), "Outfit", sans-serif;border-top:1px solid var(--border);margin-top:24px;margin-bottom:14px;padding-top:20px;font-size:15px;font-weight:700}.new-business-fields{background:var(--surface-alt);border-radius:var(--radius-sm);margin-top:8px;padding:14px}.new-business-fields .form-group{margin-bottom:10px}.new-business-fields .form-group:last-child{margin-bottom:0}.new-business-fields .form-input{background:var(--surface);padding:12px 14px;font-size:14px}.form-submit{border-radius:var(--radius);background:var(--accent);color:#fff;width:100%;font-family:var(--font-dm-sans), "DM Sans", sans-serif;cursor:pointer;border:none;margin-top:24px;padding:16px;font-size:16px;font-weight:600;transition:background .15s}.form-submit:active{background:var(--accent-hover)}.upload-area{border-radius:var(--radius-sm);border:2px dashed var(--border);width:100%;color:var(--text-secondary);font-family:var(--font-dm-sans), "DM Sans", sans-serif;cursor:pointer;background:0 0;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;font-size:14px;display:flex}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}.modal-overlay.visible,.modal-overlay.closing{display:flex}[data-theme=dark] .modal-overlay{background:#0009}.modal-sheet{background:var(--surface);width:100%;max-width:430px;max-height:85dvh;padding:0 20px 24px;padding-bottom:calc(24px + env(safe-area-inset-bottom,8px));border-radius:20px 20px 0 0;transition:transform .3s;overflow-y:auto;transform:translateY(0)}.modal-overlay.visible:not(.closing) .modal-sheet{animation:.3s slideUp}.modal-overlay.closing .modal-sheet{transform:translateY(100%)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{background:var(--surface);z-index:10;justify-content:center;align-items:center;min-height:48px;padding:16px 0 12px;display:flex;position:sticky;top:0}.modal-header:before{content:"";background:var(--surface);border-radius:20px 20px 0 0;height:20px;position:absolute;top:-20px;left:0;right:0}.modal-handle{background:var(--border);border-radius:2px;width:36px;height:4px}.modal-close{background:var(--surface-alt);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:16px;right:0}.modal-close:active{background:var(--border)}.modal-close svg{width:16px;height:16px;fill:var(--text-secondary)}.modal-body{padding-top:8px}.modal-title{font-family:var(--font-outfit), "Outfit", sans-serif;margin-bottom:4px;font-size:18px;font-weight:700}.modal-subtitle{color:var(--text-secondary);margin-bottom:18px;font-size:13px}.modal-detail-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:12px 0;font-size:14px;display:flex}.modal-detail-label{color:var(--text-secondary);font-weight:500}.modal-detail-value{text-align:right;max-width:60%;font-weight:600}.modal-detail-value a{color:var(--accent);text-decoration:none}.modal-notes-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.modal-notes-editable{margin-top:16px}.modal-notes-textarea{background:var(--surface-alt);border-radius:var(--radius-sm);width:100%;font-family:var(--font-dm-sans), "DM Sans", sans-serif;color:var(--text);resize:none;opacity:.7;cursor:default;pointer-events:none;border:1.5px solid #0000;outline:none;min-height:60px;padding:14px;font-size:14px;line-height:1.5;transition:border-color .2s,background .2s,opacity .2s}.modal-notes-textarea.editing{pointer-events:auto;resize:vertical;opacity:1;cursor:text;border-color:var(--accent);background:var(--surface)}.modal-edit-btn{border-radius:var(--radius);border:1.5px solid var(--accent);width:100%;color:var(--accent);font-family:var(--font-dm-sans), "DM Sans", sans-serif;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding:14px;font-size:15px;font-weight:600;transition:all .15s;display:flex}.modal-edit-btn:active{background:var(--accent-light)}.modal-edit-btn.saving{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-service-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;font-size:14px;display:flex}.modal-service-item:last-child{border-bottom:none}.modal-service-name{font-weight:600}.modal-service-detail{color:var(--text-secondary);font-size:12px}.next-due-bar{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;margin-bottom:16px;padding:16px 18px;display:flex}.next-due-label{color:var(--text-secondary);font-size:13px}.next-due-date{font-family:var(--font-outfit), "Outfit", sans-serif;font-size:20px;font-weight:700}.next-due-gear{background:var(--surface-alt);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;display:flex}.next-due-gear svg{width:18px;height:18px;fill:var(--accent)}
