:root{
  --bg:#eef1f5; --surface:#ffffff; --surface-2:#f3f6f9; --border:#e0e5eb;
  --text:#182029; --text-dim:#586573; --text-faint:#8c97a3;
  --accent:#0d9488; --accent-soft:rgba(13,148,136,.12);
  --plan:#6366f1; --plan-soft:rgba(99,102,241,.12);
  --good:#0f9d6a; --warn:#d98a00; --bad:#e23d5a;
  --good-soft:rgba(15,157,106,.13); --warn-soft:rgba(217,138,0,.14); --bad-soft:rgba(226,61,90,.13);
  --shadow:0 1px 2px rgba(20,30,40,.04),0 8px 24px -12px rgba(20,30,40,.10);
  --radius:16px;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0d1216; --surface:#161d23; --surface-2:#1d262d; --border:#28323b;
  --text:#e7edf2; --text-dim:#9aa7b3; --text-faint:#697683;
  --accent:#2dd4bf; --accent-soft:rgba(45,212,191,.14);
  --plan:#8b93f8; --plan-soft:rgba(139,147,248,.16);
  --good:#34d399; --warn:#fbbf24; --bad:#fb7185;
  --good-soft:rgba(52,211,153,.15); --warn-soft:rgba(251,191,36,.15); --bad-soft:rgba(251,113,133,.15);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px -16px rgba(0,0,0,.6);
}}
*{box-sizing:border-box}
html{color-scheme:light dark}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic","Noto Sans JP","Segoe UI",system-ui,sans-serif;
  font-feature-settings:"palt";-webkit-font-smoothing:antialiased;line-height:1.5}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* auth (login / setup) */
.authwrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:22px}
.authcard{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:30px 26px 26px;text-align:center}
.authcard .ic{width:52px;height:52px;border-radius:14px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.authcard .ic svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:2}
.authcard h1{margin:0 0 4px;font-size:19px;font-weight:800}
.authcard p.lead{margin:0 0 20px;font-size:12.5px;color:var(--text-dim);text-align:center}
.authcard label{display:block;text-align:left;font-size:12px;font-weight:700;color:var(--text-dim);margin:0 0 6px}
.authcard input[type=password]{width:100%;font:inherit;font-size:15px;padding:12px 14px;border-radius:11px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);outline:none;transition:.15s}
.authcard input[type=password]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.authcard .field{margin-bottom:14px;text-align:left}
.strength{height:5px;border-radius:3px;background:var(--surface-2);margin-top:8px;overflow:hidden}
.strength i{display:block;height:100%;width:0;border-radius:3px;transition:.2s}
.hint{font-size:11.5px;color:var(--text-faint);margin-top:6px;text-align:left}
.btn-primary{width:100%;font:inherit;font-size:14.5px;font-weight:800;padding:12px;border:0;border-radius:11px;background:var(--accent);color:#fff;cursor:pointer;transition:.15s}
@media(prefers-color-scheme:dark){.btn-primary{color:#06231f}}
.btn-primary:hover:not(:disabled){filter:brightness(1.05)}
.btn-primary:disabled{opacity:.55;cursor:default}
.msg{min-height:18px;margin-top:11px;font-size:12px;font-weight:700}
.msg.err{color:var(--bad)} .msg.ok{color:var(--good)}
.authnote{margin-top:16px;font-size:10.5px;color:var(--text-faint);line-height:1.6}
.warnbox{margin-top:16px;padding:11px 13px;border-radius:11px;background:var(--surface-2);border:1px solid var(--border);font-size:11.5px;color:var(--text-dim);line-height:1.65;text-align:left}
.warnbox b{color:var(--text)}
