.pp{--bg:#F0F5FA;--surface:#FFFFFF;--sunk:#F7F9FC;--ink:#0E1116;--muted:#5B6472;--line:#E3E8EF;--line-strong:#CBD3DD;--accent:#E81D25;--accent-ink:#FFFFFF;--accent-soft:#FDECEC;--link:#1768A3;--info:#11507E;--info-bg:#E8F1F8;--warn:#A3360F;--warn-bg:#FFF1EA;--ok:#0B6B63;--ok-bg:#E6F6F4;--danger:#B3121A;--danger-bg:#FDECEC;--band:#0E1116;--band-ink:#FFFFFF;--band-muted:#A9B3C1;--dots:#D3DCE6;--f-display:var(--font-brand),"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-body:var(--font-brand),"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--r:10px}@media (prefers-color-scheme:dark){.pp{--bg:#0B0E13;--surface:#151A22;--sunk:#11151C;--ink:#E8ECF2;--muted:#9AA4B3;--line:#262D38;--line-strong:#36404D;--accent:#FF3B42;--accent-ink:#FFFFFF;--accent-soft:#3A1719;--link:#6FB0E6;--info:#8CC3EE;--info-bg:#14283A;--warn:#F4A07A;--warn-bg:#35211A;--ok:#5ED1C5;--ok-bg:#12302D;--danger:#F27466;--danger-bg:#3A1C1A;--band:#06080B;--dots:#1E242E;color-scheme:dark}}.pp[data-theme=dark]{--bg:#0B0E13;--surface:#151A22;--sunk:#11151C;--ink:#E8ECF2;--muted:#9AA4B3;--line:#262D38;--line-strong:#36404D;--accent:#FF3B42;--accent-ink:#FFFFFF;--accent-soft:#3A1719;--link:#6FB0E6;--info:#8CC3EE;--info-bg:#14283A;--warn:#F4A07A;--warn-bg:#35211A;--ok:#5ED1C5;--ok-bg:#12302D;--danger:#F27466;--danger-bg:#3A1C1A;--band:#06080B;--dots:#1E242E;color-scheme:dark}.pp *{box-sizing:border-box}.pp{background:radial-gradient(var(--dots) 1px,transparent 1px) 0 0/22px 22px,var(--bg);font-family:var(--f-body);font-size:14px;line-height:1.5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pp .pp-app{max-width:1320px;margin:0 auto;padding-inline:24px;padding-block:24px 48px}.pp h1,.pp h2,.pp h3{font-family:var(--f-display);text-wrap:balance;letter-spacing:-.015em}.pp h1{font-size:22px;font-weight:800}.pp h2{font-size:17px}.pp h2,.pp h3{font-weight:700}.pp h3{font-size:14px}.pp .mono{font-family:var(--f-mono);font-size:12.5px}.pp .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.pp .muted{color:var(--muted)}.pp .small{font-size:12.5px}.pp .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.pp nav.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px}.pp nav.tabs button{border:0;background:none;padding:9px 12px;font:600 13.5px var(--f-body);color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.pp nav.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.pp nav.tabs{align-items:flex-end;row-gap:6px}.pp .navgrp{display:flex;flex-wrap:wrap;align-items:flex-end;gap:2px}.pp .navgrp.company{margin-left:auto;padding-left:12px;border-left:1px solid var(--line)}@media (max-width:760px){.pp .navgrp.company{margin-left:0;padding-left:0;border-left:0}}.pp .navlbl{align-self:center;font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600;padding-right:4px}.pp nav.tabs.sub{margin-top:4px}.pp .pbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px}.pp .pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px}@media (max-width:420px){.pp .pgrid{grid-template-columns:minmax(0,1fr)}}.pp .pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}.pp .pstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin:0;padding:10px 0;border-block:1px solid var(--line)}.pp .pstats dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}.pp .pstats dd{margin:2px 0 0;font-family:var(--f-display);font-weight:700;font-size:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pp .login{min-height:calc(100vh - 32px);padding-block:24px}.pp .login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 30px rgba(20,30,50,.08)}.pp .login-card .brand{margin-bottom:6px}.pp .hist{list-style:none;margin:0;padding:0}.pp .hist-ev{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);grid-gap:14px;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line)}.pp .hist-ev:last-child{border-bottom:0}.pp .hist-when{font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pp .hist-body ul{margin:6px 0 0;padding-left:18px;font-size:13px}@media (max-width:560px){.pp .hist-ev{grid-template-columns:minmax(0,1fr);gap:4px}}.pp .grp-btn{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:2px 0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;text-align:left}.pp .grp-btn .caret{width:12px;display:inline-block;color:var(--muted)}.pp .grp-n{font-weight:500;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:0 7px;font-size:11px;letter-spacing:0}.pp .grp-btn{flex-wrap:wrap;row-gap:2px}.pp .grp-subs{margin-left:auto;font-weight:500;text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--muted);white-space:normal;text-align:right;min-width:0}.pp tr.sub2 td{padding-block:5px;padding-left:48px;font-weight:500;font-size:12.5px}.pp tr.sub td,.pp tr.sub2 td{background:var(--surface);border-bottom:1px solid var(--line)}.pp tr.sub td{padding-block:6px;padding-left:28px;font-weight:600;font-size:13px}.pp .wf{display:flex;flex-direction:column;gap:8px;border-radius:var(--r);padding:12px 14px;margin-bottom:14px;font-size:13.5px;border:1px solid var(--line)}.pp .wf-warn{background:var(--warn-bg)}.pp .wf-ok{background:var(--ok-bg)}.pp .wf-note{font-style:italic}.pp fieldset.lockset{border:0;margin:0;padding:0;min-width:0}.pp fieldset.lockset[disabled] .grid-build{opacity:.85}.pp .po-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.pp .field label.btn{text-transform:none;letter-spacing:0;font-size:12px}.pp .btn.save-dirty{border-color:var(--warn);color:var(--warn)}.pp .grid-daily{display:grid;grid-template-columns:minmax(0,3fr) minmax(220px,1fr);grid-gap:16px;gap:16px;align-items:start}@media (max-width:900px){.pp .grid-daily{grid-template-columns:minmax(0,1fr)}}.pp .dv-head{border-bottom:0}.pp .dv-card .dv-head+.tbl-wrap{border-top:1px solid var(--line)}.pp .dv-toggle{display:flex;gap:10px;align-items:flex-start;border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;flex:1 1 280px;min-width:0}.pp .dv-toggle .caret{color:var(--muted);margin-top:2px}.pp .dv-toggle>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.pp .dv-title{font-family:var(--f-display);font-weight:700;font-size:15px}.pp .dv-sj{display:flex;flex-wrap:wrap;gap:4px}.pp .dv-ev{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px dashed var(--line)}.pp .dv-ev:last-child{border-bottom:0}.pp .dv-ev .btn{align-self:flex-start}.pp textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:8px 10px;resize:vertical}.pp .pcard{cursor:pointer;transition:border-color .12s}.pp .pcard:hover{border-color:var(--line-strong);box-shadow:0 6px 18px rgba(14,17,22,.08)}.pp .pname{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.pp .pcard:hover .pname{color:var(--link)}.pp .lv-card{background:var(--surface);color:var(--ink);border-radius:10px;padding:20px;max-width:480px;width:100%;display:flex;flex-direction:column;gap:10px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.pp .lv-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.pp .pcard.archived{opacity:.8;background:var(--sunk)}.pp .open-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:16px}.pp .banner{display:flex;gap:10px;align-items:flex-start;background:var(--info-bg);color:var(--info);padding:10px 12px;margin-bottom:14px;font-size:13px}.pp .banner,.pp .panel{border:1px solid var(--line);border-radius:var(--r)}.pp .panel{background:var(--surface)}.pp .panel-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line)}.pp .panel-b,.pp .panel-h{padding:12px 14px}.pp .grid-build{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-gap:16px;gap:16px;align-items:start}@media (max-width:980px){.pp .grid-build{grid-template-columns:minmax(0,1fr)}}.pp .grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);grid-gap:16px;gap:16px;align-items:start}@media (max-width:860px){.pp .grid-2{grid-template-columns:minmax(0,1fr)}}.pp .stack{display:flex;flex-direction:column;gap:16px}.pp .row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.pp .field{display:flex;flex-direction:column;gap:4px;min-width:0}.pp .field label{font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.pp input,.pp select,.pp textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:7px 9px;min-width:0}.pp a:focus-visible,.pp button:focus-visible,.pp input:focus-visible,.pp select:focus-visible,.pp textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pp input[type=number]{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pp .btn{font:600 13px var(--f-body);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:5px;padding:7px 12px;cursor:pointer;white-space:nowrap}.pp .btn:hover{border-color:var(--muted)}.pp .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pp .btn.ghost{border-color:transparent;background:none;padding:5px 8px}.pp .btn.danger{color:var(--danger)}.pp .btn.warnbtn{background:var(--warn);border-color:var(--warn);color:var(--surface)}.pp .btn:disabled{opacity:.45;cursor:not-allowed}.pp .btn.sm{padding:4px 9px;font-size:12px}.pp .chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.pp .chip.ok{color:var(--ok);border-color:transparent}.pp .chip.warn{color:var(--warn);border-color:transparent}.pp .chip.code{font-family:var(--f-mono);font-weight:500;border-radius:4px}.pp .tbl-wrap{overflow-x:auto}.pp table{border-collapse:collapse;width:100%}.pp th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;text-align:left;background:var(--sunk);white-space:nowrap}.pp td,.pp th{padding:7px 8px;border-bottom:1px solid var(--line)}.pp td{vertical-align:middle}.pp tr:last-child td{border-bottom:0}.pp tr.grp td{background:var(--sunk);font-weight:600;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-block:5px}.pp .cat-list td.name{min-width:200px}.pp .line,.pp .lines{display:flex;flex-direction:column}.pp .line{padding:12px 14px;border-bottom:1px solid var(--line);gap:10px}.pp .line.needs{box-shadow:inset 3px 0 0 var(--warn)}.pp .line-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.pp .line-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));grid-gap:10px;gap:10px;align-items:end}.pp .seg{display:inline-flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.pp .seg button{border:0;background:var(--surface);padding:7px 10px;font:600 12px var(--f-body);color:var(--muted);cursor:pointer}.pp .seg button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.pp .verify{background:var(--warn-bg);border-radius:5px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.pp .verify.done{background:var(--ok-bg)}.pp .calc{font-size:12.5px;color:var(--muted)}.pp .totals{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;flex-wrap:wrap}.pp .total-n{font-family:var(--f-display);font-size:22px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pp .issues{margin:0;padding-left:18px;color:var(--warn);font-size:13px}.pp pre.csv{margin:0;background:var(--sunk);border:1px solid var(--line);border-radius:5px;padding:10px 12px;font:12px/1.55 var(--f-mono);overflow-x:auto;white-space:pre}.pp .empty{padding:22px 14px;color:var(--muted);text-align:center}.pp .toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:6px;font-weight:600;font-size:13px;z-index:10;max-width:calc(100vw - 32px)}.pp .proj-list button{display:flex;width:100%;text-align:left;gap:8px;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid var(--line);background:none;padding:10px 14px;cursor:pointer;font:inherit;color:inherit}.pp .proj-list button[aria-current=true]{background:var(--sunk);box-shadow:inset 3px 0 0 var(--accent)}.pp a{color:var(--link)}.pp .hidden-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.pp *{transition:none!important}}.pp .linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--link);text-decoration:underline;cursor:pointer;text-align:left}.pp .badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:9px;background:var(--warn);color:var(--surface);font-size:11px;font-weight:700}.pp .up{color:var(--danger)}.pp .down{color:var(--ok)}.pp .overlay{position:fixed;inset:0;background:rgba(10,14,20,.72);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px}.pp .overlay img{max-width:100%;max-height:78vh;border-radius:4px;background:#fff}.pp .overlay .bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;color:#fff}.pp .seg.wide button{padding:6px 12px}.pp .role{font-size:11.5px}.pp .req-actions{display:flex;flex-direction:column;gap:6px;min-width:190px}.pp td.wrap{white-space:normal;min-width:160px}.pp{min-height:100vh;background:var(--bg);color:var(--ink);margin:0}.pp .row{grid-template-columns:none}.pp .field label{margin:0;display:block}.pp label{font-size:inherit;color:inherit;margin:0}.pp input[type=checkbox],.pp input[type=radio]{width:auto}.pp .btn,.pp .dv-toggle,.pp .grp-btn,.pp .linkbtn,.pp .pname,.pp .proj-list button,.pp .seg button,.pp nav.tabs button{border-radius:5px}.pp .dv-toggle,.pp .grp-btn,.pp .linkbtn,.pp .pname,.pp .proj-list button,.pp nav.tabs button{border-radius:0}.pp h1,.pp h2,.pp h3{margin:0}.pp .pp-legacy .admin{max-width:none;padding:0}.pp .soon{border:1px dashed var(--line);border-radius:var(--r);padding:18px 16px;color:var(--muted);background:var(--sunk)}.pp .soon b{color:var(--ink)}.pp .perm-on{color:var(--ok)}.pp .perm-off{color:var(--muted)}.pp .kv{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 16px;gap:6px 16px;margin:0}.pp .kv dt{color:var(--muted);font-size:12.5px}.pp .kv dd{margin:0}.pp .panel{max-width:none;padding:0}.pp .chip{background:transparent}.pp .tabs{gap:2px}.pp td select{width:auto;min-width:220px}.pp .masthead{position:relative;background:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px) 0 0/22px 22px,var(--band);color:var(--band-ink);overflow:hidden}.pp .masthead .swoop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.pp .masthead-in{position:relative;max-width:1320px;margin:0 auto;padding:0 24px}.pp .topbar{flex-wrap:wrap;gap:12px 22px;min-height:64px;border-bottom:1px solid rgba(255,255,255,.08)}.pp .brand,.pp .topbar{display:flex;align-items:center}.pp .brand{gap:10px;color:inherit;text-decoration:none}.pp .brand img{height:26px;width:auto;display:block}.pp .brand-name{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.02em}.pp .tenant{display:flex;align-items:center;gap:10px;padding-left:18px;border-left:1px solid rgba(255,255,255,.16);font-size:13px;font-weight:600;color:var(--band-muted)}.pp .tenant img{height:34px;width:auto;display:block}.pp .secnav{display:flex;gap:4px;flex:1 1 auto}.pp .secnav button{border:0;background:none;padding:21px 12px 19px;font:600 14px var(--f-body);color:var(--band-muted);border-bottom:2px solid transparent;border-radius:0;cursor:pointer}.pp .secnav button:hover{color:var(--band-ink)}.pp .secnav button[aria-pressed=true]{color:var(--band-ink);font-weight:700;border-bottom-color:var(--accent)}.pp .userbox{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--band-muted)}.pp .userbox b{color:var(--band-ink);font-weight:600}.pp .masthead .btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:var(--band-ink)}.pp .masthead .btn:hover{border-color:rgba(255,255,255,.4)}.pp .masthead .btn.ghost{background:none;border-color:transparent;color:var(--band-muted)}.pp .masthead .btn[aria-pressed=true]{background:var(--band-ink);color:var(--band);border-color:var(--band-ink)}.pp .masthead .chip.ok{background:rgba(94,209,197,.14);color:#7FE0D6}.pp .masthead nav.tabs{border-bottom:0;margin:0;padding-top:4px}.pp .masthead nav.tabs button{color:var(--band-muted);padding:12px 12px 13px}.pp .masthead nav.tabs button:hover{color:var(--band-ink)}.pp .masthead nav.tabs button[aria-selected=true]{color:var(--band-ink);border-bottom-color:var(--band-ink)}.pp .masthead .open-head{border:0;margin:0;padding:16px 0 18px}.pp .masthead .open-head .muted{color:var(--band-muted)}.pp .masthead .seg{border-color:rgba(255,255,255,.18)}.pp .masthead .seg button{background:transparent;color:var(--band-muted)}.pp .masthead .seg button[aria-pressed=true]{background:var(--band-ink);color:var(--band)}.pp .badge.hot{background:var(--accent);color:var(--accent-ink)}.pp .btn{border-color:var(--line-strong);border-radius:8px;padding:8px 14px;font-weight:700;transition:border-color .12s,background .12s}.pp .btn.sm{padding:5px 10px;border-radius:7px}.pp .btn.primary:hover{background:#C9151C;border-color:#C9151C}.pp input,.pp select,.pp textarea{border-color:var(--line-strong);border-radius:8px;padding:8px 10px}.pp .panel,.pp .pcard{border-radius:var(--r);box-shadow:0 1px 2px rgba(14,17,22,.04)}.pp .panel-b,.pp .panel-h{padding:14px 18px}.pp .chip{border-radius:6px;padding:3px 8px;font-weight:700;border-color:transparent;background:var(--sunk)}.pp .chip.ok{background:var(--ok-bg)}.pp .chip.warn{background:var(--warn-bg)}.pp th{background:transparent;letter-spacing:.07em;font-weight:700}.pp .pstats dd{font-weight:800;font-size:18px}.pp .footer{max-width:1320px;margin:0 auto;padding:14px 24px 24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.pp .footer b{color:var(--ink)}.pp .login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px) 0 0/22px 22px,var(--band);position:relative;overflow:hidden}.pp .login .swoop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.pp .login-card{position:relative;border-radius:14px;padding:28px;box-shadow:0 24px 60px rgba(0,0,0,.35)}.pp .login-card .brand{color:var(--ink)}@media (max-width:760px){.pp .tenant{padding-left:0;border-left:0}.pp .secnav button{padding:14px 10px}}