:root{
  --bg:#0b1220;
  --panel:rgba(255,255,255,0.06);
  --panel2:rgba(255,255,255,0.04);
  --border:rgba(255,255,255,0.12);
  --text:#e8eefc;
  --muted:rgba(232,238,252,0.75);
  --accent:#6366f1;
  --good:#22c55e;
  --bad:#ef4444;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,sans-serif}
.app{max-width:980px;margin:0 auto;padding:20px}
header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
h1{margin:0;font-size:1.6rem}
.accent{color:var(--accent)}
.sub{margin:6px 0 0;color:var(--muted)}

.panel{margin-top:16px;background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:16px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel h2{margin:0;font-size:1.1rem}
.hint{color:var(--muted);font-size:0.9rem}

.btn{padding:10px 12px;border-radius:12px;border:none;background:var(--accent);color:white;font-weight:700;cursor:pointer}
.btn.secondary{background:rgba(255,255,255,0.08);border:1px solid var(--border)}
.btn.danger{background:rgba(239,68,68,0.18);border:1px solid rgba(239,68,68,0.45)}

.month-nav{display:flex;align-items:center;gap:8px}
.month-label{min-width:180px;text-align:center;background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:10px 12px}

.habit-form{display:flex;gap:10px;align-items:center}
.habit-form input{width:min(420px,70vw)}
input{background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:10px 12px;outline:none}

.habit-list{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.habit{background:var(--panel2);border:1px solid var(--border);border-radius:14px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.habit .left{min-width:0}
.habit .name{font-weight:800}
.habit .meta{color:var(--muted);font-size:0.85rem;margin-top:4px}
.habit.selected{border-color:rgba(99,102,241,0.6);box-shadow:0 0 0 3px rgba(99,102,241,0.18)}
.habit .actions{display:flex;gap:8px}
.smallbtn{padding:8px 10px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}
.smallbtn:hover{border-color:rgba(255,255,255,0.25)}

.calendar-wrap{margin-top:12px}
.weekday{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;color:var(--muted);font-size:0.85rem;padding:0 2px}
.calendar{margin-top:8px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.day{border:1px solid var(--border);border-radius:14px;min-height:56px;padding:10px;background:rgba(255,255,255,0.03);cursor:pointer;position:relative}
.day.disabled{opacity:0.35;cursor:default}
.day .num{font-weight:800}
.day .dot{position:absolute;right:10px;top:10px;width:10px;height:10px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,0.25)}
.day.done .dot{background:var(--good);border-color:var(--good)}
.day.today{border-color:rgba(99,102,241,0.7)}

.footer-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}

.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}
.stat{background:var(--panel2);border:1px solid var(--border);border-radius:14px;padding:12px}
.stat small{display:block;color:var(--muted)}
.stat-value{font-size:1.35rem;font-weight:900;margin-top:6px}

footer.small{margin-top:16px;color:var(--muted);text-align:center}
