/* 로그인·관리자 화면 공통 (색은 앱 index.html 과 같은 토큰) */
:root{
  --canvas:#FAF9F5; --card:#EFE9DE; --surface:#FFFFFF; --line:#DED7C9;
  --ink:#141413; --body:#3D3D3A; --muted:#6B6A64;
  --blue:#2563EB; --blue-soft:rgba(37,99,235,.10); --navy:#1E293B; --on-navy:#F1F5F9;
  --good:#059669; --warn:#B45309; --bad:#DC2626;
  --font:"Pretendard Variable","Noto Sans KR",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --canvas:#12161F; --card:#1B2130; --surface:#171C27; --line:#2B3345;
  --ink:#F1F3F7; --body:#C9CEDA; --muted:#8C93A3;
  --blue:#6B9BFF; --blue-soft:rgba(107,155,255,.14); --navy:#0B1020; --on-navy:#E6EBF5;
  --good:#34D399; --warn:#FBBF24; --bad:#F87171; color-scheme:dark}}
:root[data-theme="dark"]{
  --canvas:#12161F; --card:#1B2130; --surface:#171C27; --line:#2B3345;
  --ink:#F1F3F7; --body:#C9CEDA; --muted:#8C93A3;
  --blue:#6B9BFF; --blue-soft:rgba(107,155,255,.14); --navy:#0B1020; --on-navy:#E6EBF5;
  --good:#34D399; --warn:#FBBF24; --bad:#F87171; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-size:18px}
body{margin:0;background:var(--canvas);color:var(--body);font-family:var(--font);font-size:.875rem;line-height:1.55;min-height:100vh}
h1,h2,h3{color:var(--ink);margin:0;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:600;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--blue)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.danger{color:var(--bad)}
.btn.sm{padding:5px 10px;font-size:.78rem;border-radius:8px}
.btn.ghost{background:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
label.f{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--ink)}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;background:var(--canvas);border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--ink);font-weight:400}
.hint{color:var(--muted);font-size:.8rem}
.err{color:var(--bad);font-size:.84rem;min-height:1.2em}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.brand b{display:block;color:var(--ink);font-weight:800;font-size:.875rem;letter-spacing:.02em}
.brand small{display:block;font-size:.72rem;color:var(--muted)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.tbl{width:100%;border-collapse:collapse;font-size:.84rem}
.tbl th,.tbl td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font-size:.76rem;color:var(--muted);font-weight:600;background:var(--canvas);position:sticky;top:0;white-space:nowrap}
.tbl .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.meta{color:var(--muted)}
.pill{display:inline-block;font-size:.72rem;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--canvas);white-space:nowrap}
.pill.admin{color:var(--blue);border-color:var(--blue)}
.pill.bad{color:var(--bad);border-color:var(--bad)}
.pill.ok{color:var(--good);border-color:var(--good)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--navy);color:var(--on-navy);padding:10px 16px;border-radius:10px;z-index:100;max-width:calc(100vw - 32px)}
