: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}body,html{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;background:radial-gradient(1200px 540px at 50% -12%,#00d9e00f,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:.16s}.per-back svg{width:15px;height:15px;color:var(--sf-cyan);transition:transform.16s}.per-back:hover{border-color:var(--sf-cyan)}.per-back:hover svg{transform:translate(-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%,to{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:#ffffff1a;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:#ffffff14;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 #34e27a8c);transition:stroke-dashoffset 1.1s cubic-bezier(.22,1,.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:#34e27a40}.per-avail-break .per-brk.is-amber b{color:var(--sf-amber)}.per-avail-break .per-brk.is-amber{border-color:#f5a74240}.per-avail-break .per-brk.is-cyan b{color:var(--sf-cyan)}.per-avail-break .per-brk.is-cyan{border-color:#00d9e040}.per-absence{border-color:#f5a74266;background:linear-gradient(#f5a74214,#f5a74205);box-shadow:inset 0 0 0 1px#f5a7420f;transition:.4s}.per-absence.is-resolved{border-color:#34e27a66;background:linear-gradient(#34e27a14,#34e27a05)}.per-absence-head{display:flex;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid#f5a7422e;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:#f5a74224;padding:3px 8px;border-radius:20px;text-transform:none;border:1px solid#f5a7424d}.per-absence.is-resolved .per-absence-head{color:var(--sf-green);border-bottom-color:#34e27a2e}.per-absence.is-resolved .per-absence-head .per-absence-flag{color:var(--sf-green);background:#34e27a24;border-color:#34e27a4d}.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:#f5a7421f;border:1px solid#f5a7424d}.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 .per-absence-crit,.per-absence.is-resolved .per-absence-meta span svg{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#34e27a47;transition:transform.12s,box-shadow.16s,filter.16s}.per-ai-btn svg{width:17px;height:17px;flex-shrink:0}.per-ai-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px#34e27a66;filter:brightness(1.04)}.per-ai-btn:active{transform:translateY(0)}.per-ai-btn.is-busy{filter:saturate(.6)brightness(.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:#34e27a1a;border:1px solid#34e27a52}.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:#00d9e01f}.per-cd .per-cd-ico.is-ret{color:var(--sf-green);background:#34e27a1f}.per-cd .per-cd-ico.is-turn{color:var(--sf-blue);background:#3b9eff1f}.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:#00d9e01a}.per-cd .per-cd-tag.is-ret{color:var(--sf-green);background:#34e27a1a}.per-cd .per-cd-tag.is-turn{color:var(--sf-blue);background:#3b9eff1a}.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:#34e27a66;background:#34e27a0f;box-shadow:0 0 0 1px#34e27a14}.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%,#00d9e00a,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:#0c0e1299;stroke:#00d9e029;stroke-width:1}.per-wall{fill:none;stroke:#00d9e080;stroke-width:2.4;stroke-linejoin:round}.per-wall.is-outer{stroke-width:3.4;filter:drop-shadow(0 0 4px #00d9e059)}.per-wall-hi{fill:none;stroke:#00d9e029;stroke-width:1}.per-door{stroke:var(--sf-bg-2);stroke-width:5;stroke-linecap:round}.per-col-dot{stroke:#00d9e066;stroke-width:1.6;stroke-linecap:round}.per-corridor{fill:#00d9e00b;stroke:#00d9e029;stroke-width:1}.per-corridor-lbl{fill:#00d9e06b;font-size:10px;font-weight:700;letter-spacing:3px}.per-window{fill:none;stroke:#7dd6ec99;stroke-width:3.2;stroke-linecap:round}.per-curtain path{fill:none;stroke:#3b9eff99;stroke-width:2;stroke-linecap:round}.per-station-lbl{fill:#00d9e099;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:#ffffff04;stroke-width:1.2}.per-zone-fill.is-ok{fill:#34e27a0d;stroke:#34e27a2e}.per-zone-fill.is-warn{fill:#f5a7420f;stroke:#f5a7424d}.per-zone-fill.is-cold{fill:url(#perColdGrad);stroke:#3b9eff73}.per-zone-fill.is-hot{fill:url(#perHotGrad);stroke:#f5a74280}.per-zone-fill.is-clean{fill:#00d9e00d;stroke:#00d9e038}.per-zone-fill.is-vacant{fill:#f5a7421a;stroke:#f5a74299;stroke-width:1.8;animation:per-vacant 1.7s ease-in-out infinite}@keyframes per-vacant{0%,to{fill:#f5a74212;stroke:#f5a74273}50%{fill:#f5a7422e;stroke:#f5a742d9}}.per-equip g{fill:none;stroke:#00d9e06b;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.per-equip .per-box{fill:#00d9e01f;stroke:#00d9e080}.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:#3b9eff8c}.per-equip .per-fan{transform-box:fill-box;transform-origin:50%}.per-equip .per-bolt{fill:#f5a7422e;stroke:var(--sf-amber)}.per-equip .per-pipe{stroke:#00d9e066;stroke-width:1.4}.per-equip .per-hmi rect{fill:#00d9e029;stroke:#00d9e099}.per-esclusa{fill:#00d9e00f;stroke:#00d9e066;stroke-width:1.2;stroke-dasharray:5 3}.per-epi circle{fill:#0c0e12d9;stroke-width:1.6}.per-epi path{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.per-epi.is-cold circle,.per-epi.is-cold path{stroke:var(--sf-blue)}.per-epi.is-hot circle,.per-epi.is-hot path{stroke:var(--sf-amber)}.per-flow{fill:none;stroke:#00d9e08c;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 #f5a74280)}.per-avatar .per-avatar-halo{fill:#f5a74240}.per-avatar .per-avatar-core{fill:var(--sf-amber);filter:drop-shadow(0 0 6px #f5a742cc)}.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,.per-node.is-hot .per-node-ico,.per-node.is-hot .per-node-ring{stroke:var(--sf-amber)}.per-hall-lbl{fill:#00d9e0b3;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:#ffffffd1}.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:#14161aeb;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:#34e27a8c}.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:#f5a74299}.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:#f5a742cc}.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:50%}.per-badge-check circle{fill:var(--sf-green);filter:drop-shadow(0 0 5px #34e27acc)}.per-restricted-pill rect{fill:#14161aeb;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:#3b9eff8c}.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:#f5a74299}.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:#14161af5;stroke:#f5a7428c;stroke-width:1.4;filter:drop-shadow(0 6px 16px #00000080)}.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:#ffffff1a;border-radius:3px}.per-al{display:flex;align-items:center;gap:8px;white-space:nowrap}.per-al.is-new{animation:per-logIn.4s}.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{0%{opacity:0;transform:translate(-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(#34e27a1f,#34e27a0a);border:1px solid#34e27a66;box-shadow:0 0 24px#34e27a1f}.per-banner b{font-weight:800}.per-banner .per-banner-ico{width:22px;height:22px;flex-shrink:0;filter:drop-shadow(0 0 5px #34e27a99)}.per-banner[hidden]{display:none}.per-banner.is-show{animation:per-bannerIn.5s cubic-bezier(.22,1,.36,1)}@keyframes per-bannerIn{0%{opacity:0;transform:translateY(10px)scale(.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:#34e27a1f;border:1px solid#34e27a4d}.per-unauth{border-color:#3b9eff52;background:linear-gradient(#3b9eff0f,#0000 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:#3b9eff24;padding:3px 8px;border-radius:20px;border:1px solid#3b9eff4d}.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:#f5a7421f}.per-cert .per-cert-ico.is-cold{color:var(--sf-blue);background:#3b9eff1f}.per-cert .per-cert-ico.is-green{color:var(--sf-green);background:#34e27a1f}.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,#0000,#00d9e066,#0000)}.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:#00d9e01a;border:1px solid#00d9e04d}.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,#0000,#34e27a66,#0000)}.per-absence.is-resolved .per-incident-link .per-incident-link-chip{color:var(--sf-green);background:#34e27a1a;border-color:#34e27a4d}@keyframes per-bob{0%,to{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:#00d9e00f;border:1px dashed#00d9e066;transition:.16s}.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:#00d9e01f;border-color:var(--sf-cyan);transform:translateY(-1px)}.per-modal-backdrop{position:fixed;inset:0;z-index:2000;background:#06080ba8;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#0009;display:flex;flex-direction:column;animation:per-modalIn.22s cubic-bezier(.22,1,.36,1)}.per-modal[hidden]{display:none}@keyframes per-modalIn{0%{opacity:0;transform:translate(-50%,-46%)scale(.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:.15s}.per-modal-close svg{width:16px;height:16px}.per-modal-close:hover{color:var(--sf-text);border-color:var(--sf-red);background:#ff6b6b1f}.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:.15s}.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}.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:#0000;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#00d9e04d}.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:.15s}.per-emp:hover{border-color:var(--sf-cyan);background:#00d9e00d;transform:translate(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:#00d9e021;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:#34e27a1f}.per-emp-state.is-amber{color:var(--sf-amber);background:#f5a7421f}.per-emp-state.is-cyan{color:var(--sf-cyan);background:#00d9e01f}.per-emp-state.is-blue{color:var(--sf-blue);background:#3b9eff1f}.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:#ffffff1f;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%,#00d9e014,#0000 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:-.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:#34e27a24}.per-emp-hero-state.is-amber{color:var(--sf-amber);background:#f5a74224}.per-emp-hero-state.is-cyan{color:var(--sf-cyan);background:#00d9e024}.per-emp-hero-state.is-blue{color:var(--sf-blue);background:#3b9eff24}.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:#ffffff14;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:#00d9e04d;background:#00d9e00f}.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:#ffffff14;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}