:root{
  --bg:#0b0b12; --bg2:#12121c; --bg3:#1a1a28; --line:#262636;
  --txt:#eee; --txt2:#9a9ab0; --txt3:#6a6a80;
  --acc:#a855f7; --acc2:#ec4899; --acc3:#f43f5e;
  --grad:linear-gradient(135deg,#a855f7,#ec4899);
  --ok:#22c55e; --warn:#f59e0b; --bad:#ef4444; --info:#3b82f6;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--txt);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;min-height:100vh}
a{color:inherit;text-decoration:none;cursor:pointer}
button{cursor:pointer;font-family:inherit}
input,select,textarea{background:var(--bg2);border:1px solid var(--line);border-radius:8px;color:var(--txt);padding:9px 12px;font-size:14px;outline:none;font-family:inherit}
input:focus,select:focus,textarea:focus{border-color:var(--acc)}
label{display:block;font-size:13px;color:var(--txt2);margin-bottom:5px}
.fld{margin-bottom:14px}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2e2e44;border-radius:4px}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}

/* ===== 顶部导航 ===== */
.topbar{position:sticky;top:0;z-index:50;background:rgba(11,11,18,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;height:62px;gap:22px}
.logo{font-size:19px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap;display:flex;align-items:center;gap:8px}
.logo svg{flex:none}
.nav{display:flex;gap:4px;flex:1;overflow-x:auto}
.nav a{padding:7px 13px;border-radius:8px;color:var(--txt2);font-size:13.5px;white-space:nowrap;transition:.2s}
.nav a:hover{color:var(--txt);background:var(--bg3)}
.nav a.on{color:#fff;background:linear-gradient(135deg,rgba(168,85,247,.35),rgba(236,72,153,.35))}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:600;transition:.2s;white-space:nowrap}
.btn-p{background:var(--grad);color:#fff;box-shadow:0 4px 18px rgba(236,72,153,.3)}
.btn-p:hover{filter:brightness(1.12);transform:translateY(-1px)}
.btn-o{background:transparent;border:1px solid var(--line);color:var(--txt2)}
.btn-o:hover{border-color:var(--acc);color:var(--txt)}
.btn-g{background:var(--bg3);color:var(--txt2)}.btn-g:hover{color:var(--txt)}
.btn-d{background:rgba(239,68,68,.15);color:#f87171}.btn-d:hover{background:rgba(239,68,68,.3)}
.btn-s{padding:5px 11px;font-size:12.5px;border-radius:7px}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none!important}

/* ===== 首页 ===== */
.hero{padding:78px 0 66px;position:relative;overflow:hidden;background:radial-gradient(ellipse 60% 70% at 20% 10%,rgba(168,85,247,.22),transparent),radial-gradient(ellipse 50% 60% at 85% 30%,rgba(236,72,153,.18),transparent),radial-gradient(ellipse 40% 50% at 60% 90%,rgba(59,130,246,.12),transparent)}
.hero .wrap{display:grid;grid-template-columns:1.2fr .9fr;gap:50px;align-items:center}
.hero h1{font-size:42px;line-height:1.25;font-weight:900;margin-bottom:16px}
.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--txt2);font-size:16px;margin-bottom:30px;line-height:1.8}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.hero-card{background:rgba(18,18,28,.75);border:1px solid var(--line);border-radius:18px;padding:26px;backdrop-filter:blur(10px)}
.hero-card h3{font-size:16px;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-grid .full{grid-column:1/-1}
.sec{padding:56px 0}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}
.sec-h h2{font-size:26px;font-weight:800}
.sec-h h2 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-h p{color:var(--txt2);font-size:13px;margin-top:6px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px}
.cat-card{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:22px 10px;text-align:center;transition:.25s}
.cat-card:hover{border-color:var(--acc);transform:translateY(-4px);box-shadow:0 12px 30px rgba(168,85,247,.15)}
.cat-card .ci{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(168,85,247,.2),rgba(236,72,153,.2));font-size:26px}
.cat-card b{font-size:15px}.cat-card p{font-size:12px;color:var(--txt3);margin-top:4px}
.t-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:20px}
.t-card{background:var(--bg2);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:.25s}
.t-card:hover{transform:translateY(-5px);border-color:var(--acc);box-shadow:0 16px 40px rgba(0,0,0,.45)}
.t-cover{height:150px;position:relative;display:flex;align-items:flex-end;padding:16px}
.t-ava{width:64px;height:64px;border-radius:50%;border:3px solid var(--bg2);position:absolute;bottom:-30px;left:16px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff}
.t-body{padding:38px 16px 16px}
.t-name{font-size:17px;font-weight:700}.t-name small{font-size:12px;color:var(--txt3);font-weight:400;margin-left:6px}
.t-meta{font-size:12.5px;color:var(--txt2);margin:7px 0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.t-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tag{font-size:11px;padding:2.5px 9px;border-radius:20px;background:var(--bg3);color:var(--txt2);border:1px solid var(--line)}
.tag.hi{background:rgba(168,85,247,.15);color:#c084fc;border-color:rgba(168,85,247,.3)}
.tag.ok{background:rgba(34,197,94,.12);color:#4ade80;border-color:rgba(34,197,94,.25)}
.tag.warn{background:rgba(245,158,11,.12);color:#fbbf24;border-color:rgba(245,158,11,.25)}
.tag.bad{background:rgba(239,68,68,.12);color:#f87171;border-color:rgba(239,68,68,.25)}
.tag.info{background:rgba(59,130,246,.12);color:#60a5fa;border-color:rgba(59,130,246,.25)}
.t-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}
.t-price{font-size:15px;font-weight:800;color:#f472b6}.t-price small{font-size:11px;color:var(--txt3);font-weight:400}
.fans{font-size:12px;color:var(--txt2)}
.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.scene{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:24px 18px;display:flex;flex-direction:column;gap:8px;transition:.2s}
.scene:hover{border-color:var(--acc2)}
.scene b{font-size:15px}.scene span{font-size:12px;color:var(--txt3)}
footer{border-top:1px solid var(--line);padding:36px 0;color:var(--txt3);font-size:13px;margin-top:30px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ===== 通用页面 ===== */
.page{padding:34px 0 60px;min-height:70vh}
.crumb{font-size:13px;color:var(--txt3);margin-bottom:22px}
.crumb a:hover{color:var(--acc2)}
.h1{font-size:26px;font-weight:800;margin-bottom:6px}
.h1p{color:var(--txt2);font-size:13px;margin-bottom:26px}
.flt-bar{display:flex;gap:12px;flex-wrap:wrap;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:24px}
.flt-bar select,.flt-bar input{width:auto;min-width:120px}
.panel{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:24px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

/* 人员详情 */
.detail{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}
.d-cover{height:230px;border-radius:16px;position:relative}
.d-ava{width:92px;height:92px;border-radius:50%;border:4px solid var(--bg);position:absolute;left:24px;bottom:-40px;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:900;color:#fff}
.d-box{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:24px;margin-top:52px}
.info-row{display:flex;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.info-row:last-child{border:none}
.info-row .k{width:88px;color:var(--txt3);flex:none}
.info-row .v{color:var(--txt2)}
.price-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.price-tbl th{text-align:left;color:var(--txt3);font-weight:500;padding:9px 10px;border-bottom:1px solid var(--line)}
.price-tbl td{padding:9px 10px;border-bottom:1px solid var(--line);color:var(--txt2)}
.price-tbl td b{color:#f472b6;font-weight:700}
.soc{display:flex;gap:10px;flex-wrap:wrap}
.soc-item{display:flex;align-items:center;gap:8px;background:var(--bg3);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font-size:13px}
.soc-item b{color:var(--txt)}
.soc-item span{color:var(--txt3);font-size:12px}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.work{background:var(--bg3);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.work .wc{height:86px;display:flex;align-items:center;justify-content:center;font-size:30px}
.work p{padding:9px 12px;font-size:12.5px;color:var(--txt2)}
.sch-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.sch{background:var(--bg3);border:1px solid var(--line);border-radius:10px;padding:9px 6px;text-align:center;font-size:12px}
.sch b{display:block;font-size:14px;margin:3px 0}
.sch.av .st{color:#4ade80}.sch.rsv .st{color:#fbbf24}.sch.lock .st{color:#f87171}.sch.cfm .st{color:#c084fc}
.sch.dis{opacity:.45}

/* 表单页 */
.form-card{max-width:1200px;margin:0 auto}
.sec-box{background:var(--bg3);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:18px}
.sec-box h3{font-size:15px;margin-bottom:14px;color:#e9b8ff;display:flex;align-items:center;gap:8px}
.ok-page{text-align:center;padding:70px 20px}
.ok-page .tick{width:76px;height:76px;border-radius:50%;background:rgba(34,197,94,.15);display:flex;align-items:center;justify-content:center;margin:0 auto 22px;font-size:38px;color:#4ade80}

/* ===== 后台 ===== */
.adm{display:grid;grid-template-columns:215px 1fr;min-height:100vh}
.adm-side{background:var(--bg2);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}
.adm-side .logo{font-size:16px;margin-bottom:22px;padding:0 8px;display:block}
.adm-nav a{display:flex;align-items:center;gap:9px;padding:9.5px 12px;border-radius:9px;color:var(--txt2);font-size:13.5px;margin-bottom:2px}
.adm-nav a:hover{background:var(--bg3);color:var(--txt)}
.adm-nav a.on{background:linear-gradient(135deg,rgba(168,85,247,.3),rgba(236,72,153,.3));color:#fff;font-weight:600}
.adm-nav .grp{font-size:11px;color:var(--txt3);padding:14px 12px 6px;letter-spacing:1px}
.adm-main{padding:24px 28px}
.adm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.adm-top h1{font-size:20px;font-weight:800}
.adm-top p{font-size:12.5px;color:var(--txt3);margin-top:3px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.stat{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:18px;position:relative;overflow:hidden}
.stat::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}
.stat .n{font-size:26px;font-weight:800;margin:6px 0 2px}
.stat .l{font-size:12.5px;color:var(--txt2)}
.stat .s{font-size:11.5px;color:var(--txt3)}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:var(--txt3);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);color:var(--txt2);vertical-align:middle}
.tbl tr:hover td{background:rgba(168,85,247,.04)}
.tbl td b{color:var(--txt)}
.money{color:#f472b6;font-weight:700}
.cost{color:#94a3b8;font-size:12px}
.profit{color:#4ade80;font-weight:600}
.pill{font-size:11.5px;padding:3px 10px;border-radius:20px;white-space:nowrap;display:inline-block}
.p-wait{background:rgba(245,158,11,.13);color:#fbbf24}
.p-info{background:rgba(59,130,246,.13);color:#60a5fa}
.p-ok{background:rgba(34,197,94,.13);color:#4ade80}
.p-bad{background:rgba(239,68,68,.13);color:#f87171}
.p-purple{background:rgba(168,85,247,.15);color:#c084fc}
.p-gray{background:var(--bg3);color:var(--txt3)}
.countdown{font-variant-numeric:tabular-nums;color:#fbbf24;font-weight:700}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.cal-head div{text-align:center;font-size:12px;color:var(--txt3);padding:6px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-cell{background:var(--bg3);border:1px solid var(--line);border-radius:10px;min-height:96px;padding:8px;font-size:12px}
.cal-cell .d{font-weight:700;font-size:13px;margin-bottom:5px}
.cal-cell.today{border-color:var(--acc2)}
.cal-ev{display:block;padding:2px 6px;border-radius:5px;margin-bottom:3px;font-size:11px;background:rgba(168,85,247,.2);color:#d8b4fe;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev.lock{background:rgba(239,68,68,.2);color:#fca5a5}
.cal-ev.rsv{background:rgba(245,158,11,.2);color:#fcd34d}
.cal-ev.cfm{background:rgba(34,197,94,.2);color:#86efac}
.cal-ev.dis{background:rgba(148,163,184,.2);color:#cbd5e1}
.adm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.login-box{max-width:400px;margin:90px auto}
@media(max-width:900px){
  .hero .wrap{grid-template-columns:1fr}.detail{grid-template-columns:1fr}.adm{grid-template-columns:1fr}
  .adm-side{position:static;height:auto;display:flex;overflow-x:auto;gap:4px;align-items:center}
  .adm-side .logo{margin:0 10px 0 0;padding:0}.adm-nav{display:flex}.adm-nav .grp{display:none}.adm-nav a{white-space:nowrap}
  .adm-grid2,.grid2,.grid3{grid-template-columns:1fr}.sch-grid{grid-template-columns:repeat(4,1fr)}
  .cal-cell{min-height:70px}.hero h1{font-size:30px}
}
.empty{text-align:center;color:var(--txt3);padding:50px 0;font-size:13.5px}
.toast{position:fixed;top:74px;left:50%;transform:translateX(-50%);background:var(--bg3);border:1px solid var(--acc);color:var(--txt);padding:11px 22px;border-radius:10px;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.5);font-size:13.5px;animation:tin .25s}
@keyframes tin{from{opacity:0;transform:translate(-50%,-8px)}}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:var(--bg2);border:1px solid var(--line);border-radius:16px;max-width:640px;width:100%;max-height:88vh;overflow-y:auto;padding:26px}
.modal h3{font-size:17px;margin-bottom:18px}
.flow{display:flex;gap:0;flex-wrap:wrap;margin:14px 0 20px}
.flow span{padding:6px 13px;font-size:12px;background:var(--bg3);border:1px solid var(--line);border-radius:20px;margin:0 6px 6px 0;color:var(--txt3)}
.flow span.on{background:rgba(168,85,247,.2);border-color:var(--acc);color:#d8b4fe}
@media print{.adm-side,.adm-top .btn,.no-print{display:none!important}}

/* ===== 预约多选人员 ===== */
.chip{display:inline-flex;align-items:center;background:var(--bg3);border:1px solid var(--line);border-radius:20px;padding:6px 14px;cursor:pointer;margin:0 6px 6px 0}
.chip span{color:var(--txt2);font-size:13px}
.chip-on{border-color:var(--acc)}
.chip-on span{color:#e9b8ff}
.pick-row{display:flex;align-items:center;gap:12px;background:var(--bg3);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:8px;cursor:pointer;transition:.15s}
.pick-row:hover{border-color:var(--acc)}
.pick-row.dis{opacity:.5;cursor:not-allowed}
.pick-row input[type=checkbox]{width:17px;height:17px;accent-color:#a855f7;flex:none;cursor:pointer}
.pk-ava{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:14px;flex:none}
.pk-info{flex:1;min-width:0}
.pk-info b{font-size:14px;display:block}
.pk-info small{color:var(--txt3);font-size:11.5px}

/* ===== 底部选人浮条 ===== */
#pickBar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;display:none;align-items:center;gap:12px;background:rgba(18,18,28,.96);border:1px solid var(--acc);border-radius:40px;padding:10px 22px;box-shadow:0 12px 34px rgba(0,0,0,.55);backdrop-filter:blur(10px);white-space:nowrap}
@media(max-width:640px){#pickBar{bottom:12px;padding:8px 14px;gap:8px;font-size:12.5px}}
body{padding-bottom:0}
