/* 운영 콘솔 (/admin) — 사이트 다크 팔레트 재사용 */
body.adm { background: #0b0f1e; }
.adm-top { position: sticky; top: 0; z-index: 40; background: rgba(11,15,30,.92); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.adm-top-in { display: flex; align-items: center; gap: 20px; height: 60px; }
.adm-top .brand em { font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--cyan); margin-left: 8px; padding: 3px 8px; border-radius: 999px; background: rgba(34,211,238,.12); }
.adm-tabs { display: flex; gap: 4px; flex: 1; }
.adm-tabs a { padding: 8px 12px; border-radius: 10px; font-size: 14px; font-weight: 700; color: var(--muted); }
.adm-tabs a:hover, .adm-tabs a.on { color: #fff; background: rgba(255,255,255,.07); }
.adm-user { display: flex; gap: 8px; align-items: center; }
.adm-main { padding: 22px 16px 60px; }
.adm-foot { text-align: center; padding: 20px; border-top: 1px solid var(--line); }
.flash { padding: 12px 14px; border-radius: 12px; font-size: 14px; margin-bottom: 14px; }
.flash.ok { background: rgba(52,211,153,.12); border: 1px solid rgba(52,211,153,.4); color: #bbf7d0; }
.flash.bad { background: rgba(248,113,113,.12); border: 1px solid rgba(248,113,113,.4); color: #fecaca; }
.bar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; } .bar h2 { font-size: 22px; margin-right: auto; }
.seg { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid var(--line); }
.seg a { padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--muted); } .seg a.on { background: #fff; color: #0b0f1e; }
.search { display: flex; gap: 6px; } .search input { padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line); background: rgba(11,15,30,.7); color: #fff; font: inherit; font-size: 14px; min-width: 240px; }
.kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.kpi { padding: 16px 18px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); } .kpi .lbl { font-size: 12.5px; color: var(--muted); } .kpi .num { font-size: 30px; font-weight: 800; letter-spacing: -.03em; margin: 2px 0; } .kpi .num small { font-size: 13px; color: var(--muted); } .kpi .tgt { font-size: 12px; color: var(--muted); }
.kpi.ns { background: linear-gradient(160deg, rgba(255,196,61,.18), rgba(91,91,214,.1)); border-color: rgba(255,196,61,.4); }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.panel { padding: 18px 20px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); margin-bottom: 14px; overflow-x: auto; }
.panel h3 { font-size: 15px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; } .panel h3 .more { margin-left: auto; font-size: 13px; color: var(--cyan); font-weight: 600; } .cnt { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: rgba(255,255,255,.1); color: #d5dbf0; }
table.t { width: 100%; border-collapse: collapse; font-size: 13.5px; } table.t th, table.t td { padding: 9px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; } table.t th { color: var(--muted); font-weight: 600; font-size: 12px; white-space: nowrap; }
table.t td.r, table.t th.r { text-align: right; white-space: nowrap; } table.t tr.overdue td { background: rgba(248,113,113,.06); } table.t tr.edit td { background: rgba(139,92,246,.08); }
.acts { display: inline-flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; } .acts .btn.sm, td.r .btn.sm { padding: 6px 10px; font-size: 12.5px; margin: 2px 0; }
.pill { display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.1); color: #d5dbf0; white-space: nowrap; }
.pill.warn { background: rgba(251,191,36,.18); color: #fde68a; } .pill.ok { background: rgba(52,211,153,.18); color: #bbf7d0; }
.pill.st-new, .pill.st-applied, .pill.st-draft { background: rgba(34,211,238,.15); color: #a5f3fc; }
.pill.st-approved, .pill.st-sent, .pill.st-meeting, .pill.st-quote, .pill.st-signed, .pill.st-building, .pill.st-reviewing, .pill.st-training, .pill.st-cohort { background: rgba(139,92,246,.2); color: #ddd6fe; }
.pill.st-provisioned, .pill.st-paid, .pill.st-won, .pill.st-live, .pill.st-active, .pill.st-created, .pill.st-certified { background: rgba(52,211,153,.18); color: #bbf7d0; }
.pill.st-rejected, .pill.st-lost, .pill.st-void, .pill.st-churned, .pill.st-cancelled, .pill.st-suspended { background: rgba(248,113,113,.15); color: #fecaca; }
.pill.st-over_limit, .pill.st-past_due { background: rgba(251,191,36,.18); color: #fde68a; }
.score { display: inline-block; min-width: 34px; text-align: center; font-weight: 800; padding: 3px 8px; border-radius: 8px; background: rgba(255,255,255,.08); } .score.mid { background: rgba(251,191,36,.2); color: #fde68a; } .score.hi { background: rgba(52,211,153,.2); color: #bbf7d0; }
.ded { color: var(--bad); } .ok { color: var(--ok); } .warn { color: var(--warn); } .bad { color: var(--bad); }
.editrow td { background: rgba(139,92,246,.06) !important; }
.editform { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 8px 0 4px; } .editform label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); font-weight: 700; } .editform label.wide { grid-column: span 2; }
.editform input, .editform select { padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); background: rgba(11,15,30,.7); color: #fff; font: inherit; font-size: 13.5px; } .editform select option { background: #10152a; }
.editbtns { grid-column: 1 / -1; display: flex; gap: 8px; }
/* 로그인 */
.login-body { min-height: 100vh; display: grid; place-items: center; padding: 20px; position: relative; }
.login-veil { position: fixed; inset: 0; background: radial-gradient(900px 500px at 30% 20%, rgba(91,91,214,.35), transparent 60%), radial-gradient(700px 400px at 80% 80%, rgba(34,211,238,.18), transparent 60%); pointer-events: none; }
.login-box { position: relative; width: 100%; max-width: 420px; padding: 34px 30px; border-radius: 22px; background: rgba(16,21,42,.85); border: 1px solid var(--line); backdrop-filter: blur(16px); box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.login-box h1 { font-size: 26px; margin: 16px 0 6px; } .login-box p { margin-bottom: 16px; } .login-box form.site { padding: 0; border: 0; background: transparent; }
@media (max-width: 900px) { .kpi-row, .editform { grid-template-columns: 1fr 1fr; } .grid2 { grid-template-columns: 1fr; } .adm-tabs { display: none; } }

.oauth-row { display: grid; gap: 12px; margin-bottom: 14px; }
.btn.google { background: #fff; color: #1f2352; border-color: #fff; gap: 10px; } .btn.google:hover { background: #eef0ff; }
.or { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; } .or::before, .or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
