/* ==== 后台管理 ==== */
:root{
  --brand:#F5820A; --brand-deep:#E85D04; --ink:#33281f; --muted:#8a7a6c;
  --line:#eee3d6; --bg:#f7f3ee; --card:#ffffff;
  --ok:#1a7f37; --err:#c0392b;
  --font:"PingFang SC","Microsoft YaHei",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;}

/* 顶栏 */
.topbar{background:linear-gradient(90deg,#E85D04,#FF9E2C);color:#fff;padding:0 22px;display:flex;align-items:center;gap:18px;height:58px;box-shadow:0 2px 12px rgba(180,70,0,.2);position:sticky;top:0;z-index:20;}
.topbar .logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:1.15rem;letter-spacing:1px;}
.topbar .logo img{height:34px;width:auto;max-width:120px;border-radius:8px;object-fit:contain;background:transparent;}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:8px;}
.topbar nav a{color:#fff;text-decoration:none;padding:8px 14px;border-radius:10px;font-weight:700;opacity:.9;font-size:.92rem;}
.topbar nav a:hover{background:rgba(255,255,255,.18);opacity:1;}
.topbar nav a.active{background:#fff;color:var(--brand-deep);opacity:1;}
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.9rem;}
.topbar .right a{color:#fff;text-decoration:underline;opacity:.92;}

.wrap{max-width:1140px;margin:22px auto;padding:0 18px;}
.page-title{font-size:1.4rem;font-weight:900;margin:0 0 4px;}
.page-sub{color:var(--muted);margin:0 0 18px;font-size:.9rem;}

.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 20px rgba(120,80,40,.06);padding:20px;margin-bottom:18px;}
.card h3{margin:0 0 14px;font-size:1.05rem;}

.grid{display:grid;gap:16px;}
.grid.cols-4{grid-template-columns:repeat(4,1fr);}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:820px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr;}}

.stat{background:linear-gradient(135deg,#fff,#fff7ee);border:1px solid var(--line);border-radius:14px;padding:18px;}
.stat .n{font-size:2rem;font-weight:900;color:var(--brand-deep);line-height:1;}
.stat .l{color:var(--muted);margin-top:6px;font-weight:700;}

/* 表单 */
label{display:block;font-weight:700;margin:0 0 6px;font-size:.9rem;}
.field{margin-bottom:14px;}
input[type=text],input[type=password],input[type=number],input[type=url],input[type=datetime-local],select,textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);}
textarea{min-height:80px;resize:vertical;}
.help{color:var(--muted);font-size:.8rem;margin-top:4px;}
.row{display:flex;gap:14px;flex-wrap:wrap;}
.row > .field{flex:1;min-width:160px;}

