:root{--bg: #0b1120;--surface: #131c2e;--surface-2: #1c2740;--border: #263349;--text: #e6edf6;--muted: #8fa1bd;--accent: #14b8a6;--accent-dark: #0f766e;--danger: #f43f5e;--warn: #f59e0b;--good: #22c55e;--water: #38bdf8;--radius: 14px;--tabbar-h: 64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{display:flex;flex-direction:column;min-height:100%}.app-main{flex:1;padding:max(env(safe-area-inset-top),16px) 16px calc(var(--tabbar-h) + 24px);max-width:640px;margin:0 auto;width:100%}h1{font-size:1.6rem;margin:8px 0 4px}h2{font-size:1.1rem;margin:24px 0 12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.subtitle{color:var(--muted);margin:0 0 16px;font-size:.95rem}.tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:#131c2ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:20}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);text-decoration:none;font-size:.72rem;font-weight:600}.tab.active{color:var(--accent)}.tab-icon{font-size:1.3rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px}.group-heading{display:flex;justify-content:space-between;align-items:baseline;margin:22px 0 8px}.group-heading .g-name{font-weight:700;font-size:1.05rem}.group-heading .g-time{color:var(--muted);font-variant-numeric:tabular-nums}.item-row{display:flex;align-items:center;gap:12px}.item-main{flex:1;min-width:0}.item-name{font-weight:600;display:flex;align-items:center;gap:6px}.item-sub{color:var(--muted);font-size:.85rem;margin-top:2px}.badge{font-size:.68rem;padding:2px 7px;border-radius:999px;font-weight:700;letter-spacing:.03em}.badge-priority{background:#f43f5e26;color:#fda4b4;border:1px solid rgba(244,63,94,.4)}.badge-note{background:var(--surface-2);color:var(--muted)}button{font:inherit;cursor:pointer;border:none;border-radius:10px}.btn{padding:10px 14px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);font-weight:600}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent-dark);border-color:var(--accent);color:#fff}.btn-danger{background:#f43f5e1f;border-color:#f43f5e66;color:#fda4b4}.btn-block{width:100%}.btn-sm{padding:6px 10px;font-size:.85rem}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.log-actions{display:flex;gap:8px}.take-btn,.skip-btn{width:46px;height:46px;border-radius:12px;font-size:1.3rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface-2)}.take-btn.on{background:var(--good);border-color:var(--good)}.skip-btn.on{background:var(--warn);border-color:var(--warn)}.item-row.done{opacity:.6}.water-card{text-align:center}.water-ring{--pct: 0;width:160px;height:160px;border-radius:50%;margin:8px auto 4px;background:radial-gradient(closest-side,var(--surface) 78%,transparent 79%),conic-gradient(var(--water) calc(var(--pct) * 1%),var(--surface-2) 0);display:flex;align-items:center;justify-content:center;position:relative}.water-ring-inner{text-align:center}.water-amount{font-size:1.7rem;font-weight:700}.water-goal{color:var(--muted);font-size:.85rem}label{display:block;font-size:.85rem;color:var(--muted);margin:12px 0 4px;font-weight:600}input[type=text],input[type=number],input[type=time],input[type=password],select,textarea{width:100%;padding:11px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit}.inline{display:flex;gap:10px;align-items:center}.inline>*{flex:1}.checkbox-row{display:flex;align-items:center;gap:10px;margin-top:14px}.checkbox-row input{width:20px;height:20px}.weekday-picker{display:flex;gap:6px;flex-wrap:wrap}.weekday-chip{padding:8px 0;width:44px;text-align:center;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-size:.8rem;font-weight:600}.weekday-chip.on{background:var(--accent-dark);border-color:var(--accent);color:#fff}.admin-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}.admin-nav a{white-space:nowrap;padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600}.admin-nav a.active{background:var(--accent-dark);border-color:var(--accent);color:#fff}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat-value{font-size:1.7rem;font-weight:800}.stat-label{color:var(--muted);font-size:.82rem;margin-top:2px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 8px 8px 0;margin-bottom:12px}.chart-title{color:var(--muted);font-size:.85rem;font-weight:600;margin:0 0 8px 16px}.banner{border-radius:var(--radius);padding:12px 14px;margin-bottom:12px;font-size:.9rem;line-height:1.4}.banner-warn{background:#f59e0b1f;border:1px solid rgba(245,158,11,.4);color:#fcd9a0}.banner-info{background:#38bdf81a;border:1px solid rgba(56,189,248,.35);color:#bae6fd}.banner-good{background:#22c55e1f;border:1px solid rgba(34,197,94,.4);color:#bbf7d0}.muted{color:var(--muted)}.right{text-align:right}.spacer{height:12px}.list-empty{color:var(--muted);text-align:center;padding:32px 0}.pill-toggle{display:flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;width:fit-content}.pill-toggle button{padding:6px 16px;background:transparent;color:var(--muted);border-radius:0}.pill-toggle button.on{background:var(--accent-dark);color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:18px 18px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));width:100%;max-width:640px;max-height:90vh;overflow-y:auto}.row-between{display:flex;justify-content:space-between;align-items:center}
