@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Inter:wght@400;500;600&display=swap";
:root{--bg:#080b12;--bg-soft:#0e1320;--surface:#ffffff0b;--surface-2:#ffffff13;--surface-3:#ffffff1c;--border:#ffffff17;--border-2:#ffffff29;--text:#e9edf7;--muted:#8d96ad;--accent:#7c6cff;--accent-2:#3b9dff;--clean:#22c98a;--relapse:#ff5b6e;--gold:#ffb020;--radius:22px;--radius-sm:14px;--shadow:0 24px 60px -28px #000000d9;--ring:0 0 0 3px #7c6cff4d;--font-head:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}[data-theme=light]{--bg:#f4f6fc;--bg-soft:#fff;--surface:#0f172a09;--surface-2:#0f172a0f;--surface-3:#0f172a1a;--border:#0f172a1a;--border-2:#0f172a33;--text:#101728;--muted:#667089;--shadow:0 24px 55px -30px #0f172a73}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(900px 600px at 12% -8%,#7c6cff38,#0000 60%),radial-gradient(800px 520px at 92% 4%,#3b9dff29,#0000 62%),radial-gradient(900px 700px at 50% 110%,#22c98a21,#0000 65%);position:fixed;inset:0}[data-theme=light] body:before{background:radial-gradient(900px 600px at 10% -10%,#7c6cff33,#0000 60%),radial-gradient(800px 520px at 95% 0,#3b9dff29,#0000 62%),radial-gradient(900px 700px at 50% 115%,#22c98a24,#0000 65%)}h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:-.02em;margin:0}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}svg{width:100%;height:100%;display:block}::selection{background:#7c6cff59}.app{width:min(1220px,100%);margin-inline:auto;padding:22px clamp(14px,3vw,30px) 40px}.topbar{z-index:40;border-radius:var(--radius);border:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 78%, transparent);-webkit-backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px;display:flex;position:sticky;top:12px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.topbar{background:var(--bg-soft)}}.brand{align-items:center;gap:12px;margin-right:auto;display:flex}.brand-logo{color:#fff;background:linear-gradient(135deg,#7c6cff,#3b9dff 55%,#22c98a);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;padding:9px;display:grid;box-shadow:0 12px 26px -12px #7c6cfff2}.brand-text h1{font-size:1.22rem;font-weight:800;line-height:1.05}.brand-text p{color:var(--muted);font-size:.74rem;font-weight:500}.tabs{border:1px solid var(--border);background:var(--surface);border-radius:999px;gap:4px;padding:4px;display:flex}.tab{color:var(--muted);white-space:nowrap;border-radius:999px;padding:9px 16px;font-size:.86rem;font-weight:600;transition:background .2s,color .2s,transform .2s}.tab:hover{color:var(--text);background:var(--surface-2)}.tab.is-active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 10px 22px -12px #7c6cfff2}[data-theme=light] .tab.is-active{color:#fff}.topbar-actions{align-items:center;gap:8px;display:flex}.icon-btn{width:40px;height:40px;color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:12px;flex:none;padding:10px;transition:color .2s,background .2s,border-color .2s,transform .15s}.icon-btn:hover{color:var(--text);background:var(--surface-3);border-color:var(--border-2)}.icon-btn:active{transform:scale(.94)}[data-theme=dark] .i-sun,[data-theme=light] .i-moon{display:none}.btn{font-size:.88rem;font-weight:600;font-family:var(--font-head);white-space:nowrap;border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;transition:transform .15s,box-shadow .2s,background .2s,opacity .2s;display:inline-flex}.btn svg{flex:none;width:17px;height:17px}.btn:active{transform:translateY(1px)scale(.99)}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 14px 30px -14px #7c6cfff2}.btn-primary:hover{box-shadow:0 18px 36px -14px #7c6cff}.btn-ghost{color:var(--muted);border-color:var(--border);background:var(--surface)}.btn-ghost:hover{color:var(--text);background:var(--surface-3);border-color:var(--border-2)}.btn-soft{color:var(--text);background:var(--surface-2);border-color:var(--border)}.btn-soft:hover{background:var(--surface-3)}.btn.is-danger{color:var(--relapse)}.btn.is-danger:hover{background:#ff5b6e24;border-color:#ff5b6e66}.menu-wrap{position:relative}.menu{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);min-width:210px;box-shadow:var(--shadow);z-index:50;border-radius:16px;flex-direction:column;gap:2px;padding:7px;animation:.16s ease-out pop;display:flex;position:absolute;top:calc(100% + 10px);right:0}.menu button{text-align:left;color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.86rem;transition:background .15s;display:flex}.menu button svg{opacity:.85;flex:none;width:16px;height:16px}.menu button:hover{background:var(--surface-2)}.menu button.is-danger{color:var(--relapse)}.menu button.is-danger:hover{background:#ff5b6e21}@keyframes pop{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}.summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px;display:grid}.stat{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);animation:.5s cubic-bezier(.22,1,.36,1) both rise;animation-delay:calc(var(--i,0) * 60ms);padding:16px 18px;position:relative;overflow:hidden}.stat:after{content:"";background:var(--accent);opacity:.85;width:3px;position:absolute;inset:0 auto 0 0}.stat[data-tone=clean]:after{background:var(--clean)}.stat[data-tone=relapse]:after{background:var(--relapse)}.stat[data-tone=gold]:after{background:var(--gold)}.stat-label{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:.72rem;font-weight:600}.stat-value{font-family:var(--font-head);margin-top:4px;font-size:1.7rem;font-weight:700;line-height:1.15}.stat-value small{color:var(--muted);margin-left:3px;font-size:.82rem;font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.section-head{margin:30px 0 16px}.section-head h2{font-size:1.28rem;font-weight:700}.section-head p{color:var(--muted);margin-top:3px;font-size:.86rem}.habits-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;display:grid}.habit-card{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 9%, transparent), transparent 45%), var(--surface);animation:.55s cubic-bezier(.22,1,.36,1) both rise;animation-delay:calc(var(--i,0) * 70ms);padding:20px;transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.habit-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.9;height:2px;position:absolute;inset:-1px -1px auto}.habit-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));box-shadow:0 26px 50px -30px color-mix(in srgb, var(--accent) 85%, transparent);transform:translateY(-4px)}.hc-top{align-items:center;gap:12px;display:flex}.hc-icon{width:44px;height:44px;color:var(--accent);background:color-mix(in srgb, var(--accent) 20%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:14px;flex:none;place-items:center;display:grid}.hc-icon svg{width:22px;height:22px}.hc-name{font-family:var(--font-head);font-size:1.04rem;font-weight:700;line-height:1.2}.hc-since{color:var(--muted);margin-top:2px;font-size:.75rem}.hc-note{color:var(--muted);border-left:2px solid color-mix(in srgb, var(--accent) 50%, transparent);margin-top:12px;padding-left:10px;font-size:.8rem;font-style:italic}.hc-counter{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:18px;display:flex}.hc-days{font-family:var(--font-head);letter-spacing:-.04em;background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 45%, #fff));color:#0000;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,8vw,3.2rem);font-weight:800;line-height:1}.hc-unit{font-family:var(--font-head);color:var(--muted);font-size:1rem;font-weight:600}.hc-clock{font-family:var(--font-head);color:var(--muted);font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:5px 10px;font-size:.95rem;font-weight:600}.hc-dayline{color:var(--muted);margin-top:6px;font-size:.78rem;font-weight:500}.hc-progress{margin-top:16px}.hc-progress-top{color:var(--muted);justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px;font-size:.76rem;display:flex}.hc-progress-top b{color:var(--text);font-weight:600}.bar{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.bar>i{background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 40%, #fff));width:0;height:100%;box-shadow:0 0 14px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:999px;transition:width .8s cubic-bezier(.22,1,.36,1);display:block}.hc-strip{gap:5px;margin-top:16px;display:flex}.hc-strip .dp{background:var(--surface-2);border:1px solid var(--border);border-radius:7px;flex:1;height:26px;transition:transform .15s;position:relative}.hc-strip .dp:hover{transform:scale(1.14)}.hc-strip .dp.clean{background:var(--clean);opacity:.85;border-color:#0000}.hc-strip .dp.relapse{background:var(--relapse);border-color:#0000}.hc-strip .dp.before{opacity:.28}.hc-strip .dp.today{outline:2px solid color-mix(in srgb, var(--accent) 80%, transparent);outline-offset:1px}.hc-strip-cap{color:var(--muted);letter-spacing:.04em;margin-top:6px;font-size:.68rem}.hc-stats{border-top:1px dashed var(--border);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;padding-top:16px;display:grid}.hc-stat{text-align:center}.hc-stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.68rem;font-weight:600;display:block}.hc-stat b{font-family:var(--font-head);font-size:1.05rem;font-weight:700}.hc-actions{gap:8px;margin-top:16px;display:flex}.hc-actions .btn{flex:1;padding:10px 12px;font-size:.83rem}.empty{text-align:center;border-radius:var(--radius);border:1px dashed var(--border-2);background:var(--surface);grid-column:1/-1;padding:54px 24px;animation:.5s both rise}.empty-icon{color:var(--accent);justify-content:center;margin-bottom:12px;display:flex}.empty-icon svg{stroke-width:1.6px;width:46px;height:46px}.empty h3{margin-bottom:6px;font-size:1.15rem}.empty p{color:var(--muted);max-width:420px;margin:0 auto;font-size:.88rem}.empty-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.cal-toolbar .section-head{margin-bottom:0}.filter{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:13px;align-items:center;gap:9px;margin-top:24px;padding:8px 12px;font-size:.8rem;display:inline-flex}.filter select{color:var(--text);background:0 0;border:none;outline:none;max-width:190px;font-size:.84rem;font-weight:600}.filter select option{background:var(--bg-soft);color:var(--text)}.calendar-wrap{grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);align-items:start;gap:18px;margin-top:18px;display:grid}.cal-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);padding:18px;animation:.5s both rise}.cal-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.cal-title{font-family:var(--font-head);border-radius:12px;padding:8px 14px;font-size:1.06rem;font-weight:700;transition:background .2s}.cal-title:hover{background:var(--surface-2)}.cal-scroll{padding-bottom:2px;overflow-x:auto}.cal-grid{grid-template-columns:30px repeat(7,minmax(0,1fr));gap:6px;min-width:300px;display:grid}.cal-wn-head,.cal-wd{text-align:center;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:4px 0;font-size:.68rem;font-weight:700}.cal-wn{color:var(--muted);opacity:.7;font-variant-numeric:tabular-nums;place-items:center;font-size:.66rem;font-weight:600;display:grid}.cal-day{aspect-ratio:1;background:var(--surface);font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:46px;transition:background .18s,border-color .18s,transform .15s;display:flex;position:relative}.cal-day:hover{background:var(--surface-3);transform:translateY(-2px)}.cal-day.is-out{opacity:.32}.cal-day.is-before{opacity:.45}.cal-day .n{font-family:var(--font-head);font-size:.86rem;font-weight:600}.cal-day.is-today{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent)}.cal-day.is-today .n{color:var(--text);font-weight:800}.cal-day.is-selected{outline:2px solid color-mix(in srgb, var(--accent) 75%, transparent);outline-offset:1px}.cal-day.is-weekend .n{color:var(--muted)}.cal-day.has-relapse{background:#ff5b6e1a}.cal-dots{align-items:center;gap:3px;height:7px;display:flex}.cal-dots i{background:var(--c,var(--clean));width:6px;height:6px;box-shadow:0 0 6px color-mix(in srgb, var(--c,var(--clean)) 70%, transparent);border-radius:50%}.cal-dots .more{color:var(--muted);font-size:.58rem;line-height:1}.cal-flag{color:var(--relapse);align-items:center;display:flex}.cal-flag svg{stroke-width:2.6px;width:10px;height:10px}.cal-legend{border-top:1px dashed var(--border);color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding-top:14px;font-size:.74rem;display:flex}.cal-legend span{align-items:center;gap:7px;display:inline-flex}.lg{border-radius:4px;width:11px;height:11px;display:inline-block}.lg-clean{background:var(--clean)}.lg-relapse{background:var(--relapse)}.lg-today{border:2px solid var(--accent);background:0 0}.lg-before{background:var(--surface-3)}.day-panel{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);padding:20px;animation:.5s 80ms both rise;position:sticky;top:100px}.dp-date{font-family:var(--font-head);font-size:1.06rem;font-weight:700}.dp-sub{color:var(--muted);margin-top:3px;font-size:.78rem}.dp-list{flex-direction:column;gap:9px;margin-top:16px;display:flex}.dp-row{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;align-items:center;gap:11px;padding:11px 12px;display:flex}.dp-row .em{color:var(--muted);flex:none;align-items:center;display:flex}.dp-row .em svg{width:18px;height:18px}.dp-row .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.86rem;font-weight:600;overflow:hidden}.chip{letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:.68rem;font-weight:700}.chip-clean{color:var(--clean);background:#22c98a26}.chip-relapse{color:var(--relapse);background:#ff5b6e26}.chip-future{color:var(--muted);background:var(--surface-3)}.dp-row .mini{border-radius:9px;flex:none;width:30px;height:30px;padding:7px}.dp-empty{color:var(--muted);margin-top:14px;font-size:.84rem;line-height:1.6}.prog-list{flex-direction:column;gap:12px;display:flex}.prog-row{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);animation:.5s both rise;animation-delay:calc(var(--i,0) * 60ms);padding:16px 18px}.prog-head{align-items:center;gap:11px;margin-bottom:13px;display:flex}.prog-head .prog-name{font-family:var(--font-head);flex:1;font-size:.95rem;font-weight:700}.prog-head .prog-days{font-family:var(--font-head);font-size:1.05rem;font-weight:700}.prog-bars{flex-direction:column;gap:8px;display:flex}.prog-line{color:var(--muted);grid-template-columns:92px 1fr 62px;align-items:center;gap:10px;font-size:.76rem;display:grid}.prog-line .track{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:9px;overflow:hidden}.prog-line .track>i{border-radius:999px;height:100%;transition:width .8s cubic-bezier(.22,1,.36,1);display:block}.prog-line.now .track>i{background:linear-gradient(90deg, var(--accent), var(--accent-2))}.prog-line.best .track>i{background:linear-gradient(90deg, var(--gold), #ff8a3d)}.prog-line b{color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.modal{z-index:100;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#04060c9e;animation:.22s ease-out fade;position:absolute;inset:0}.modal-panel{border-radius:var(--radius);border:1px solid var(--border-2);background:color-mix(in srgb, var(--bg-soft) 94%, transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);overscroll-behavior:contain;width:min(520px,100%);max-height:calc(100vh - 40px);padding:22px;animation:.28s cubic-bezier(.22,1,.36,1) slideUp;position:relative;overflow-y:auto;box-shadow:0 40px 90px -30px #000000e6}.modal-panel.is-small{width:min(420px,100%)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:none}}.modal-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.modal-head h3{font-size:1.14rem;font-weight:700}.form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field>label{color:var(--muted);letter-spacing:.02em;font-size:.78rem;font-weight:600}.field .hint{color:var(--muted);opacity:.85;font-size:.72rem}.field input[type=text],.field input[type=datetime-local],.field textarea{border:1px solid var(--border);background:var(--surface);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:13px;outline:none;width:100%;padding:12px 14px;font-size:.9rem;transition:border-color .2s,box-shadow .2s,background .2s}[data-theme=light] .field input,[data-theme=light] .field textarea{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:var(--ring);background:var(--surface-2)}.field textarea{resize:vertical;min-height:62px;font-family:inherit}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:7px;display:grid}.icon-grid button{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:12px;place-items:center;transition:transform .15s,border-color .2s,background .2s,color .2s;display:grid}.icon-grid button:hover{background:var(--surface-3);color:var(--text);transform:translateY(-2px)}.icon-grid button.is-sel{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 22%, transparent);box-shadow:var(--ring)}.icon-grid svg{width:19px;height:19px}.color-grid{flex-wrap:wrap;gap:9px;display:flex}.color-grid button{background:var(--c);border:2px solid #0000;border-radius:11px;width:32px;height:32px;transition:transform .15s,box-shadow .2s}.color-grid button:hover{transform:translateY(-2px)scale(1.06)}.color-grid button.is-sel{border-color:var(--text);box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 45%, transparent)}.relapse-list{flex-direction:column;gap:7px;display:flex}.relapse-item{background:#ff5b6e17;border:1px solid #ff5b6e33;border-radius:11px;align-items:center;gap:10px;padding:9px 12px;font-size:.82rem;display:flex}.relapse-item span{flex:1}.relapse-item button{width:26px;height:26px;color:var(--relapse);border-radius:8px;padding:5px;transition:background .2s}.relapse-item button:hover{background:#ff5b6e33}.relapse-none{color:var(--muted);font-size:.8rem}.modal-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:9px;margin-top:22px;padding-top:16px;display:flex}.spacer{flex:1}.confirm-text{color:var(--muted);font-size:.88rem;line-height:1.6}.toast{z-index:200;border:1px solid var(--border-2);background:color-mix(in srgb, var(--bg-soft) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:10px;max-width:min(520px,100vw - 32px);padding:13px 20px;font-size:.87rem;font-weight:500;animation:.3s cubic-bezier(.22,1,.36,1) toastIn;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%)}}#confetti{z-index:300;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.foot{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:40px;padding-top:20px;font-size:.76rem;display:flex}.foot-dot{opacity:.5}.foot span{align-items:center;gap:6px;display:inline-flex}.foot svg{opacity:.8;width:13px;height:13px}@media (max-width:1020px){.calendar-wrap{grid-template-columns:1fr}.day-panel{position:static}.summary{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.app{padding:12px 12px 32px}.topbar{border-radius:18px;gap:10px;padding:10px 12px;top:8px}.brand{width:100%;margin-right:0}.brand-text p{display:none}.tabs{order:3;justify-content:space-between;width:100%}.tab{text-align:center;flex:1;padding:9px 6px;font-size:.8rem}.topbar-actions{margin-left:auto}.topbar-actions .btn-primary span{display:none}.topbar-actions .btn-primary{padding:11px 13px}.section-head{margin-top:24px}.habits-grid{grid-template-columns:1fr}.cal-card{padding:14px}.cal-grid{grid-template-columns:22px repeat(7,minmax(0,1fr));gap:4px}.cal-wn{font-size:.6rem}.cal-day{border-radius:11px;min-height:40px}.cal-day .n{font-size:.78rem}.cal-dots i{width:5px;height:5px}.summary{gap:10px}.stat{padding:13px 14px}.stat-value{font-size:1.4rem}}@media (max-width:420px){.hc-clock{text-align:center;width:100%;margin-left:0}.hc-stats{grid-template-columns:repeat(3,1fr);gap:4px}.hc-stats b{font-size:.95rem}.relapse-item{font-size:.76rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.boot{min-height:70vh;color:var(--muted);place-items:center;font-size:.95rem;display:grid}.boot span{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.summary:empty{display:none}.habit-card .hc-note{word-break:break-word}.btn-danger{color:#fff;background:linear-gradient(135deg,#ff5b6e,#ff7a45);box-shadow:0 14px 30px -14px #ff5b6ef2}.btn-danger:hover{box-shadow:0 18px 36px -14px #ff5b6e}.hc-goals{margin-top:16px}.goal-list{flex-wrap:wrap;gap:6px;display:flex}.goal-badge{letter-spacing:.01em;white-space:nowrap;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.goal-badge svg{flex:none;width:12px;height:12px}.goal-badge small{opacity:.75;font-variant-numeric:tabular-nums;font-weight:600}.goal-badge.done{color:var(--clean);background:#22c98a21;border-color:#22c98a52}.goal-badge.next{color:var(--text);background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:color-mix(in srgb, var(--accent) 52%, transparent)}.goal-banner{color:var(--text);background:linear-gradient(135deg,#ffb02033,#22c98a29);border:1px solid #ffb02057;border-radius:14px;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;font-size:.82rem;font-weight:600;line-height:1.3;animation:.4s both rise;display:flex}.goal-banner svg{width:18px;height:18px;color:var(--gold);flex:none}.goal-banner button{font-family:var(--font-head);color:var(--accent);white-space:nowrap;margin-left:auto;font-size:.76rem;font-weight:700}.goal-banner button:hover{text-decoration:underline}.hc-tag{vertical-align:1px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.62rem;font-weight:700;display:inline-block}.hc-checkin{border:1px solid var(--border);background:var(--surface-2);border-radius:15px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding:13px 14px;animation:.4s both rise;display:flex}.hc-checkin.is-active{background:#22c98a1a;border-color:#22c98a66}.hc-checkin.is-broken{background:#ff5b6e1a;border-color:#ff5b6e66}.hc-ck-ico{width:30px;height:30px;color:var(--muted);background:var(--surface-3);border-radius:10px;flex:none;place-items:center;display:grid}.hc-checkin.is-active .hc-ck-ico{color:var(--clean);background:#22c98a29}.hc-checkin.is-broken .hc-ck-ico{color:var(--relapse);background:#ff5b6e29}.hc-ck-ico svg{width:16px;height:16px}.hc-ck-text{flex:1;min-width:130px;font-size:.84rem;line-height:1.45}.hc-ck-btn{z-index:2;font-family:var(--font-head);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:12px;flex:none;padding:10px 15px;font-size:.82rem;font-weight:700;transition:transform .15s,box-shadow .2s,background .2s,color .2s;position:relative;box-shadow:0 12px 24px -14px #7c6cfff2}.hc-ck-btn:hover{box-shadow:0 16px 30px -14px #7c6cff}.hc-ck-btn:active{transform:translateY(1px)}.hc-ck-btn.is-ghost{color:var(--muted);background:var(--surface);border:1px solid var(--border);box-shadow:none}.hc-ck-btn.is-ghost:hover{color:var(--text);background:var(--surface-3)}.hc-checkin+.hc-progress{margin-top:14px}.seg{border:1px solid var(--border);background:var(--surface);border-radius:13px;gap:4px;padding:4px;display:flex}.seg button{font-family:var(--font-head);color:var(--muted);border-radius:10px;flex:1;padding:10px 12px;font-size:.82rem;font-weight:600;transition:background .2s,color .2s}.seg button:hover{color:var(--text)}.seg button.on{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 10px 22px -12px #7c6cfff2}.goal-gen{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.goal-gen label{color:var(--muted);flex-direction:column;gap:5px;font-size:.72rem;font-weight:600;display:flex}.goal-gen input{width:84px}.goal-gen .btn{padding:10px 14px}.goal-editor{flex-direction:column;gap:8px;display:flex}.goal-row{grid-template-columns:86px 1fr 34px;align-items:center;gap:8px;display:grid}.goal-row .icon-btn{width:34px;height:34px;padding:8px}.goal-row input[type=text]{padding:10px 11px;font-size:.85rem}.form input[type=number]{border:1px solid var(--border);background:var(--surface);font-variant-numeric:tabular-nums;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:11px;outline:none;width:100%;padding:10px 11px;font-size:.85rem;transition:border-color .2s,box-shadow .2s,background .2s}[data-theme=light] .form input[type=number]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.form input[type=number]:focus{border-color:var(--accent);box-shadow:var(--ring);background:var(--surface-2)}.goal-preview{color:var(--muted);font-size:.75rem;line-height:1.7}.prog-head .prog-ico{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.prog-head .prog-ico svg{width:18px;height:18px}.relapse-item svg{flex:none;width:14px;height:14px}@media (max-width:420px){.goal-row{grid-template-columns:72px 1fr 34px}.goal-banner{flex-wrap:wrap}.goal-banner button{margin-left:28px}}.card-link,.row-link{z-index:1;border-radius:inherit;position:absolute;inset:0}.habit-card .hc-actions,.habit-card .hc-checkin{z-index:2;position:relative}.hc-go,.prog-go{color:var(--muted);flex:none;align-items:center;margin-left:auto;transition:transform .2s,color .2s;display:flex}.hc-go svg,.prog-go svg{width:18px;height:18px}.habit-card:hover .hc-go,.prog-row:hover .prog-go{color:var(--accent);transform:translate(3px)}.prog-row{transition:border-color .25s,background .25s;position:relative}.prog-row:hover{border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.prog-head .prog-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chip{align-items:center;gap:5px;display:inline-flex}.chip svg{width:11px;height:11px}.chip-gold{color:var(--gold);background:#ffb02026}.detail{flex-direction:column;gap:16px;display:flex}.detail-bar{align-items:center;gap:10px;display:flex}.detail-bar .icon-btn{margin-left:auto}.back-link{border:1px solid var(--border);background:var(--surface);color:var(--muted);font-family:var(--font-head);border-radius:12px;align-items:center;gap:7px;padding:9px 15px 9px 10px;font-size:.85rem;font-weight:600;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.back-link svg{width:17px;height:17px}.back-link:hover{color:var(--text);background:var(--surface-3);border-color:var(--border-2)}.detail-hero{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 13%, transparent), transparent 55%), var(--surface);padding:22px;animation:.5s cubic-bezier(.22,1,.36,1) both rise;position:relative;overflow:hidden}.detail-hero:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);height:3px;position:absolute;inset:-1px -1px auto}.dh-top{flex-wrap:wrap;align-items:center;gap:13px;display:flex}.dh-title{min-width:0}.dh-name{font-family:var(--font-head);font-size:1.28rem;font-weight:700;line-height:1.2}.dh-since{color:var(--muted);margin-top:3px;font-size:.8rem}.dh-actions{gap:8px;margin-left:auto;display:flex}.hero-counter{flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:22px;display:flex}.hero-counter .hc-days{font-size:clamp(3rem,12vw,4.6rem)}.hero-counter .hc-clock{margin-left:12px}.hero-stats{border-top:1px dashed var(--border);grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;padding-top:20px;display:grid}.hero-stats .hc-stat{text-align:left;border-left:2px solid color-mix(in srgb, var(--accent) 50%, transparent);padding-left:13px}.hero-stats .hc-stat b{font-size:1.3rem}.detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.detail-col{flex-direction:column;gap:16px;min-width:0;display:flex}.panel{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:20px;animation:.5s cubic-bezier(.22,1,.36,1) both rise}.panel-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.panel-head h3{align-items:center;gap:8px;font-size:.98rem;font-weight:700;display:flex}.panel-head h3 svg{width:17px;height:17px;color:var(--accent)}.panel-meta{color:var(--muted);font-size:.75rem}.panel-head .btn.tiny{margin-left:auto;padding:7px 11px;font-size:.76rem}.panel-note{color:var(--muted);font-size:.82rem;line-height:1.65}.detail-note{color:var(--text);border-left:3px solid color-mix(in srgb, var(--accent) 55%, transparent);padding-left:12px;font-size:.9rem;font-style:italic;line-height:1.7}.next-goal{margin-bottom:16px}.next-goal-top{color:var(--muted);justify-content:space-between;gap:10px;margin-bottom:7px;font-size:.79rem;display:flex}.next-goal-top b{color:var(--text)}.eta{color:var(--muted);margin-top:9px;font-size:.76rem}.detail-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.detail-list li{color:var(--muted);border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;font-size:.84rem;display:flex}.detail-list li:last-child{border-bottom:none;padding-bottom:0}.detail-list b{color:var(--text);font-family:var(--font-head);white-space:nowrap;font-weight:700}.streak-list{flex-direction:column;gap:8px;max-height:430px;padding-right:4px;display:flex;overflow-y:auto}.streak-row{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;align-items:center;gap:11px;padding:11px 12px;display:flex}.streak-row.is-current{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.streak-ico{color:var(--muted);flex:none;display:flex}.streak-ico svg{width:16px;height:16px}.streak-row.is-current .streak-ico{color:var(--accent)}.streak-info{flex:1;min-width:0}.streak-range{font-size:.84rem;font-weight:600}.streak-sub{color:var(--muted);margin-top:3px;font-size:.72rem}.streak-days{font-family:var(--font-head);white-space:nowrap;font-size:.95rem;font-weight:700}.streak-row .icon-btn.mini{flex:none;width:30px;height:30px;padding:7px}.heat-card{padding-bottom:4px;overflow-x:auto}.heat-grid{grid-template-rows:auto 1fr;grid-template-columns:auto 1fr;gap:6px 8px;min-width:max-content;display:grid}.heat-months{color:var(--muted);gap:3px;font-size:.63rem;display:grid}.heat-months span{white-space:nowrap}.heat-days{color:var(--muted);grid-template-rows:repeat(7,12px);gap:3px;font-size:.58rem;display:grid}.heat-days span{height:12px;line-height:12px}.heat{grid-template-rows:repeat(7,12px);gap:3px;display:grid}.heat-cell{background:var(--surface-2);border:1px solid var(--border);border-radius:3px;width:12px;height:12px}.heat-cell.clean{background:var(--clean);border-color:#0000}.heat-cell.relapse{background:var(--relapse);border-color:#0000}.heat-cell.before{opacity:.32}.heat-cell.future{opacity:.16}.heat-cell.today{outline:2px solid color-mix(in srgb, var(--text) 70%, transparent);outline-offset:1px}.heat-legend{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-top:14px;font-size:.72rem;display:flex}.heat-legend span{align-items:center;display:inline-flex}.heat-legend i{border-radius:3px;width:11px;height:11px;margin-right:6px;display:inline-block}@media (max-width:980px){.detail-grid{grid-template-columns:1fr}}@media (max-width:700px){.detail-hero{padding:18px}.hero-stats{grid-template-columns:repeat(2,1fr);gap:14px}.hero-stats .hc-stat b{font-size:1.15rem}.dh-actions{width:100%;margin-left:0}.dh-actions .btn{flex:1}.panel{padding:16px}.detail-list li{font-size:.8rem}}.cal-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-top:24px;display:flex}.cal-controls .filter{margin-top:0}.chip-toggle{border:1px solid var(--border);background:var(--surface);color:var(--muted);font-family:var(--font-head);border-radius:13px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;font-weight:600;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.chip-toggle svg{width:16px;height:16px}.chip-toggle:hover{color:var(--text);background:var(--surface-3)}.chip-toggle.on{color:var(--text);border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.cal-dots i.note-dot{background:var(--accent);box-shadow:0 0 6px #7c6cffd9}.lg-note{background:var(--accent)}.cal-upcoming{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.cu-title{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);align-items:center;gap:7px;font-size:.7rem;font-weight:700;display:inline-flex}.cu-title svg{width:14px;height:14px}.cu-item{border:1px solid var(--border);background:var(--surface-2);max-width:100%;color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-size:.76rem;transition:background .2s,border-color .2s;display:inline-flex}.cu-item:hover{background:var(--surface-3);border-color:var(--border-2)}.cu-item b{font-family:var(--font-head);color:var(--accent);white-space:nowrap;font-weight:700}.cu-item span{text-overflow:ellipsis;white-space:nowrap;max-width:200px;color:var(--muted);overflow:hidden}.cu-item i{color:var(--muted);font-size:.68rem;font-style:normal}.dp-nav{align-items:center;gap:10px;display:flex}.dp-nav-mid{flex:1;min-width:0}.dp-nav .icon-btn{flex:none;width:34px;height:34px;padding:8px}.dp-section{margin-top:18px}.dp-section.is-separated{border-top:1px dashed var(--border);margin-top:20px;padding-top:18px}.dp-sec-head{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);align-items:center;gap:8px;margin-bottom:12px;font-size:.74rem;font-weight:700;display:flex}.dp-sec-head svg{width:15px;height:15px;color:var(--accent);flex:none}.dp-sec-head .panel-meta{text-transform:none;letter-spacing:0;margin-left:auto}.dp-section .dp-empty{margin-top:0;font-size:.82rem}.note-list{flex-direction:column;gap:7px;display:flex}.note-row{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;align-items:center;gap:9px;padding:9px 10px;display:flex}.note-time{font-family:var(--font-head);font-variant-numeric:tabular-nums;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:7px;flex:none;padding:4px 7px;font-size:.72rem;font-weight:700}.note-time.is-empty{display:none}.note-text{text-align:left;min-width:0;color:var(--text);overflow-wrap:anywhere;border-radius:6px;flex:1;padding:2px 4px;font-size:.85rem;line-height:1.45;transition:background .2s}.note-text:hover{background:var(--surface-3)}.note-edit{border:1px solid var(--accent);background:var(--surface);min-width:0;box-shadow:var(--ring);border-radius:10px;outline:none;flex:1;padding:8px 10px;font-size:.85rem}.note-row .icon-btn.mini{flex:none;width:28px;height:28px;padding:6px}.note-add{gap:7px;margin-top:10px;display:flex}.note-add input[type=text]{border:1px solid var(--border);background:var(--surface);border-radius:11px;outline:none;flex:1;min-width:0;padding:10px 12px;font-size:.84rem;transition:border-color .2s,box-shadow .2s}.note-add input[type=text]:focus{border-color:var(--accent);box-shadow:var(--ring)}.note-time-input{border:1px solid var(--border);background:var(--surface);width:96px;color:var(--muted);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:11px;outline:none;flex:none;padding:10px 8px;font-size:.78rem}[data-theme=light] .note-time-input{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.note-add .btn{flex:none;padding:10px 12px}.note-add .btn:disabled{opacity:.45;cursor:not-allowed}@media (min-width:1021px){.day-panel{max-height:calc(100vh - 118px);overflow-y:auto}}@media (max-width:760px){.cal-controls{width:100%;margin-top:16px}.cal-controls .filter{flex:1}.chip-toggle{flex:1;justify-content:center}.note-time-input{width:84px}}@supports (padding:env(safe-area-inset-top)){.app{padding-top:calc(22px + env(safe-area-inset-top));padding-bottom:calc(40px + env(safe-area-inset-bottom))}.toast{bottom:calc(26px + env(safe-area-inset-bottom))}.modal{padding-top:max(18px, env(safe-area-inset-top));padding-bottom:max(18px, env(safe-area-inset-bottom));padding-left:max(18px, env(safe-area-inset-left));padding-right:max(18px, env(safe-area-inset-right))}}@media (max-width:760px){@supports (padding:env(safe-area-inset-top)){.app{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(32px + env(safe-area-inset-bottom))}}}.icon-btn.is-on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.modal-panel code{background:var(--surface-3);color:var(--text);word-break:break-all;border-radius:6px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em}.np-block{border:1px solid var(--border);background:var(--surface);border-radius:15px;margin-top:16px;padding:14px 15px}.np-block:first-of-type{margin-top:0}.np-block.is-warn{background:linear-gradient(135deg,#ffb02021,#ffb0200a);border-color:#ffb02061}.np-block.is-info{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.np-block-head{font-family:var(--font-head);align-items:center;gap:9px;margin-bottom:9px;font-size:.86rem;font-weight:700;display:flex}.np-block-head svg{width:17px;height:17px;color:var(--accent);flex:none}.np-block.is-warn .np-block-head svg{color:var(--gold)}.np-block p{color:var(--muted);font-size:.82rem;line-height:1.65}.np-muted{opacity:.85;margin-top:10px!important;font-size:.78rem!important}.np-steps,.np-list{color:var(--muted);margin:10px 0 0;padding-left:20px;font-size:.82rem;line-height:1.8}.np-steps b,.np-list b{color:var(--text);font-weight:600}.np-status{border:1px dashed var(--border-2);background:var(--surface);border-radius:15px;align-items:center;gap:12px;margin-bottom:14px;padding:13px 15px;display:flex}.np-status.is-on{background:#22c98a1a;border-style:solid;border-color:#22c98a61}.np-status>svg{width:20px;height:20px;color:var(--muted);flex:none}.np-status.is-on>svg{color:var(--clean)}.np-status b{font-family:var(--font-head);font-size:.9rem;display:block}.np-status span{color:var(--muted);margin-top:2px;font-size:.77rem;line-height:1.5;display:block}.np-status .np-check-ico{color:var(--clean);width:18px;height:18px;margin-left:auto}.np-actions{flex-wrap:wrap;gap:9px;margin-bottom:16px;display:flex}.np-actions .btn{flex:1;min-width:150px}.np-settings{flex-direction:column;gap:12px;display:flex}.np-row{border:1px solid var(--border);background:var(--surface);border-radius:13px;align-items:center;gap:10px;padding:11px 13px;font-size:.84rem;display:flex}.np-row>svg{width:17px;height:17px;color:var(--accent);flex:none}.np-row>span{flex:1}.np-row input[type=time]{border:1px solid var(--border);background:var(--surface-2);font-family:var(--font-head);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:10px;outline:none;flex:none;padding:8px 10px;font-size:.85rem;font-weight:600}[data-theme=light] .np-row input[type=time]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.np-row input[type=time]:focus{border-color:var(--accent);box-shadow:var(--ring)}.np-check{color:var(--muted);cursor:pointer;align-items:flex-start;gap:10px;font-size:.82rem;line-height:1.5;display:flex}.np-check input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin-top:1px}.np-check span{flex:1}.np-check input:checked+span{color:var(--text)}.auth-wrap{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{border-radius:var(--radius);border:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 84%, transparent);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);width:min(460px,100%);box-shadow:var(--shadow);padding:28px;animation:.5s cubic-bezier(.22,1,.36,1) both rise}.auth-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.auth-brand b{font-family:var(--font-head);font-size:1.05rem;font-weight:800;display:block}.auth-brand span{color:var(--muted);margin-top:1px;font-size:.74rem;display:block}.auth-title{letter-spacing:-.02em;font-size:1.45rem;font-weight:800}.auth-sub{color:var(--muted);margin-top:9px;font-size:.86rem;line-height:1.65}.auth-alert{background:#ffb0201a;border:1px solid #ffb0205c;border-radius:13px;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 13px;font-size:.79rem;line-height:1.55;display:flex}.auth-alert svg{width:16px;height:16px;color:var(--gold);flex:none;margin-top:2px}.auth-alert code{background:var(--surface-3);border-radius:5px;padding:1px 5px;font-size:.85em}.btn-google{border:1px solid var(--border-2);background:var(--surface-2);width:100%;color:var(--text);font-family:var(--font-head);border-radius:14px;justify-content:center;align-items:center;gap:11px;margin-top:22px;padding:14px 18px;font-size:.95rem;font-weight:700;transition:background .2s,border-color .2s,transform .15s,box-shadow .2s;display:flex}.btn-google svg{flex:none;width:18px;height:18px}.btn-google:hover:not(:disabled){background:var(--surface-3);box-shadow:0 16px 34px -20px #000000d9}.btn-google:active:not(:disabled){transform:translateY(1px)}.btn-google:disabled{opacity:.55;cursor:not-allowed}.auth-list{flex-direction:column;gap:11px;margin:24px 0 0;padding:0;list-style:none;display:flex}.auth-list li{color:var(--muted);align-items:flex-start;gap:10px;font-size:.79rem;line-height:1.55;display:flex}.auth-list svg{width:15px;height:15px;color:var(--accent);flex:none;margin-top:2px}.auth-foot{border-top:1px solid var(--border);color:var(--muted);text-align:center;margin-top:22px;padding-top:16px;font-size:.74rem;line-height:1.6}.auth-foot a{color:var(--accent);font-weight:600;text-decoration:none}.auth-foot a:hover{text-decoration:underline}.legal{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);max-width:780px;margin:0 auto;padding:28px 26px 40px}.legal h1{font-size:1.6rem}.legal-updated{color:var(--muted);margin-top:6px;margin-bottom:10px;font-size:.78rem}.legal h2{margin:26px 0 8px;font-size:1.02rem}.legal p,.legal li{color:var(--muted);font-size:.87rem;line-height:1.78}.legal ul{margin:8px 0 0;padding-left:20px}.legal li{margin-bottom:4px}.legal b{color:var(--text);font-weight:600}.legal a{color:var(--accent);text-decoration:none}.legal a:hover{text-decoration:underline}.legal code{background:var(--surface-3);color:var(--text);border-radius:6px;padding:2px 6px;font-size:.85em}.account-btn{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:5px 8px 5px 5px;transition:background .2s,border-color .2s;display:flex}.account-btn:hover{background:var(--surface-3);border-color:var(--border-2)}.account-btn>svg{width:15px;height:15px;color:var(--muted);flex:none}.avatar{background-color:var(--surface-3);border:1px solid var(--border);background-position:50%;background-size:cover;border-radius:50%;flex:none;width:30px;height:30px}.avatar.is-initial{font-family:var(--font-head);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));place-items:center;font-size:.82rem;font-weight:700;display:grid}.menu.is-account{min-width:252px}.account-info{border-bottom:1px solid var(--border);margin-bottom:6px;padding:9px 12px 12px}.account-info b{font-family:var(--font-head);font-size:.88rem;display:block}.account-info span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.74rem;display:block;overflow:hidden}.menu a{color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.86rem;text-decoration:none;transition:background .15s;display:flex}.menu a:hover{background:var(--surface-2)}.menu a svg{opacity:.85;flex:none;width:16px;height:16px}.menu button:disabled{opacity:.5;cursor:not-allowed}.alert-bar,.import-bar{border-radius:var(--radius-sm);align-items:center;gap:12px;margin-top:20px;padding:14px 16px;font-size:.84rem;line-height:1.5;animation:.4s both rise;display:flex}.alert-bar{background:#ffb0201a;border:1px solid #ffb0205c}.alert-bar svg{width:18px;height:18px;color:var(--gold);flex:none}.import-bar{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);flex-wrap:wrap}.import-bar svg{width:18px;height:18px;color:var(--accent);flex:none}.import-bar>span{flex:1;min-width:200px}.import-actions{gap:8px;display:flex}.import-actions .btn{padding:9px 14px;font-size:.82rem}.auth-card.is-wide{width:min(700px,100%)}.auth-or{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;margin:20px 0 4px;font-size:.72rem;font-weight:600;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--border);flex:1;height:1px}.auth-form{flex-direction:column;gap:13px;margin-top:14px;display:flex}.auth-form label{flex-direction:column;gap:6px;display:flex}.auth-form label>span{color:var(--muted);font-size:.76rem;font-weight:600}.auth-input{border:1px solid var(--border);background:var(--surface);border-radius:13px;align-items:center;gap:9px;padding:0 12px;transition:border-color .2s,box-shadow .2s;display:flex}.auth-input:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.auth-input>svg{width:16px;height:16px;color:var(--muted);flex:none}.auth-input input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:12px 0;font-size:.9rem}.auth-submit{width:100%;margin-top:4px}.auth-forgot{color:var(--accent);align-self:flex-end;margin-top:-4px;font-size:.76rem;font-weight:600;text-decoration:none}.auth-forgot:hover{text-decoration:underline}.welcome-head{align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.welcome-head>svg{width:26px;height:26px;color:var(--accent);flex:none;margin-top:3px}.welcome-head h1{font-size:1.35rem}.welcome-head p{color:var(--muted);margin-top:7px;font-size:.85rem;line-height:1.65}.welcome-head b{color:var(--text)}.profile{flex-direction:column;gap:18px;display:flex}.profile-photo{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.avatar.is-big{width:84px;height:84px;font-size:1.7rem}.profile-photo>div{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.profile-photo>div .btn{padding:9px 14px;font-size:.82rem}.profile-hint{color:var(--muted);font-size:.74rem;line-height:1.55}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.profile-field{flex-direction:column;gap:6px;display:flex}.profile-field>span{color:var(--muted);font-size:.76rem;font-weight:600}.profile-field small{color:var(--muted);font-size:.72rem;line-height:1.5}.req{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-left:6px;font-size:.66rem;font-weight:700}.profile-field textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:13px;outline:none;padding:12px 14px;font-family:inherit;font-size:.88rem;transition:border-color .2s,box-shadow .2s}.profile-field textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.profile-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.topbar-spacer{flex:1}.lp{width:min(1080px,100%);margin:0 auto;padding:18px clamp(14px,3vw,30px) 40px}.lp-nav{justify-content:space-between;align-items:center;gap:14px;padding:10px 0 30px;display:flex}.lp-brand{align-items:center;gap:11px;display:flex}.lp-logo{color:#fff;background:linear-gradient(135deg,#7c6cff,#3b9dff 55%,#22c98a);border-radius:13px;place-items:center;width:40px;height:40px;padding:9px;display:grid;box-shadow:0 12px 26px -12px #7c6cfff2}.lp-brand b{font-family:var(--font-head);font-size:1.2rem;font-weight:800}.lp-nav-actions{align-items:center;gap:8px;display:flex}.lp-link{font-family:var(--font-head);color:var(--muted);border-radius:11px;padding:10px 13px;font-size:.88rem;font-weight:600;text-decoration:none;transition:color .2s,background .2s}.lp-link:hover{color:var(--text);background:var(--surface-2)}.lp-hero{text-align:center;padding:clamp(18px,6vw,58px) 0 clamp(26px,6vw,54px);animation:.6s cubic-bezier(.22,1,.36,1) both rise}.lp-badge{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:.78rem;font-weight:600;display:inline-flex}.lp-badge svg{width:14px;height:14px;color:var(--accent)}.lp-hero h1{letter-spacing:-.035em;margin-top:22px;font-size:clamp(2rem,6.4vw,3.5rem);font-weight:800;line-height:1.06}.lp-lead{max-width:620px;color:var(--muted);margin:20px auto 0;font-size:clamp(.94rem,2.4vw,1.06rem);line-height:1.72}.lp-cta{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.lp-btn{padding:15px 24px;font-size:.95rem}.lp-points{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:10px 22px;margin:26px 0 0;padding:0;font-size:.82rem;list-style:none;display:flex}.lp-points li{align-items:center;gap:7px;display:inline-flex}.lp-points svg{width:15px;height:15px;color:var(--clean)}.lp-section{margin-top:clamp(40px,8vw,78px)}.lp-section h2{text-align:center;letter-spacing:-.03em;font-size:clamp(1.32rem,3.6vw,1.95rem)}.lp-grid{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px;margin-top:28px;display:grid}.lp-grid.is-three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.lp-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:22px;transition:transform .25s,border-color .25s}.lp-card:hover{border-color:var(--border-2);transform:translateY(-4px)}.lp-ico{width:44px;height:44px;color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:14px;place-items:center;margin-bottom:14px;display:grid}.lp-ico svg{width:21px;height:21px}.lp-card h3{font-size:1rem;font-weight:700}.lp-card p{color:var(--muted);margin-top:7px;font-size:.85rem;line-height:1.65}.lp-steps{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px;margin:28px 0 0;padding:0;list-style:none;display:grid}.lp-steps li{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);gap:15px;padding:22px;display:flex}.lp-step-n{width:36px;height:36px;font-family:var(--font-head);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:12px;flex:none;place-items:center;font-weight:800;display:grid}.lp-steps b{font-family:var(--font-head);font-size:.98rem}.lp-steps p{color:var(--muted);margin-top:6px;font-size:.84rem;line-height:1.6}.lp-priv{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);gap:14px;padding:20px;display:flex}.lp-priv>svg{width:20px;height:20px;color:var(--clean);flex:none;margin-top:3px}.lp-priv b{font-family:var(--font-head);font-size:.95rem}.lp-priv p{color:var(--muted);margin-top:5px;font-size:.83rem;line-height:1.6}.lp-faq{flex-direction:column;gap:10px;max-width:720px;margin:26px auto 0;display:flex}.lp-faq details{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);padding:2px 16px}.lp-faq summary{cursor:pointer;font-family:var(--font-head);justify-content:space-between;align-items:center;gap:10px;padding:14px 0;font-size:.92rem;font-weight:600;list-style:none;display:flex}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq summary:after{content:"+";color:var(--muted);font-size:1.25rem;line-height:1}.lp-faq details[open] summary:after{content:"−"}.lp-faq p{color:var(--muted);padding-bottom:14px;font-size:.85rem;line-height:1.7}.lp-faq b{color:var(--text)}.lp-final{text-align:center;border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 13%, transparent), transparent 60%), var(--surface);margin-top:clamp(44px,9vw,90px);padding:clamp(30px,6vw,54px) clamp(18px,4vw,40px)}.lp-final h2{font-size:clamp(1.3rem,3.4vw,1.9rem)}.lp-final p{color:var(--muted);margin-top:12px;font-size:.92rem}.lp-foot{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:40px;padding-top:22px;font-size:.78rem;display:flex}.lp-foot span{align-items:center;gap:16px;display:inline-flex}.lp-foot a{color:var(--muted);text-decoration:none}.lp-foot a:hover{color:var(--text);text-decoration:underline}@media (max-width:620px){.lp-nav{padding-bottom:16px}.lp-hero{padding-top:14px}.lp-cta{flex-direction:column}.lp-btn{width:100%}.lp-foot{text-align:center;justify-content:center}}.bottom-nav,.fab{display:none}.sheet{z-index:90;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#04060c9e;animation:.2s ease-out fade;position:absolute;inset:0}.sheet-panel{width:100%;max-width:560px;max-height:88vh;padding:10px 16px calc(22px + env(safe-area-inset-bottom));border:1px solid var(--border-2);background:var(--bg-soft);overscroll-behavior:contain;border-bottom:none;border-radius:24px 24px 0 0;animation:.3s cubic-bezier(.22,1,.36,1) sheetUp;position:relative;overflow-y:auto;box-shadow:0 -30px 70px -30px #000000e6}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.sheet-grab{background:var(--border-2);border-radius:999px;width:44px;height:4px;margin:4px auto 14px;display:block}.sheet-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding-bottom:14px;display:flex}.sheet-user{min-width:0;color:var(--text);flex:1;align-items:center;gap:11px;text-decoration:none;display:flex}.sheet-user-text{min-width:0}.sheet-user-text b{font-family:var(--font-head);font-size:.95rem;display:block}.sheet-user-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:.74rem;display:block;overflow:hidden}.sheet-new{width:100%;font-family:var(--font-head);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:14px;justify-content:center;align-items:center;gap:9px;margin-top:14px;padding:14px;font-size:.95rem;font-weight:700;display:flex;box-shadow:0 14px 30px -14px #7c6cfff2}.sheet-new svg{width:18px;height:18px}.sheet-section{flex-direction:column;gap:2px;margin-top:20px;display:flex}.sheet-title{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:0 12px 7px;font-size:.67rem;font-weight:700}.sheet-section button,.sheet-section a{color:var(--text);text-align:left;border-radius:12px;align-items:center;gap:12px;padding:13px 12px;font-size:.9rem;text-decoration:none;transition:background .15s;display:flex}.sheet-section button:active,.sheet-section a:active{background:var(--surface-2)}.sheet-section button.on{background:color-mix(in srgb, var(--accent) 14%, transparent);font-weight:600}.sheet-section svg{width:18px;height:18px;color:var(--muted);flex:none}.sheet-section button.on svg{color:var(--accent)}.sheet-section .is-danger,.sheet-section .is-danger svg{color:var(--relapse)}.collapse-head{border:1px solid var(--border);background:var(--surface);width:100%;font-family:var(--font-head);text-align:left;border-radius:13px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-size:.86rem;font-weight:600;display:flex}.collapse-head svg{width:17px;height:17px;color:var(--muted);flex:none}.collapse-head .hc-icon{border-radius:10px;width:32px;height:32px}.collapse-head .hc-icon svg{width:17px;height:17px;color:var(--accent)}.collapse-preview{align-items:center;gap:10px;display:flex}.collapse-body{flex-direction:column;gap:16px;margin-top:14px;display:flex}@media (max-width:760px){.tabs,.topbar-actions{display:none}.topbar{z-index:70;border-top:none;border-left:none;border-right:none;border-bottom:1px solid var(--border);padding:calc(9px + env(safe-area-inset-top)) 14px 9px;border-radius:0;justify-content:space-between;margin:0;position:fixed;top:0;left:0;right:0;box-shadow:0 14px 30px -24px #000000f2}.app{padding-top:calc(68px + env(safe-area-inset-top))}.brand-logo{border-radius:12px;width:38px;height:38px;padding:8px}.brand-text h1{font-size:1.14rem}.bottom-nav{z-index:60;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 92%, transparent);-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{font-family:var(--font-head);color:var(--muted);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:7px 4px;font-size:.66rem;font-weight:600;transition:color .2s,background .2s;display:flex}.bottom-nav button svg{width:21px;height:21px}.bottom-nav button.on{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.fab{right:16px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:61;color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:50%;place-items:center;width:56px;height:56px;transition:transform .15s;display:grid;position:fixed;box-shadow:0 18px 34px -12px #7c6cffe6}.fab svg{width:24px;height:24px}.fab:active{transform:scale(.93)}.app{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.habit-card{border-radius:18px;padding:16px}.habit-card .hc-note,.habit-card .hc-strip,.habit-card .hc-strip-cap,.habit-card .hc-stats,.habit-card .goal-list{display:none}.habit-card .hc-days{font-size:clamp(2.2rem,12vw,2.8rem)}.habit-card .hc-actions{margin-top:14px}.hc-checkin{padding:12px}.hc-ck-btn{text-align:center;flex:1}.summary{gap:8px;margin-top:14px}.stat{border-radius:14px;padding:11px 12px}.stat-label{letter-spacing:.06em;font-size:.62rem}.stat-value{margin-top:2px;font-size:1.3rem}.section-head{margin:18px 0 12px}.section-head h2{font-size:1.12rem}.section-head p{display:none}}
