.vsb{position:fixed;top:0;left:0;bottom:0;width:80px;background:#0a0f17;border-right:1px solid hsla(0,0%,100%,.06);z-index:1000;display:flex;flex-direction:column;box-sizing:border-box;font-family:"Inter",sans-serif}.vsb-nav{display:flex;flex-direction:column;padding:14px 0;gap:4px}.vsb-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 6px;margin:0 8px;border-radius:8px;text-decoration:none;color:hsla(0,0%,100%,.65);cursor:pointer;transition:background-color .18s ease,color .18s ease;user-select:none}.vsb-item:hover{background:hsla(0,0%,100%,.04);color:#fff}.vsb-item.is-active{background:rgba(0,229,255,.08);color:#fff}.vsb-item.is-active::before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:22px;background:#00e5ff;border-radius:0 3px 3px 0}.vsb-item.is-active .vsb-icon{color:#00e5ff}.vsb-item.is-active .vsb-label{font-weight:700}.vsb-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:inherit}.vsb-icon svg{width:100%;height:100%}.vsb-label{font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:inherit;line-height:1}.vsb-sep{border:none;border-top:1px solid hsla(0,0%,100%,.06);margin:0 10px 4px}@media(min-resolution: 1.25dppx)and (max-height: 920px){.vsb-nav{padding:9px 0;gap:3px}.vsb-item{padding:7px 5px;gap:3px}.vsb-icon{width:20px;height:20px}.vsb-label{font-size:9px;letter-spacing:.3px}.vsb-item.is-active::before{height:18px}}:root{--sf-bg: #101113;--sf-bg-2: #0c0c0e;--sf-panel: #17181c;--sf-panel-2: #1c1e23;--sf-panel-3: #232529;--sf-border: rgba(255, 255, 255, 0.07);--sf-border-2: rgba(255, 255, 255, 0.12);--sf-text: #ffffff;--sf-muted: rgba(255, 255, 255, 0.56);--sf-dim: rgba(255, 255, 255, 0.34);--sf-green: #34E27A;--sf-amber: #F5A742;--sf-red: #FF6B6B;--sf-blue: #3B9EFF;--sf-cyan: #00D9E0;--sf-teal: #2bb6c4}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--sf-bg);font-family:"Inter",system-ui,sans-serif;color:var(--sf-text);-webkit-font-smoothing:antialiased}body.page-per{width:100%;height:100vh;overflow:hidden}.per-app{height:100vh;display:flex;flex-direction:column;padding-left:80px;background:linear-gradient(90deg, #0A0F17 0, #0A0F17 80px, transparent 80px),radial-gradient(1200px 540px at 50% -12%, rgba(0, 217, 224, 0.06), transparent 60%),var(--sf-bg)}.per-topbar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:9px 14px;border-bottom:1px solid var(--sf-border)}.per-back{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;border:1px solid var(--sf-border-2);background:var(--sf-panel-2);color:var(--sf-text);text-decoration:none;font-size:11.5px;font-weight:700;flex-shrink:0;transition:all .16s ease}.per-back svg{width:15px;height:15px;color:var(--sf-cyan);transition:transform .16s ease}.per-back:hover{border-color:var(--sf-cyan)}.per-back:hover svg{transform:translateX(-3px)}.per-crumb{display:flex;align-items:center;gap:8px;min-width:0;font-size:11px;color:var(--sf-dim);font-family:"JetBrains Mono",monospace}.per-crumb a{color:var(--sf-muted);text-decoration:none}.per-crumb a:hover{color:var(--sf-cyan)}.per-crumb .per-crumb-sep{opacity:.5}.per-crumb .per-crumb-cur{color:var(--sf-text);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes per-pulse{0%,100%{opacity:1}50%{opacity:.4}}.per-dot{width:8px;height:8px;border-radius:50%;background:var(--sf-green);box-shadow:0 0 8px var(--sf-green);display:inline-block;animation:per-pulse 2.4s ease-in-out infinite}.per-dot.is-sm{width:6px;height:6px}.per-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(312px, 1fr) minmax(0, 2.5fr) minmax(322px, 1.12fr);gap:10px;padding:10px}.per-col{min-width:0;min-height:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:2px}.per-col::-webkit-scrollbar{width:6px}.per-col::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:3px}.per-col-center{overflow:hidden}.per-col-left>*,.per-col-right>*{flex-shrink:0}.per-card{background:var(--sf-panel);border:1px solid var(--sf-border);border-radius:12px;display:flex;flex-direction:column;min-height:0}.per-card-head{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:1px solid var(--sf-border)}.per-card-head .per-card-ico{width:15px;height:15px;color:var(--sf-cyan);flex-shrink:0}.per-card-head .per-card-ico.is-green{color:var(--sf-green)}.per-card-head .per-card-title{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;line-height:1.2}.per-card-head .per-card-info{margin-left:auto;display:inline-flex;color:var(--sf-dim);cursor:help}.per-card-head .per-card-info svg{width:14px;height:14px}.per-card-head .per-card-info:hover{color:var(--sf-muted)}.per-avail-body{display:flex;align-items:center;gap:14px;padding:14px 13px 10px}.per-ring{position:relative;width:92px;height:92px;flex-shrink:0}.per-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.per-ring .per-ring-track{fill:none;stroke:hsla(0,0%,100%,.08);stroke-width:8}.per-ring .per-ring-arc{fill:none;stroke:var(--sf-green);stroke-width:8;stroke-linecap:round;stroke-dasharray:251.3;stroke-dashoffset:251.3;filter:drop-shadow(0 0 5px rgba(52, 226, 122, 0.55));transition:stroke-dashoffset 1.1s cubic-bezier(0.22, 1, 0.36, 1)}.per-ring .per-ring-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.per-ring .per-ring-ico{color:var(--sf-green)}.per-ring .per-ring-ico svg{width:24px;height:24px;transform:none}.per-avail-main{display:flex;flex-direction:column;gap:2px;min-width:0}.per-avail-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--sf-dim)}.per-avail-val{font-family:"JetBrains Mono",monospace;font-size:46px;font-weight:800;line-height:1;color:var(--sf-green);letter-spacing:-2px}.per-avail-val u{font-size:22px;text-decoration:none;margin-left:1px}.per-avail-sub{font-size:10.5px;color:var(--sf-muted)}.per-avail-break{display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;padding:0 13px 13px}.per-avail-break .per-brk{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:9px;background:var(--sf-panel-2);border:1px solid var(--sf-border)}.per-avail-break .per-brk b{font-family:"JetBrains Mono",monospace;font-size:19px;font-weight:800}.per-avail-break .per-brk span{font-size:9px;color:var(--sf-muted);text-align:center;text-transform:uppercase;letter-spacing:.3px}.per-avail-break .per-brk.is-green b{color:var(--sf-green)}.per-avail-break .per-brk.is-green{border-color:rgba(52,226,122,.25)}.per-avail-break .per-brk.is-amber b{color:var(--sf-amber)}.per-avail-break .per-brk.is-amber{border-color:rgba(245,167,66,.25)}.per-avail-break .per-brk.is-cyan b{color:var(--sf-cyan)}.per-avail-break .per-brk.is-cyan{border-color:rgba(0,217,224,.25)}.per-absence{border-color:rgba(245,167,66,.4);background:linear-gradient(180deg, rgba(245, 167, 66, 0.08), rgba(245, 167, 66, 0.02));box-shadow:inset 0 0 0 1px rgba(245,167,66,.06);transition:all .4s ease}.per-absence.is-resolved{border-color:rgba(52,226,122,.4);background:linear-gradient(180deg, rgba(52, 226, 122, 0.08), rgba(52, 226, 122, 0.02))}.per-absence-head{display:flex;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid rgba(245,167,66,.18);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--sf-amber)}.per-absence-head svg{width:16px;height:16px;flex-shrink:0}.per-absence-head .per-absence-flag{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.4px;color:var(--sf-amber);background:rgba(245,167,66,.14);padding:3px 8px;border-radius:20px;text-transform:none;border:1px solid rgba(245,167,66,.3)}.per-absence.is-resolved .per-absence-head{color:var(--sf-green);border-bottom-color:rgba(52,226,122,.18)}.per-absence.is-resolved .per-absence-head .per-absence-flag{color:var(--sf-green);background:rgba(52,226,122,.14);border-color:rgba(52,226,122,.3)}.per-absence-body{padding:12px 13px;display:flex;flex-direction:column;gap:10px}.per-absence-person{display:flex;align-items:center;gap:10px}.per-absence-av{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--sf-amber);background:rgba(245,167,66,.12);border:1px solid rgba(245,167,66,.3)}.per-absence-id{display:flex;flex-direction:column;gap:1px}.per-absence-id b{font-size:15px;font-weight:800}.per-absence-id span{font-size:11px;color:var(--sf-muted)}.per-absence-meta{display:flex;flex-direction:column;gap:7px}.per-absence-meta span{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--sf-muted)}.per-absence-meta span svg{width:13px;height:13px;color:var(--sf-amber);flex-shrink:0}.per-absence-meta .per-absence-crit{font-weight:800;color:var(--sf-amber);text-transform:uppercase;letter-spacing:.4px;font-size:10.5px;padding-left:20px}.per-absence.is-resolved .per-absence-meta span svg{color:var(--sf-green)}.per-absence.is-resolved .per-absence-meta .per-absence-crit{color:var(--sf-green)}.per-ai-head{display:flex;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid var(--sf-border);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--sf-cyan)}.per-ai-head svg{width:16px;height:16px;flex-shrink:0}.per-ai-body{padding:12px 13px;display:flex;flex-direction:column;gap:11px}.per-ai-txt{margin:0;font-size:12px;line-height:1.5;color:var(--sf-text)}.per-ai-txt b{font-weight:800}.per-ai-txt small{color:var(--sf-muted);font-size:11px}.per-ai-txt em{font-style:normal;color:var(--sf-cyan);font-weight:700}.per-ai-match{display:flex;flex-wrap:wrap;gap:6px}.per-ai-match .per-ai-chip{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:700;color:var(--sf-muted);padding:4px 8px;border-radius:20px;background:var(--sf-panel-2);border:1px solid var(--sf-border)}.per-ai-match .per-ai-chip .per-dot{background:var(--sf-cyan);box-shadow:0 0 6px var(--sf-cyan)}.per-ai-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 12px;border:none;border-radius:10px;cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:800;line-height:1.25;text-align:left;color:#06231a;background:linear-gradient(180deg, #46f08a, var(--sf-green));box-shadow:0 4px 16px rgba(52,226,122,.28);transition:transform .12s ease,box-shadow .16s ease,filter .16s ease}.per-ai-btn svg{width:17px;height:17px;flex-shrink:0}.per-ai-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(52,226,122,.4);filter:brightness(1.04)}.per-ai-btn:active{transform:translateY(0)}.per-ai-btn.is-busy{filter:saturate(0.6) brightness(0.9);cursor:default}.per-ai-btn[hidden]{display:none}.per-ai-done{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:var(--sf-green);padding:10px 12px;border-radius:10px;background:rgba(52,226,122,.1);border:1px solid rgba(52,226,122,.32)}.per-ai-done svg{width:17px;height:17px}.per-ai-done[hidden]{display:none}.per-cal-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:6px;padding:11px}.per-cd{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 9px;border-radius:9px;min-height:86px;background:var(--sf-panel-2);border:1px solid var(--sf-border);text-align:center}.per-cd .per-cd-day{font-size:8.5px;font-weight:800;letter-spacing:.3px;color:var(--sf-dim);text-transform:uppercase}.per-cd .per-cd-ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px}.per-cd .per-cd-ico svg{width:14px;height:14px}.per-cd .per-cd-ico.is-vac{color:var(--sf-cyan);background:rgba(0,217,224,.12)}.per-cd .per-cd-ico.is-ret{color:var(--sf-green);background:rgba(52,226,122,.12)}.per-cd .per-cd-ico.is-turn{color:var(--sf-blue);background:rgba(59,158,255,.12)}.per-cd .per-cd-name{font-size:9.5px;font-weight:700;line-height:1.15}.per-cd .per-cd-tag{font-size:8px;font-weight:700;padding:2px 6px;border-radius:20px;text-transform:uppercase;letter-spacing:.2px}.per-cd .per-cd-tag.is-vac{color:var(--sf-cyan);background:rgba(0,217,224,.1)}.per-cd .per-cd-tag.is-ret{color:var(--sf-green);background:rgba(52,226,122,.1)}.per-cd .per-cd-tag.is-turn{color:var(--sf-blue);background:rgba(59,158,255,.1)}.per-cd .per-cd-dash{color:var(--sf-dim);font-size:16px;margin-top:14px}.per-cd.is-empty{opacity:.6}.per-cd.is-highlight{border-color:rgba(52,226,122,.4);background:rgba(52,226,122,.06);box-shadow:0 0 0 1px rgba(52,226,122,.08)}.per-canvas{flex:1;min-height:0}.per-canvas-live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:9.5px;font-weight:800;letter-spacing:.6px;color:var(--sf-red)}.per-canvas-live i{width:7px;height:7px;border-radius:50%;background:var(--sf-red);box-shadow:0 0 7px var(--sf-red);animation:per-pulse 1.4s ease-in-out infinite}.per-stage{flex:1;min-height:0;position:relative;padding:6px;background:radial-gradient(900px 480px at 38% 42%, rgba(0, 217, 224, 0.04), transparent 70%),var(--sf-bg-2);border-radius:0 0 12px 12px;overflow:hidden}#per-plan-svg{width:100%;height:100%;display:block}#per-plan-svg text{font-family:"Inter",sans-serif}.per-floor{fill:rgba(12,14,18,.6);stroke:rgba(0,217,224,.16);stroke-width:1}.per-wall{fill:none;stroke:rgba(0,217,224,.5);stroke-width:2.4;stroke-linejoin:round}.per-wall.is-outer{stroke-width:3.4;filter:drop-shadow(0 0 4px rgba(0, 217, 224, 0.35))}.per-wall-hi{fill:none;stroke:rgba(0,217,224,.16);stroke-width:1}.per-door{stroke:var(--sf-bg-2);stroke-width:5;stroke-linecap:round}.per-col-dot{stroke:rgba(0,217,224,.4);stroke-width:1.6;stroke-linecap:round}.per-corridor{fill:rgba(0,217,224,.045);stroke:rgba(0,217,224,.16);stroke-width:1}.per-corridor-lbl{fill:rgba(0,217,224,.42);font-size:10px;font-weight:700;letter-spacing:3px}.per-window{fill:none;stroke:rgba(125,214,236,.6);stroke-width:3.2;stroke-linecap:round}.per-curtain path{fill:none;stroke:rgba(59,158,255,.6);stroke-width:2;stroke-linecap:round}.per-station-lbl{fill:rgba(0,217,224,.6);font-size:9px;font-weight:800;letter-spacing:.5px}.per-station-lbl.is-center{text-anchor:middle}.per-station-lbl.is-dim{fill:var(--sf-dim);font-weight:600;letter-spacing:.3px}.per-zone-fill{fill:hsla(0,0%,100%,.015);stroke-width:1.2}.per-zone-fill.is-ok{fill:rgba(52,226,122,.05);stroke:rgba(52,226,122,.18)}.per-zone-fill.is-warn{fill:rgba(245,167,66,.06);stroke:rgba(245,167,66,.3)}.per-zone-fill.is-cold{fill:url(#perColdGrad);stroke:rgba(59,158,255,.45)}.per-zone-fill.is-hot{fill:url(#perHotGrad);stroke:rgba(245,167,66,.5)}.per-zone-fill.is-clean{fill:rgba(0,217,224,.05);stroke:rgba(0,217,224,.22)}.per-zone-fill.is-vacant{fill:rgba(245,167,66,.1);stroke:rgba(245,167,66,.6);stroke-width:1.8;animation:per-vacant 1.7s ease-in-out infinite}@keyframes per-vacant{0%,100%{fill:rgba(245,167,66,.07);stroke:rgba(245,167,66,.45)}50%{fill:rgba(245,167,66,.18);stroke:rgba(245,167,66,.85)}}.per-equip g{fill:none;stroke:rgba(0,217,224,.42);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.per-equip .per-box{fill:rgba(0,217,224,.12);stroke:rgba(0,217,224,.5)}.per-equip .per-heatwave{stroke:var(--sf-amber);opacity:.7;transform-box:fill-box}.per-equip .per-snow{stroke:var(--sf-blue)}.per-equip .per-cold-art{stroke:rgba(59,158,255,.55)}.per-equip .per-fan{transform-box:fill-box;transform-origin:center}.per-equip .per-bolt{fill:rgba(245,167,66,.18);stroke:var(--sf-amber)}.per-equip .per-pipe{stroke:rgba(0,217,224,.4);stroke-width:1.4}.per-equip .per-hmi rect{fill:rgba(0,217,224,.16);stroke:rgba(0,217,224,.6)}.per-esclusa{fill:rgba(0,217,224,.06);stroke:rgba(0,217,224,.4);stroke-width:1.2;stroke-dasharray:5 3}.per-epi circle{fill:rgba(12,14,18,.85);stroke-width:1.6}.per-epi path{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.per-epi.is-cold circle{stroke:var(--sf-blue)}.per-epi.is-cold path{stroke:var(--sf-blue)}.per-epi.is-hot circle{stroke:var(--sf-amber)}.per-epi.is-hot path{stroke:var(--sf-amber)}.per-flow{fill:none;stroke:rgba(0,217,224,.55);stroke-width:1.8;stroke-dasharray:5 9;stroke-linecap:round}.per-flow.is-route{stroke:var(--sf-amber);stroke-width:2.6;stroke-dasharray:7 8;opacity:0;filter:drop-shadow(0 0 4px rgba(245, 167, 66, 0.5))}.per-avatar .per-avatar-halo{fill:rgba(245,167,66,.25)}.per-avatar .per-avatar-core{fill:var(--sf-amber);filter:drop-shadow(0 0 6px rgba(245, 167, 66, 0.8))}.per-node .per-node-base{fill:var(--sf-panel-2);stroke:var(--sf-cyan);stroke-width:1.6}.per-node .per-node-ico{fill:none;stroke:var(--sf-cyan);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.per-node .per-node-ring{fill:none;stroke:var(--sf-cyan);stroke-width:1.6;opacity:0}.per-node .per-node-lbl{fill:var(--sf-muted);font-size:11px;font-weight:700;text-anchor:middle}.per-node.is-hot .per-node-base{stroke:var(--sf-amber)}.per-node.is-hot .per-node-ico{stroke:var(--sf-amber)}.per-node.is-hot .per-node-ring{stroke:var(--sf-amber)}.per-hall-lbl{fill:rgba(0,217,224,.7);font-size:13px;font-weight:800;letter-spacing:1.5px}.per-zlabel{fill:var(--sf-text);font-size:12.5px;font-weight:800;letter-spacing:.4px}.per-zlabel.is-light{letter-spacing:1px;fill:hsla(0,0%,100%,.82)}.per-zlabel.is-cold{fill:var(--sf-blue);font-size:10.5px;letter-spacing:.2px}.per-zlabel.is-hot{fill:var(--sf-amber);font-size:10.5px;letter-spacing:.2px}.per-badge .per-badge-box rect{fill:rgba(20,22,26,.92);stroke-width:1.4}.per-badge .per-badge-ico{fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.per-badge .per-badge-num{font-family:"JetBrains Mono",monospace;font-size:14px;font-weight:800}.per-badge .per-badge-cap{fill:var(--sf-muted);font-size:8.5px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.per-badge.is-ok .per-badge-box rect{stroke:rgba(52,226,122,.55)}.per-badge.is-ok .per-badge-ico{stroke:var(--sf-green)}.per-badge.is-ok .per-badge-num{fill:var(--sf-green)}.per-badge.is-warn .per-badge-box rect{stroke:rgba(245,167,66,.6)}.per-badge.is-warn .per-badge-ico{stroke:var(--sf-amber)}.per-badge.is-warn .per-badge-num{fill:var(--sf-amber)}.per-badge.is-vacant .per-badge-box rect{stroke:rgba(245,167,66,.8)}.per-badge.is-vacant .per-badge-ico{stroke:var(--sf-amber)}.per-badge.is-vacant .per-badge-num{fill:var(--sf-amber)}.per-badge.is-vacant{cursor:pointer}.per-badge-check{transform-box:fill-box;transform-origin:center}.per-badge-check circle{fill:var(--sf-green);filter:drop-shadow(0 0 5px rgba(52, 226, 122, 0.8))}.per-restricted-pill rect{fill:rgba(20,22,26,.92);stroke-width:1.3}.per-restricted-pill .per-lock{fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.per-restricted-pill .per-restricted-t1{font-size:9px;font-weight:800}.per-restricted-pill .per-restricted-t2{font-size:8px;font-weight:600;fill:var(--sf-muted)}.per-restricted-pill.is-cold rect{stroke:rgba(59,158,255,.55)}.per-restricted-pill.is-cold .per-lock{stroke:var(--sf-blue)}.per-restricted-pill.is-cold .per-restricted-t1{fill:var(--sf-blue)}.per-restricted-pill.is-hot rect{stroke:rgba(245,167,66,.6)}.per-restricted-pill.is-hot .per-lock{stroke:var(--sf-amber)}.per-restricted-pill.is-hot .per-restricted-t1{fill:var(--sf-amber)}.per-callout .per-callout-stem{stroke:var(--sf-amber);stroke-width:1.4;stroke-dasharray:3 3}.per-callout .per-callout-box{fill:rgba(20,22,26,.96);stroke:rgba(245,167,66,.55);stroke-width:1.4;filter:drop-shadow(0 6px 16px rgba(0, 0, 0, 0.5))}.per-callout .per-callout-name{fill:var(--sf-amber);font-size:11.5px;font-weight:800}.per-callout .per-callout-sub{fill:var(--sf-text);font-size:10px;font-weight:600}.per-callout .per-callout-sub2{fill:var(--sf-muted);font-size:9.5px}.per-scan{opacity:.9;pointer-events:none}.per-access{flex-shrink:0}.per-access-log{padding:8px 12px;height:124px;overflow-y:auto;font-family:"JetBrains Mono",monospace;font-size:11px;line-height:1.7;display:flex;flex-direction:column}.per-access-log::-webkit-scrollbar{width:5px}.per-access-log::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:3px}.per-al{display:flex;align-items:center;gap:8px;white-space:nowrap}.per-al.is-new{animation:per-logIn .4s ease}.per-al .per-al-time{color:var(--sf-dim)}.per-al .per-al-who{color:var(--sf-text);font-weight:700}.per-al .per-al-act{color:var(--sf-muted)}.per-al .per-al-id{margin-left:auto;color:var(--sf-cyan);font-weight:700;flex-shrink:0}.per-al .per-al-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.per-al .per-al-dot.is-green{background:var(--sf-green);box-shadow:0 0 6px var(--sf-green)}.per-al .per-al-dot.is-amber{background:var(--sf-amber);box-shadow:0 0 6px var(--sf-amber)}.per-al.is-resolve .per-al-act{color:var(--sf-green);font-weight:700}@keyframes per-logIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}.per-banner{flex-shrink:0;display:flex;align-items:center;gap:11px;padding:12px 16px;border-radius:12px;color:var(--sf-green);font-size:12.5px;line-height:1.35;background:linear-gradient(180deg, rgba(52, 226, 122, 0.12), rgba(52, 226, 122, 0.04));border:1px solid rgba(52,226,122,.4);box-shadow:0 0 24px rgba(52,226,122,.12)}.per-banner b{font-weight:800}.per-banner .per-banner-ico{width:22px;height:22px;flex-shrink:0;filter:drop-shadow(0 0 5px rgba(52, 226, 122, 0.6))}.per-banner[hidden]{display:none}.per-banner.is-show{animation:per-bannerIn .5s cubic-bezier(0.22, 1, 0.36, 1)}@keyframes per-bannerIn{from{opacity:0;transform:translateY(10px) scale(0.98)}to{opacity:1;transform:none}}.per-cost-body{display:flex;align-items:flex-start;gap:8px;padding:13px}.per-cost-main{display:flex;flex-direction:column;gap:3px;min-width:0}.per-cost-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--sf-dim)}.per-cost-val{display:flex;align-items:baseline;gap:6px}.per-cost-val b{font-family:"JetBrains Mono",monospace;font-size:38px;font-weight:800;line-height:1;color:var(--sf-green);letter-spacing:-1.5px}.per-cost-val u{font-size:12px;text-decoration:none;color:var(--sf-muted);font-weight:700}.per-cost-feed{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--sf-muted);margin-top:2px}.per-cost-feed .per-dot{background:var(--sf-green);box-shadow:0 0 6px var(--sf-green)}.per-cost-art{margin-left:auto;flex-shrink:0}.per-cost-art svg{width:70px;height:60px}.per-cost-split{display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;padding:0 13px 13px}.per-cost-split .per-csplit{display:flex;flex-direction:column;gap:2px;align-items:center;padding:8px 4px;border-radius:9px;background:var(--sf-panel-2);border:1px solid var(--sf-border)}.per-cost-split .per-csplit .per-csplit-k{font-size:9px;color:var(--sf-muted);text-transform:uppercase;letter-spacing:.3px}.per-cost-split .per-csplit b{font-family:"JetBrains Mono",monospace;font-size:14px;font-weight:800;color:var(--sf-text)}.per-hse-list{padding:6px 13px 11px;display:flex;flex-direction:column}.per-hse-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--sf-border)}.per-hse-row:last-child{border-bottom:none}.per-hse-row .per-hse-k{font-size:11.5px;color:var(--sf-muted)}.per-hse-row .per-hse-v{font-family:"JetBrains Mono",monospace;font-size:17px;font-weight:800;color:var(--sf-text)}.per-hse-row .per-hse-v b{font-weight:800}.per-hse-row .per-hse-v small{font-size:11px;color:var(--sf-muted)}.per-hse-row .per-hse-v.is-green{color:var(--sf-green)}.per-hse-row .per-hse-v.is-cyan{color:var(--sf-cyan)}.per-hse-row .per-hse-badge{font-size:10px;font-weight:800;letter-spacing:.5px;padding:4px 12px;border-radius:20px}.per-hse-row .per-hse-badge.is-green{color:var(--sf-green);background:rgba(52,226,122,.12);border:1px solid rgba(52,226,122,.3)}.per-unauth{border-color:rgba(59,158,255,.32);background:linear-gradient(180deg, rgba(59, 158, 255, 0.06), transparent 70%)}.per-unauth-head{display:flex;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid var(--sf-border);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--sf-blue)}.per-unauth-head svg{width:16px;height:16px;flex-shrink:0}.per-unauth-head .per-unauth-state{margin-left:auto;font-size:8.5px;font-weight:800;letter-spacing:.3px;text-transform:none;color:var(--sf-blue);background:rgba(59,158,255,.14);padding:3px 8px;border-radius:20px;border:1px solid rgba(59,158,255,.3)}.per-unauth-body{padding:12px 13px;display:flex;flex-direction:column;gap:10px}.per-unauth-zone{display:flex;align-items:center;gap:10px}.per-unauth-zone svg{width:26px;height:26px;color:var(--sf-blue);flex-shrink:0}.per-unauth-zone b{font-size:13px;font-weight:800;display:block}.per-unauth-zone span{font-size:10.5px;color:var(--sf-muted)}.per-unauth-foot{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;padding-top:9px;border-top:1px solid var(--sf-border)}.per-unauth-foot .per-unauth-derive{color:var(--sf-blue);font-weight:700}.per-unauth-foot .per-unauth-time{font-family:"JetBrains Mono",monospace;color:var(--sf-dim)}.per-certs-list{padding:7px 13px 11px;display:flex;flex-direction:column;gap:7px}.per-cert{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;background:var(--sf-panel-2);border:1px solid var(--sf-border)}.per-cert .per-cert-ico{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.per-cert .per-cert-ico svg{width:15px;height:15px}.per-cert .per-cert-ico.is-hot{color:var(--sf-amber);background:rgba(245,167,66,.12)}.per-cert .per-cert-ico.is-cold{color:var(--sf-blue);background:rgba(59,158,255,.12)}.per-cert .per-cert-ico.is-green{color:var(--sf-green);background:rgba(52,226,122,.12)}.per-cert .per-cert-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.per-cert .per-cert-name{font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.per-cert .per-cert-due{font-size:9.5px;color:var(--sf-dim);font-family:"JetBrains Mono",monospace}.per-cert .per-cert-ok{flex-shrink:0;color:var(--sf-green);display:inline-flex}.per-cert .per-cert-ok svg{width:16px;height:16px}.per-incident-link{display:flex;align-items:center;gap:8px;padding:4px 13px 0}.per-incident-link .per-incident-link-line{flex:1;height:1px;background:linear-gradient(90deg, transparent, rgba(0, 217, 224, 0.4), transparent)}.per-incident-link .per-incident-link-chip{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--sf-cyan);padding:3px 9px;border-radius:20px;background:rgba(0,217,224,.1);border:1px solid rgba(0,217,224,.3)}.per-incident-link .per-incident-link-chip svg{width:12px;height:12px;animation:per-bob 1.8s ease-in-out infinite}.per-absence.is-resolved .per-incident-link .per-incident-link-line{background:linear-gradient(90deg, transparent, rgba(52, 226, 122, 0.4), transparent)}.per-absence.is-resolved .per-incident-link .per-incident-link-chip{color:var(--sf-green);background:rgba(52,226,122,.1);border-color:rgba(52,226,122,.3)}@keyframes per-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}.per-incident .per-ai-head{border-top:none}.per-cd-more{cursor:pointer;font-family:inherit;justify-content:center;gap:7px;color:var(--sf-cyan);background:rgba(0,217,224,.06);border:1px dashed rgba(0,217,224,.4);transition:all .16s ease}.per-cd-more svg{width:22px;height:22px}.per-cd-more .per-cd-more-lbl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;line-height:1.1}.per-cd-more:hover{background:rgba(0,217,224,.12);border-color:var(--sf-cyan);transform:translateY(-1px)}.per-modal-backdrop{position:fixed;inset:0;z-index:2000;background:rgba(6,8,11,.66);backdrop-filter:blur(3px)}.per-modal-backdrop[hidden]{display:none}.per-modal{position:fixed;z-index:2001;left:50%;top:50%;transform:translate(-50%, -50%);background:var(--sf-panel);border:1px solid var(--sf-border-2);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.6);display:flex;flex-direction:column;animation:per-modalIn .22s cubic-bezier(0.22, 1, 0.36, 1)}.per-modal[hidden]{display:none}@keyframes per-modalIn{from{opacity:0;transform:translate(-50%, -46%) scale(0.97)}to{opacity:1;transform:translate(-50%, -50%) scale(1)}}.per-modal-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--sf-border);flex-shrink:0}.per-modal-title{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:800;letter-spacing:.3px}.per-modal-title svg{width:17px;height:17px;color:var(--sf-cyan)}.per-modal-close{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;cursor:pointer;background:var(--sf-panel-2);border:1px solid var(--sf-border-2);color:var(--sf-muted);transition:all .15s ease}.per-modal-close svg{width:16px;height:16px}.per-modal-close:hover{color:var(--sf-text);border-color:var(--sf-red);background:rgba(255,107,107,.12)}.per-cal-modal{width:900px;max-width:96vw}.per-cal-nav{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px 10px}.per-cal-nav .per-cal-mtitle{min-width:168px;text-align:center;font-size:15px;font-weight:800;font-family:"JetBrains Mono",monospace;color:var(--sf-text)}.per-cal-navbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;cursor:pointer;background:var(--sf-panel-2);border:1px solid var(--sf-border-2);color:var(--sf-muted);transition:all .15s ease}.per-cal-navbtn svg{width:16px;height:16px}.per-cal-navbtn:hover{color:var(--sf-cyan);border-color:var(--sf-cyan)}.per-cal-weekdays{display:grid;grid-template-columns:repeat(7, 1fr);gap:4px;padding:0 16px}.per-cal-weekdays span{text-align:center;font-size:9px;font-weight:800;letter-spacing:.5px;color:var(--sf-dim);text-transform:uppercase;padding:4px 0}.per-cal-days{display:grid;grid-template-columns:repeat(7, 1fr);gap:4px;padding:4px 16px 4px}.per-cday{min-height:56px;border-radius:8px;padding:4px 5px;background:var(--sf-panel-2);border:1px solid var(--sf-border);display:flex;flex-direction:column;gap:2px;overflow:hidden}.per-cday.is-pad{background:rgba(0,0,0,0);border:none}.per-cday.has-ev{border-color:var(--sf-border-2)}.per-cday.is-today{border-color:var(--sf-cyan);box-shadow:inset 0 0 0 1px rgba(0,217,224,.3)}.per-cday .per-cday-n{font-size:11px;font-weight:700;font-family:"JetBrains Mono",monospace;color:var(--sf-muted)}.per-cday.is-today .per-cday-n{color:var(--sf-cyan)}.per-cday .per-cday-dots{display:flex;gap:3px;flex-wrap:wrap}.per-cday .per-cday-dot{width:6px;height:6px;border-radius:50%}.per-cday .per-cday-dot.is-ret{background:var(--sf-green)}.per-cday .per-cday-dot.is-vac{background:var(--sf-cyan)}.per-cday .per-cday-dot.is-baja{background:var(--sf-red)}.per-cday .per-cday-dot.is-turn{background:var(--sf-blue)}.per-cday .per-cday-names{display:flex;flex-direction:column;gap:1px;margin-top:auto}.per-cday .per-cday-names span{font-size:7.5px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.per-cday .per-cday-names span.is-ret{color:var(--sf-green)}.per-cday .per-cday-names span.is-vac{color:var(--sf-cyan)}.per-cday .per-cday-names span.is-baja{color:var(--sf-red)}.per-cday .per-cday-names span.is-turn{color:var(--sf-blue)}.per-cal-legend{display:flex;flex-wrap:wrap;gap:14px;padding:12px 16px 16px;border-top:1px solid var(--sf-border);margin-top:6px}.per-cal-legend .per-cal-leg{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--sf-muted);font-weight:600}.per-cal-legend .per-cal-leg i{width:9px;height:9px;border-radius:50%}.per-cal-legend .per-cal-leg i.is-ret{background:var(--sf-green)}.per-cal-legend .per-cal-leg i.is-vac{background:var(--sf-cyan)}.per-cal-legend .per-cal-leg i.is-baja{background:var(--sf-red)}.per-cal-legend .per-cal-leg i.is-turn{background:var(--sf-blue)}.per-staff-list{padding:8px 10px 11px;display:flex;flex-direction:column;gap:6px}.per-emp{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;padding:7px 9px;border-radius:10px;font-family:inherit;color:var(--sf-text);background:var(--sf-panel-2);border:1px solid var(--sf-border);transition:all .15s ease}.per-emp:hover{border-color:var(--sf-cyan);background:rgba(0,217,224,.05);transform:translateX(2px)}.per-emp-av,.per-emp-hero-av{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--c, var(--sf-cyan));background:rgba(0,217,224,.13);background:color-mix(in srgb, var(--c, #00D9E0) 16%, transparent);border:none;object-fit:cover;overflow:hidden}.per-emp-av{width:46px;height:46px;border-radius:11px;font-size:14px}.per-emp-av.has-img{padding:0}.per-emp-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.per-emp-name{font-size:12px;font-weight:800}.per-emp-role{font-size:9.5px;color:var(--sf-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.per-emp-dni{font-size:8.5px;color:var(--sf-dim);font-family:"JetBrains Mono",monospace}.per-emp-state{flex-shrink:0;font-size:8.5px;font-weight:800;padding:4px 8px;border-radius:20px;text-align:center;max-width:84px}.per-emp-state.is-green{color:var(--sf-green);background:rgba(52,226,122,.12)}.per-emp-state.is-amber{color:var(--sf-amber);background:rgba(245,167,66,.12)}.per-emp-state.is-cyan{color:var(--sf-cyan);background:rgba(0,217,224,.12)}.per-emp-state.is-blue{color:var(--sf-blue);background:rgba(59,158,255,.12)}.per-emp-modal{width:720px;max-width:95vw;max-height:90vh;padding:0;overflow:hidden}.per-emp-modal .per-modal-close{position:absolute;top:14px;right:14px;z-index:3}#per-emp-content{overflow-y:auto;min-height:0;padding:0 0 6px}#per-emp-content::-webkit-scrollbar{width:7px}#per-emp-content::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.12);border-radius:4px}.per-emp-hero{display:flex;align-items:center;gap:16px;padding:22px 22px 18px;background:radial-gradient(600px 200px at 0% 0%, rgba(0, 217, 224, 0.08), transparent 70%);border-bottom:1px solid var(--sf-border)}.per-emp-hero-av{width:78px;height:78px;border-radius:16px;font-size:24px}.per-emp-hero-id{min-width:0}.per-emp-hero-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:21px;font-weight:900;letter-spacing:-0.3px}.per-emp-hero-state{font-size:9.5px;font-weight:800;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px}.per-emp-hero-state.is-green{color:var(--sf-green);background:rgba(52,226,122,.14)}.per-emp-hero-state.is-amber{color:var(--sf-amber);background:rgba(245,167,66,.14)}.per-emp-hero-state.is-cyan{color:var(--sf-cyan);background:rgba(0,217,224,.14)}.per-emp-hero-state.is-blue{color:var(--sf-blue);background:rgba(59,158,255,.14)}.per-emp-hero-role{font-size:13px;color:var(--sf-text);font-weight:600;margin-top:4px}.per-emp-hero-meta{font-size:10.5px;color:var(--sf-dim);font-family:"JetBrains Mono",monospace;margin-top:4px}.per-emp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 22px 22px}.per-emp-sec{background:var(--sf-panel-2);border:1px solid var(--sf-border);border-radius:12px;padding:12px 13px}.per-emp-sec:nth-child(3),.per-emp-sec:nth-child(4){grid-column:span 1}.per-emp-sec-h{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--sf-cyan)}.per-emp-sec-h .per-emp-sec-ico{width:14px;height:14px}.per-emp-kv{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--sf-border)}.per-emp-kv:last-child{border-bottom:none}.per-emp-kv .per-emp-k{font-size:10.5px;color:var(--sf-muted);flex-shrink:0}.per-emp-kv .per-emp-v{font-size:11px;font-weight:600;text-align:right}.per-emp-kv .per-emp-v b{font-weight:800;color:var(--sf-green)}.per-emp-vac{padding:2px 0 8px}.per-emp-vac .per-emp-vac-top{display:flex;justify-content:space-between;font-size:11px;color:var(--sf-muted)}.per-emp-vac .per-emp-vac-top b{font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--sf-cyan)}.per-emp-vac .per-emp-vac-bar{height:7px;border-radius:4px;background:hsla(0,0%,100%,.08);margin:6px 0 4px;overflow:hidden}.per-emp-vac .per-emp-vac-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg, var(--sf-cyan), #46f0e0)}.per-emp-vac .per-emp-vac-sub{font-size:9px;color:var(--sf-dim)}.per-emp-certs{display:flex;flex-direction:column;gap:6px}.per-emp-cert{display:flex;align-items:center;gap:8px}.per-emp-cert .per-emp-cert-dot{width:7px;height:7px;border-radius:50%;background:var(--sf-green);box-shadow:0 0 6px var(--sf-green);flex-shrink:0}.per-emp-cert .per-emp-cert-n{font-size:11px;font-weight:600;flex:1;min-width:0}.per-emp-cert .per-emp-cert-d{font-size:9px;color:var(--sf-dim);font-family:"JetBrains Mono",monospace}.per-emp-chips{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.per-emp-chip{font-size:9px;font-weight:700;padding:3px 8px;border-radius:20px;color:var(--sf-muted);background:var(--sf-panel-3);border:1px solid var(--sf-border)}.per-emp-chip.is-skill{color:var(--sf-cyan);border-color:rgba(0,217,224,.3);background:rgba(0,217,224,.06)}.per-emp-perf{display:inline-flex;align-items:center;gap:8px}.per-emp-perf .per-emp-perf-bar{width:70px;height:6px;border-radius:4px;background:hsla(0,0%,100%,.08);overflow:hidden}.per-emp-perf .per-emp-perf-bar i{display:block;height:100%;background:linear-gradient(90deg, var(--sf-green), #8ef0b6)}.per-emp-perf b{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--sf-green)}.is-iframe body.page-per{overflow:hidden}