/* === QuitLit Styles === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0f172a;--card:#1e293b;--card2:#273548;--text:#f1f5f9;--dim:#94a3b8;--green:#10b981;--green2:#059669;--green3:#34d399;--red:#ef4444;--orange:#f59e0b;--radius:16px;--shadow:0 4px 24px rgba(0,0,0,.3)}
html{font-size:16px;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100dvh;overflow-x:hidden}
#app{max-width:480px;margin:0 auto;padding:16px 16px 100px;position:relative}

/* Nav */
.nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-around;padding:8px 0 env(safe-area-inset-bottom,8px);z-index:100;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.nav button{background:none;border:none;color:var(--dim);font-size:.65rem;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;cursor:pointer;transition:.2s}
.nav button.active{color:var(--green)}
.nav button .icon{font-size:1.4rem}

/* Cards */
.card{background:var(--card);border-radius:var(--radius);padding:20px;margin-bottom:14px;box-shadow:var(--shadow);transition:transform .2s}
.card:active{transform:scale(.98)}
.card-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin-bottom:10px;display:flex;align-items:center;gap:6px}

/* Hero counter */
.hero{text-align:center;padding:32px 20px;background:linear-gradient(135deg,#064e3b,#0f172a 70%);border:1px solid rgba(16,185,129,.2);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(16,185,129,.12),transparent 70%)}
.hero .label{font-size:.8rem;color:var(--dim);margin-bottom:6px}
.hero .streak{font-size:3.2rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--green3),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}
.hero .sub{font-size:1rem;color:var(--dim);margin-top:4px}
.hero .live{font-size:1.6rem;font-weight:700;color:var(--green3);font-variant-numeric:tabular-nums;margin-top:2px}

/* Stats grid */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.stat{background:var(--card);border-radius:var(--radius);padding:18px 16px;text-align:center;box-shadow:var(--shadow)}
.stat .val{font-size:1.7rem;font-weight:700;color:var(--green3)}
.stat .lbl{font-size:.7rem;color:var(--dim);margin-top:4px;text-transform:uppercase;letter-spacing:.05em}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#fff;border:none;border-radius:12px;padding:14px 28px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}
.btn:active{transform:scale(.96);background:var(--green2)}
.btn-outline{background:transparent;border:2px solid var(--green);color:var(--green)}
.btn-outline:active{background:rgba(16,185,129,.1)}
.btn-sm{padding:10px 18px;font-size:.85rem;border-radius:10px}
.btn-danger{background:var(--red)}

/* Form */
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:.8rem;color:var(--dim);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}
.form-group input,.form-group select,.form-group textarea{width:100%;background:var(--card2);border:2px solid transparent;border-radius:12px;padding:14px 16px;color:var(--text);font-size:1rem;outline:none;transition:.2s}
.form-group input:focus,.form-group select:focus{border-color:var(--green)}

/* Timeline */
.milestone{display:flex;gap:14px;padding:14px 0;position:relative}
.milestone::before{content:'';position:absolute;left:17px;top:40px;bottom:0;width:2px;background:var(--card2)}
.milestone:last-child::before{display:none}
.milestone .dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;position:relative;z-index:1}
.milestone .dot.done{background:var(--green);color:#fff}
.milestone .dot.pending{background:var(--card2);color:var(--dim)}
.milestone .dot.current{background:var(--card2);border:2px solid var(--green);color:var(--green);animation:pulse 2s infinite}
.milestone .info h3{font-size:.95rem;font-weight:600;margin-bottom:2px}
.milestone .info p{font-size:.8rem;color:var(--dim)}
.milestone .info .progress-bar{height:4px;background:var(--card2);border-radius:4px;margin-top:6px;overflow:hidden}
.milestone .info .progress-bar .fill{height:100%;background:var(--green);border-radius:4px;transition:width .5s}

/* Craving */
.intensity-btns{display:flex;gap:8px;margin:8px 0}
.intensity-btns button{flex:1;padding:10px;border-radius:10px;border:2px solid var(--card2);background:var(--card2);color:var(--text);font-size:.9rem;font-weight:600;cursor:pointer;transition:.2s}
.intensity-btns button.sel{border-color:var(--green);background:rgba(16,185,129,.15);color:var(--green3)}
.trigger-btns{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.trigger-btns button{padding:8px 14px;border-radius:20px;border:2px solid var(--card2);background:var(--card2);color:var(--text);font-size:.8rem;cursor:pointer;transition:.2s}
.trigger-btns button.sel{border-color:var(--green);background:rgba(16,185,129,.15);color:var(--green3)}
.craving-entry{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.craving-entry:last-child{border:none}
.craving-entry .left{display:flex;flex-direction:column;gap:2px}
.craving-entry .tag{font-size:.75rem;color:var(--dim)}
.craving-entry .badge{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600}
.badge-resisted{background:rgba(16,185,129,.15);color:var(--green3)}
.badge-gave-in{background:rgba(239,68,68,.15);color:var(--red)}

/* Check-in */
.mood-btns{display:flex;gap:8px;justify-content:center;margin:12px 0}
.mood-btns button{font-size:2rem;background:none;border:3px solid transparent;border-radius:14px;padding:8px 12px;cursor:pointer;transition:.2s;opacity:.5}
.mood-btns button.sel{border-color:var(--green);opacity:1;transform:scale(1.15)}

/* Quote */
.quote-card{background:linear-gradient(135deg,rgba(16,185,129,.08),var(--card));border:1px solid rgba(16,185,129,.15);text-align:center;padding:24px 20px}
.quote-card .q{font-size:1.05rem;font-style:italic;line-height:1.5;margin-bottom:8px}
.quote-card .author{font-size:.8rem;color:var(--dim)}

/* Onboarding */
.onboarding{min-height:90dvh;display:flex;flex-direction:column;justify-content:center;text-align:center}
.onboarding h1{font-size:2.4rem;font-weight:800;margin-bottom:4px}
.onboarding .tagline{color:var(--dim);margin-bottom:32px}
.onboarding .emoji-big{font-size:4rem;margin-bottom:16px}

/* Animations */
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,.3)}50%{box-shadow:0 0 0 8px rgba(16,185,129,0)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeIn .4s ease}

/* Scrollbar */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-thumb{background:var(--card2);border-radius:4px}

/* Page title */
.page-title{font-size:1.4rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}

/* Toggle */
.toggle-row{display:flex;gap:8px;margin-bottom:14px}
.toggle-row button{flex:1;padding:10px;border-radius:10px;border:none;background:var(--card2);color:var(--dim);font-size:.8rem;font-weight:600;cursor:pointer;transition:.2s}
.toggle-row button.active{background:var(--green);color:#fff}

/* Checkin history */
.checkin-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.checkin-item .emoji{font-size:1.5rem}
.checkin-item .date{font-size:.8rem;color:var(--dim)}
.checkin-item .note{font-size:.85rem;color:var(--text)}
