:root{--label:220px;--day:31px;--total:67px}body{user-select:none}input,textarea,.legal,.selectable{user-select:text}img{-webkit-user-drag:none}.topbar-inner,main{max-width:1456px}.topbar-inner{min-height:86px}.brand-name{font-size:25px;letter-spacing:-1px}.brand-name>span{color:var(--accent)}.brand-icon{font-size:27px;font-weight:700}.brand-caption{font-size:14px}.top-actions{gap:20px}.text-button,.site-footer button{border:0;background:none;font-size:14px;font-weight:550}.text-button:hover,.site-footer button:hover{color:var(--accent)}.primary-button{border:1px solid var(--accent);background:var(--accent);color:white;padding:11px 18px;border-radius:11px;font-size:14px;font-weight:600;min-height:43px;display:inline-flex;gap:17px;align-items:center;justify-content:center}.primary-button:hover{background:#4838d7}.primary-button:disabled{opacity:.5}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.65px;color:#8c8fa2;margin-bottom:10px}.page-heading{margin-bottom:25px;margin-top:7px}.page-heading h1{font-size:34px;font-weight:720;letter-spacing:-1.2px}.heading-dot{color:var(--accent)}.date-label{text-transform:capitalize;font-size:14px}.today-shortcut{font-size:13px;background:white;border:1px solid var(--line);color:#575b70;font-weight:500}.demo-banner{display:flex;gap:17px;align-items:center;border:1px solid #e3dff9;background:#eeebfc;border-radius:15px;padding:19px 23px;margin-bottom:30px}.banner-icon{font-size:25px;color:var(--accent);background:#e3dcff;border-radius:13px;display:grid;place-items:center;width:42px;height:42px;flex-shrink:0}.demo-banner strong{font-size:14px;font-weight:650}.demo-banner p{font-size:13px;color:#77718f;margin:3px 0 0}.banner-link{margin-left:auto;white-space:nowrap;display:flex;gap:20px;align-items:center;border:0;background:none;font-size:13px;font-weight:650;color:var(--accent)}.day-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.day-card{padding:20px 16px;min-height:100px;text-align:left;gap:12px}.habit-emoji{width:42px;height:42px;font-size:24px;border-radius:13px}.card-title{font-size:14px}.card-detail{font-size:12px}.day-card.done{background:var(--soft);border-color:color-mix(in srgb,var(--habit) 24%,white)}.day-card.done .card-detail{color:var(--habit)}.check-ui{font-size:15px;font-weight:700}.check-ui.checked{background:var(--habit);color:white;border-color:var(--habit)}.day-card .check-ui{width:22px;height:22px;border-radius:7px}.calendar-toolbar{padding:23px}.calendar-toolbar h2{text-transform:capitalize;font-size:22px;letter-spacing:-.5px;margin:4px 0 0}.calendar-eyebrow{font-size:10px;letter-spacing:1.4px}.calendar-controls{display:flex;align-items:center;gap:7px}.toolbar-divider{width:1px;height:23px;background:var(--line);margin:0 8px}.add-habit{border:0;background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:10px 13px;font-size:13px;font-weight:600;min-height:40px}.icon-button{font-size:23px;font-weight:400}.month-pick{font-size:13px;gap:9px}.habit-table{font-size:13px}.habit-table tbody th,.habit-table tbody td,.cell-label{height:78px}.row-title{font-size:13px;gap:9px}.row-title .row-emoji{font-size:21px}.cell-label{border:0;background:none;padding:0;color:var(--habit)}.cell-label .check-ui{width:21px;height:21px;border-radius:6px}.cell-label .check-ui.checked{background:var(--habit);border-color:var(--habit)}.date-button .day-number{font-size:12px}.date-button .weekday{font-size:10px}.habit-table thead th,.date-button{height:58px;min-height:58px}.row-total{font-size:19px}.calendar-bottom{font-size:12px;padding:15px 23px}.legend{font-size:11px}.summary-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:20px}.summary-card{background:white;border:1px solid var(--line);border-radius:15px;padding:19px 22px;display:flex;align-items:center;gap:16px}.stat-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;font-size:23px}.green{background:#eaf6f0;color:#18835f}.purple{background:#f0ecfc;color:#6650ce}.orange{background:#fff5e7;color:#b97623}.summary-card strong{font-size:25px;line-height:1.2;font-weight:700;display:block;letter-spacing:-.6px}.summary-card div>span{font-size:12px;color:var(--muted);display:block;margin-top:4px}.quiet-note{text-align:center;font-size:12px;color:#9598aa;padding:25px 0 9px}.quiet-note>span{margin-right:6px;color:#a79cca}.site-footer{max-width:1376px;margin:0 auto;padding:21px 0 25px;border-top:1px solid #e2e4ee;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#8e91a3}.site-footer nav{display:flex;gap:25px}.site-footer button{font-size:12px;font-weight:400;padding:0;color:#7d8195}.footer-lock{font-size:11px}.toast{top:22px;bottom:auto;background:white;color:var(--ink);border:1px solid #dcd7f8;padding:16px 22px;box-shadow:0 8px 40px #28215424;z-index:1000}.toast.error{border-color:#f0b3b3;color:#9e2929}dialog{width:min(455px,calc(100% - 28px));max-height:90dvh;overflow-y:auto}dialog.wide{width:min(760px,calc(100% - 28px))}.dialog-heading .icon-button{width:33px;height:33px}.dialog-heading h2{font-size:21px;letter-spacing:-.3px}.form-stack{display:grid;gap:15px}.form-stack label{display:grid;gap:6px;font-size:13px;font-weight:550}.form-stack input:not([type=checkbox]),.form-stack select{width:100%;border:1px solid #dcdeea;border-radius:10px;background:white;padding:12px 13px;min-height:44px;color:var(--ink);font-size:15px}.form-stack input:focus{border-color:var(--accent);outline:3px solid #5747eb16}.form-stack .primary-button{width:100%;font-size:15px}.muted{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 15px}.form-error{color:#a52c32;background:#fff0f1;border-radius:9px;padding:10px 12px;font-size:13px}.form-error:empty{display:none}.checkbox-label{display:flex!important;align-items:flex-start;gap:9px!important;font-size:12px!important;line-height:1.6;font-weight:400!important}.checkbox-label input{margin-top:4px;accent-color:var(--accent)}.inline-link{color:var(--accent);background:none;border:0;padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:3px}.form-foot{text-align:center;font-size:13px;color:var(--muted);margin:18px 0 0}.google-button{width:100%;background:white;border:1px solid var(--line);border-radius:11px;min-height:44px;font-size:14px;font-weight:600;text-decoration:none;color:var(--ink);display:grid;place-items:center}.or{text-align:center;color:#9294a2;font-size:12px;margin:15px 0}.chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.habit-chip{border:1px solid var(--line);border-radius:10px;background:white;padding:12px;text-align:left;font-size:13px}.habit-chip:hover,.habit-chip.active{background:var(--accent-soft);border-color:#b5acf5}.habit-chip span{margin-right:7px}.color-options{display:flex;gap:10px}.color-option{height:29px;width:29px;border-radius:50%;border:3px solid transparent}.color-option.active{outline:2px solid var(--accent);outline-offset:2px}.row-delete{margin-left:auto;border:0;background:transparent;color:#aaa9bc;padding:5px;font-size:17px;opacity:0}.habit-table tbody th:hover .row-delete,.row-delete:focus-visible{opacity:1}.empty-state{text-align:center;padding:45px 20px;color:var(--muted)}.empty-state h3{color:var(--ink)}.lock-panel{margin-bottom:24px;padding:35px;border:1px solid var(--line);border-radius:18px;background:white;text-align:center}.lock-panel h2{margin:8px 0}.legal{font-size:14px;line-height:1.8}.legal h3{font-size:16px;margin-top:24px}.legal p{margin:9px 0}.account-chip{background:#eeeafb;color:var(--accent);width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;font-size:15px;font-weight:700}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.admin-stats>div{background:var(--bg);padding:15px;border-radius:10px;font-size:12px}.admin-stats strong{font-size:25px;display:block}.admin-user{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:13px 0;font-size:13px}.admin-user small{display:block;color:var(--muted);margin-top:4px}.danger-button{border:1px solid #edc6c8;border-radius:10px;color:#a72f3c;background:#fff6f6;padding:10px 13px;font-size:13px}.secondary-button{background:white;border:1px solid var(--line);border-radius:10px;padding:11px 14px;font-size:14px}.account-menu{display:grid;gap:10px}.status-chip{font-size:11px;color:#757086;background:#f1eef9;border-radius:7px;padding:5px 8px}.save-status{font-size:12px;color:var(--muted)}.security-note{padding:13px;background:#fff7e6;border-radius:10px;font-size:12px;color:#886327;line-height:1.65}.month-input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;font:inherit}.hidden,[hidden]{display:none!important}body[data-busy=true] .cell-label{pointer-events:none;opacity:.7}
@media(min-width:1600px){:root{--label:230px;--day:33px}.topbar-inner,main{max-width:1530px}.site-footer{max-width:1450px}}
@media(max-width:1250px){.day-cards{grid-template-columns:repeat(2,1fr)}.site-footer{margin-inline:28px}.demo-banner p{max-width:480px}.habit-table{min-width:calc(var(--label) + 31 * var(--day) + var(--total))}.brand-caption{display:none}}
@media(max-width:760px){.topbar-inner{min-height:74px}.top-actions{gap:12px}.brand-name{font-size:22px}.brand-icon{font-size:24px}.primary-button{padding:10px 13px;font-size:12px;gap:8px}.top-actions .primary-button span{display:none}.text-button{font-size:13px}.eyebrow{font-size:9px;letter-spacing:1.1px}.page-heading h1{font-size:29px}.today-shortcut{font-size:11px;padding:8px 10px}.demo-banner{align-items:flex-start;padding:16px;gap:11px;flex-wrap:wrap;margin-bottom:25px}.banner-icon{width:32px;height:32px;font-size:22px;border-radius:10px}.demo-banner>div:nth-child(2){flex:1}.demo-banner strong{font-size:13px}.demo-banner p{font-size:12px}.banner-link{margin:0 0 0 43px;font-size:12px;gap:15px}.day-cards{gap:10px}.day-card{padding:15px 12px;gap:10px;min-height:100px;flex-wrap:wrap;position:relative}.habit-emoji{width:32px;height:32px;font-size:21px;border-radius:10px}.card-copy{min-width:100%;order:2}.card-title{font-size:12px}.card-detail{font-size:11px;margin-top:2px}.day-card .check-ui{margin-left:auto;width:22px;height:22px}.calendar-toolbar{padding:17px 13px}.calendar-toolbar h2{font-size:18px}.calendar-eyebrow{font-size:8px;letter-spacing:.8px}.calendar-controls{gap:4px}.toolbar-divider{display:none}.add-habit{padding:7px 10px;margin-right:3px;font-size:18px}.add-habit span{display:none}.calendar-controls .icon-button,.month-pick{width:30px;min-width:30px;height:36px;min-height:36px}.month-pick{font-size:16px}.calendar-controls .icon-button{font-size:20px}.month-pick span{display:none}.habit-table tbody th,.habit-table tbody td,.cell-label{height:75px}.row-title{font-size:12px;align-items:center;gap:7px}.row-title .row-emoji{font-size:19px}.row-delete{opacity:1;padding:4px;font-size:14px}.habit-table .habit-label-head{font-size:10px}.habit-table tbody th{padding-left:12px;padding-right:8px}.summary-cards{gap:8px;margin-top:14px}.summary-card{padding:15px 11px;display:block;border-radius:12px}.stat-icon{width:29px;height:29px;font-size:18px;border-radius:9px;margin-bottom:10px}.summary-card strong{font-size:22px}.summary-card div>span{font-size:10px;line-height:1.5}.quiet-note{font-size:11px;padding-top:22px}.site-footer{margin-inline:20px;flex-wrap:wrap;padding-top:18px;gap:15px;font-size:11px}.site-footer nav{gap:14px;order:3;width:100%;flex-wrap:wrap}.site-footer button{font-size:11px}.footer-lock{font-size:10px}.toast{top:12px;font-size:13px;padding:12px 15px}.admin-stats>div{padding:10px}.admin-user{align-items:flex-start}.admin-user>div{overflow-wrap:anywhere;min-width:0}.account-email{display:none}.save-status{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Keep the full month readable and preserve the reference's mobile frozen column. */
@media(min-width:761px) and (max-width:1599px){:root{--label:220px;--day:29px;--total:60px}.site-footer{padding-inline:40px;max-width:1456px}}
@media(max-width:760px){:root{--label:150px;--day:38px;--total:58px}.card-title{font-size:14px;line-height:1.4}.card-detail{font-size:12px}.row-title{font-size:13px}.row-title>span:nth-child(2){overflow-wrap:anywhere}.day-card{min-height:122px}.summary-card div>span{font-size:12px}.site-footer button{font-size:12px}.date-button .weekday{font-size:11px}.date-button .day-number{font-size:13px}}
/* Native scrolling: both axes, keyboard/touch support, no wheel interception. */
:root{scrollbar-color:#a89bee #ece9f7;scrollbar-width:thin}
.table-scroll,dialog{scrollbar-color:#a89bee #f0edf9;scrollbar-width:thin}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#eeebf7;border-radius:20px}
::-webkit-scrollbar-thumb{background:#afa2ee;border:3px solid #eeebf7;border-radius:20px;min-height:36px;min-width:36px}
::-webkit-scrollbar-thumb:hover{background:#8c7ae2}
::-webkit-scrollbar-thumb:active{background:#6d59d5}
::-webkit-scrollbar-corner{background:#eeebf7}
.table-scroll::-webkit-scrollbar{height:12px;width:12px}
.table-scroll::-webkit-scrollbar-thumb{border-color:#f0edf9}
dialog{scrollbar-gutter:stable}
.toast{position:fixed;inset:auto;top:max(22px,env(safe-area-inset-top));left:50%;margin:0;width:min(520px,calc(100% - 32px));max-width:none;padding:19px 18px;display:flex;align-items:flex-start;gap:13px;border:1px solid #cfc5ff;border-left:5px solid #6650df;border-radius:17px;background:#fff;box-shadow:0 14px 55px #36227833,0 3px 10px #36227812;color:#28243f;transform:translate(-50%,-12px);opacity:0;pointer-events:none;transition:none;z-index:1000;font-size:14px;overflow:visible}

.toast.visible{opacity:1;transform:translate(-50%,0);pointer-events:auto;animation:toast-enter .18s ease-out}
.toast-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:11px;background:#eee9ff;color:#6046d5;font-size:22px;font-weight:650}
.toast-copy{flex:1;min-width:0}.toast-copy strong{display:block;font-size:15px;line-height:1.5;font-weight:700}.toast-copy p{font-size:13px;line-height:1.6;color:#726b89;margin:4px 0 0}
.toast-action{display:inline-flex;align-items:center;gap:14px;margin-top:12px;border:0;border-radius:9px;background:#614ae0;color:#fff;min-height:37px;padding:8px 13px;font-size:13px;font-weight:600}.toast-action:hover{background:#4d36c9}
.toast-close{width:28px;height:28px;flex:none;margin:-5px -5px 0 0;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#9288a9;font-size:22px;line-height:1}.toast-close:hover{background:#eee9ff;color:#6046d5}
.toast.error{border-color:#efb5bd;border-left-color:#cd4f63;color:#8b2938}.toast.error .toast-icon{background:#ffedf0;color:#b73f53}.toast.error .toast-copy p{color:#915966}
@media(max-width:760px){.toast{top:max(12px,env(safe-area-inset-top));width:calc(100% - 24px);padding:16px 13px;gap:10px;border-radius:14px}.toast-copy strong{font-size:14px}.toast-copy p{font-size:12px}.toast-icon{width:31px;height:31px;font-size:20px}.toast-action{min-height:40px;font-size:13px}.toast-close{width:30px;height:30px}.top-actions .primary-button{font-size:12px}}
@keyframes toast-enter{from{transform:translate(-50%,-8px)}to{transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){.toast,.toast.visible{transition:none;animation:none;transform:translate(-50%,0)}}
