.completion-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.completion-actions button,.vehicle-maintenance-page button{min-height:40px;padding:8px 16px;cursor:pointer}.completion-actions button:disabled,.vehicle-maintenance-page button:disabled{opacity:.5;cursor:default}.completion-table-scroll{overflow:auto;max-height:65vh;margin:16px 0}.completion-table-scroll table{width:100%;border-collapse:collapse}.completion-table-scroll th,.completion-table-scroll td{border:1px solid #d8e2f0;padding:12px;text-align:left}.completion-table-scroll th{background:#f5f8fc}.completion-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px 0;border:0}.completion-form label{display:grid;gap:6px}.completion-form input,.completion-form select,.completion-form textarea,.leave-date-table input,.completion-actions select{min-height:40px;border:1px solid #b9cbe1;border-radius:3px;padding:8px;max-width:100%}.completion-wide{grid-column:1 / -1}.completion-photos{display:flex;gap:12px;flex-wrap:wrap}.completion-photos>div{display:grid;gap:4px}.completion-photos img{width:120px;height:90px;object-fit:cover}.maintenance-content{white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px}.maintenance-photo-link{display:block;padding:4px;color:#0757c7}.leave-full-name{color:#0757c7;font-weight:700;white-space:normal;word-break:break-word}.leave-date-table table{table-layout:fixed}.leave-date-table th:first-child{width:25%}.leave-date-table input{width:100%}.personnel-leave-count{border:0;background:transparent;color:#dc2626;font:inherit;font-weight:800;min-height:40px;cursor:pointer;text-decoration:underline}.business-trip-table textarea{box-sizing:border-box;width:100%;min-height:64px;padding:8px;border:1px solid #b9cbe1;border-radius:3px;font:inherit;resize:vertical}.business-trip-matter{white-space:pre-wrap;overflow-wrap:anywhere}.business-trip-title,.personnel-public-duty-count{color:#facc15}@media(max-width:600px){.completion-form{grid-template-columns:1fr}.leave-date-table th,.leave-date-table td{padding:6px}}: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);gap:8px;padding-bottom:8px;background:#edf6ff}.fire-app.management-mode{grid-template-rows:72px auto minmax(0,1fr)}.fire-app.client-admin.management-mode{grid-template-rows:72px minmax(0,1fr);background:#f2f6fb}.bootstrap-refresh-notice{position:fixed;top:82px;right:16px;z-index:120;max-width:min(420px,calc(100vw - 32px));padding:10px 13px;border:1px solid #f0b429;border-radius:6px;background:#fff8e6;color:#7a4b00;box-shadow:0 8px 24px #26364c29;font-size:13px}.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}.admin-workspace{min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;padding:14px 18px 18px;overflow:hidden}.admin-side-nav{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:14px;border:1px solid rgba(31,102,190,.14);border-radius:8px;background:#fff;box-shadow:0 10px 24px #14366414;overflow:hidden}.admin-side-title{height:40px;display:flex;align-items:center;gap:8px;padding:0 10px;color:#0b3f86;font-size:15px;font-weight:800;border-radius:6px;background:#eef5ff}.admin-side-menu{min-height:0;display:grid;align-content:start;gap:6px;overflow:auto}.admin-side-menu button{min-height:40px;display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid transparent;border-radius:6px;color:#29415f;background:transparent;font-size:14px;font-weight:700;text-align:left}.admin-side-menu button:hover{border-color:#1f66be29;background:#f6faff}.admin-side-menu button.active{color:#fff;border-color:#0b61d8;background:#0b61d8;box-shadow:0 8px 18px #0b61d833}.admin-content{min-width:0;min-height:0;overflow:hidden}.client-admin .admin-content>.page-frame{height:100%;margin:0}.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-submit{height:42px;border-radius:7px;font-size:15px}.voice-manual-input-wrap{position:relative;min-width:0}.voice-manual-form input{width:100%;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-submit{border:0;color:#fff;background:#0b65d8;font-weight:800;cursor:pointer}.voice-manual-submit:disabled{cursor:not-allowed;opacity:.58}.voice-search-history{position:absolute;z-index:30;top:calc(100% + 6px);right:0;left:0;overflow:hidden;border:1px solid rgba(18,104,216,.22);border-radius:7px;background:#fff;box-shadow:0 10px 24px #144d9129}.voice-search-history>span{display:block;padding:8px 12px 6px;color:#6a7890;font-size:13px;font-weight:700}.voice-search-history button{width:100%;height:38px;padding:0 12px;border:0;border-top:1px solid rgba(18,104,216,.1);color:var(--ink);background:#fff;font-size:15px;text-align:left;cursor:pointer}.voice-search-history button:hover,.voice-search-history button:focus-visible{color:#0b56be;background:#f1f8ff;outline:none}.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-result.actionable{width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.voice-modal-result.actionable .voice-modal-field{transition:border-color .12s ease,background-color .12s ease}.voice-modal-result.actionable:hover .voice-modal-field,.voice-modal-result.actionable:focus-visible .voice-modal-field{border-color:#78aef0;background:#eef6ff}.voice-modal-open-hint{grid-column:1 / -1;justify-self:end;color:#0d5fc7;font-size:15px;font-weight:800}.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{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{border-color:#ff604eb8;background:linear-gradient(180deg,#df392f,#9d1712);color:#fff}.room-tabs-empty{color:var(--muted);font-size:13px}.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:minmax(0,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{width:100%;border-collapse:collapse;font-size:12px}.mini-table th,.mini-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{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{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-image-empty{width:110px;height:116px;display:grid;place-items:center;box-sizing:border-box;border:1px solid var(--line);border-radius:5px;background:#f2f5f8;color:var(--muted);font-size:12px}.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:repeat(2,minmax(0,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)}.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}.data-table-shell,.paginated-grid-shell{min-width:0;display:grid;gap:10px}.pagination-bar{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid rgba(121,164,166,.2);border-radius:5px;background:#ffffff09}.pagination-bar.compact{min-height:34px;padding:6px 8px}.pagination-info{min-width:0;color:#9fb3b5;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination-actions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.pagination-button{height:28px;min-width:64px;padding:0 10px;border:1px solid rgba(53,216,255,.26);border-radius:4px;background:#233036d1;color:#dff8ff;cursor:pointer}.pagination-button:disabled{cursor:not-allowed;opacity:.45}.pagination-page{min-width:48px;color:#f4fbfa;font-size:12px;text-align:center;white-space:nowrap}.empty-list-card{min-height:72px;display:grid;place-items:center;border:1px dashed rgba(121,164,166,.26);border-radius:6px;color:#9fb3b5;background:#ffffff06}.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}.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}.personnel-board-sheet{margin-top:14px;padding:14px;border:6px solid #8fd3ed;border-radius:6px;background:#fafdff;color:#111827;box-shadow:0 16px 30px #1966a41f}.personnel-board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px}.personnel-board-toolbar-actions{display:flex;align-items:center;gap:8px}.board-password-button{min-height:38px;white-space:nowrap}.personnel-board-toolbar h3,.personnel-board-toolbar p,.personnel-board-block h4{margin:0}.personnel-board-toolbar h3{color:#0876a7;font-size:20px;font-weight:800}.personnel-board-toolbar p{margin-top:4px;color:#4b6475;font-size:13px}.board-save-button{min-width:168px}.board-save-message{margin-bottom:10px;padding:8px 10px;border:1px solid #6fc69b;border-radius:4px;background:#ecfff4;color:#08743b;font-weight:700}.personnel-board-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.95fr);grid-template-areas:"personnel duty" "personnel vehicles" "summary standby";gap:10px}.personnel-board-block{min-width:0;padding:8px;border:1px solid #64b9d6;background:#ffffffdb}.personnel-board-block h4{margin-bottom:6px;color:#0876a7;text-align:center;font-size:17px;font-weight:800}.board-personnel-direction{grid-area:personnel}.board-duty-composition{grid-area:duty}.board-duty-vehicles{grid-area:vehicles}.board-standby{grid-area:standby}.personnel-board-personnel-tables{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-width:0;overflow-x:auto}.personnel-board-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;background:#fff}.personnel-board-table th,.personnel-board-table td{height:27px;border:1px solid #4d5961;padding:0;color:#111827;text-align:center;vertical-align:middle;font-size:13px;line-height:1.25}.personnel-board-table th{background:#fbfdff;font-weight:800}.personnel-board-table th.personnel-status-name,.personnel-board-table td.personnel-status-name{color:#0757c7;font-weight:800}.personnel-board-table th.personnel-status-in-position,.personnel-board-table td.personnel-status-in-position{color:#16a34a;font-weight:800}.personnel-board-table th.personnel-status-public-duty,.personnel-board-table td.personnel-status-public-duty{color:#facc15;font-weight:800}.personnel-board-table th.personnel-status-leave,.personnel-board-table td.personnel-status-leave{color:#dc2626;font-weight:800}.personnel-board-table td.personnel-status-sick-leave{color:#f97316;font-weight:800}.personnel-board-table td.personnel-status-in-position .board-status-toggle[data-checked=true]{background:#16a34a;color:#fff}.personnel-board-table td.personnel-status-public-duty .board-status-toggle[data-checked=true]{background:#facc15;color:#111827}.personnel-board-table td.personnel-status-leave .board-status-toggle[data-checked=true]{background:#dc2626;color:#fff}.personnel-board-table td.personnel-status-sick-leave .board-status-toggle[data-checked=true]{background:#f97316;color:#fff}.personnel-board-personnel-tables .personnel-board-table th:first-child,.personnel-board-personnel-tables .personnel-board-table td:first-child{width:34%}.personnel-board-personnel-tables .personnel-board-table th:not(:first-child),.personnel-board-personnel-tables .personnel-board-table td:not(:first-child){width:22%}.board-duty-composition .personnel-board-table th{width:110px}.board-editable-cell{display:block;min-height:26px;padding:5px 6px;outline:none;overflow:hidden;overflow-wrap:anywhere;white-space:normal}.board-status-toggle{display:grid;place-items:center;width:100%;min-width:44px;height:100%;min-height:26px;box-sizing:border-box;border:0;background:transparent;color:inherit;font:inherit;font-size:16px;font-weight:900}button.board-status-toggle{cursor:pointer}button.board-status-toggle:hover,button.board-status-toggle:focus-visible{background:#ffffff85;outline:2px solid rgba(29,78,216,.38);outline-offset:-2px}.board-editable-input{width:100%;border:0;border-radius:0;background:transparent;color:inherit;font:inherit}.board-editable-input:focus{background:#fff7d6;box-shadow:inset 0 0 0 2px #f7b500}.personnel-board-summary{grid-area:summary;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-self:end;border:1px solid #4d5961;background:#fff}.personnel-board-summary-cell{min-width:0;border-right:1px solid #4d5961;text-align:center}.personnel-board-summary-cell:last-child{border-right:0}.personnel-board-summary-cell strong{display:block;min-height:28px;padding:6px 4px;border-bottom:1px solid #4d5961;color:#111827;font-size:13px}.personnel-summary-inPosition .board-editable-cell{color:#16a34a}.personnel-summary-publicDuty .board-editable-cell{color:#facc15}.personnel-summary-leave .board-editable-cell{color:#dc2626}.personnel-summary-sickLeave .board-editable-cell{color:#f97316}.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-table-shell{min-width:0;overflow-x:auto;padding-bottom:2px}.vehicle-table-shell .data-table{min-width:1080px}.vehicle-equipment-section{min-width:0;border:1px solid #d7e3f4;padding:14px}.vehicle-equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:720px){.vehicle-equipment-grid{grid-template-columns:1fr}}.vehicle-table-shell th:first-child,.vehicle-table-shell td:first-child{width:64px;text-align:center}.vehicle-photo-cell{width:260px}.vehicle-photo-thumb{display:block;width:236px;height:132px;object-fit:cover;border:1px solid rgba(121,164,166,.2);border-radius:4px}.vehicle-photo-placeholder{display:inline-flex;align-items:center;justify-content:center;width:236px;min-height:96px;border:1px solid rgba(121,164,166,.24);border-radius:4px;color:#9fb0b1;font-size:12px}.vehicle-info-cell{min-width:240px}.vehicle-driver-cell{min-width:120px;color:#132238;font-size:18px;font-weight:800}.vehicle-param-cell{min-width:300px}.vehicle-param-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px 12px;white-space:normal}.vehicle-param-grid span{color:#33445f;line-height:1.35}.vehicle-equipment-cell{min-width:340px;white-space:normal}.vehicle-equipment-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:8px}.vehicle-equipment-summary-item{min-width:0;border-left:3px solid var(--blue);padding:7px 9px;background:#f4f8ff}.vehicle-equipment-summary-item strong,.vehicle-equipment-summary-item span{display:block}.vehicle-equipment-summary-item strong{margin-bottom:3px;color:var(--blue);font-size:12px}.vehicle-equipment-summary-item span{color:var(--ink);line-height:1.4}.vehicle-equipment-empty{color:var(--muted)}.vehicle-info-cell strong,.vehicle-info-cell span,.vehicle-info-cell small{display:block}.personal-equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.personal-equipment-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;min-height:220px;padding:16px;border:1px solid rgba(121,164,166,.18);border-radius:8px;background:#fffffff2;color:#172033}.personal-equipment-avatar{width:96px;height:96px;overflow:hidden;border:1px solid #cbd5e1;border-radius:8px;background:#eaf2ff}.personal-equipment-avatar img,.personal-equipment-avatar span{width:100%;height:100%}.personal-equipment-avatar img{display:block;object-fit:cover}.personal-equipment-avatar span{display:grid;place-items:center;color:#2563eb;font-size:18px;font-weight:800}.personal-equipment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.personal-equipment-fields label{display:grid;gap:5px;color:#475569;font-size:13px;font-weight:700}.personal-equipment-fields input,.personal-equipment-fields textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;font:inherit}.personal-equipment-fields input{min-height:40px;padding:8px 10px}.personal-equipment-avatar-upload input[type=file]{background:#f8fafc;cursor:pointer}.personal-equipment-avatar-upload input[type=file]:disabled{cursor:not-allowed;opacity:.55}.personal-equipment-fields textarea{min-height:76px;padding:9px 10px;resize:vertical}.personal-equipment-fields strong,.personal-equipment-fields p{min-height:40px;margin:0;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;color:#172033}.personal-equipment-list{grid-column:1 / -1}.vehicle-info-cell span{margin-top:5px;color:#9fb0b1}.vehicle-info-cell small{margin-top:7px;color:#cad8d8;font-size:12px;line-height:1.45}.vehicle-state-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border:1px solid rgba(121,164,166,.18);border-radius:999px;color:#edf8f7;background:#050d1073;white-space:nowrap}.vehicle-state-pill.ready{border-color:#38bd6f5c;color:#81e6a0;background:#0b432542}.vehicle-state-pill.warning{border-color:#facc1566;color:#f7d04d;background:#6c4e0c3d}.vehicle-state-pill.abnormal{border-color:#f871716b;color:#ff9a9a;background:#7f1d1d3d}.vehicle-empty-cell{height:88px;color:#9fb0b1;text-align:center}.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}.scan-operation-buttons{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:10px}.scan-operation-buttons button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:112px;height:36px;padding:0 14px;border:1px solid rgba(121,164,166,.24);border-radius:5px;color:#edf8f7;background:#050d10c7}.form-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:28px;background:#080f1994}.form-modal-card{position:relative;width:min(960px,94vw);max-height:min(760px,90vh);overflow:auto;padding:18px;border:1px solid rgba(107,143,184,.32);border-radius:8px;color:#172033;background:#fff}.form-modal-header,.sub-panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.form-modal-header{margin-bottom:14px;padding-right:48px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.form-modal-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff;cursor:pointer}.form-modal-close:hover{color:#0f172a;border-color:#94a3b8;background:#f8fafc}.form-modal-header h3,.sub-panel-title-row h3{margin:0}.modal-business-form{grid-template-columns:repeat(2,minmax(180px,1fr));margin-bottom:0;border:1px solid #e2e8f0;color:#172033;background:#f8fafc}.modal-business-form label,.form-modal-card .compact-admin-form label,.form-modal-card .admin-form label{color:#475569}.modal-business-form input,.modal-business-form select,.modal-business-form textarea,.form-modal-card .compact-admin-form input,.form-modal-card .compact-admin-form select,.form-modal-card .admin-form input,.form-modal-card .admin-form select{color:#172033;border-color:#cbd5e1;background:#fff}.modal-business-form textarea{min-height:88px;padding:10px 11px;border-radius:5px;resize:vertical;font:inherit}.modal-business-form .inline-submit,.modal-business-form .admin-submit,.form-modal-card .admin-submit{grid-column:1 / -1;justify-self:end}.form-error-message{padding:9px 11px;border:1px solid rgba(220,38,38,.22);border-radius:5px;background:#fee2e2b3;color:var(--danger);font-size:13px;font-weight:700}.admin-simple-actions{flex-wrap:wrap}@media(max-width:720px){.form-modal-backdrop{padding:12px}.modal-business-form{grid-template-columns:1fr}}.read-only-notice{margin-bottom:14px;padding:11px 13px;border:1px solid rgba(79,131,255,.22);border-radius:6px;color:#b7c8e8;background:#163a841f;font-size:13px;line-height:1.55}.equipment-sketch-actions{min-width:0}.equipment-sketch-shell{margin-bottom:14px;padding:22px;border:1px solid #d7dde5;border-radius:8px;color:#111827;background:#fff}.equipment-form-inline-error{margin-bottom:14px}.equipment-sketch-page{min-height:560px;display:flex;flex-direction:column;gap:18px}.equipment-sketch-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;border-bottom:1px solid #e5e7eb}.equipment-sketch-title-row h3{margin:0;color:#111827;font-size:24px;font-weight:700}.equipment-sketch-title-row span{color:#64748b;font-size:14px}.equipment-sketch-categories{flex:1;display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));align-content:center;justify-items:center;gap:36px 52px;padding:22px 36px}.equipment-sketch-category-circle{width:clamp(132px,11vw,164px);aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(17,24,39,.12);border-radius:999px;color:var(--category-text-color, #ffffff);background:var(--category-color, #2563eb);cursor:pointer}.equipment-sketch-category-circle strong{max-width:6em;font-size:20px;line-height:1.3;text-align:center}.equipment-sketch-category-circle:hover,.equipment-sketch-item-card:hover,.plain-link-button:hover,.equipment-sketch-return:hover{filter:brightness(.96)}.equipment-sketch-empty-box{align-self:flex-end;width:min(260px,28vw);height:54px;border:1px solid #cbd5e1;border-radius:3px}.equipment-sketch-search-row{display:grid;grid-template-columns:auto minmax(260px,540px);align-items:center;gap:12px}.equipment-sketch-search-row>span{min-width:92px;padding:8px 14px;border-radius:999px;color:#fff;font-weight:700;text-align:center}.equipment-sketch-search-row .search-box{width:100%;border-color:#cbd5e1;background:#fff}.equipment-sketch-search-row .search-box input{color:#111827}.equipment-sketch-search-row .search-box input::placeholder{color:#94a3b8}.equipment-sketch-item-grid{flex:1;display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));align-content:start;gap:24px;padding:12px 0 4px}.equipment-sketch-item-wrap{display:grid;gap:8px}.equipment-sketch-item-wrap .crud-actions{justify-content:center}.equipment-sketch-item-card{min-height:154px;display:grid;grid-template-rows:1fr auto;gap:10px;padding:12px;border:1px solid #cbd5e1;border-radius:4px;color:#111827;background:#fff;cursor:pointer}.equipment-sketch-image-box{min-height:96px;display:grid;place-items:center;overflow:hidden;border:1px solid #d7dde5;border-radius:3px;color:#64748b;background:#f8fafc;font-size:16px}.equipment-sketch-image{width:100%;height:96px;display:block;object-fit:cover}.equipment-sketch-item-card strong{color:#111827;font-size:16px;font-weight:650;text-align:center}.equipment-sketch-empty-state{grid-column:1 / -1;min-height:180px;display:grid;place-items:center;border:1px dashed #cbd5e1;color:#64748b}.plain-link-button,.equipment-sketch-return{min-height:36px;padding:0 16px;border:1px solid #cbd5e1;border-radius:4px;color:#111827;background:#fff}.plain-link-button:disabled{cursor:not-allowed;opacity:.5}.equipment-sketch-return{align-self:flex-start}.equipment-sketch-detail-actions{display:flex;align-items:center;gap:8px}.equipment-sketch-detail-table-wrap{overflow-x:auto;border:1px solid #cbd5e1}.equipment-sketch-detail-table{width:100%;min-width:900px;border-collapse:collapse;color:#111827;font-size:15px}.equipment-sketch-detail-table th,.equipment-sketch-detail-table td{padding:14px 12px;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;text-align:center;vertical-align:middle}.equipment-sketch-detail-table th{background:#f8fafc;font-weight:700}.equipment-sketch-detail-table th:last-child,.equipment-sketch-detail-table td:last-child{border-right:0}.equipment-sketch-detail-table tr:last-child td{border-bottom:0}.equipment-sketch-detail-box{flex:1;min-height:280px;display:grid;align-content:center;justify-items:center;gap:12px;border:1px solid #cbd5e1;border-radius:3px;color:#111827;background:#fff;text-align:center}.equipment-sketch-detail-box span{font-size:22px;font-weight:700}.equipment-sketch-detail-image{max-width:min(420px,92%);max-height:220px;display:block;border:1px solid #d7dde5;border-radius:4px;object-fit:contain;background:#f8fafc}.equipment-sketch-detail-box p{max-width:560px;margin:0;color:#64748b;line-height:1.6}.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}.crud-actions{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.crud-actions .inline-action{height:26px;padding:0 9px}.crud-actions .inline-action.danger{border-color:#ef334059;color:#ef3340;background:#ef334014}.reference-select{position:relative;min-width:0}.reference-select.multi{display:grid;gap:8px}.reference-select-input{width:100%}.form-readonly-value{display:block;min-height:38px;padding:9px 10px;border:1px solid #d7e2f0;border-radius:5px;color:#334155;background:#f8fafc;font-weight:700}.reference-select-menu{position:absolute;z-index:120;top:calc(100% + 6px);left:0;right:0;display:grid;gap:4px;max-height:220px;padding:8px;overflow-y:auto;border:1px solid #cbd5e1;border-radius:6px;background:#fff;box-shadow:0 12px 28px #0f172a24}.reference-select-option{width:100%;min-height:34px;padding:0 10px;border:1px solid #d7e2f0;border-radius:5px;color:#1e293b;background:#f8fafc;cursor:pointer;text-align:left}.reference-select-option:hover{border-color:#93c5fd;background:#eff6ff}.reference-select-empty{padding:6px 2px;color:#64748b;font-size:13px}.reference-multi-values{display:flex;flex-wrap:wrap;gap:8px}.reference-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;background:#eff6ff;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{border:1px solid rgba(31,102,190,.14);background:#f7fbff;color:#38516f}.room-tabs button.active,.scene-tools button.active,.segmented button.active{border-color:#1268d86b;background:linear-gradient(180deg,#177cff,#0a56c8);color:#fff}.panel,.page-frame,.sub-panel,.stat-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-info-cell strong,.equipment-detail dd,.metric,.inventory-ring strong{color:var(--ink)}.panel-head{border-bottom:1px solid rgba(31,102,190,.08);padding-bottom:8px}.workspace{background:#eef7ff}.shelf-grid button,.action-row button,.scan-operation-buttons 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,.scan-operation-buttons .primary,.login-button,.admin-submit,.inline-submit{border-color:#1268d86b;background:linear-gradient(180deg,#177cff,#0a56c8);color:#fff;box-shadow:0 8px 18px #0a56c824}.legend,.slot-row span,.metric span,.mini-table th,.data-table th,.page-head p,.login-form label,.admin-form label,.compact-admin-form label,.inline-business-form label,.vehicle-info-cell span,.vehicle-info-cell small,.vehicle-photo-placeholder,.dictionary-chips span,.equipment-detail dt{color:var(--muted)}.mini-table td,.data-table td{color:#33445f}.mini-table th,.mini-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 .pagination-bar{border-color:#1f66be21;background:#f8fbff}.page-frame .pagination-info{color:var(--muted)}.page-frame .pagination-button{border-color:#1268d838;background:#fff;color:#1268d8}.page-frame .pagination-page{color:#102044}.page-frame .empty-list-card{border-color:#1f66be2e;color:var(--muted);background:#f8fbff}.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}.door-request-filter{display:inline-flex;align-items:center;gap:8px;color:#475569;font-size:13px}.door-request-filter select{height:36px;min-width:112px;padding:0 9px;border:1px solid #cbd5e1;border-radius:4px;color:#172033;background:#fff}.door-request-table-scroll{min-width:0;overflow-x:auto}.door-request-table{min-width:760px}.door-request-table tbody tr{cursor:pointer}.door-request-thumbnail{display:block;width:52px;height:38px;border:1px solid #d7e3f4;object-fit:cover}.door-request-detail{width:min(560px,94vw)}.door-request-snapshot,.door-request-no-snapshot{display:block;width:min(100%,420px);max-height:300px;margin:0 auto 16px;border:1px solid #d7e3f4;object-fit:contain}.door-request-no-snapshot{min-height:120px;display:grid;place-items:center;color:#64748b;background:#f8fafc}.door-request-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border-top:1px solid #e2e8f0;border-left:1px solid #e2e8f0}.door-request-detail-list div{display:grid;grid-template-columns:78px minmax(0,1fr);min-width:0;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.door-request-detail-list dt,.door-request-detail-list dd{min-width:0;margin:0;padding:9px 10px;overflow-wrap:anywhere}.door-request-detail-list dt{color:#64748b;background:#f8fafc}.door-request-detail-list dd{color:#172033}.door-request-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.door-request-actions button{height:36px;min-width:92px;border:1px solid transparent;border-radius:4px;color:#fff;cursor:pointer}.door-request-open{border-color:#15803d!important;background:#16a34a!important}.door-request-reject{border-color:#b91c1c!important;background:#dc2626!important}.door-request-actions button:disabled{cursor:not-allowed;opacity:.55}.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,.two-column-grid,.admin-workspace,.admin-layout,.dictionary-grid{grid-template-columns:1fr}.admin-workspace,.admin-side-nav{overflow:visible}.admin-side-menu{grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.stat-strip,.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}.equipment-sketch-categories{grid-template-columns:repeat(2,minmax(180px,1fr))}.equipment-sketch-item-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.search-box{width:100%}.left-column,.right-column{grid-template-rows:none}.room-stage{min-height:560px}}@media(max-width:720px){.module-nav,.admin-side-menu,.home-shortcuts,.stat-strip,.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}.equipment-sketch-shell{padding:14px}.equipment-sketch-page{min-height:auto}.equipment-sketch-categories{grid-template-columns:repeat(2,minmax(120px,1fr));gap:22px;padding:12px 0}.equipment-sketch-category-circle{width:min(136px,38vw)}.equipment-sketch-search-row{grid-template-columns:1fr}.equipment-sketch-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.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)}.door-request-detail-list{grid-template-columns:1fr}.door-request-actions{flex-direction:column}.door-request-actions button{width:100%}.profile,.header-icon{display:none}}.records-filter-row{display:grid;grid-template-columns:minmax(260px,1.7fr) minmax(170px,.8fr) minmax(170px,.8fr) auto;align-items:end;gap:12px;margin-bottom:14px}.records-filter-row label{display:grid;gap:6px;color:#334155;font-size:14px;font-weight:600}.records-filter-row input{width:100%;min-width:0;height:42px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#0f172a;padding:0 12px;font:inherit}.records-filter-input{position:relative;display:block}.records-filter-input svg{position:absolute;top:50%;left:12px;color:#64748b;transform:translateY(-50%);pointer-events:none}.records-filter-input input{padding-left:40px}.records-filter-clear{min-height:42px}.operation-log-filter-row{grid-template-columns:minmax(180px,1.3fr) minmax(140px,.8fr) minmax(160px,.9fr) minmax(150px,.8fr) minmax(150px,.8fr) auto auto}.compact-filter-button{min-width:72px;min-height:42px;border:1px solid #b8c7e6;border-radius:4px;padding:0 16px;font-weight:700}.compact-filter-button.secondary{background:#fff;color:#1d4ed8}.records-empty{padding:30px 12px!important;color:#64748b;text-align:center}@media(max-width:920px){.records-filter-row,.operation-log-filter-row{grid-template-columns:1fr 1fr}.records-filter-keyword{grid-column:1 / -1}}@media(max-width:620px){.records-filter-row{grid-template-columns:1fr}.records-filter-keyword{grid-column:auto}.operation-log-filter-row{grid-template-columns:1fr}}
