:root{--bg:#f7f8ff;--bg-2:#eef4ff;--surface:#ffffffe0;--surface-strong:#fff;--surface-soft:#f4f6fb;--text:#101828;--muted:#667085;--faint:#98a2b3;--primary:#6366f1;--primary-dark:#4f46e5;--primary-soft:#e0e7ff;--success:#16a34a;--success-soft:#dcfce7;--warning:#f97316;--warning-soft:#ffedd5;--danger:#dc2626;--border:#e4e7ec;--shadow:0 24px 60px #0f172a1a;--shadow-soft:0 12px 28px #0f172a14;--radius-xl:28px;--radius-lg:20px;--radius-md:14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at top left, #6366f12e, transparent 34rem), radial-gradient(circle at top right, #16a34a1f, transparent 30rem), linear-gradient(135deg, var(--bg), var(--bg-2));margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffffd1;border-radius:16px;outline:none;padding:.9rem 1rem;transition:border-color .18s,box-shadow .18s,background .18s}input:focus,select:focus,textarea:focus{background:#fff;border-color:#6366f185;box-shadow:0 0 0 4px #6366f11f}label{color:#344054;gap:.45rem;font-weight:800;display:grid}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.02em}.btn{border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;gap:.45rem;min-height:42px;padding:.68rem 1rem;font-weight:850;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff;border-color:#0000;box-shadow:0 14px 30px #6366f147}.btn-secondary{background:var(--surface-strong);color:var(--text)}.btn-ghost{color:var(--muted);background:#ffffff80}.btn-danger{color:var(--danger);background:#fff1f2;border-color:#fecdd3}.app-shell{min-height:100vh}.sidebar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffad;border-right:1px solid #e4e7eccc;width:282px;padding:24px 18px;display:none;position:fixed;inset:0 auto 0 0}.brand,.brand-lockup{align-items:center;gap:12px;display:flex}.brand{padding:6px 8px}.brand strong,.brand-lockup strong,.brand-link{color:var(--text);font-weight:950;display:block}.brand small,.brand-lockup small{color:var(--muted);margin-top:2px;font-size:.82rem;display:block}.logo-mark{color:#fff;background:linear-gradient(145deg,#6366f1,#22c55e);border-radius:16px;flex:none;place-items:center;width:46px;height:46px;font-weight:950;display:grid;box-shadow:0 12px 28px #6366f147}.sidebar nav{gap:8px;margin-top:28px;display:grid}.sidebar nav a{color:var(--muted);border-radius:16px;padding:13px 14px;font-weight:850;transition:background .18s,color .18s,box-shadow .18s}.sidebar nav a:hover{color:var(--primary-dark);background:#6366f114}.sidebar nav a.active{background:var(--primary);color:#fff;box-shadow:0 14px 30px #6366f147}.sidebar-card{color:#fff;box-shadow:var(--shadow-soft);background:linear-gradient(145deg,#111827,#30325f);border-radius:24px;margin-top:auto;padding:18px;position:relative;overflow:hidden}.sidebar-card:after{content:"";background:#ffffff1f;border-radius:50%;width:140px;height:140px;position:absolute;bottom:-64px;right:-54px}.sidebar-card p{color:#ffffffbf;margin:6px 0 0;font-size:.84rem;line-height:1.45}.sidebar-user{gap:.25rem;margin-top:16px;padding:4px 8px;display:grid}.sidebar-user small,.muted{color:var(--muted)}.content{padding:1rem 1rem 5.8rem}.mobile-nav{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#ffffffdb;border:1px solid #e4e7ece6;border-radius:24px;grid-template-columns:repeat(5,1fr);gap:6px;padding:8px;display:grid;position:fixed;bottom:10px;left:10px;right:10px}.mobile-nav a{color:var(--muted);text-align:center;border-radius:18px;padding:.62rem .2rem;font-size:.72rem;font-weight:850}.mobile-nav a.active{background:var(--primary);color:#fff}.page{max-width:1480px;margin:0 auto;animation:.24s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.3rem;display:flex}.page-head h1{margin-bottom:0;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.02}.eyebrow{color:var(--primary-dark);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.74rem;font-weight:900}.panel,.habit-card,.stat-card,.month-card,.week-card,.report-card,.empty-state{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #e4e7ece0}.panel{padding:1.15rem}.stack-form{gap:1rem;display:grid}.two-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;display:grid}.check-row{align-items:center;gap:.6rem;display:flex}.check-row input{width:auto}.notice{background:var(--success-soft);color:#14532d;border:1px solid #bbf7d0;border-radius:16px;margin:.8rem 0;padding:.85rem}.pill{background:var(--primary-soft);color:var(--primary-dark);border-radius:999px;padding:.42rem .68rem;font-size:.78rem;font-weight:900}.pill.good{background:var(--success-soft);color:var(--success)}.habit-dot{border-radius:999px;flex:none;width:.85rem;height:.85rem;display:inline-block}.screen-loader{color:var(--muted);padding:3rem}.modal-backdrop{z-index:20;background:#0f172a59;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--surface-strong);width:min(620px,100%);max-height:90vh;box-shadow:var(--shadow);border-radius:24px;padding:1.1rem;overflow:auto}.modal-head{justify-content:space-between;align-items:center;display:flex}.empty-state{text-align:center;color:var(--muted);padding:2rem}.segmented{flex-wrap:wrap;gap:.55rem;display:flex}.swatches{gap:.5rem;display:flex}.swatches button{width:34px;height:34px;box-shadow:0 0 0 1px var(--border);border:3px solid #fff;border-radius:999px}.swatches .selected{box-shadow:0 0 0 3px var(--primary-soft)}@media (width>=900px){.sidebar{flex-direction:column;display:flex}.content{margin-left:282px;padding:26px}.mobile-nav{display:none}}@media (width<=760px){body{background:linear-gradient(#f8faff,#eef4ff)}.content{padding:16px 12px 96px}.page-head{align-items:flex-start}.page-head h1{font-size:30px}.panel,.habit-card,.stat-card,.month-card,.week-card,.report-card,.empty-state{border-radius:22px}}.landing{background:radial-gradient(circle at 18% 12%, #6366f133, transparent 30rem), radial-gradient(circle at 82% 18%, #22c55e26, transparent 26rem), linear-gradient(135deg, var(--bg), var(--bg-2));min-height:100vh}.landing-hero{align-items:center;min-height:78vh;padding:clamp(1.2rem,5vw,5rem);display:grid}.landing-hero>div{background:var(--surface);width:min(780px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #e4e7ece0;border-radius:32px;padding:clamp(1.4rem,4vw,3rem)}.landing-hero h1{margin-bottom:1rem;font-size:clamp(3.4rem,11vw,7rem);line-height:.9}.landing-hero p{color:#344054;max-width:620px;font-size:1.08rem;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:.8rem;display:flex}.landing-strip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;padding:1rem clamp(1rem,5vw,5rem) 3rem;display:grid}.landing-strip article{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:24px;gap:.25rem;padding:1.15rem;display:grid}.landing-strip span{color:var(--muted)}.auth-page{background:radial-gradient(circle at top left, #6366f133, transparent 32rem), radial-gradient(circle at bottom right, #16a34a24, transparent 28rem), linear-gradient(135deg, var(--bg), var(--bg-2));grid-template-columns:minmax(0,520px);justify-content:center;align-items:center;gap:1rem;min-height:100vh;padding:clamp(1rem,4vw,2rem);display:grid}.auth-intro{color:var(--text);padding:clamp(1rem,3vw,2rem)}.auth-intro h1{max-width:760px;margin:2rem 0 1rem;font-size:clamp(2.8rem,8vw,5.6rem);line-height:.92}.auth-intro p{color:var(--muted);max-width:560px;font-size:1.05rem;line-height:1.65}.auth-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;max-width:520px;margin-top:1.5rem;display:grid}.auth-preview div{border:1px solid var(--border);box-shadow:var(--shadow-soft);background:#ffffffb8;border-radius:22px;padding:1rem}.auth-preview span{color:var(--muted);font-size:.8rem;font-weight:800;display:block}.auth-preview strong{margin-top:.35rem;font-size:1.9rem;display:block}.auth-card{background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #e4e7ece0;border-radius:28px;padding:clamp(1.1rem,4vw,2rem)}.auth-card.wide{width:min(560px,100vw - 2rem)}.auth-card h1{margin:.7rem 0 .35rem;font-size:2.2rem}.auth-card h2{font-size:1.45rem}.auth-card p{color:var(--muted);line-height:1.5}.auth-card .brand-link{color:var(--primary-dark);text-transform:uppercase;letter-spacing:.08em;font-size:.95rem}.auth-card form+a,.auth-card>a:last-child{color:var(--primary-dark);margin-top:1rem;font-weight:850;display:inline-block}.setup-card{background:#f0f9ffe0;border-color:#6366f138}@media (width>=980px){.auth-page{grid-template-columns:minmax(0,1fr) minmax(380px,480px)}.setup-card{grid-column:2}}@media (width<=760px){.auth-page{align-items:start}.auth-intro{padding:.5rem}.auth-intro h1{margin-top:1.2rem;font-size:3rem}.auth-preview{grid-template-columns:repeat(3,1fr);gap:.5rem}.auth-preview div{border-radius:18px;padding:.8rem}.auth-preview strong{font-size:1.45rem}}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.stat-card{gap:.4rem;padding:1rem;display:grid}.stat-card span{color:var(--muted);font-weight:800}.stat-card strong{font-size:2rem}.tone-success strong{color:var(--success)}.tone-warning strong{color:var(--warning)}.dashboard-grid{gap:1rem;display:grid}.progress-panel p{color:var(--muted)}.progress,.bar{background:var(--surface-soft);border-radius:999px;height:10px;overflow:hidden}.progress span,.bar span{background:linear-gradient(90deg, var(--primary), var(--success));border-radius:inherit;height:100%;display:block}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;padding:.75rem 0;display:flex}.list-row strong{margin-left:auto}.quick-links{align-content:start;gap:.65rem;display:grid}.habit-list{gap:.8rem;display:grid}.habit-card{gap:1rem;padding:1rem;display:grid}.habit-card h3{margin-left:.4rem;display:inline}.habit-card p{color:var(--muted);margin:.4rem 0 0}.habit-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}@media (width>=760px){.stats-grid{grid-template-columns:repeat(4,1fr)}.dashboard-grid{grid-template-columns:1.2fr 1fr}.habit-card{grid-template-columns:1fr auto;align-items:center}}.calendar-page{padding-bottom:1rem}.month-card-grid{align-items:start;gap:1rem;display:grid}.month-card,.week-card{padding:.85rem;overflow:hidden}.month-card header,.week-card header{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.75rem;display:flex}.month-card header div,.week-card header div{align-items:center;gap:.55rem;min-width:0;display:flex}.month-card h2,.week-card h2{overflow-wrap:anywhere;margin:0;font-size:1rem}.mini-stats{grid-template-columns:repeat(3,1fr);gap:.45rem;margin-bottom:.7rem;display:grid}.mini-stats span{background:var(--surface-soft);color:var(--muted);text-align:center;border-radius:8px;padding:.55rem;font-size:.78rem}.mini-stats strong{color:var(--text);font-size:1rem;display:block}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.32rem;width:100%;display:grid}.calendar-grid.labels{margin-bottom:.35rem}.calendar-grid.labels b{color:var(--muted);text-align:center;font-size:.72rem}.day-cell,.day-blank{aspect-ratio:1;border-radius:8px;min-width:0}.day-cell{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;place-items:center;padding:0;display:grid;position:relative}.day-cell span{font-size:clamp(.72rem,3vw,.9rem);font-weight:800}.day-cell.done{background:var(--success-soft);color:#14532d;border-color:#86efac;animation:.22s pop}.day-cell.done i{font-size:.62rem;position:absolute;bottom:.05rem;right:.18rem}.day-cell.today{box-shadow:0 0 0 2px var(--primary)}.day-cell.future{opacity:.62}.week-stack{gap:1rem;display:grid}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid}.week-day{border:1px solid var(--border);background:var(--surface);border-radius:8px;place-items:center;gap:.2rem;min-width:0;padding:.5rem .2rem;display:grid}.week-day span{color:var(--muted);font-size:.68rem}.week-day i{min-height:1rem;color:var(--success);font-weight:900}.week-day.done{background:var(--success-soft);border-color:#86efac}.celebration{z-index:30;background:var(--text);color:#fff;border-radius:999px;padding:.7rem 1rem;font-weight:900;animation:1s forwards floatAway;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.celebration i{background:var(--warning);border-radius:50%;width:6px;height:6px;margin-left:.4rem;display:inline-block}@keyframes pop{0%{transform:scale(.9)}to{transform:scale(1)}}@keyframes floatAway{0%{opacity:0;transform:translate(-50%,10px)}20%,80%{opacity:1}to{opacity:0;transform:translate(-50%,-8px)}}@media (width>=760px){.month-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.report-hero{background:var(--text);color:#fff;border-radius:8px;gap:.2rem;margin-bottom:1rem;padding:1.5rem;display:grid}.report-hero strong{font-size:3rem}.report-grid{gap:1rem;display:grid}.report-card{padding:1rem}.report-card header{align-items:center;gap:.6rem;margin-bottom:.8rem;display:flex}.report-card h2{flex:1;margin:0;font-size:1rem}.report-stats{color:var(--muted);grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.8rem;font-weight:800;display:grid}@media (width>=760px){.report-grid{grid-template-columns:repeat(2,1fr)}}.admin-page .panel{margin-bottom:1rem}.admin-table{gap:.65rem;display:grid}.admin-row{border:1px solid var(--border);border-radius:8px;gap:.75rem;padding:.8rem;display:grid}.admin-row div:first-child{gap:.15rem;display:grid}.admin-row span,.admin-row small,.admin-row p{color:var(--muted);overflow-wrap:anywhere;margin:0}.row-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.row-actions select{width:auto;min-width:130px}@media (width>=860px){.admin-row{grid-template-columns:1fr 1fr auto;align-items:center}}
