@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap";:root{font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111315;--surface:#171a1d;--text:#f5f6f5;--muted:#a6abb0;--line:#30363b;--green:#5bc979;--green-dark:#238757;--red:#f16a69;--focus:#9cdcae;--selected:#b8c4d1;font-family:DM Sans,Segoe UI,Arial,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfcfc;--surface:#fff;--text:#182029;--muted:#69757d;--line:#dae1e3;--green:#188a56;--green-dark:#12683f;--red:#d95757;--focus:#178350;--selected:#345568}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}[hidden]{display:none!important}.app{width:min(100%,1040px);margin:0 auto;padding:55px 45px 65px}.app-header h1{letter-spacing:-.065em;margin:0 0 31px;font-size:56px;font-weight:800;line-height:1.04}.tabs{border-bottom:1px solid var(--line);gap:36px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:0 0 17px;font-size:22px;font-weight:600}.tab.active{color:var(--text);border-bottom-color:var(--green)}.tab:hover{color:var(--text)}.view{margin-top:38px}.month-nav{justify-content:space-between;align-items:center;margin:0 0 28px;display:flex}.month-nav h2{letter-spacing:-.04em;text-align:center;margin:0;font-size:35px;font-weight:700}.nav-button{border:1px solid var(--line);background:var(--surface);border-radius:12px;place-items:center;width:56px;height:56px;display:grid}.nav-button:hover{border-color:var(--green)}.nav-button svg,.close-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.calendar{border:1px solid var(--line);border-radius:15px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.day-name{height:58px;color:var(--muted);border-bottom:1px solid var(--line);place-items:center;font-size:16px;display:grid}.day,.spacer{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:0 0;height:112px}.day:nth-child(7n),.spacer:nth-child(7n){border-right:0}.day{flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:25px;font-weight:650;display:flex;position:relative}.day:hover{background:var(--surface)}.day.selected{outline:2px solid var(--selected);outline-offset:-4px;border-radius:10px}.day.today .number{text-underline-offset:5px;text-decoration:underline}.spacer{background:var(--surface)}.dot{border-radius:50%;flex:none;width:17px;height:17px;display:inline-block}.dot.full{background:var(--green)}.dot.half{background:linear-gradient(90deg,var(--green) 50%,#4b5459 50%)}:root[data-theme=light] .dot.half{background:linear-gradient(90deg,var(--green) 50%,#d9e0df 50%)}.dot.missed{background:var(--red)}.weekday-short{display:none}.legend{color:var(--muted);justify-content:center;gap:25px;margin:22px 0 0;font-size:14px;display:flex}.legend span{align-items:center;gap:8px;display:flex}.legend .dot{width:12px;height:12px}.month-footer{border:1px solid var(--line);border-radius:15px;margin-top:34px;padding:29px 31px}.totals{grid-template-columns:repeat(3,1fr);display:grid}.totals div{border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:6px;display:flex}.totals div:last-child{border-right:0}.totals strong{letter-spacing:-.04em;font-size:31px}.totals span{color:var(--muted);font-size:15px}.export-button{border:0;border-top:1px solid var(--line);width:100%;color:var(--muted);text-align:left;background:0 0;align-items:center;gap:9px;margin-top:26px;padding:23px 0 0;font-size:15px;display:flex}.export-button:hover{color:var(--text)}.export-button svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.settings-view{max-width:680px;margin-left:auto;margin-right:auto}.settings-view h2{letter-spacing:-.04em;margin:0 0 25px;font-size:36px}.settings-group{border-top:1px solid var(--line);padding:25px 0}.settings-group h3{margin:0 0 6px;font-size:21px}.settings-group p{color:var(--muted);margin:0 0 16px;font-size:15px}.theme-options,.setting-choices{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.theme-option,.contract-option{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-height:50px;font-size:16px;font-weight:600}.theme-option[aria-pressed=true],.contract-option[aria-pressed=true]{border-color:var(--green);color:var(--text);box-shadow:inset 0 0 0 1px var(--green)}.theme-option:hover,.contract-option:hover{border-color:var(--green)}.rate-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:14px 0;font-size:17px;display:flex}.rate-input{color:var(--muted);align-items:center;gap:8px;display:flex}.rate-input input{text-align:right;background:var(--surface);width:110px;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.setting-hint{margin-top:12px!important}.storage-note{color:var(--muted);font-size:13px;line-height:1.5}.day-dialog{border:1px solid var(--line);background:var(--surface);width:min(100%,540px);color:var(--text);padding:29px 28px calc(26px + env(safe-area-inset-bottom));border-radius:19px 19px 0 0;margin:auto auto 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 50px #0007}.day-dialog::backdrop{background:#0009}.dialog-handle{display:none}.dialog-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dialog-header h2{letter-spacing:-.035em;margin:0;font-size:26px}.close-button{width:37px;height:37px;color:var(--muted);background:0 0;border:0;place-items:center;display:grid}.dialog-caption{color:var(--muted);margin:20px 0 15px;font-size:16px}.duration-options{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.duration-options button{background:var(--bg);border:1px solid var(--line);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:86px;font-size:14px;font-weight:600;display:flex}.duration-options button[aria-pressed=true]{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.duration-options button:hover{border-color:var(--green)}.dialog-contract{color:var(--muted);margin:23px 0 14px;font-size:14px}.clear-button{color:var(--muted);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.clear-button:hover{color:var(--text)}@media (width<=680px){.app{padding:28px 23px 70px}.app-header h1{margin-bottom:28px;font-size:43px}.tabs{gap:28px}.tab{padding-bottom:13px;font-size:18px}.view{margin-top:32px}.month-nav{margin-bottom:20px}.month-nav h2{font-size:25px}.nav-button{border-radius:10px;width:45px;height:45px}.nav-button svg{width:21px;height:21px}.calendar{border-radius:12px}.day-name{height:43px;font-size:13px}.weekday-full{display:none}.weekday-short{display:inline}.day,.spacer{height:clamp(63px,17vw,82px)}.day{gap:8px;font-size:21px}.dot{width:14px;height:14px}.legend{gap:16px;margin-top:18px;font-size:12px}.legend .dot{width:11px;height:11px}.month-footer{margin-top:31px;padding:24px 15px 18px}.totals strong{font-size:23px}.totals span{font-size:12px}.export-button{margin-top:21px;padding-top:16px;font-size:13px}.export-button svg{width:17px;height:17px}.settings-view h2{font-size:29px}.day-dialog{width:100%;padding:18px 22px calc(24px + env(safe-area-inset-bottom));border-left:0;border-right:0}.dialog-handle{background:var(--line);border-radius:9px;width:41px;height:4px;margin:-5px auto 19px;display:block}.dialog-header h2{font-size:23px}}@media (width<=380px){.app{padding-left:15px;padding-right:15px}.app-header h1{font-size:39px}.month-nav h2{font-size:22px}.day-name{font-size:11px}.day,.spacer{height:60px}.day{font-size:19px}.legend{gap:9px;font-size:11px}.totals strong{font-size:20px}}.login-screen{background:radial-gradient(ellipse at 85% 10%,#5bc97914,transparent 42%),var(--bg);place-items:center;min-height:100svh;padding:28px;display:grid}.login-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;width:min(100%,460px);padding:42px;box-shadow:0 24px 85px #0002}.login-eyebrow{letter-spacing:.19em;color:var(--green);font-size:11px;font-weight:800}.login-card h1{letter-spacing:-.065em;margin:20px 0 17px;font-size:clamp(38px,7vw,55px);line-height:1.07}.login-card h1 em{color:var(--green);font-style:normal}.login-intro{color:var(--muted);margin:0 0 32px;font-size:16px;line-height:1.6}.login-form{gap:9px;display:grid}.login-form label{margin-top:8px;font-size:14px;font-weight:700}.login-form input{border:1px solid var(--line);background:var(--bg);width:100%;height:52px;color:var(--text);border-radius:10px;padding:0 15px;font-size:16px}.login-form input::placeholder{color:var(--muted)}.login-form button{background:var(--green);color:#0c1a12;border:0;border-radius:10px;justify-content:space-between;align-items:center;min-height:54px;margin-top:17px;padding:0 18px;font-size:16px;font-weight:800;display:flex}.login-form button:hover{filter:brightness(1.08)}.login-form button:disabled{opacity:.6;cursor:wait}.login-form button span{font-size:24px;font-weight:400}.login-message{min-height:21px;color:var(--red);margin:15px 0 0;font-size:13px;line-height:1.5}.sign-out-button{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:11px 15px;font-size:14px;font-weight:600}.sign-out-button:hover{border-color:var(--red)}.app-message{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:20;border:1px solid var(--red);background:var(--surface);width:min(450px,100% - 32px);color:var(--text);border-radius:10px;padding:14px 17px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 14px 40px #0005}@media (width<=680px){.login-screen{padding:20px}.login-card{border-radius:16px;padding:32px 25px}.login-intro{font-size:15px}}.login-mode{color:var(--muted);text-underline-offset:4px;background:0 0;border:0;margin:18px auto 0;padding:5px;font-size:14px;font-weight:600;text-decoration:underline;display:block}.login-mode:hover{color:var(--text)}.legend b{font-weight:500}.setting-select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:50px;color:var(--text);border-radius:10px;padding:0 14px;font-size:16px}.setting-select:disabled{opacity:.5}.add-service{grid-template-columns:minmax(0,1fr) 110px auto;gap:8px;margin-top:19px;display:grid}.add-service input{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--text);border-radius:9px;padding:11px;font-size:15px}.add-service button{background:var(--green);color:#0c1a12;border:0;border-radius:9px;padding:0 16px;font-size:14px;font-weight:800}.add-service button:disabled{opacity:.5}@media (width<=500px){.add-service{grid-template-columns:minmax(0,1fr) 95px}.add-service button{grid-column:1/-1;min-height:44px}.services-list .rate-row{font-size:15px}.rate-input input{width:94px}}.dot.custom{background:var(--green);box-shadow:inset -5px 0 #317348}.legend{flex-wrap:wrap;row-gap:9px}.dialog-custom{margin-top:20px}.dialog-custom label,.dialog-service-label{color:var(--muted);margin-bottom:9px;font-size:14px;font-weight:700;display:block}.dialog-custom-row{align-items:center;gap:9px;display:flex}.dialog-custom-row input{border:1px solid var(--line);background:var(--bg);min-width:0;height:49px;color:var(--text);border-radius:9px;flex:1;padding:0 14px;font-size:16px}.dialog-custom-row input.chosen{border-color:var(--green)}.dialog-custom-row span{color:var(--muted)}.dialog-custom-row button{background:var(--green);color:#0c1a12;border:0;border-radius:9px;height:49px;padding:0 17px;font-weight:800}.day-dialog .setting-select{background:var(--bg)}.custom-toggle{color:var(--muted);background:0 0;border:0;margin:17px 0 0;padding:4px 0;font-size:14px;font-weight:600;display:block}.custom-toggle:hover{color:var(--text)}.dialog-service-label{margin-top:20px}.export-columns{border-top:1px solid var(--line)}.export-column-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.export-column-label{cursor:pointer;align-items:center;gap:12px;font-size:16px;display:flex}.export-column-label input{width:18px;height:18px;accent-color:var(--green)}.export-column-label input:disabled{cursor:not-allowed}.export-remove{color:var(--muted);background:0 0;border:0;font-size:13px;text-decoration:underline}.add-export-column{grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:17px;display:grid}.add-export-column input,.custom-day-field input{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:46px;color:var(--text);border-radius:9px;padding:0 13px;font-size:15px}.add-export-column button{background:var(--green);color:#0c1a12;border:0;border-radius:9px;padding:0 17px;font-weight:800}.export-day-fields{margin-top:24px}.export-day-fields h4{margin:0 0 7px;font-size:17px}.export-day-fields p{margin-bottom:12px}.custom-day-field{gap:7px;margin:13px 0;font-size:14px;font-weight:600;display:grid}@media (width<=500px){.day-dialog{max-height:calc(100svh - 20px);overflow-y:auto}.duration-options button{min-height:72px}.dialog-custom{margin-top:16px}.dialog-service-label{margin-top:17px}}.services-empty{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:14px 16px;color:var(--text)!important}.calendar-empty{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:9px;margin-bottom:24px;padding:19px;display:grid}.calendar-empty strong{font-size:18px}.calendar-empty span{color:var(--muted);font-size:14px;line-height:1.5}.calendar-empty button{color:var(--green);background:0 0;border:0;justify-self:start;margin-top:4px;padding:0;font-size:14px;font-weight:700}