/* 按钮 */
.btn{display:inline-flex;align-items:center;gap:6px;border:none;cursor:pointer;font-family:inherit;font-weight:800;padding:10px 18px;border-radius:10px;font-size:.92rem;background:#fff;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;}
.btn:hover{border-color:var(--brand);}
.btn-primary{background:linear-gradient(135deg,#FF8A2B,#E85D04);color:#fff;border:none;}
.btn-primary:hover{filter:brightness(1.05);}
.btn-danger{background:#fff;color:var(--err);border-color:#f2c9c2;}
.btn-danger:hover{background:var(--err);color:#fff;}
.btn-sm{padding:6px 12px;font-size:.82rem;border-radius:8px;}
.btn-lg{padding:14px 26px;font-size:1.05rem;}

/* 表格 */
table.tbl{width:100%;border-collapse:collapse;background:#fff;}
table.tbl th,table.tbl td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);}
table.tbl th{background:#fbf4ea;font-weight:800;font-size:.85rem;color:#6b5744;}
table.tbl tr:hover td{background:#fffaf3;}
.thumb{width:44px;height:44px;border-radius:10px;object-fit:cover;background:#f0e6d8;}

/* 提示条 */
.alert{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-weight:700;}
.alert.ok{background:#e7f6ec;color:var(--ok);border:1px solid #b6e2c4;}
.alert.err{background:#fdecea;color:var(--err);border:1px solid #f5c6c0;}

.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:800;font-size:.78rem;}
.badge.on{background:#e7f6ec;color:var(--ok);}
.badge.off{background:#f0eae3;color:var(--muted);}
.badge.gold{background:linear-gradient(135deg,#FFD34E,#F5A300);color:#5a3b00;}
.badge.silver{background:linear-gradient(135deg,#E6E9EE,#B9C0CC);color:#33404f;}
.badge.bronze{background:linear-gradient(135deg,#F0A776,#C87A44);color:#4a2609;}
.badge.merit{background:linear-gradient(135deg,#FFB35C,#FF8A2B);color:#5a2a00;}
.badge.join{background:#f3ece3;color:var(--brand-deep);}

.code-chip{font-family:ui-monospace,Menlo,Consolas,monospace;background:#fff3e4;color:var(--brand-deep);padding:3px 10px;border-radius:8px;font-weight:800;letter-spacing:2px;}

.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;}
.toolbar .spacer{flex:1;}

/* 登录页 */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;
  background:radial-gradient(1000px 600px at 20% 10%,rgba(255,255,255,.4),transparent),linear-gradient(135deg,#FFB35C,#F5720A);}
.login-stack{display:flex;flex-direction:column;gap:14px;width:100%;max-width:360px;}
.login-box{background:#fff;border-radius:18px;box-shadow:0 20px 50px rgba(150,60,0,.25);padding:34px;width:100%;box-sizing:border-box;}
.login-box .lg{text-align:center;margin-bottom:20px;}
.login-box .lg img{height:54px;width:auto;max-width:160px;object-fit:contain;border-radius:10px;}
.login-box .lg .t{font-weight:900;font-size:1.1rem;margin-top:8px;}
.login-box .lg .s{color:var(--muted);font-size:.82rem;}

.login-support{
  display:flex;align-items:center;gap:14px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.55);
  border-radius:16px;
  padding:14px 16px;
  box-shadow:0 12px 28px rgba(120,50,0,.16);
  backdrop-filter:blur(6px);
}
.login-support .ls-qr{
  flex-shrink:0;width:96px;height:96px;border-radius:14px;
  background:#fff;padding:6px;box-sizing:border-box;
  box-shadow:0 4px 14px rgba(120,60,0,.12);
  display:flex;align-items:center;justify-content:center;
}
.login-support .ls-qr img{width:100%;height:100%;object-fit:contain;display:block;border-radius:8px;}
.login-support .ls-copy{min-width:0;flex:1;}
.login-support .ls-label{
  font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#9a7a5c;
  text-transform:none;margin-bottom:4px;
}
.login-support .ls-line{font-size:.88rem;font-weight:700;color:var(--ink);margin-bottom:2px;}
.login-support .ls-phone{
  display:inline-block;font-size:1.2rem;font-weight:900;color:var(--brand-deep);
  text-decoration:none;letter-spacing:.04em;line-height:1.2;
}
.login-support .ls-phone:hover{color:var(--brand);text-decoration:underline;}
.login-support .ls-cta{
  display:inline-flex;align-items:center;margin-top:8px;
  padding:6px 12px;border-radius:999px;font-size:.78rem;font-weight:800;
  background:linear-gradient(135deg,#FF8A2B,#E85D04);color:#fff;text-decoration:none;
  box-shadow:0 4px 12px rgba(232,93,4,.28);
}
.login-support .ls-cta:hover{filter:brightness(1.05);}
@media(max-width:380px){
  .login-support{flex-direction:column;text-align:center;}
  .login-support .ls-qr{width:112px;height:112px;}
}

/* 实时控制 */
.control-active{border:2px solid var(--brand);}
.mode-btns{display:flex;gap:10px;flex-wrap:wrap;}
.mode-btns .btn{flex:1;min-width:120px;justify-content:center;padding:16px;flex-direction:column;gap:4px;}
.mode-btns .btn .big{font-size:1.1rem;}
.mode-btns .btn.on{background:linear-gradient(135deg,#FF8A2B,#E85D04);color:#fff;border:none;}
.contestant-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.cp{border:1.5px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;background:#fff;text-align:center;transition:all .1s;}
.cp:hover{border-color:var(--brand);}
.cp.on{border-color:var(--brand);background:#fff3e4;box-shadow:0 0 0 3px rgba(245,130,10,.15);}
.cp .cpn{font-weight:800;}
.cp .cpno{font-size:.78rem;color:var(--muted);}
.switch{display:inline-flex;align-items:center;gap:8px;font-weight:800;}
.toggle{width:52px;height:30px;border-radius:999px;background:#ddd;position:relative;cursor:pointer;border:none;transition:.15s;}
.toggle::after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.toggle.on{background:var(--ok);}
.toggle.on::after{left:25px;}

@media print{
  .topbar,.toolbar,.no-print{display:none !important;}
  body{background:#fff;}
}
