:root{--bg:#08090d;--ink:#f7f8ff;--muted:#8b91a7;--line:rgba(255,255,255,0.1);--violet:#8b5cf6;--violet-2:#5b7cfa;--mint:#22c55e;--danger:#f87171;--panel:rgba(16,17,24,0.78);--shadow:0 32px 120px rgba(0,0,0,0.42)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;color:var(--ink);background:radial-gradient(circle at 12% -10%,rgba(139,92,246,.2),transparent 31%),radial-gradient(circle at 82% 2%,rgba(34,197,94,.12),transparent 24%),var(--bg);font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}.stage-shell{position:relative;min-height:100vh;overflow:hidden;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 0),radial-gradient(circle at 22% 12%,rgba(139,92,246,.24),transparent 29%),radial-gradient(circle at 78% 10%,rgba(34,197,94,.13),transparent 26%),linear-gradient(180deg,#090a0f,#0d0f16);background-size:44px 44px,44px 44px,auto,auto,auto}.stage-shell:after,.stage-shell:before{content:"";position:absolute;inset:-15% auto auto 50%;width:44vw;height:120vh;transform-origin:top center;background:linear-gradient(180deg,rgba(116,103,255,.22),rgba(116,103,255,0));filter:blur(1px);-webkit-clip-path:polygon(45% 0,56% 0,100% 100%,0 100%);clip-path:polygon(45% 0,56% 0,100% 100%,0 100%);animation:beam 9s ease-in-out infinite alternate;pointer-events:none}.stage-shell:after{left:13%;background:linear-gradient(180deg,rgba(34,197,94,.16),rgba(34,197,94,0));animation-duration:11s;animation-direction:alternate-reverse}@keyframes beam{0%{transform:rotate(-9deg) translateX(-8%)}to{transform:rotate(10deg) translateX(6%)}}.audience-page{position:relative;z-index:1;display:flex;min-height:100vh;align-items:center;justify-content:center;padding:40px 18px}.query-wrap{width:min(100%,560px)}.title-block{margin-bottom:28px;text-align:center}.title-block h1{margin:0;font-size:clamp(24px,5vw,36px);line-height:1.15;letter-spacing:0;color:#ffffff;text-shadow:0 0 36px rgba(139,92,246,.26)}.title-block h1 span{display:inline-block;max-width:15em}.title-block p{margin:12px 0 0;color:var(--muted);font-size:15px}.admin-card,.panel,.query-card{border:1px solid rgba(255,255,255,.1);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.query-card{position:relative;border-radius:18px;padding:clamp(22px,5vw,34px);overflow:hidden}.admin-card:before,.panel:before,.query-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 26%),radial-gradient(circle at 16% 0,rgba(139,92,246,.18),transparent 32%)}.field{display:grid;grid-gap:9px;gap:9px;margin-bottom:20px}.field label{color:#d8dcef;font-weight:700}.required{color:var(--danger)}.input,.select{width:100%;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(255,255,255,.045);color:#f5f7ff;outline:none;padding:14px 16px;transition:border .18s ease,box-shadow .18s ease,transform .18s ease}.input:focus,.select:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(139,92,246,.16)}.input::placeholder{color:#6f7488}.danger-btn,.danger-ghost-btn,.ghost-btn,.primary-btn,.secondary-btn{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:0 14px;font-size:13px;font-weight:750;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.primary-btn{width:100%;color:#fff;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent),linear-gradient(135deg,#7c3aed,#4f7cff);box-shadow:0 14px 38px rgba(91,124,250,.26)}.primary-btn.compact{width:auto}.secondary-btn{border:1px solid rgba(139,92,246,.22);color:#c7d2fe;background:rgba(139,92,246,.12)}.ghost-btn{border:1px solid rgba(255,255,255,.08);color:#b7bdcf;background:rgba(255,255,255,.055)}.danger-btn{color:#fff;background:var(--danger)}.danger-ghost-btn{border:1px solid rgba(248,113,113,.35);color:#fecaca;background:rgba(248,113,113,.08)}.danger-btn:hover,.danger-ghost-btn:hover,.ghost-btn:hover,.primary-btn:hover,.secondary-btn:hover{transform:translateY(-1px)}.danger-btn:disabled,.danger-ghost-btn:disabled,.ghost-btn:disabled,.primary-btn:disabled,.secondary-btn:disabled{opacity:.55;transform:none}.notice{margin-top:16px;border-radius:14px;padding:12px 14px;line-height:1.55}.notice.error{border:1px solid rgba(248,113,113,.28);color:#fecaca;background:rgba(127,29,29,.26)}.notice.info{border:1px solid rgba(139,92,246,.2);color:#ddd6fe;background:rgba(88,28,135,.18)}.result-card{margin-top:26px;border:1px solid rgba(34,197,94,.28);border-radius:14px;background:radial-gradient(circle at 12% 0,rgba(34,197,94,.18),transparent 35%),rgba(7,22,16,.78);padding:24px 20px;animation:resultIn .38s ease both}@keyframes resultIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.result-name{margin:0 0 16px;text-align:center;font-size:20px}.result-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.result-box{border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.055);padding:16px}.result-box span{display:block;color:var(--muted);font-size:13px}.result-box strong{display:block;margin-top:8px;font-size:17px}.result-box .seat{color:var(--violet);font-size:24px}.masked-line{margin:18px 0 0;border-top:1px dashed rgba(34,197,94,.28);padding-top:14px;color:var(--muted);text-align:center;font-size:14px;word-break:break-all}.query-again{margin-top:14px;text-align:center}.security-note{margin-top:24px;color:#777f94;text-align:center;font-size:13px;line-height:1.7}.admin-shell{min-height:100vh;background:linear-gradient(rgba(255,255,255,.022) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 0),radial-gradient(circle at 24% -8%,rgba(139,92,246,.2),transparent 31%),radial-gradient(circle at 92% 8%,rgba(34,197,94,.1),transparent 25%),linear-gradient(180deg,#08090d,#0d0f15);background-size:48px 48px,48px 48px,auto,auto,auto}.admin-login{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:28px 16px}.admin-card{width:min(100%,420px);position:relative;border-radius:18px;padding:28px;overflow:hidden}.admin-card h1,.panel h2{margin:0 0 8px}.admin-card p,.panel-subtitle{margin:0 0 22px;color:var(--muted)}.admin-layout{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid rgba(255,255,255,.08);background:rgba(8,9,13,.78);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);padding:24px}.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;color:#f8f9ff}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent),linear-gradient(135deg,#7c3aed,#22c55e);box-shadow:0 12px 32px rgba(124,58,237,.28)}.sidebar-nav{display:grid;grid-gap:10px;gap:10px;margin-top:30px}.nav-item{display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:10px;padding:11px 12px;color:#9aa1b7;background:transparent;font-size:13px}.nav-item.active{border-color:rgba(139,92,246,.18);color:#eef2ff;background:linear-gradient(180deg,rgba(255,255,255,.07),transparent),rgba(139,92,246,.12);font-weight:800}.admin-main{min-width:0;padding:24px 28px}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-topbar h1{margin:0;font-size:clamp(20px,2.4vw,24px);color:#ffffff;letter-spacing:0;font-weight:720}.panel{position:relative;min-width:0;overflow:hidden;border-radius:18px;padding:20px 22px}.panel+.panel{margin-top:16px}.admin-card h1,.panel h2{font-size:18px;line-height:1.25;font-weight:720}.list-panel-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.list-panel-header h2{margin:0}.admin-card p,.panel-subtitle{font-size:13px;line-height:1.55}.actions-row,.filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.upload-row{display:grid;grid-gap:12px;gap:12px}.upload-action-row{display:flex;gap:12px;align-items:stretch}.upload-row .input{flex:1 1 260px}.file-picker{display:flex;flex:1 1 360px;min-height:48px;align-items:center;justify-content:center;gap:12px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(255,255,255,.045);padding:8px 10px;cursor:pointer;transition:border .18s ease,box-shadow .18s ease,background .18s ease}.file-picker:focus-within,.file-picker:hover{border-color:rgba(139,92,246,.52);background:rgba(255,255,255,.065);box-shadow:0 0 0 4px rgba(139,92,246,.12)}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.file-trigger{display:inline-flex;flex:0 0 auto;min-height:34px;min-width:144px;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(139,92,246,.18);border-radius:10px;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent),rgba(139,92,246,.12);color:#ddd6fe;font-size:13px;font-weight:760;padding:0 12px;cursor:pointer;transition:transform .18s ease,background .18s ease}.file-trigger:hover{background:linear-gradient(180deg,rgba(255,255,255,.12),transparent),rgba(139,92,246,.18)}.file-name{min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name.selected{color:#f8f9ff;font-weight:700}.mode-radio-group{display:inline-grid;grid-template-columns:repeat(2,minmax(108px,1fr));width:min(100%,264px);gap:4px;min-height:40px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018)),rgba(255,255,255,.035);padding:4px}.mode-radio{position:relative;display:inline-flex;min-width:0;align-items:center;justify-content:center;border-radius:9px;color:var(--muted);cursor:pointer;font-size:13px;font-weight:720;line-height:1;transition:color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.mode-radio:hover{color:#f5f3ff;background:rgba(255,255,255,.05)}.mode-radio.active{color:#ffffff;background:linear-gradient(135deg,rgba(139,92,246,.9),rgba(96,165,250,.82)),rgba(139,92,246,.3);box-shadow:0 10px 24px rgba(91,64,220,.24),inset 0 1px 0 rgba(255,255,255,.2)}.mode-radio input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mode-radio span{overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.filter-row .input{flex:1 1 260px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:14px}.stat{border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(255,255,255,.035);padding:14px 16px}.stat span{color:var(--muted);font-size:12px}.stat strong{display:block;margin-top:6px;font-size:18px;line-height:1.25;color:#ffffff;font-weight:720}.table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px}table{width:100%;min-width:920px;border-collapse:collapse;background:rgba(255,255,255,.025)}td,th{border-bottom:1px solid var(--line);padding:11px 14px;text-align:left;white-space:nowrap}th{color:#a4abc0;background:rgba(255,255,255,.04);font-size:12px;font-weight:650}td{color:#e8ebf5;font-size:13px}tr:last-child td{border-bottom:0}.row-actions{display:inline-flex;gap:8px;align-items:center}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:14px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.42)}.modal{width:min(100%,680px);max-height:min(92vh,760px);overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:#101118;padding:24px;box-shadow:0 32px 100px rgba(15,23,42,.34)}.confirm-modal{width:min(100%,520px)}.anomaly-modal{width:min(100%,860px)}.modal-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.delete-summary{display:grid;grid-gap:8px;gap:8px;margin-top:16px;border:1px solid rgba(248,113,113,.22);border-radius:14px;background:rgba(127,29,29,.18);padding:14px;color:#f7d7d7}.delete-summary strong{color:#fff;font-size:16px}.anomaly-list{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.anomaly-group{border:1px solid rgba(248,113,113,.26);border-radius:14px;background:linear-gradient(135deg,rgba(127,29,29,.22),rgba(88,28,135,.14)),rgba(255,255,255,.025);padding:14px}.anomaly-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fecaca;font-size:13px;font-weight:760}.anomaly-group-title strong,.anomaly-key{color:#ffffff}.anomaly-key{margin-top:7px;font-size:14px;font-weight:760}.anomaly-people{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.anomaly-person{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(180px,1.4fr) minmax(120px,1fr) minmax(180px,1.5fr);grid-gap:10px;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04);padding:10px 12px;color:#d8dcef;font-size:12px}.anomaly-person strong{color:#ffffff;font-size:13px}.anomaly-person span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-list{margin:12px 0;border-radius:14px;background:rgba(154,52,18,.2);padding:12px 14px;color:#fed7aa;line-height:1.6}.empty{padding:34px;color:var(--muted);text-align:center}@media (max-width:860px){.admin-layout{grid-template-columns:1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px 18px}.sidebar-nav{display:none}.admin-main{padding:18px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.audience-page{align-items:flex-start;padding-top:34px}.query-card{border-radius:20px}.anomaly-person,.modal-grid,.result-grid,.stats{grid-template-columns:1fr}.admin-topbar,.list-panel-header{align-items:flex-start;flex-direction:column}.danger-btn,.danger-ghost-btn,.ghost-btn,.primary-btn,.secondary-btn{width:100%}.row-actions{display:grid;grid-template-columns:1fr 1fr;min-width:180px}.file-picker{align-items:stretch;flex-direction:column}.file-trigger{width:100%}.file-name{padding:0 4px 4px}.mode-radio-group{width:100%;flex-basis:100%}}