:root{color-scheme:light;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#18222f;background:#f4f6f8;--nav:#0e2636;--ink:#18222f;--muted:#687887;--line:#dfe5e8;--green:#008675;--mint:#56dec1;--amber:#d98b13;--red:#c44949;--surface:#fff}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr);background:#f4f6f8}.sidebar{position:sticky;top:0;height:100vh;padding:28px 16px 20px;background:linear-gradient(180deg,#102c3e,#0a1f2d);color:#cfdae1;display:flex;flex-direction:column}.brand{display:grid;text-decoration:none;padding:0 12px 25px}.brand b{font-size:22px;letter-spacing:.5px;color:#fff}.brand span{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--mint)}.club-switcher{position:relative;margin:0 2px 24px;padding:12px 14px;border:1px solid #ffffff18;border-radius:10px;background:#ffffff0a;display:grid;gap:3px}.club-switcher small{font-size:9px;letter-spacing:1.3px;color:#89a2b3}.club-switcher strong{font-size:13px;color:#fff}.club-switcher em{position:absolute;right:14px;top:19px;width:7px;height:7px;border-right:1px solid #8da4b3;border-bottom:1px solid #8da4b3;transform:rotate(45deg)}nav{display:grid;gap:4px}nav a{display:flex;gap:11px;align-items:center;padding:11px 12px;color:inherit;text-decoration:none;border-radius:9px;font-size:14px;font-weight:600}nav a:hover,nav a.active{background:#ffffff10;color:#fff}nav a.active{box-shadow:inset 3px 0 var(--mint)}nav i{width:18px;height:18px;border:1.5px solid currentColor;border-radius:5px;opacity:.78}.sidebar-foot{margin-top:auto;padding:15px 12px;border-top:1px solid #ffffff13;font-size:11px;display:flex;align-items:center;gap:8px}.live-dot{width:8px;height:8px;border-radius:50%;background:#38d6aa;box-shadow:0 0 0 4px #38d6aa1f;display:inline-block}main{width:100%;max-width:1480px;margin:0 auto;padding:38px 42px 64px;min-width:0}.page-header{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-bottom:28px}.page-header h1{margin:0;font-size:clamp(30px,3vw,42px);letter-spacing:-1.4px;line-height:1.1}.eyebrow{margin:0 0 7px;color:#547080;font-size:10px;font-weight:850;letter-spacing:1.45px}.subtle{margin:8px 0 0;color:var(--muted);line-height:1.55}.header-actions{display:flex;gap:9px;align-items:center}button,.primary,.ghost{font:inherit;cursor:pointer;border:0;text-decoration:none;border-radius:8px;padding:11px 15px;font-size:13px;font-weight:750}.primary{background:var(--green);color:#fff;box-shadow:0 5px 14px #00867520}.primary:hover{background:#007467}.ghost{background:#fff;color:#344554;border:1px solid var(--line)}.hero{border-radius:17px;padding:28px 30px;background:linear-gradient(120deg,#0d2e40,#16485b);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:25px;box-shadow:0 12px 28px #12304418}.hero h2{font-size:26px;margin:0 0 8px}.hero p:not(.eyebrow){margin:0;color:#bed0da}.hero .eyebrow{color:#73dec7}.hero-state{min-width:165px;padding:15px 20px;border-left:1px solid #ffffff20;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px}.hero-state strong{font-size:29px}.hero-state small{grid-column:2;color:#bed0da}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.metrics article,.panel{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 3px 12px #17334608}.metrics article{padding:19px 21px}.metrics p{margin:0;color:#597080;font-size:12px;font-weight:650}.metrics strong{display:block;font-size:30px;margin:13px 0 9px}.metrics span,.metrics a{font-size:12px;color:var(--muted)}.metrics a{color:var(--green);font-weight:750}.grid-2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:18px}.panel{padding:22px;margin-top:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.panel h2,.panel-head h2{margin:0;font-size:19px}.panel-head a{font-size:12px;color:var(--green);font-weight:750;text-decoration:none}.attention{background:linear-gradient(155deg,#fff,#f7fbfa)}.task{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:var(--ink);padding:16px 0;border-top:1px solid var(--line)}.task span{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:8px;font-size:13px}.task b{font-size:22px;color:var(--green)}.task i{font-style:normal;color:var(--green)}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:22px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 18px}.search{display:grid;gap:6px;flex:1;max-width:420px}.search label,label{font-size:11px;color:#566a79;font-weight:750}.search input,input,select{width:100%;border:1px solid #cbd5db;border-radius:8px;padding:11px 12px;font:inherit;color:var(--ink);background:#fff}.search input:focus,input:focus,select:focus{outline:2px solid #00867526;border-color:var(--green)}.filters{display:flex;gap:7px;flex-wrap:wrap}.chip{padding:8px 12px;border:1px solid var(--line);background:#f8fafb;color:#5b6b77}.chip.active{background:#e8f7f3;color:#006e61;border-color:#b9e8dc}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:20px 22px 0}.count{font-size:12px;color:var(--muted);background:#f4f7f8;padding:7px 10px;border-radius:20px}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:12px}table.operational{min-width:920px;table-layout:auto}th{position:sticky;top:0;z-index:1;text-align:left;padding:11px 15px;background:#f7f9fa;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#61727f;font-size:10px;letter-spacing:.45px;text-transform:uppercase;white-space:nowrap}td{padding:14px 15px;border-bottom:1px solid #e8edef;vertical-align:middle}tbody tr:hover{background:#fafcfb}td strong{display:block}td small{display:block;color:#7a8994;margin-top:4px}.empty{text-align:center;color:#7b8993;padding:38px}.identity{display:flex;align-items:center;gap:10px}.identity>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e8f4f1;color:#087568;font-weight:850}.status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:20px;background:#eef2f4;color:#586a76;font-size:10px;font-weight:800;white-space:nowrap}.status.active,.status.online,.status.synced,.status.admitted{background:#e1f5ee;color:#08715f}.status.expiring,.status.pending,.status.waiting-offline,.status.syncing{background:#fff2d8;color:#98600c}.status.frozen,.status.expired,.status.overdue,.status.failed,.status.denied,.status.suspended{background:#fbe6e6;color:#a23c3c}.area{display:inline-block;padding:4px 7px;border:1px solid #d7e0e4;border-radius:5px;margin:2px 4px 2px 0;color:#506673;background:#fafcfc}.row-actions{display:flex;gap:5px}.row-actions button{padding:6px 8px;background:#fff;color:#087568;border:1px solid #cbdcd7;font-size:10px}.resize-handle{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize}.form-panel{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:28px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid label{display:grid;gap:6px}.form-grid button{width:max-content;align-self:end}.device-intro{padding:25px 30px;border-radius:15px;background:linear-gradient(125deg,#112d3e,#174b5c);color:#fff;display:grid;grid-template-columns:125px 1fr;gap:28px;align-items:center}.device-intro h2{font-size:25px;margin:0 0 9px}.device-intro p:not(.eyebrow){margin:0;color:#c7d6de;line-height:1.55}.device-intro .eyebrow{color:#6fe1c8}.scanner-visual{width:102px;height:136px;border:1px solid #ffffff25;border-radius:17px;background:linear-gradient(145deg,#1f5365,#081b27);display:grid;place-items:center;align-content:center;gap:13px;box-shadow:0 15px 30px #07192466}.lens{width:60px;height:65px;border:1px solid #65e1c5;border-radius:12px;display:grid;place-items:center}.lens span{width:28px;height:28px;border:1px dashed #65e1c5;border-radius:50%}.scanner-visual small{font-size:8px;letter-spacing:2px;color:#6fe1c8}.protocol{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.protocol span{font:10px Consolas,monospace;background:#ffffff0e;border:1px solid #ffffff1a;padding:5px 7px;border-radius:5px;color:#cfe3e9}.settings-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:30px}.settings-grid dl,.portal-card dl{margin:0}.settings-grid dl div,.portal-card dl div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0;font-weight:700}.status-bars>div{display:grid;grid-template-columns:130px 1fr 35px;align-items:center;gap:12px;margin:17px 0}.status-bars>div>div{height:8px;background:#eef2f4;border-radius:20px;overflow:hidden}.status-bars i{display:block;height:100%;background:var(--green);border-radius:20px}.portal{display:block;background:linear-gradient(140deg,#0e2939,#14485b);padding:20px}.portal main{max-width:520px;padding:7vh 0}.portal-card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 25px 60px #07192466}.portal-card h1{font-size:32px;margin:4px 0 18px}#toast{position:fixed;right:25px;bottom:24px;padding:12px 16px;border-radius:9px;background:#10394a;color:#fff;box-shadow:0 12px 30px #10273535;transform:translateY(25px);opacity:0;pointer-events:none;transition:.2s;z-index:20;font-size:13px}#toast.show{transform:none;opacity:1}#toast.error{background:#9f3f3f}@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.grid-2,.form-panel{grid-template-columns:1fr}}@media(max-width:720px){body{display:block}.sidebar{position:relative;width:100%;height:auto;padding:16px}.brand{padding:0 5px 13px}.club-switcher,.sidebar-foot{display:none}nav{display:flex;overflow-x:auto}nav a{white-space:nowrap;padding:9px 10px}nav i{display:none}main{padding:24px 16px}.page-header{align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:space-between}.hero{align-items:flex-start;flex-direction:column}.hero-state{border-left:0;border-top:1px solid #ffffff20;padding-left:0}.metrics{grid-template-columns:1fr 1fr}.toolbar{align-items:stretch;flex-direction:column}.search{max-width:none}.form-grid{grid-template-columns:1fr}.device-intro{grid-template-columns:1fr}.scanner-visual{display:none}.settings-grid{grid-template-columns:1fr}}@media(max-width:440px){.metrics{grid-template-columns:1fr}.header-actions .primary{display:none}}
.visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0}.visual-grid .panel{margin-top:0}.visual-panel{min-height:252px}.chart-note{font-size:11px;color:var(--muted);font-weight:700}.health-chart,.course-chart{display:grid;gap:14px}.health-row,.course-bar{display:grid;grid-template-columns:76px 1fr 26px;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.health-row b,.course-bar b{color:var(--ink);font-size:14px;text-align:right}.health-row>div,.course-bar>div{height:9px;border-radius:20px;overflow:hidden;background:#edf2f3}.health-row i,.course-bar i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--green),var(--mint))}.arrival-chart{height:145px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:9px;padding-top:12px;border-bottom:1px solid var(--line)}.arrival-bar{height:100%;display:grid;grid-template-rows:17px 1fr 20px;align-items:end;justify-items:center;gap:5px;font-size:10px;color:var(--muted)}.arrival-bar b{font-size:12px;color:var(--ink)}.arrival-bar i{width:min(28px,72%);align-self:end;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#56dec1,#008675)}.arrival-bar span{white-space:nowrap}@media(max-width:1120px){.visual-grid{grid-template-columns:1fr 1fr}.visual-grid .visual-panel:last-child{grid-column:span 2}}@media(max-width:720px){.visual-grid{grid-template-columns:1fr}.visual-grid .visual-panel:last-child{grid-column:auto}}
.sidebar{padding:24px 14px 18px}.brand{padding:0 14px 21px}.club-switcher{margin:0 2px 19px;padding:11px 13px;border-radius:12px}nav{gap:5px;padding:0 2px}nav a{position:relative;min-height:44px;gap:12px;padding:10px 12px;border-radius:11px;font-size:13px;font-weight:650;letter-spacing:.05px;color:#b9c9d2;transition:background .16s,color .16s,transform .16s}nav a:hover{background:#ffffff0d;color:#fff;transform:translateX(2px)}nav a.active{background:linear-gradient(90deg,#1d4a5e,#193b4e);color:#fff;box-shadow:inset 3px 0 var(--mint),0 5px 16px #06172222}nav i{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:7px;background:#ffffff0d;color:#9db5c1;font-style:normal;opacity:1}nav i::after{font-size:14px;line-height:1;font-family:"Segoe UI Symbol","Segoe UI",sans-serif}nav a.active i{color:var(--mint);background:#56dec11a}nav i[data-icon="grid"]::after{content:"⌂"}nav i[data-icon="users"]::after{content:"●";font-size:10px}nav i[data-icon="plans"]::after{content:"◇"}nav i[data-icon="check"]::after{content:"↗"}nav i[data-icon="scan"]::after{content:"▣";font-size:12px}nav i[data-icon="chart"]::after{content:"▥";font-size:13px}nav i[data-icon="settings"]::after{content:"⚙";font-size:13px}nav i[data-icon="calendar"]::after{content:"□"}.sidebar-foot{margin:16px 6px 0;padding:14px 8px 0;color:#9db5c1}
.sidebar-actions{margin-top:auto;padding:18px 6px 0}.logout-button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;border:1px solid #ffffff15;border-radius:9px;background:#ffffff08;color:#b9c9d2;font-size:12px;font-weight:650;text-align:left}.logout-button:hover{background:#ffffff12;color:#fff}.logout-button i{display:grid;place-items:center;width:18px;height:18px;border-radius:6px;background:#ffffff10;color:var(--mint);font-style:normal}.sidebar-foot{margin-top:14px}
.member-search-row{display:grid;grid-template-columns:150px minmax(220px,1fr);gap:8px}.member-search-tools{display:flex;align-items:center;gap:10px;margin-top:8px}.member-search-tools .ghost{padding:8px 10px;font-size:11px}.member-search-tools small{color:var(--muted);font-size:11px;line-height:1.35}#face-lookup-dialog{width:min(500px,calc(100vw - 32px));border:1px solid var(--line);border-radius:14px;padding:24px;color:var(--ink);box-shadow:0 22px 60px #10273535}#face-lookup-dialog::backdrop{background:#0a1f2d88}#face-lookup-dialog form{display:grid;gap:16px}#face-lookup-dialog label{display:grid;gap:6px}@media(max-width:720px){.member-search-row{grid-template-columns:1fr}.member-search-tools{align-items:flex-start;flex-direction:column}}
.brand{gap:3px}.brand b#venue-brand-name{font-size:19px;letter-spacing:.1px;line-height:1.2;overflow-wrap:anywhere}.brand small{color:#8ea9b7;font-size:9px;font-weight:650;letter-spacing:.45px}.club-switcher strong{font-size:12px;font-weight:650;color:#d6e1e6}
.access-area-selector{display:grid;gap:7px;margin:0;padding:0;border:0;min-width:0}.access-area-selector legend{padding:0;font-size:11px;color:#566a79;font-weight:750}.access-area-options{display:flex;gap:7px;flex-wrap:wrap;padding:9px;border:1px solid #cbd5db;border-radius:8px;min-height:48px;background:#fff}.area-choice{display:inline-flex!important;align-items:center;gap:6px;padding:6px 9px!important;border:1px solid #d7e0e4;border-radius:7px;background:#f8fbfb;color:#31515d!important;font-size:11px!important;font-weight:700!important;cursor:pointer}.area-choice:has(input:checked){border-color:#79cfbd;background:#e8f7f3;color:#006e61!important}.area-choice input{width:14px!important;height:14px;padding:0!important;accent-color:var(--green)}.access-area-selector small{color:var(--muted);font-size:10px;line-height:1.4}
.task{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;justify-content:initial}.task>span{display:contents}.task>span b{grid-column:1;margin:0}.task>span>span{grid-column:2;min-width:0;line-height:1.45}.task i{grid-column:3}.task:hover{background:#f3faf8}.task+.task{border-top:1px solid var(--line)}#device-edit-dialog{width:min(560px,calc(100vw - 32px));border:1px solid var(--line);border-radius:14px;padding:24px;color:var(--ink);box-shadow:0 22px 60px #10273535}#device-edit-dialog::backdrop{background:#0a1f2d88}#device-edit-form{display:grid;gap:14px}#device-edit-form label{display:grid;gap:6px}.attention .task{grid-template-columns:64px minmax(0,1fr) 24px;align-items:center;min-width:0}.attention .task>span>span{display:block;min-width:0;overflow-wrap:normal;word-break:normal;white-space:normal;line-height:1.45}.attention .task>span b{align-self:center}
nav i[data-icon="receipt"]::after{content:"▤";font-size:12px}
