:root{color-scheme:light;--bg: #f6f4ef;--panel: #fffdf8;--ink: #242421;--muted: #6c6a61;--line: #ded9ce;--green: #26715a;--green-soft: #dff1e9;--red: #a7433e;--red-soft: #f5dedb;--amber: #b46b23;--blue: #2d5f8b;--shadow: 0 18px 45px rgba(36, 36, 33, .1)}*{box-sizing:border-box}body{min-width:320px;margin:0;background:linear-gradient(180deg,#ffffffbf,#fff0),var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{border:0;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(45,95,139,.24);outline-offset:2px}a{color:inherit}.app-shell{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:20px;width:min(1180px,calc(100% - 32px));min-height:calc(100vh - 32px);margin:16px auto}.sidebar,.tracker-panel{border:1px solid var(--line);background:#fffdf8eb;box-shadow:var(--shadow)}.sidebar{display:flex;flex-direction:column;gap:26px;padding:24px;border-radius:8px}.sync-banner,.error-banner,.loading-banner{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}.sync-banner span,.error-banner,.loading-banner{color:var(--muted);font-size:.84rem;font-weight:700}.sync-banner strong{min-width:0;overflow-wrap:anywhere}.error-banner{border-color:#a7433e4d;background:var(--red-soft);color:var(--red)}.sign-out-button,.delete-account-button,.secondary-button,.text-button{min-height:40px;border-radius:8px;background:#ece7dc;color:var(--ink);font-weight:800}.account-actions{display:grid;gap:8px}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-actions button{min-height:38px;border-radius:8px;background:#fff;color:var(--ink);font-size:.86rem;font-weight:800}.delete-account-button{background:var(--red-soft);color:var(--red)}.secondary-button:disabled{cursor:not-allowed;opacity:.48}.tracker-panel{display:flex;flex-direction:column;gap:18px;min-width:0;padding:24px;border-radius:8px}.brand-block h1,.tracker-header h2,.section-heading h2,.calendar-toolbar h3{margin:0}.brand-block h1{margin-top:6px;font-size:clamp(2rem,5vw,3.2rem);line-height:.98;letter-spacing:0}.tracker-header h2{margin-top:4px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.05}.header-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:8px}.rename-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.rename-form input{min-width:min(280px,100%);border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink)}.rename-form button{min-height:40px;border-radius:8px;padding:0 12px;background:var(--ink);color:#fff;font-weight:800}.rename-form button[type=button]{background:#ece7dc;color:var(--ink)}.eyebrow{margin:0;color:var(--amber);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.add-habit{display:grid;gap:8px}.add-habit label,.section-heading{color:var(--muted);font-size:.9rem;font-weight:700}.input-row{display:grid;grid-template-columns:1fr 46px;gap:8px}.input-row input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff;color:var(--ink)}.input-row input:focus{border-color:var(--blue);outline:3px solid rgba(45,95,139,.18)}.input-row button,.calendar-toolbar button{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:8px;background:var(--ink);color:#fff;font-size:1.4rem;font-weight:800}.habit-list-wrap{display:flex;min-height:0;flex:1;flex-direction:column;gap:12px}.archived-list-wrap{display:grid;gap:12px}.section-heading,.tracker-header,.calendar-toolbar,.day-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading span{display:grid;min-width:28px;min-height:28px;place-items:center;border-radius:999px;background:#ece7dc;color:var(--ink)}.habit-list{display:grid;gap:8px;overflow:auto}.archived-list{display:grid;gap:8px}.archived-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#ffffff94;color:var(--muted)}.archived-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archived-item button{min-height:34px;border-radius:8px;padding:0 10px;background:#ece7dc;color:var(--ink);font-weight:800}.habit-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;color:var(--ink);text-align:left}.habit-button strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.habit-button span{flex:0 0 auto;color:var(--muted);font-size:.82rem}.habit-button.active{border-color:#26715a8c;background:var(--green-soft)}.danger-button{flex:0 0 auto;min-height:40px;border-radius:8px;padding:0 14px;background:var(--red-soft);color:var(--red);font-weight:800}.permanent-button{background:#f1d0cb}.danger-button:disabled{cursor:not-allowed;opacity:.45}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat-card{display:grid;gap:8px;min-height:92px;border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff}.stat-card span{color:var(--muted);font-size:.86rem;font-weight:700}.stat-card strong{align-self:end;font-size:clamp(1.3rem,3vw,2rem);letter-spacing:0}.stat-card small{color:var(--muted);font-weight:800}.calendar-toolbar{margin-top:4px;border-top:1px solid var(--line);padding-top:18px}.calendar-toolbar h3{font-size:1.35rem}.calendar-toolbar button{background:#ece7dc;color:var(--ink)}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekday-row span{color:var(--muted);font-size:.8rem;font-weight:800;text-align:center}.day-cell{position:relative;display:grid;min-height:88px;grid-template-rows:auto 1fr;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;color:var(--ink);text-align:left}.day-cell:hover,.day-cell.selected{border-color:var(--blue);outline:3px solid rgba(45,95,139,.14)}.day-cell.outside-month{background:#ffffff73;color:#aaa397}.day-cell.future{color:#b8b1a6}.day-cell.today{border-color:var(--amber)}.day-number{font-weight:800}.day-mark{align-self:end;justify-self:end;display:grid;width:34px;height:34px;place-items:center;border-radius:999px;font-size:1.15rem;font-weight:900}.day-cell.complete .day-mark{background:var(--green-soft);color:var(--green)}.day-cell.missed .day-mark{background:var(--red-soft);color:var(--red)}.day-cell.pending .day-mark{background:#ece7dc;color:var(--muted)}.day-cell.idle .day-mark{background:transparent}.day-actions{position:sticky;bottom:16px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fffdf8f5;box-shadow:0 12px 30px #2424211f}.day-actions span,.day-actions strong{display:block}.day-actions span{color:var(--muted);font-size:.84rem;font-weight:700}.day-actions strong{margin-top:2px}.action-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.action-buttons button{min-height:40px;border-radius:8px;padding:0 12px;font-weight:800}.action-buttons button:disabled{cursor:not-allowed;opacity:.48}.complete-button{background:var(--green-soft);color:var(--green)}.missed-button{background:var(--red-soft);color:var(--red)}.clear-button{background:#ece7dc;color:var(--ink)}.empty-state{border:1px dashed var(--line);border-radius:8px;padding:18px;color:var(--muted);line-height:1.5}.onboarding-panel{display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;padding:clamp(18px,4vw,28px);background:#fff}.onboarding-panel h2,.onboarding-panel p{margin:0}.onboarding-panel h2{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1}.onboarding-panel p{max-width:54ch;color:var(--muted);line-height:1.55}.preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.preset-grid button{min-height:46px;border-radius:8px;padding:0 12px;background:var(--green-soft);color:var(--green);font-weight:900}.sidebar-footer{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:12px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:.84rem;font-weight:800}.sidebar-footer a,.privacy-link,.back-link{text-decoration:underline;text-underline-offset:3px}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:18px}.auth-panel{display:grid;gap:18px;width:min(100%,420px);border:1px solid var(--line);border-radius:8px;padding:26px;background:#fffdf8f0;box-shadow:var(--shadow)}.auth-panel h1{margin:0;font-size:2.2rem;line-height:1}.auth-form{display:grid;gap:10px}.auth-form label{color:var(--muted);font-size:.9rem;font-weight:800}.auth-form input{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff;color:var(--ink)}.auth-form button,.primary-link-button{min-height:44px;border-radius:8px;background:var(--ink);color:#fff;font-weight:900}.auth-actions{display:grid;gap:8px}.intro-copy{display:grid;gap:16px}.intro-copy p{margin:0;color:var(--muted);line-height:1.55}.intro-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.intro-actions button{min-height:44px;border-radius:8px;background:var(--ink);color:#fff;font-weight:900}.intro-actions button+button{background:#ece7dc;color:var(--ink)}.form-message{border:1px solid var(--line);border-radius:8px;margin:0;padding:12px;line-height:1.45}.form-message.error{border-color:#a7433e4d;background:var(--red-soft);color:var(--red)}.form-message.success{border-color:#26715a47;background:var(--green-soft);color:var(--green)}.form-message.info{background:#fff;color:var(--muted)}.privacy-link{justify-self:start;color:var(--muted);font-size:.9rem;font-weight:800}.changelog-shell,.error-shell,.privacy-shell,.settings-shell{display:grid;min-height:100vh;padding:20px;place-items:center}.changelog-panel,.error-panel,.privacy-panel,.settings-panel{display:grid;gap:16px;width:min(100%,760px);border:1px solid var(--line);border-radius:8px;padding:clamp(22px,5vw,42px);background:#fffdf8f0;box-shadow:var(--shadow)}.settings-panel{width:min(100%,560px)}.changelog-panel{width:min(100%,820px)}.changelog-panel h1,.changelog-panel p,.error-panel h1,.error-panel p,.privacy-panel h1,.privacy-panel p,.settings-panel h1,.settings-panel p{margin:0}.error-panel h1,.changelog-panel h1,.privacy-panel h1,.settings-panel h1{font-size:clamp(2.1rem,5vw,3.4rem);line-height:1}.error-panel p,.privacy-panel p,.settings-note{color:var(--muted);font-size:1rem;line-height:1.65}.error-actions{display:flex;flex-wrap:wrap;gap:8px}.error-actions button,.error-actions a{display:inline-grid;min-height:42px;place-items:center;border-radius:8px;padding:0 14px;background:var(--ink);color:#fff;font-weight:900;text-decoration:none}.error-actions a{background:#ece7dc;color:var(--ink)}.error-panel small,.settings-version{color:var(--muted);font-weight:800}.privacy-panel .privacy-updated{color:var(--ink);font-weight:800}.back-link{justify-self:start;color:var(--muted);font-weight:800}.settings-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.release-list{display:grid;gap:12px}.release-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff}.release-card span{color:var(--amber);font-size:.82rem;font-weight:900}.release-card h2{margin:0;font-size:1.25rem}.release-card ul{margin:0;padding-left:20px;color:var(--muted);line-height:1.55}.settings-form{display:grid;gap:10px}.settings-form label{color:var(--muted);font-size:.9rem;font-weight:800}.settings-form input,.settings-form select{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff;color:var(--ink)}.settings-form input:disabled{color:var(--muted)}.settings-form button{min-height:44px;border-radius:8px;background:var(--ink);color:#fff;font-weight:900}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:#2424216b}.modal-panel{display:grid;gap:14px;width:min(100%,480px);border:1px solid var(--line);border-radius:8px;padding:24px;background:var(--panel);box-shadow:var(--shadow)}.modal-panel h2,.modal-panel p{margin:0}.modal-panel h2{font-size:2rem;line-height:1}.modal-panel p{color:var(--muted);line-height:1.55}.modal-form{display:grid;gap:10px}.modal-form label{color:var(--muted);font-size:.9rem;font-weight:800}.modal-form input{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px 14px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal-actions button{min-height:42px;border-radius:8px;background:#ece7dc;color:var(--ink);font-weight:900}@media(max-width:860px){.app-shell{grid-template-columns:1fr;width:min(100% - 20px,680px);margin:10px auto}.sidebar{min-height:auto}.stats-grid{grid-template-columns:1fr}}@media(max-width:560px){.sidebar,.tracker-panel{padding:16px}.tracker-header,.day-actions{align-items:stretch;flex-direction:column}.danger-button,.secondary-button,.delete-account-button,.sign-out-button,.export-actions button,.rename-form button,.rename-form input,.intro-actions button,.modal-actions button,.action-buttons button{width:100%}.header-actions,.intro-actions,.modal-actions,.rename-form{grid-template-columns:1fr;width:100%}.action-buttons{width:100%}.preset-grid{grid-template-columns:1fr}.weekday-row,.calendar-grid{gap:5px}.weekday-row span{font-size:.68rem}.day-cell{min-height:58px;padding:7px}.day-mark{width:24px;height:24px;font-size:.9rem}}
