:root{font-family:Microsoft YaHei,PingFang SC,Noto Sans SC,system-ui,sans-serif;color:#14213d;background:#f3f8ff;--bg: #f3f8ff;--panel: rgba(255, 255, 255, .96);--panel-2: rgba(247, 251, 255, .98);--line: rgba(31, 102, 190, .16);--line-strong: rgba(31, 102, 190, .34);--muted: #62738d;--red: #ef3340;--red-2: #c8212d;--green: #16a34a;--amber: #f59e0b;--cyan: #0ea5ff;--blue: #1268d8;--blue-2: #0a46ad;--blue-3: #e7f2ff;--danger: #ef3340;--ink: #14213d;--radius: 8px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 12% 4%,rgba(21,117,255,.14),transparent 30%),linear-gradient(180deg,#f7fbff,#edf6ff 62%,#f8fbff);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}.fire-app{height:100vh;display:grid;grid-template-rows:72px auto minmax(0,1fr);gap:0;padding-bottom:0;overflow:hidden}.fire-app.home-mode{grid-template-rows:86px minmax(0,1fr)}.fire-app.warehouse-mode{grid-template-rows:72px auto 46px minmax(0,1fr) 180px;gap:8px;padding-bottom:8px;background:#edf6ff}.fire-app.management-mode{grid-template-rows:72px auto minmax(0,1fr)}.app-header{display:grid;grid-template-columns:minmax(420px,1fr) 184px 166px 52px 230px;align-items:center;gap:18px;padding:0 28px;color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 36%),linear-gradient(90deg,#0a4cb8,#075fda 48%,#0046a8);border-bottom:1px solid rgba(255,255,255,.18);box-shadow:0 12px 36px #03378038}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:10px;color:#ffd24d;background:linear-gradient(145deg,#0d75f0,#083f9f);border:2px solid rgba(255,210,77,.86);box-shadow:inset 0 0 0 1px #fff3,0 8px 22px #003a8d52}.brand h1{margin:0;font-size:24px;line-height:1.05;font-weight:800}.brand p,.profile span,.clock span{margin:4px 0 0;color:#ffffffbd;font-size:13px}.readiness{height:44px;display:grid;grid-template-columns:22px 1fr;align-items:center;column-gap:10px;padding:0 12px;border:1px solid rgba(255,255,255,.24);border-radius:var(--radius);background:#ffffff1f}.readiness svg{grid-row:span 2;color:#ffd76c}.readiness span{color:#ffffffb8;font-size:12px}.readiness strong{color:var(--green);font-size:14px}.clock{padding-left:22px;border-left:1px solid rgba(255,255,255,.2)}.clock strong,.profile strong{display:block;font-size:15px}.header-icon{width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);background:#ffffff1f;cursor:pointer}.profile{display:flex;align-items:center;gap:10px}.logout-button{width:32px;height:32px;display:grid;place-items:center;margin-left:auto;border:1px solid rgba(255,255,255,.18);border-radius:4px;color:#f3ddda;background:#0000002e;cursor:pointer}.profile-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-weight:800;background:linear-gradient(145deg,#0ea5ff,#0a58c8);border:1px solid rgba(255,255,255,.26)}.module-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;padding:6px 18px;background:#fff;border-bottom:1px solid var(--line)}.module-nav button{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;border:1px solid rgba(31,102,190,.14);border-radius:5px;color:#38516f;background:#f7fbff;cursor:pointer;white-space:nowrap}.module-nav button.active{border-color:#0e75ff73;color:#fff;background:linear-gradient(180deg,#177cff,#0a56c8);box-shadow:0 8px 18px #0a56c82e}.home-shell{position:relative;min-height:0;display:grid;grid-template-columns:minmax(500px,1.08fr) minmax(460px,.92fr);grid-template-rows:minmax(0,1fr) 62px;gap:16px;padding:24px 28px 0;background:radial-gradient(circle at 30% 18%,rgba(14,165,255,.18),transparent 30%),linear-gradient(180deg,#f7fbff,#eef7ff);overflow:hidden}.home-shell:before{content:"";position:absolute;inset:0 0 auto 0;height:130px;background:linear-gradient(180deg,rgba(9,94,214,.08),transparent);pointer-events:none}.home-voice-panel,.home-shortcuts{position:relative;z-index:1}.home-voice-panel{min-width:0;display:grid;grid-template-rows:auto minmax(148px,1fr) auto auto auto minmax(64px,auto);align-items:center;justify-items:center;row-gap:10px;padding:28px 42px 22px;border:1px solid rgba(20,112,230,.18);border-radius:8px;background:radial-gradient(circle at 50% 35%,rgba(14,165,255,.16),transparent 42%),#fffffff0;box-shadow:0 18px 38px #1154aa14}.voice-heading{display:flex;align-items:center;justify-content:center;gap:24px}.voice-heading h2{margin:0;color:#0a4fb3;font-size:clamp(28px,2.7vw,40px);font-weight:900;letter-spacing:0}.voice-wave{width:42px;height:24px;border-inline:5px solid rgba(24,124,255,.25);border-radius:50%}.voice-orb{position:relative;width:min(178px,18vw);min-width:142px;aspect-ratio:1;display:grid;place-items:center;border:0;border-radius:50%;color:#fff;background:radial-gradient(circle at 42% 30%,#49b8ff,#0968e7 64%,#0649b4);box-shadow:0 0 0 14px #0e87ff1f,0 0 0 26px #0e87ff12,0 22px 55px #0454c84d;cursor:pointer}.voice-orb:disabled,.voice-examples button:disabled{cursor:progress;opacity:.72}.voice-orb.listening{background:radial-gradient(circle at 42% 30%,#ff7a7a,#e91b35 64%,#b9071d);box-shadow:0 0 0 14px #e91b351f,0 0 0 26px #e91b3514,0 22px 55px #b9071d52}.voice-orb:before,.voice-orb:after{content:"";position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;border:2px solid rgba(74,177,255,.18);border-radius:50%}.voice-orb:after{top:-42px;right:-42px;bottom:-42px;left:-42px;border-style:dashed;opacity:.55}.voice-examples{width:100%;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding-top:6px}.voice-live-text{min-height:24px;margin:-2px 0 0;color:#5d6f8f;font-size:16px;font-weight:700;text-align:center;overflow-wrap:anywhere}.voice-live-text.listening{color:#d7182a}.voice-examples span{flex:0 0 100%;color:#1268d8;font-size:16px;font-weight:800;text-align:center}.voice-examples button{height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border:1px solid rgba(18,104,216,.22);border-radius:7px;color:#0b56be;background:#f1f8ff;cursor:pointer}.voice-manual-form{width:min(100%,520px);display:grid;grid-template-columns:1fr 92px;gap:10px}.voice-manual-form input,.voice-manual-form button{height:42px;border-radius:7px;font-size:15px}.voice-manual-form input{min-width:0;border:1px solid rgba(18,104,216,.2);padding:0 14px;color:var(--ink);background:#fff;outline:none}.voice-manual-form input:focus{border-color:#1688ff;box-shadow:0 0 0 3px #1688ff1f}.voice-manual-form button{border:0;color:#fff;background:#0b65d8;font-weight:800;cursor:pointer}.voice-manual-form button:disabled{cursor:not-allowed;opacity:.58}.voice-result-dock{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;align-self:end;padding:12px 10px 0;border-top:1px solid rgba(20,112,230,.16)}.voice-result-dock-main{min-width:0;display:flex;align-items:center;gap:12px}.result-icon{flex:0 0 auto;width:52px;height:52px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#1688ff,#0758cd);box-shadow:0 14px 30px #0758cd38}.voice-result-dock .result-icon{width:46px;height:46px;border-radius:10px;box-shadow:0 10px 22px #0758cd2e}.voice-result-dock span,.voice-modal-title span{display:block;color:var(--muted);font-size:15px}.voice-result-dock strong{display:block;margin-top:4px;color:var(--ink);font-size:18px;font-weight:900;overflow-wrap:anywhere}.voice-result-dock button{flex:0 0 auto;height:38px;padding:0 18px;border:0;border-radius:7px;color:#fff;background:#0b65d8;font-size:15px;font-weight:900;cursor:pointer}.voice-result-dock button:disabled{cursor:not-allowed;opacity:.5}.voice-result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:28px;background:#08163073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.voice-result-modal{width:min(640px,calc(100vw - 40px));max-width:640px;max-height:min(78vh,720px);display:grid;grid-template-rows:auto 1fr;overflow:hidden;border:1px solid rgba(30,114,220,.18);border-radius:8px;background:#fff;box-shadow:0 30px 70px #051f4847}.voice-modal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid rgba(20,112,230,.14);background:#f7fbff}.voice-modal-title{min-width:0;display:flex;align-items:center;gap:14px}.voice-modal-title .result-icon{width:56px;height:56px}.voice-modal-title h3{margin:4px 0 0;color:var(--ink);font-size:clamp(24px,2.5vw,34px);font-weight:900;line-height:1.18;overflow-wrap:anywhere}.voice-modal-close{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(20,112,230,.16);border-radius:8px;color:#14345f;background:#fff;cursor:pointer}.voice-modal-body{min-height:180px;overflow-y:auto;padding:24px}.voice-modal-fields{display:grid;grid-template-columns:1fr;gap:14px}.voice-modal-result{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.voice-modal-field{min-width:0;padding:16px;border:1px solid rgba(20,112,230,.16);border-radius:8px;background:#f8fbff}.voice-modal-field span{display:block;color:var(--muted);font-size:15px;font-weight:800}.voice-modal-field b{display:block;margin-top:6px;color:var(--red);font-size:clamp(30px,3.4vw,44px);font-weight:900;line-height:1.16;overflow-wrap:anywhere}.voice-modal-message{display:block;color:var(--ink);font-size:clamp(26px,3vw,40px);font-weight:900;line-height:1.2;overflow-wrap:anywhere}.voice-modal-message.error{color:var(--red)}.home-shortcuts{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(96px,1fr);gap:12px}.home-shortcut{min-height:0;display:grid;place-items:center;align-content:center;gap:10px;border:1px solid rgba(31,102,190,.14);border-radius:8px;background:linear-gradient(180deg,#fffffffa,#fafdfff5);box-shadow:0 12px 28px #1154aa14;color:#1268d8;cursor:pointer}.home-shortcut.red{color:var(--red)}.home-shortcut:hover,.home-shortcut:focus-visible{transform:translateY(-1px);border-color:#1268d861;box-shadow:0 18px 34px #1154aa24;outline:none}.home-shortcut span{color:#16233b;font-size:clamp(18px,1.55vw,24px);font-weight:850}.home-status-bar{grid-column:1 / -1;display:flex;align-items:center;gap:20px;min-width:0;padding:0 28px;border-top:1px solid rgba(31,102,190,.14);background:#ffffffc7;color:#50647f;font-size:15px}.home-status-bar span{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}.home-status-bar svg{color:#1268d8}.home-status-bar b{color:var(--green)}.home-date{margin-left:auto}.home-meta{position:absolute;left:28px;bottom:70px;color:#50647fb8;font-size:13px}.room-tabs{display:flex;align-items:center;gap:14px;padding:0 10px;background:#050d10f0;border-bottom:1px solid var(--line)}.tab-title{width:210px;height:34px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:#0d1f24eb;color:#dce9e8}.room-tabs button,.scene-tools button,.record-filters button{height:32px;min-width:92px;border:1px solid transparent;border-radius:var(--radius);background:#273338d1;color:#cbd8d8;cursor:pointer}.room-tabs button.active,.scene-tools button.active,.record-filters button.active{border-color:#ff604eb8;background:linear-gradient(180deg,#df392f,#9d1712);color:#fff}.scene-tools{margin-left:auto;display:flex;gap:8px}.scene-tools button{min-width:44px;display:inline-flex;align-items:center;justify-content:center}.workspace{min-height:0;display:grid;grid-template-columns:296px minmax(620px,1fr) 300px;gap:8px;padding:0 10px}.left-column,.right-column{min-height:0;display:grid;gap:8px}.left-column{grid-template-rows:176px 190px 156px minmax(120px,1fr)}.right-column{grid-template-rows:328px 126px minmax(188px,1fr)}.panel{min-width:0;min-height:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--panel-2),var(--panel));overflow:hidden}.panel-head{min-height:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.panel h2{margin:0;color:#ecf8f7;font-size:16px;font-weight:750}.shelf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.shelf-grid button{height:36px;border:1px solid var(--line);border-radius:4px;background:#28353ad1;cursor:pointer}.shelf-grid button.selected{border-color:#ff5c4ad1;background:linear-gradient(180deg,#db382f,#8f1510);box-shadow:0 0 16px #ff3f3040}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:#b9caca;font-size:12px}.legend span,.metric span{display:inline-flex;align-items:center;gap:6px}.legend i,.metric i{width:11px;height:11px;display:inline-block;border-radius:2px}i.normal,.slot.normal,.rack-slot.normal{background:var(--green)}i.warning,.slot.warning,.rack-slot.warning{background:var(--amber)}i.abnormal,.slot.abnormal,.rack-slot.abnormal{background:var(--danger)}i.selected,.slot.selected,.rack-slot.selected{background:var(--cyan)}.normal{color:var(--green)!important}.warning{color:var(--amber)!important}.abnormal,.danger{color:var(--danger)!important}.selected{color:var(--cyan)!important}.slot-map{display:grid;gap:9px}.slot-row{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px}.slot-row span{color:#c3d2d2;font-size:12px}.slot{width:100%;min-height:42px;border:0;border-radius:5px;opacity:.82;cursor:pointer}.zone-slot{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:8px;padding:0 10px;color:#eff8ff;text-align:left}.zone-slot strong,.zone-slot span,.zone-slot em{position:relative;z-index:1}.zone-slot strong{font-size:13px}.zone-slot span,.zone-slot em{font-size:12px;font-style:normal}.slot.current{outline:2px solid var(--cyan);outline-offset:2px;opacity:1}.inventory-layout{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:14px}.inventory-ring{width:96px;height:96px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#13242a 45%,transparent 46%),conic-gradient(var(--green) 0 318deg,var(--amber) 318deg 346deg,var(--danger) 346deg 360deg)}.inventory-ring span{margin-top:18px;color:#c3d1d1;font-size:12px}.inventory-ring strong{margin-top:-22px;font-size:18px}.inventory-lines{display:grid;gap:8px}.metric{display:flex;justify-content:space-between;gap:12px;color:#d3e2e1;font-size:13px}.mini-table,.records-table{width:100%;border-collapse:collapse;font-size:12px}.mini-table th,.mini-table td,.records-table th,.records-table td{padding:6px 7px;border-bottom:1px solid rgba(123,159,160,.14);color:#c8d7d7;text-align:left;white-space:nowrap}.mini-table th,.records-table th{color:#8fa7aa;font-weight:600}.room-stage{position:relative;min-width:0;min-height:0;border:1px solid var(--line);border-radius:var(--radius);background:#0b1418;overflow:hidden}.three-room{background:radial-gradient(circle at 50% 20%,rgba(53,216,255,.15),transparent 34%),linear-gradient(180deg,#081316,#050b0d)}.three-scene-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.three-scene-host canvas{display:block;width:100%;height:100%;outline:none}.three-status{position:absolute;z-index:7;left:26px;bottom:88px;display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(53,216,255,.32);border-radius:var(--radius);background:#051014c2;box-shadow:0 14px 28px #00000047}.three-status span{color:var(--cyan);font-size:12px;font-weight:800;letter-spacing:0}.three-status strong,.three-status b{color:#dcebea;font-size:12px;font-weight:650}.scene-copy{position:absolute;z-index:6;left:26px;top:22px;display:flex;align-items:center;gap:14px}.scene-copy span{color:#f8d8d4;font-size:14px}.scene-copy strong{padding:6px 12px;border-radius:4px;background:linear-gradient(180deg,#dd392f,#9b1712);font-size:20px}.scene-copy em{padding:6px 12px;border:1px solid rgba(255,190,70,.38);border-radius:4px;color:#ffd678d1;background:#0812158f;font-style:normal;font-weight:700}.room-perspective{position:absolute;top:0;right:0;bottom:0;left:0;perspective:1200px;background:#0c1518}.room-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .32s ease,filter .32s ease}.room-stage.top .room-bg{transform:translateY(-4%) scale(1.04);filter:saturate(.88) brightness(.88)}.slot-layer{position:absolute;left:16.4%;top:24.2%;width:68%;height:39%;display:grid;grid-template-columns:repeat(20,1fr);grid-template-rows:repeat(3,1fr);gap:5.5% .32%;transform:rotateX(0) translateZ(28px);transform-style:preserve-3d;transition:transform .32s ease}.room-stage.top .slot-layer{transform:rotateX(58deg) translateY(26px) translateZ(40px) scaleY(.88)}.rack-slot{border:0;border-radius:2px;opacity:.32;cursor:pointer;box-shadow:0 0 8px currentColor}.rack-slot:hover,.rack-slot.selected{opacity:.95;outline:2px solid var(--cyan);outline-offset:1px;box-shadow:0 0 18px #35d8ffb3}.selected-popover{position:absolute;z-index:8;right:19%;top:43%;width:178px;padding:12px;border:1px solid rgba(53,216,255,.48);border-radius:5px;background:#091c23e6;box-shadow:0 16px 34px #00000061}.selected-popover strong,.selected-popover span,.selected-popover em,.selected-popover b{display:block}.selected-popover strong{font-size:14px}.selected-popover span,.selected-popover em{margin-top:5px;color:#cad8d8;font-size:13px;font-style:normal}.selected-popover b{margin-top:8px;font-size:13px}.inventory-action-pulse{margin-top:10px;padding:9px 10px;border:1px solid rgba(53,216,255,.28);border-radius:5px;color:#effcff;background:#091c23d6;font-size:13px;font-weight:750;animation:inventoryPulse .9s ease-out both}.inventory-action-pulse.in{border-color:#50d66f73;color:#bdf7c8}.inventory-action-pulse.out{border-color:#ff594b73;color:#ffd0ca}.inventory-action-pulse.check{border-color:#35d8ff73;color:#c7f5ff}.inventory-action-pulse.stage{position:absolute;z-index:9;right:22px;bottom:24px;margin:0;min-width:180px;text-align:center}@keyframes inventoryPulse{0%{opacity:0;transform:translateY(8px) scale(.96)}20%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(1.04)}}.action-row button,.door-actions button{height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid var(--line);border-radius:4px;background:#233036e6;cursor:pointer;white-space:nowrap;line-height:1}.equipment-detail{display:grid;grid-template-columns:110px 1fr;gap:12px}.equipment-detail img{width:110px;height:116px;object-fit:cover;border:1px solid var(--line);border-radius:5px;background:#111}.equipment-detail dl{display:grid;gap:7px;margin:0;font-size:12px}.equipment-detail dl div{display:grid;grid-template-columns:68px 1fr;gap:8px}.equipment-detail dt{color:var(--muted)}.equipment-detail dd{margin:0;color:#e8f5f4}.action-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:8px;margin-top:14px}.action-row button{padding:0 8px;font-size:13px}.action-row .primary{border-color:#ff5c4aa8;background:linear-gradient(180deg,#df3a30,#a01712)}.door-panel{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:12px}.door-icon{height:66px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;background:#ffffff0a;color:#dce8e7}.door-panel p{margin:0 0 10px;color:#d5e0df;font-size:13px}.door-actions{display:flex;gap:8px}.door-actions button{min-width:78px;padding:0 10px;font-size:13px}.door-actions .open{border-color:#50d66f94;background:linear-gradient(180deg,#43bd62,#218c3d);color:#fff}.permission-note{color:var(--amber)}.access-list{display:grid;gap:9px}.access-row{display:grid;grid-template-columns:40px 1fr 76px 64px;align-items:center;gap:10px;padding-bottom:9px;border-bottom:1px solid rgba(123,159,160,.12)}.access-row img{width:38px;height:38px;border:1px solid rgba(80,214,111,.72);border-radius:50%;object-fit:cover}.access-row strong,.access-row span,.access-row time,.access-row b{display:block;font-size:12px}.access-row span{width:max-content;margin-top:4px;padding:2px 7px;border-radius:3px;background:#4ca2ff29;color:#8dbfff}.access-row time{color:#9eb0b2}.access-row b{color:var(--green)}.bottom-bar{min-height:0;display:grid;grid-template-columns:340px 540px minmax(420px,1fr);gap:8px;padding:0 10px}.people-grid{height:116px;display:grid;grid-template-columns:repeat(4,1fr)}.people-card{display:grid;place-items:center;gap:5px;border-right:1px solid rgba(123,159,160,.15)}.people-card:last-child{border-right:0}.people-card.red{color:#ff5143}.people-card.orange{color:#ff9130}.people-card.blue{color:#4ca2ff}.people-card.green{color:#55d875}.people-card span{color:#c4d1d1;font-size:13px}.people-card strong{color:#edf8f7;font-size:23px}.vehicle-grid{height:116px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.vehicle-card{position:relative;min-width:0;padding:10px;border:1px solid var(--line);border-radius:5px;background:#ffffff09;overflow:hidden}.vehicle-card header{position:relative;z-index:2}.vehicle-card strong,.vehicle-card span{display:block}.vehicle-card strong{font-size:13px}.vehicle-card span{margin-top:5px;color:#9fb0b1;font-size:12px}.vehicle-card b{position:absolute;right:8px;top:0;font-size:12px}.vehicle-card b.ready{color:var(--green)}.vehicle-card b.warning{color:var(--amber)}.vehicle-card img{position:absolute;left:6px;right:6px;bottom:4px;width:calc(100% - 12px);height:58px;object-fit:contain}.record-filters{display:flex;gap:6px}.record-filters button{min-width:52px;height:28px;font-size:12px}.records-table td,.records-table th{padding-top:5px;padding-bottom:5px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#8b1710b8,#050d10f0 52%),radial-gradient(circle at 55% 38%,rgba(247,180,42,.18),transparent 32%),#061012}.login-panel{width:min(520px,100%);padding:30px;border:1px solid rgba(255,91,73,.34);border-radius:8px;background:#09191ef5;box-shadow:0 28px 70px #0000006b}.login-brand{margin-bottom:28px}.login-form{display:grid;gap:15px}.login-form label,.admin-form label{display:grid;gap:7px;color:#9fb6b7;font-size:13px}.login-form input,.admin-form input,.admin-form select,.search-box input{width:100%;min-width:0;height:38px;border:1px solid rgba(121,164,166,.24);border-radius:5px;color:#edf8f7;background:#050d10c7;outline:none}.login-form input,.admin-form input,.admin-form select{padding:0 11px}.login-form input:focus,.admin-form input:focus,.admin-form select:focus,.search-box input:focus{border-color:#35d8ff85;box-shadow:0 0 0 3px #35d8ff1f}.login-button,.admin-submit{height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,92,74,.72);border-radius:5px;color:#fff;background:linear-gradient(180deg,#df3a30,#a01712);cursor:pointer}.login-button:disabled,.admin-submit:disabled,.inline-action:disabled{opacity:.56;cursor:not-allowed}.login-hint,.form-error{min-height:20px;margin:0;font-size:13px}.login-hint{color:#91a7a9}.form-error{color:var(--danger)}.loading-panel{width:min(340px,100%);display:grid;place-items:center;gap:14px;color:#dffaff}.page-frame{min-height:0;margin:0 10px 8px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#0c1f25fa,#081418fa);overflow:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.page-head h2{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:22px}.page-head p{margin:6px 0 0;color:#91a7a9;font-size:13px}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:min(560px,48vw)}.search-box{width:min(360px,42vw);height:38px;display:grid;grid-template-columns:34px 1fr;align-items:center;border:1px solid rgba(121,164,166,.24);border-radius:5px;background:#050d10c7}.search-box svg{justify-self:center;color:#8fb1b4}.search-box input{height:36px;padding:0 10px 0 0;border:0;background:transparent}.export-button{height:38px;padding:0 13px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,204,116,.34);border-radius:5px;background:#a0462138;color:#ffe5ba;white-space:nowrap}.export-button:disabled{cursor:not-allowed;opacity:.55}.stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.stat-card{min-width:0;padding:12px;border:1px solid rgba(121,164,166,.18);border-radius:6px;background:#ffffff09}.stat-card span,.stat-card strong{display:block}.stat-card span{color:#91a7a9;font-size:12px}.stat-card strong{margin-top:7px;color:#f4fbfa;font-size:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:10px 11px;border-bottom:1px solid rgba(123,159,160,.14);color:#cfdddd;text-align:left;white-space:nowrap}.data-table.compact th,.data-table.compact td{padding:8px 9px;font-size:12px}.data-table th{color:#8fa7aa;font-weight:650;background:#ffffff06}.data-table tbody tr{cursor:default}.data-table tbody tr:hover,.data-table tr.selected-row{background:#35d8ff14}.two-column-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.sub-panel{min-width:0;padding:13px;border:1px solid rgba(121,164,166,.18);border-radius:6px;background:#ffffff08;overflow:auto}.sub-panel h3{margin:0 0 12px;font-size:16px}.personnel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qr-label-preview{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:14px;padding:12px;border:1px solid rgba(255,205,92,.22);border-radius:6px;background:#ffcd5c12}.qr-label-art{width:108px;height:108px;padding:8px;border-radius:6px;background:#fff}.qr-label-art svg{width:100%;height:100%;display:block}.qr-label-preview h3,.qr-label-preview p{margin:0 0 6px}.qr-label-preview small{color:#f4d48b}.person-card{position:relative;min-height:104px;padding:14px;border:1px solid rgba(121,164,166,.18);border-radius:6px;background:#ffffff09}.person-card strong,.person-card span,.person-card small{display:block}.person-card span{margin-top:8px;color:#9fb0b1;font-size:13px}.person-card b{position:absolute;right:12px;top:12px;font-size:13px}.person-card small{margin-top:14px;color:#cfdada}.force-management-grid{align-items:start;margin-top:12px}.force-form{grid-template-columns:repeat(6,minmax(105px,1fr)) auto}.standby-form{grid-template-columns:minmax(135px,1.15fr) repeat(4,minmax(105px,1fr)) auto}.vehicle-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vehicle-admin-card{min-width:0;display:grid;grid-template-columns:180px minmax(0,1fr) 180px;gap:14px;align-items:center;padding:14px;border:1px solid rgba(121,164,166,.18);border-radius:6px;background:#ffffff09}.vehicle-admin-card img{width:100%;height:106px;object-fit:contain}.vehicle-admin-card strong,.vehicle-admin-card span{display:block}.vehicle-admin-card span{margin-top:7px;color:#9fb0b1}.vehicle-admin-card p{margin:12px 0 0;color:#cad8d8;font-size:13px}.vehicle-admin-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.vehicle-admin-card dl div{padding:8px;border-radius:4px;background:#050d108c}.vehicle-admin-card dt{color:#8fa7aa;font-size:12px}.vehicle-admin-card dd{margin:5px 0 0;color:#edf8f7;font-size:13px}.segmented{display:inline-flex;gap:6px;padding:4px;border:1px solid rgba(121,164,166,.18);border-radius:6px;background:#050d10b8}.segmented button{height:30px;padding:0 12px;border:0;border-radius:4px;color:#c7d8d8;background:transparent;cursor:pointer}.segmented button.active{color:#fff;background:linear-gradient(180deg,#df392f,#9d1712)}.admin-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;align-items:start}.admin-section-overview{position:sticky;top:12px}.admin-section-grid{display:grid;gap:8px}.admin-section-card{display:grid;gap:4px;width:100%;padding:12px;border:1px solid rgba(27,106,224,.14);border-radius:6px;color:#172033;text-align:left;background:#fff;box-shadow:0 6px 18px #1640870f;cursor:pointer}.admin-section-card strong{font-size:15px}.admin-section-card p{margin:0;color:#667085;font-size:12px;line-height:1.5}.admin-section-card.active{border-color:#1b6ae073;background:#eef6ff}.admin-section-detail,.admin-section-stack{display:grid;gap:12px}.admin-form{display:grid;align-content:start;gap:12px}.base-data-panel,.role-panel,.department-panel{grid-column:1 / -1}.dictionary-panel,.operation-log-panel{min-height:260px}.department-admin-form{grid-template-columns:minmax(150px,.8fr) minmax(190px,1.2fr) minmax(90px,.5fr) auto}.role-admin-form{grid-template-columns:minmax(150px,.7fr) minmax(170px,.8fr) minmax(360px,1.8fr) auto}.permission-fieldset{min-width:0;margin:0;padding:8px 10px;border:1px solid rgba(121,164,166,.24);border-radius:5px}.permission-fieldset legend{padding:0 4px;color:#9fb6b7;font-size:12px}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px}.permission-grid label{display:flex;align-items:center;gap:6px;min-width:0;color:#d3e2e1}.permission-grid input{width:14px;height:14px;min-width:14px;accent-color:var(--red)}.category-admin-form{grid-template-columns:minmax(190px,1.4fr) minmax(90px,.6fr) minmax(110px,.7fr) auto}.hardware-face-form{grid-template-columns:minmax(150px,1.1fr) repeat(6,minmax(105px,1fr)) auto}.hardware-door-sync-form{grid-template-columns:minmax(150px,1.1fr) repeat(8,minmax(96px,1fr)) auto}.dictionary-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:12px}.dictionary-chips{display:grid;gap:10px;align-content:start}.dictionary-chips div{display:flex;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid rgba(121,164,166,.16);border-radius:6px;background:#050d1061}.dictionary-chips strong{flex:0 0 100%;color:#edf8f7;font-size:13px}.dictionary-chips span{padding:4px 8px;border:1px solid rgba(255,205,92,.22);border-radius:4px;color:#f4d48b;background:#ffcd5c14;font-size:12px}.compact-admin-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:10px;margin-bottom:12px}.shelf-admin-form{grid-template-columns:repeat(6,minmax(105px,1fr)) auto}.compact-admin-form label{display:grid;gap:6px;min-width:0;color:#9fb6b7;font-size:12px}.compact-admin-form input,.compact-admin-form select{width:100%;min-width:0;height:34px;padding:0 9px;border:1px solid rgba(121,164,166,.24);border-radius:5px;color:#edf8f7;background:#050d10c7;outline:none}.compact-admin-form .permission-grid input{width:14px;min-width:14px;height:14px;padding:0}.inline-business-form{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:10px;margin-bottom:14px;padding:12px;border:1px solid rgba(121,164,166,.18);border-radius:6px;background:#ffffff07}.inline-business-form label{display:grid;gap:6px;min-width:0;color:#9fb6b7;font-size:12px}.inline-business-form .wide-field{grid-column:span 2}.inline-business-form input,.inline-business-form select{width:100%;min-width:0;height:34px;padding:0 9px;border:1px solid rgba(121,164,166,.24);border-radius:5px;color:#edf8f7;background:#050d10c7;outline:none}.inline-submit{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid rgba(255,92,74,.72);border-radius:5px;color:#fff;background:linear-gradient(180deg,#df3a30,#a01712);cursor:pointer;white-space:nowrap}.inline-submit:disabled{opacity:.56;cursor:not-allowed}.user-table-panel{min-height:420px}.inline-action{height:28px;padding:0 10px;border:1px solid rgba(53,216,255,.28);border-radius:4px;color:#dffaff;background:#174855b8;cursor:pointer}.room-tabs{background:#fff;border-bottom:1px solid var(--line)}.tab-title{border:1px solid rgba(31,102,190,.16);background:#f4f9ff;color:#0b56be}.room-tabs button,.scene-tools button,.record-filters button{border:1px solid rgba(31,102,190,.14);background:#f7fbff;color:#38516f}.room-tabs button.active,.scene-tools button.active,.record-filters button.active,.segmented button.active{border-color:#1268d86b;background:linear-gradient(180deg,#177cff,#0a56c8);color:#fff}.panel,.page-frame,.sub-panel,.stat-card,.vehicle-card,.person-card,.vehicle-admin-card,.inline-business-form,.dictionary-chips div,.qr-label-preview{border-color:#1f66be24;background:#fffffff5;box-shadow:0 10px 26px #1154aa0f}.panel{background:linear-gradient(180deg,#fff,#f8fbff)}.panel h2,.sub-panel h3,.page-head h2,.dictionary-chips strong,.vehicle-card strong,.person-card strong,.vehicle-admin-card strong,.equipment-detail dd,.metric,.people-card strong,.inventory-ring strong{color:var(--ink)}.panel-head{border-bottom:1px solid rgba(31,102,190,.08);padding-bottom:8px}.workspace,.bottom-bar{background:#eef7ff}.shelf-grid button,.action-row button,.door-actions button,.compact-admin-form input,.compact-admin-form select,.inline-business-form input,.inline-business-form select,.login-form input,.admin-form input,.admin-form select,.search-box,.search-box input{border-color:#1f66be2e;background:#f7fbff;color:var(--ink)}.shelf-grid button.selected,.action-row .primary,.login-button,.admin-submit,.inline-submit{border-color:#1268d86b;background:linear-gradient(180deg,#177cff,#0a56c8);color:#fff;box-shadow:0 8px 18px #0a56c824}.door-actions .open{border-color:#16a34a57;background:linear-gradient(180deg,#22c55e,#16803a)}.legend,.slot-row span,.metric span,.mini-table th,.records-table th,.data-table th,.page-head p,.login-form label,.admin-form label,.compact-admin-form label,.inline-business-form label,.vehicle-admin-card dt,.vehicle-card span,.person-card span,.dictionary-chips span,.equipment-detail dt,.door-panel p,.access-row time,.access-row span{color:var(--muted)}.mini-table td,.records-table td,.data-table td,.vehicle-admin-card dd,.vehicle-admin-card p,.people-card span{color:#33445f}.mini-table th,.mini-table td,.records-table th,.records-table td,.data-table th,.data-table td{border-bottom-color:#1f66be1a}.data-table th{background:#f1f7ff}.data-table tbody tr:hover,.data-table tr.selected-row{background:#127cff14}.page-frame{margin:0 18px 18px;padding:18px;background:linear-gradient(180deg,#fffffffa,#f8fcfffa)}.page-voice-strip{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(360px,1.3fr) minmax(220px,.8fr);align-items:center;gap:14px;margin-bottom:16px;padding:14px 16px;border:1px solid rgba(18,104,216,.16);border-radius:8px;background:radial-gradient(circle at 18% 50%,rgba(14,165,255,.1),transparent 30%),#f5faff}.page-voice-main{display:flex;align-items:center;gap:12px;color:#0b56be}.page-voice-main svg{width:42px;height:42px;padding:9px;border-radius:50%;color:#fff;background:linear-gradient(145deg,#1688ff,#0758cd)}.page-voice-main strong,.page-voice-main span{display:block}.page-voice-main strong{color:#0b56be;font-size:17px}.page-voice-main span{margin-top:4px;color:var(--muted);font-size:13px}.page-voice-chips{display:flex;flex-wrap:wrap;gap:8px}.page-voice-chips button{height:34px;padding:0 13px;border:1px solid rgba(18,104,216,.18);border-radius:6px;color:#0b56be;background:#fff;cursor:pointer}.page-voice-result{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.page-voice-result span{color:var(--muted);font-size:13px}.page-voice-result b{color:var(--red);font-size:22px}.stat-strip{gap:12px}.stat-card{background:linear-gradient(180deg,#fff,#f5faff)}.stat-card strong{color:#0b56be}.search-box svg{color:#1268d8}.export-button{border-color:#1268d833;background:#f1f8ff;color:#0b56be}.segmented{border-color:#1f66be24;background:#f4f9ff}.segmented button{color:#38516f}.inline-action{border-color:#1268d838;color:#0b56be;background:#edf6ff}.standalone-admin-page{align-self:stretch}.empty-state{margin:0;padding:22px;border:1px dashed rgba(18,104,216,.24);border-radius:6px;color:var(--muted);background:#f7fbff}.room-stage{border-color:#1f66be2e;box-shadow:0 16px 34px #1154aa1a}.three-room{background:radial-gradient(circle at 50% 20%,rgba(53,216,255,.15),transparent 34%),linear-gradient(180deg,#081d36,#061320)}.three-status,.selected-popover{border-color:#35d8ff66;background:#05182dd1}.login-screen{background:radial-gradient(circle at 50% 28%,rgba(14,165,255,.16),transparent 34%),linear-gradient(180deg,#f5faff,#eaf5ff)}.login-panel{border-color:#1268d82e;background:#fff;box-shadow:0 24px 60px #1154aa24}.login-panel .brand h1,.login-panel .brand p,.loading-panel{color:var(--ink)}@media(max-width:1180px){.fire-app{height:auto;min-height:100vh;overflow:auto;grid-template-rows:72px auto auto auto auto}.fire-app.management-mode{grid-template-rows:72px auto minmax(0,1fr)}.app-header{grid-template-columns:1fr 42px 140px}.readiness,.clock{display:none}.module-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.fire-app.home-mode{height:auto;min-height:100vh;overflow:auto;grid-template-rows:auto minmax(0,1fr)}.home-shell{grid-template-columns:1fr;grid-template-rows:auto auto auto;overflow:visible;padding:18px}.home-voice-panel{min-height:520px}.home-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(112px,auto)}.home-status-bar{flex-wrap:wrap;min-height:62px;padding:12px 16px}.home-date{margin-left:0}.workspace,.bottom-bar,.two-column-grid,.admin-layout,.dictionary-grid,.vehicle-admin-grid{grid-template-columns:1fr}.stat-strip,.personnel-grid,.compact-admin-form,.category-admin-form,.department-admin-form,.role-admin-form,.shelf-admin-form,.inline-business-form{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head{align-items:stretch;flex-direction:column}.page-actions{width:100%;min-width:0;justify-content:stretch;flex-wrap:wrap}.search-box{width:100%}.left-column,.right-column{grid-template-rows:none}.room-stage{min-height:560px}.vehicle-admin-card{grid-template-columns:140px minmax(0,1fr)}.vehicle-admin-card dl{grid-column:1 / -1}}@media(max-width:720px){.module-nav,.home-shortcuts,.stat-strip,.personnel-grid,.compact-admin-form,.category-admin-form,.department-admin-form,.role-admin-form,.dictionary-grid,.shelf-admin-form,.inline-business-form,.permission-grid{grid-template-columns:1fr}.app-header{grid-template-columns:1fr;height:auto;padding:12px}.fire-app{grid-template-rows:auto auto auto auto auto}.home-voice-panel{grid-template-rows:auto auto auto auto auto auto;row-gap:20px;min-height:auto;padding:24px 18px}.voice-heading{gap:10px}.voice-wave{display:none}.voice-result-dock{flex-direction:column;align-self:stretch;gap:12px;padding:16px 8px 0}.voice-result-dock-main{justify-content:center;text-align:center}.voice-result-dock button{width:min(100%,220px)}.voice-result-overlay{padding:14px}.voice-result-modal{width:100%;max-height:calc(100vh - 28px)}.voice-modal-header{padding:18px}.voice-modal-title h3{font-size:24px}.voice-modal-body{padding:18px}.voice-modal-result{grid-template-columns:1fr}.voice-modal-field b{font-size:30px}.voice-examples{align-items:stretch;gap:10px}.voice-examples button{width:min(100%,260px);justify-content:center;margin-inline:auto}.voice-manual-form{grid-template-columns:1fr}.fire-app.management-mode{grid-template-rows:auto auto minmax(0,1fr)}.profile,.header-icon{display:none}.vehicle-admin-card{grid-template-columns:1fr}}
