:root{--font-sans:"Archivo",system-ui,sans-serif;--font-mono:"IBM Plex Mono",monospace;--fs-body:13.5px;--fs-h1:clamp(22px,4vw,32px);--fs-h2:13px;--fs-eyebrow:12px;--fs-sub:13px;--paper:#f6f5f0;--surface:#fbfaf6;--panel:#fbfaf6;--panel-2:#fdfcf8;--ink:#20241f;--ink-2:#8b8a80;--faint:#8b8a80;--rule:#dddbd1;--rule-soft:#e6e4db;--live:#0e5a4c;--live-soft:#e3efea;--input:#b07a12;--input-soft:#f6ecd6;--err:#b3402a;--err-soft:#f5e3de;--risk:#b3402a;--risk-soft:#f5e3de;--warn-soft:#f6ecd6;--grey:#ecebe3;--greytx:#b5b3a6;--chs:#0e5a4c;--gvl:#2e6a80;--mp:#7a4e63;--oh:#8b8a80;--pos:#0e5a4c;--neg:#b3402a;--debit:#b3402a;--post:#b07a12;--fade:#dddbd1;--uber:#20241f;--dd:#b3402a;--ez:#b07a12;--pd1:#2e6a80;--store:#0e5a4c;--shell-bg:var(--paper);--shell-white:#fff;--shell-line:var(--rule);--shell-ink:var(--ink);--shell-mut:var(--faint);--shell-blue:#1668d6;--shell-blue-soft:#e8f0fd;--rail-w:96px;--topbar-h:60px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--shell-bg);font-family:var(--font-sans);font-size:var(--fs-body);color:var(--shell-ink);-webkit-font-smoothing:antialiased;line-height:1.45}.pd-eyebrow{font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--shell-mut);font-weight:600}.pd-rail{width:var(--rail-w);background:var(--shell-white);border-right:1px solid var(--shell-line);z-index:50;flex-direction:column;align-items:center;gap:6px;padding:14px 0 18px;display:flex;position:fixed;inset:0 auto 0 0}.pd-logo{background:var(--shell-ink);color:#f6f5f0;letter-spacing:.06em;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:14px;font-size:13px;font-weight:800;text-decoration:none;display:flex}.pd-nav{flex-direction:column;gap:2px;width:100%;display:flex}.pd-item{color:var(--shell-mut);letter-spacing:.02em;flex-direction:column;align-items:center;gap:5px;padding:11px 4px 10px;font-size:11px;font-weight:600;text-decoration:none;display:flex;position:relative}.pd-item svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.pd-item:hover{color:var(--shell-ink)}.pd-item.on{color:var(--shell-blue)}.pd-item.on:before{content:"";background:var(--shell-blue);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:9px;left:0}.pd-item.on .pd-ic{background:var(--shell-blue-soft)}.pd-ic{border-radius:15px;justify-content:center;align-items:center;width:44px;height:30px;display:flex}.pd-item:focus-visible{outline:2px solid var(--shell-blue);outline-offset:-2px;border-radius:6px}.pd-top{top:0;left:var(--rail-w);height:var(--topbar-h);background:var(--shell-white);border-bottom:1px solid var(--shell-line);z-index:40;justify-content:space-between;align-items:center;gap:14px;padding:0 22px;display:flex;position:fixed;right:0}.pd-crumb{align-items:baseline;gap:10px;min-width:0;display:flex}.pd-crumb .co{letter-spacing:.14em;text-transform:uppercase;color:var(--shell-mut);white-space:nowrap;font-size:11px;font-weight:700}.pd-crumb .sec{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:800;font-stretch:82%;overflow:hidden}.pd-topr{align-items:center;gap:12px;display:flex}.pd-store{position:relative}.pd-store-btn{font-family:var(--font-sans);color:var(--shell-ink);border:1px solid var(--shell-line);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;display:flex}.pd-store-btn:hover{border-color:var(--shell-ink)}.pd-store-btn:focus-visible{outline:2px solid var(--shell-blue);outline-offset:2px}.pd-store .dot{border-radius:50%;flex:none;width:9px;height:9px}.pd-store-btn .nm{font-weight:700}.pd-store-btn .addr{color:var(--shell-mut)}.pd-store-btn .chev{width:14px;height:14px;stroke:var(--shell-mut);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.pd-store-menu{z-index:60;background:var(--shell-white);border:1.5px solid var(--rule);border-radius:8px;flex-direction:column;gap:1px;min-width:300px;padding:5px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #20241f1f}.pd-store-opt{text-align:left;width:100%;font-family:var(--font-sans);color:var(--shell-ink);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;display:flex}.pd-store-opt:hover:not(:disabled){background:var(--shell-blue-soft)}.pd-store-opt:focus-visible{outline:2px solid var(--shell-blue);outline-offset:-2px}.pd-store-opt .txt{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pd-store-opt .nm{white-space:nowrap;font-weight:700}.pd-store-opt .addr{color:var(--shell-mut);font-size:11.5px}.pd-store-opt .check{width:16px;height:16px;stroke:var(--shell-blue);fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;flex:none}.pd-store-opt .tag{letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--input);border-radius:20px;flex:none;padding:3px 8px;font-size:10px;font-weight:700}.pd-store-opt.dev{cursor:default}.pd-store-opt.dev .nm,.pd-store-opt.dev .addr{color:var(--greytx)}.pd-store-opt.sel{background:var(--shell-blue-soft)}.pd-ava{background:var(--shell-blue-soft);width:34px;height:34px;color:var(--shell-blue);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:800;text-decoration:none;display:flex}.pd-ava:focus-visible{outline:2px solid var(--shell-blue);outline-offset:2px}.pd-main{margin-left:var(--rail-w);padding-top:var(--topbar-h);min-height:100vh}.app-kpi,.app-catering{min-height:calc(100vh - var(--topbar-h))}.pd-home{max-width:1180px;margin:0 auto;padding:34px 22px 64px}.pd-home h1{text-transform:uppercase;font-weight:800;font-stretch:72%;font-size:var(--fs-h1);letter-spacing:.01em;margin:6px 0 0;line-height:1.03}.pd-home h1 b{color:var(--shell-blue)}.pd-home .sub{color:var(--shell-mut);font-size:var(--fs-sub);max-width:64ch;margin-top:10px}.pd-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:30px;display:grid}.pd-card{color:var(--shell-ink);background:#fdfcf8;border:1.5px solid #d8d6cc;border-radius:8px;flex-direction:column;gap:9px;padding:18px 18px 16px;text-decoration:none;transition:border-color .12s,transform .12s;display:flex}.pd-card:hover{border-color:var(--shell-ink);transform:translateY(-1px)}.pd-card .ic{background:var(--shell-blue-soft);width:38px;height:38px;color:var(--shell-blue);border-radius:8px;justify-content:center;align-items:center;display:flex}.pd-card .ic svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.pd-card .nm{text-transform:uppercase;letter-spacing:.06em;font-size:14px;font-weight:800;font-stretch:82%}.pd-card .ds{color:var(--shell-mut);font-size:13px;line-height:1.45}.pd-card .go{color:var(--shell-blue);margin-top:auto;font-size:12px;font-weight:700}@media (prefers-reduced-motion:reduce){.pd-card{transition:none}}.pd-admin{max-width:980px;margin:0 auto;padding:30px 22px 64px}.pd-admin h1{text-transform:uppercase;font-weight:800;font-stretch:72%;font-size:var(--fs-h1);letter-spacing:.01em;margin:4px 0 0}.pd-admin h2{text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-stretch:82%;font-size:var(--fs-h2);border-bottom:2px solid var(--shell-ink);margin:30px 0 10px;padding-bottom:7px}.pd-admin .sub{color:var(--shell-mut);font-size:var(--fs-sub);margin-top:8px}.pd-rows{background:#fdfcf8;border:1.5px solid #d8d6cc;border-radius:8px;overflow:hidden}.pd-row{border-bottom:1px solid #e6e4db;align-items:center;gap:12px;padding:11px 15px;font-size:13.5px;display:flex}.pd-row:last-child{border-bottom:none}.pd-row .k{font-family:var(--font-mono);flex:0 0 260px;min-width:0;font-size:12.5px}.pd-row .v{color:var(--shell-mut);flex:1;min-width:0}.pd-pill{letter-spacing:.06em;text-transform:uppercase;border-radius:20px;flex:none;padding:3px 10px;font-size:11px;font-weight:700}.pd-pill.ok{color:#0e5a4c;background:#e3efea}.pd-pill.bad{color:#b3402a;background:#f5e3de}.pd-pill.warn{color:#8a5f0d;background:#f6ecd6}.pd-actions{flex-wrap:wrap;gap:10px;display:flex}.pd-btn{font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--shell-ink);color:var(--shell-ink);cursor:pointer;background:0 0;border-radius:4px;padding:9px 15px;font-size:12px;font-weight:700;text-decoration:none;display:inline-block}.pd-btn:hover{background:var(--shell-ink);color:#f6f5f0}.pd-btn:disabled{opacity:.5;cursor:default}.pd-note{font-family:var(--font-mono);color:var(--shell-mut);white-space:pre-wrap;word-break:break-word;margin-top:10px;font-size:12px}@media (max-width:760px){.pd-rail{border-right:none;border-top:1px solid var(--shell-line);flex-direction:row;justify-content:space-around;gap:0;width:auto;height:64px;padding:0 6px;inset:auto 0 0}.pd-logo{display:none}.pd-nav{flex-direction:row;justify-content:space-around;width:100%}.pd-item{flex:1;padding:8px 2px}.pd-item.on:before{border-radius:0 0 3px 3px;width:auto;height:3px;inset:0 14% auto}.pd-top{left:0}.pd-main{margin-left:0;padding-bottom:76px}.pd-crumb .co,.pd-store-btn .addr{display:none}.pd-store-menu{right:-8px}}.pd-login{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.pd-login-card{background:#fdfcf8;border:1.5px solid #d8d6cc;border-radius:10px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:28px 26px 26px;display:flex}.pd-login-mark{background:var(--shell-ink);color:#f6f5f0;letter-spacing:.06em;border-radius:9px;justify-content:center;align-items:center;width:44px;height:44px;font-size:14px;font-weight:800;display:flex}.pd-login-card h1{text-transform:uppercase;font-weight:800;font-stretch:72%;font-size:var(--fs-h1);letter-spacing:.01em;margin:0 0 4px}.pd-login-card label,.pd-userform label{letter-spacing:.06em;text-transform:uppercase;color:var(--shell-mut);flex-direction:column;gap:5px;font-size:12px;font-weight:700;display:flex}.pd-login-card input,.pd-userform input{font-family:var(--font-mono);color:var(--shell-ink);background:#fff;border:1.5px solid #d8d6cc;border-radius:5px;padding:9px 11px;font-size:14px}.pd-login-card input:focus,.pd-userform input:focus{outline:2px solid var(--shell-blue);outline-offset:-1px;border-color:var(--shell-blue)}.pd-login-err{color:#b3402a;margin:0;font-size:13px;font-weight:600}.pd-btn.solid{background:var(--shell-ink);color:#f6f5f0}.pd-btn.solid:hover{background:#000}.pd-btn.danger{color:#b3402a;border-color:#b3402a}.pd-btn.danger:hover{color:#fff;background:#b3402a}.pd-userform{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.pd-userform label{flex:180px}.pd-callout{border-radius:6px;margin-top:16px;padding:11px 14px;font-size:13.5px;font-weight:600;line-height:1.5}.pd-callout code{font-family:var(--font-mono);font-size:12.5px}.pd-callout.bad{color:#b3402a;background:#f5e3de;border:1.5px solid #b3402a}.pd-callout.warn{color:#20241f;background:#f6ecd6;border:1.5px solid #b07a12}
*{box-sizing:border-box}html,.app-kpi{margin:0;padding:0}.app-kpi{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}.app-kpi .wrap{max-width:1180px;margin:0 auto;padding:28px 20px 64px}.app-kpi .eyebrow{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:var(--fs-eyebrow);color:var(--ink-2)}.app-kpi h1{font-family:var(--font-sans);text-transform:uppercase;font-weight:800;font-stretch:72%;font-size:var(--fs-h1);letter-spacing:.01em;margin:6px 0 0;line-height:1.02}.app-kpi h2{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-stretch:82%;font-size:var(--fs-h2);margin:0}.app-kpi .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-kpi .sub{color:var(--ink-2);font-size:var(--fs-sub);max-width:66ch;margin:10px 0 0}.app-kpi .masthead{border-bottom:3px solid var(--ink);padding-bottom:22px}.app-kpi .verdict{grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:10px;margin-top:26px;display:grid}.app-kpi .vcell{background:var(--surface);border:1.5px solid var(--rule);border-radius:6px;padding:14px 16px}.app-kpi .vlabel{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);font-size:10.5px;font-weight:600}.app-kpi .vnum{font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:3px;font-size:25px;font-weight:600}.app-kpi .vfoot{color:var(--ink-2);margin-top:2px;font-size:12px}.app-kpi .pos{color:var(--chs)}.app-kpi .neg{color:var(--debit)}.app-kpi section{margin-top:38px}.app-kpi .shead{border-bottom:2px solid var(--ink);align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:7px;display:flex}.app-kpi .shead .note{color:var(--ink-2);text-align:right;margin-left:auto;font-size:12px}.app-kpi .chartbox{background:var(--surface);border:1.5px solid var(--rule);border-radius:6px;padding:18px 10px 8px}.app-kpi svg{width:100%;height:auto;display:block}.app-kpi .legend{color:var(--ink-2);flex-wrap:wrap;gap:18px;margin-top:12px;padding:0 8px 6px;font-size:12px;display:flex}.app-kpi .key{vertical-align:-1px;width:11px;height:11px;margin-right:6px;display:inline-block}.app-kpi .panels{grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:14px;display:grid}.app-kpi .panel{background:var(--surface);border:1.5px solid var(--rule);border-radius:6px}.app-kpi .ptitle{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--rule);background:var(--ink);color:var(--paper);border-radius:5px 5px 0 0;align-items:center;gap:8px;padding:10px 14px;font-size:11px;font-weight:700;display:flex}.app-kpi .swatch{width:10px;height:10px;display:inline-block}.app-kpi .field{border-bottom:1px solid var(--rule-soft);align-items:center;gap:10px;padding:7px 14px;display:flex}.app-kpi .field:last-child{border-bottom:0}.app-kpi .field label{flex:1;font-size:13px;line-height:1.25}.app-kpi .field input{text-align:right;width:96px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;border:1.5px solid var(--rule);color:var(--ink);background:#fff;border-radius:5px;padding:5px 7px;font-size:13px}.app-kpi .field input[type=date]{text-align:left;width:132px}.app-kpi .field input:focus{outline:2px solid var(--input);outline-offset:1px}.app-kpi .unit{width:16px;color:var(--ink-2);font-size:12px;font-family:var(--font-mono)}.app-kpi .tablebox{border:1.5px solid var(--rule);background:var(--surface);border-radius:6px;max-height:540px;overflow:auto}.app-kpi table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12.5px}.app-kpi thead th{background:var(--ink);color:var(--paper);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.07em;text-align:right;white-space:nowrap;z-index:2;padding:8px 10px;font-size:10.5px;font-weight:600;position:sticky;top:0}.app-kpi thead th:first-child{text-align:left}.app-kpi tbody td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--rule-soft);padding:5px 10px}.app-kpi tbody td:first-child{text-align:left;color:var(--ink-2)}.app-kpi tbody tr.actual{background:var(--live-soft)}.app-kpi tbody tr.actual td:first-child:after{content:" ·act";color:var(--oh);font-size:10px}.app-kpi tbody tr.first-proj td{border-top:2px solid var(--ink)}.app-kpi tbody tr.open td{background:var(--input-soft)}.app-kpi tbody tr.low td{background:var(--err-soft);font-weight:600}.app-kpi tbody tr.open td:first-child:after{content:" ·open";color:var(--post);font-size:10px}.app-kpi tbody tr.low td:first-child:after{content:" ·low";color:var(--debit);font-size:10px}.app-kpi #normtbl tbody td:first-child{color:var(--ink)}.app-kpi #normtbl tbody tr.strip td{color:var(--ink-2);font-style:italic}.app-kpi #normtbl tbody tr.tot td{border-top:2px solid var(--ink);font-weight:600}.app-kpi .gapbar{background:var(--debit);vertical-align:0;height:9px;margin-left:6px;display:inline-block}.app-kpi .gapbar.ok{background:var(--chs)}.app-kpi .foot{border-top:1px solid var(--rule);color:var(--ink-2);max-width:78ch;margin-top:34px;padding-top:16px;font-size:12.5px}.app-kpi .foot b{color:var(--ink);font-weight:600}.app-kpi .foot p{margin:0 0 9px}.app-kpi .toggle{border:1px solid var(--ink);margin-left:auto;display:flex}.app-kpi .toggle button{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;background:var(--surface);color:var(--ink);cursor:pointer;border:0;padding:8px 18px;font-size:11px;font-weight:700}.app-kpi .toggle button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.app-kpi .periodpick{margin-left:12px}.app-kpi .periodpick select{font-family:var(--font-mono);border:1.5px solid var(--rule);color:var(--ink);background:#fff;border-radius:5px;padding:7px 9px;font-size:12.5px}.app-kpi .kpis{background:0 0;border:0;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px;margin-top:24px;display:grid}.app-kpi .k{background:var(--surface);border:1.5px solid var(--rule);border-radius:6px;padding:14px 16px}.app-kpi .klabel{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);font-size:10.5px;font-weight:600}.app-kpi .kval{font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:3px;font-size:25px;font-weight:600}.app-kpi .kdelta{font-size:12px;font-family:var(--font-mono);margin-top:2px}.app-kpi .up{color:var(--pos)}.app-kpi .down{color:var(--neg)}.app-kpi .flat{color:var(--ink-2)}.app-kpi .grid2{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:840px){.app-kpi .grid2{grid-template-columns:1fr}}.app-kpi .box{background:var(--surface);border:1.5px solid var(--rule);border-radius:6px;padding:16px 12px 8px}.app-kpi tbody tr.partial td:first-child:after{content:" *";color:var(--neg)}.app-kpi tbody tr.sel td{background:var(--live-soft);font-weight:600}.app-kpi .topbar{border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:flex-end;gap:20px;padding-bottom:0;display:flex}.app-kpi .tabs{gap:0;margin-left:auto;display:flex}.app-kpi .tabs button{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;border:1.5px solid var(--rule);background:var(--paper);color:var(--ink-2);cursor:pointer;border-bottom:0;border-radius:6px;margin-bottom:-2px;padding:11px 22px;font-size:11.5px;font-weight:700}.app-kpi .tabs button+button{border-left:0}.app-kpi .tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);border-color:var(--ink);border-bottom:3px solid var(--surface)}.app-kpi .tabintro{border-bottom:1px solid var(--rule);padding-bottom:22px}.app-kpi .tabpanel[hidden]{display:none}.app-kpi .kpihead{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:flex-end;gap:16px;padding-bottom:18px;display:flex}.app-kpi .dsbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.app-kpi .dsbar select{font-family:var(--font-mono);border:1.5px solid var(--rule);color:var(--ink);background:#fff;border-radius:5px;min-width:230px;padding:8px 10px;font-size:12.5px}.app-kpi .fmtpick{border:1px solid var(--ink);display:flex}.app-kpi .fmtpick button{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;background:var(--surface);color:var(--ink);cursor:pointer;border:0;padding:8px 13px;font-size:10.5px;font-weight:700}.app-kpi .fmtpick button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.app-kpi button.act{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--ink);background:var(--surface);color:var(--ink);cursor:pointer;padding:9px 15px;font-size:10.5px;font-weight:700}.app-kpi button.act:hover{background:var(--ink);color:var(--surface)}.app-kpi .dsmsg{font-family:var(--font-mono);color:var(--pos);font-size:12px}.app-kpi .rawbox{border:1.5px solid var(--rule);background:var(--surface);border-radius:6px;margin-top:16px}.app-kpi .rawlabel{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);border-bottom:1px solid var(--rule-soft);padding:9px 12px;font-size:10.5px;font-weight:600}.app-kpi #rawout{resize:vertical;width:100%;height:180px;font-family:var(--font-mono);color:var(--ink);white-space:pre;background:0 0;border:0;padding:11px 12px;font-size:11.5px;line-height:1.5;overflow:auto}.app-kpi #rawout:focus{outline:2px solid var(--post);outline-offset:-2px}.app-kpi #checkbody td:first-child{color:var(--ink)}.app-kpi #checkbody td.ok{color:var(--pos);font-weight:600}.app-kpi #checkbody td.flag{color:var(--post);font-weight:600}.app-kpi #checkbody td.bad{color:var(--neg);font-weight:600}.app-kpi .topbar{border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:flex-end;gap:20px;display:flex}.app-kpi code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--rule-soft);padding:2px 5px;font-size:13px}.app-kpi textarea{font-family:var(--font-mono)}.app-kpi .banner{background:var(--input-soft);border:1px solid var(--post);color:var(--ink);margin-top:18px;padding:11px 14px;font-size:13px;line-height:1.5}.app-kpi .banner b{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;margin-right:6px;font-size:10.5px}.app-kpi .banner a{color:var(--ink);text-underline-offset:2px}.app-kpi button.act.big{letter-spacing:.1em;background:var(--live);color:#fff;border-color:var(--live);padding:14px 26px;font-size:13px}.app-kpi button.act.big:hover{background:#0b4a3f}.app-kpi button.act:disabled{opacity:.55;cursor:default}.app-kpi .headtools{align-self:center;margin-left:auto;padding-bottom:10px}.app-kpi .headtools+.tabs{margin-left:14px}.app-kpi .kdelta .was{color:var(--ink-2);letter-spacing:0;font-weight:400}.app-kpi .mixrow{border-bottom:1px solid var(--rule-soft);grid-template-columns:150px 1fr 84px 130px;align-items:center;gap:10px;padding:7px 0;display:grid}.app-kpi .mixrow:last-child{border-bottom:none}.app-kpi .mixname{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.app-kpi .mixbar{background:var(--grey);border-radius:2px;height:12px;overflow:hidden}.app-kpi .mixbar i{background:var(--chs);border-radius:2px;height:100%;display:block}.app-kpi .mixnum{font-family:var(--font-mono);text-align:right;font-size:12.5px}.app-kpi .mixpct{font-family:var(--font-mono);color:var(--ink-2);white-space:nowrap;font-size:11px}.app-kpi .ttip{background:var(--panel-2);border:1.5px solid var(--ink);font-family:var(--font-mono);border-radius:4px;padding:8px 10px;font-size:12px}.app-kpi .ttip .tt-d{margin-bottom:2px;font-weight:600}.app-kpi td.down{color:var(--neg)}@media (max-width:700px){.app-kpi .mixrow{grid-template-columns:110px 1fr 74px;row-gap:2px}.app-kpi .mixpct{display:none}}
*{box-sizing:border-box}html,.app-catering{margin:0;padding:0}.app-catering{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;line-height:1.45}.app-catering .shell{max-width:1200px;margin:0 auto;padding:26px 16px 60px}.app-catering .mono{font-family:var(--font-mono)}.app-catering .head{border-bottom:3px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:0;padding-bottom:12px;display:flex}.app-catering .head-l{align-items:center;gap:12px;display:flex}.app-catering .mark{background:var(--ink);width:34px;height:34px;color:var(--paper);letter-spacing:.06em;border-radius:4px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.app-catering .eyebrow{font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}.app-catering .title{font-size:var(--fs-h1);text-transform:uppercase;letter-spacing:.01em;margin:4px 0 0;font-weight:800;font-stretch:72%}.app-catering .head-r{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-catering .savechip{color:var(--faint);font-size:12px}.app-catering .savechip.failed{color:var(--risk);font-weight:700}.app-catering .sync{font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:8px;padding:7px 13px;font-size:12px;font-weight:700;display:flex}.app-catering .sync:hover{background:var(--ink);color:var(--paper)}.app-catering .sync .dot{background:var(--live);border-radius:50%;flex:none;width:8px;height:8px}.app-catering .sync.run{background:var(--live-soft);border-color:var(--live);color:var(--live)}.app-catering .sync.run:hover{background:var(--live-soft);color:var(--live)}.app-catering .sync.run .dot{background:var(--input);animation:1.1s ease-in-out infinite p}@keyframes p{0%,to{opacity:.35}50%{opacity:1}}.app-catering .banner{border-radius:6px;margin:16px 0 0;padding:10px 14px;font-size:13px;font-weight:600}.app-catering .banner.err{background:var(--risk-soft);color:var(--risk);border:1.5px solid var(--risk)}.app-catering .banner.warn{background:var(--warn-soft);color:var(--ink);border:1.5px solid var(--input)}.app-catering .linkbtn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 0 0 8px;font-size:12px;font-weight:700;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.app-catering .tabs{border-bottom:2px solid var(--ink);margin:16px 0 0;display:flex}.app-catering .tab{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;color:var(--faint);background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:9px 18px;font-size:13px;font-weight:800}.app-catering .tab:hover{color:var(--ink)}.app-catering .tab.on{color:var(--ink);border-bottom-color:var(--ink)}.app-catering .btn{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);cursor:pointer;white-space:nowrap;border-radius:4px;padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none;display:inline-block}.app-catering .btn.solid{background:var(--live);border-color:var(--live);color:#fff}.app-catering .btn.solid:hover{background:#0b4a3f}.app-catering .btn.ghost{color:var(--ink);border:1.5px solid var(--ink);background:0 0}.app-catering .btn.ghost:hover{background:var(--ink);color:var(--paper)}.app-catering .btn:disabled,.app-catering .btn.off{opacity:.5;pointer-events:none}.app-catering .btn:focus-visible{outline:2px solid var(--live);outline-offset:2px}.app-catering .in{font-family:var(--font-sans);border:1.5px solid var(--rule);color:var(--ink);background:#fff;border-radius:4px;width:100%;padding:7px 9px;font-size:13px}.app-catering .in:focus{outline:1.5px solid var(--live);border-color:var(--live)}.app-catering .in[type=date],.app-catering .in[type=number]{font-family:var(--font-mono);background:var(--input-soft);border-color:var(--input);font-weight:600}.app-catering .sub{color:var(--faint);font-size:13px}.app-catering .tiny{font-size:11.5px}.app-catering .muted{color:var(--greytx);font-style:italic}.app-catering .note{color:var(--ink);background:var(--warn-soft);border:1.5px solid var(--input);border-radius:6px;padding:8px 12px;font-size:12.5px;font-weight:600}.app-catering .note.warn{margin-bottom:10px}.app-catering code{font-family:var(--font-mono);background:var(--grey);border-radius:3px;padding:1px 5px;font-size:12px}.app-catering .pane{padding:22px 0 40px}.app-catering .row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.app-catering .seg{gap:8px;display:inline-flex}.app-catering .seg-b{font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:700}.app-catering .seg-b.on{background:var(--ink);color:var(--paper)}.app-catering .seg.small .seg-b{padding:5px 11px;font-size:11px}.app-catering .kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:20px;display:grid}.app-catering .kpi{background:var(--panel);border:1.5px solid var(--rule);border-radius:6px;padding:12px 14px}.app-catering .kpi.accent{background:var(--live-soft);border-color:var(--live)}.app-catering .kpi-v{font-family:var(--font-mono);letter-spacing:-.02em;font-size:24px;font-weight:600}.app-catering .kpi-l{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-top:3px;font-size:10px;font-weight:700}.app-catering .kpi-s{color:var(--faint);margin-top:5px;font-size:11.5px;line-height:1.35}.app-catering .card{background:var(--panel);border:1.5px solid var(--rule);border-radius:6px;margin-bottom:16px;padding:14px 14px 6px}.app-catering .card-h{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.app-catering .card h3{text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:15px;font-weight:800}.app-catering .card-n{color:var(--faint);font-size:12px}.app-catering .card-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.app-catering .two{grid-template-columns:1fr 1fr;gap:16px;display:grid}.app-catering .blank{border:1.5px dashed var(--rule);color:var(--faint);border-radius:6px;max-width:620px;margin:22px 0;padding:36px 24px}.app-catering .blank h2{text-transform:uppercase;letter-spacing:.05em;color:var(--ink);margin:0 0 8px;font-size:15px;font-weight:800}.app-catering .blank p{margin:0 0 16px}.app-catering .split{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:18px;padding-top:18px;display:grid}.app-catering .left{padding-bottom:40px}.app-catering .tools{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.app-catering .tools .in{width:auto}.app-catering .search{flex:1;min-width:220px}.app-catering .rail{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.app-catering .chip{font-family:var(--font-mono);white-space:nowrap;cursor:pointer;border:1.5px solid var(--rule);color:var(--faint);background:0 0;border-radius:99px;align-items:center;gap:7px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.app-catering .chip:hover{border-color:var(--ink);color:var(--ink)}.app-catering .chip.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.app-catering .chip.on .n{color:var(--paper)}.app-catering .chip .n{color:var(--ink);font-weight:600}.app-catering .chip.due .n{color:var(--input)}.app-catering .chip.on.due .n{color:var(--paper)}.app-catering .sw{border-radius:2px;flex:none;width:11px;height:11px;display:inline-block}.app-catering .list{flex-direction:column;gap:8px;display:flex}.app-catering .row{text-align:left;font:inherit;cursor:pointer;background:var(--panel);border:1.5px solid var(--rule);border-radius:6px;width:100%;padding:10px 13px 9px 16px;position:relative;overflow:hidden}.app-catering .row:hover{border-color:var(--ink)}.app-catering .row.sel{border-color:var(--live);box-shadow:0 0 0 1px var(--live);background:var(--live-soft)}.app-catering .edge{background:var(--c,var(--faint));width:4px;position:absolute;top:0;bottom:0;left:0}.app-catering .r-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.app-catering .r-name{letter-spacing:.02em;font-size:14px;font-weight:800}.app-catering .r-num{font-family:var(--font-mono);font-size:12.5px;font-weight:600}.app-catering .r-meta{color:var(--faint);margin-top:2px;font-size:12px}.app-catering .r-foot{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);flex-wrap:wrap;gap:10px;margin-top:7px;font-size:10px;font-weight:700;display:flex}.app-catering .r-stage{color:var(--c,var(--faint));font-weight:800}.app-catering .hot{color:var(--risk);font-weight:800}.app-catering .due-tag{color:var(--input);font-weight:800}.app-catering .side{border:1.5px solid var(--rule);background:var(--panel-2);border-radius:6px;max-height:calc(100vh - 36px);position:sticky;top:18px;overflow-y:auto}.app-catering .side-empty{color:var(--faint);padding:26px 18px}.app-catering .detail{padding:16px 18px 40px}.app-catering .d-head{border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:8px;display:flex}.app-catering .d-head h2{text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:15px;font-weight:800}.app-catering .d-sub{color:var(--faint);text-transform:none;letter-spacing:0;margin-top:4px;font-size:11.5px;font-weight:400}.app-catering .d-sub a{color:var(--ink);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.app-catering .d-sub .mono,.app-catering .r-meta .mono{font-family:var(--font-mono);font-size:11.5px}.app-catering .x{color:var(--faint);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.app-catering .x:hover{color:var(--risk)}.app-catering .mini{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px;display:grid}.app-catering .mini>div{background:var(--panel);border:1.5px solid var(--rule);text-align:center;border-radius:4px;padding:8px 6px}.app-catering .mini b{font-family:var(--font-mono);font-size:16px;font-weight:600;display:block}.app-catering .mini span{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:9px;font-weight:700}.app-catering .grid2{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.app-catering .grid2 label{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);flex-direction:column;gap:4px;font-size:10px;font-weight:700;display:flex}.app-catering .grid2 .w2{grid-column:1/-1}.app-catering .sec{border-top:1.5px solid var(--rule);margin-top:18px;padding-top:13px}.app-catering .sec-h{text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin-bottom:10px;font-size:12px;font-weight:800}.app-catering .btns{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:9px;display:flex}.app-catering .subj{margin-bottom:7px;font-weight:700}.app-catering .area{font-family:var(--font-sans);resize:vertical;margin-bottom:9px;line-height:1.55}.app-catering .log{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.app-catering .log li{border-bottom:1px solid var(--rule);grid-template-columns:76px 66px 1fr;gap:8px;padding-bottom:6px;font-size:12px;display:grid}.app-catering .lg-d{font-family:var(--font-mono);color:var(--faint);font-size:11px;font-weight:600}.app-catering .lg-a{font-family:var(--font-mono);font-size:11.5px;font-weight:600}.app-catering .lg-a.sent{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--input);font-size:9.5px;font-weight:800}.app-catering .lg-b{color:var(--ink)}.app-catering .addbox{border-top:1.5px solid var(--rule);margin-top:20px;padding-top:14px}.app-catering .addrow{flex-wrap:wrap;gap:7px;display:flex}.app-catering .addrow .in{flex:1;width:auto;min-width:110px}.app-catering .modal-bg{z-index:50;background:#20241f73;justify-content:center;align-items:flex-start;padding:36px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.app-catering .modal{background:var(--paper);border:2px solid var(--ink);border-radius:8px;width:100%;max-width:660px;padding:20px;box-shadow:0 10px 30px #00000047}@media (max-width:960px){.app-catering .split,.app-catering .two{grid-template-columns:1fr}.app-catering .side{z-index:40;border:none;border-radius:0;max-height:100vh;position:fixed;inset:0}.app-catering .grid2{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-catering .sync-t{font-family:var(--font-mono);text-transform:none;letter-spacing:0;font-size:11px;font-weight:600}.app-catering .found{border:1.5px solid var(--rule);background:#fff;border-radius:6px;margin-bottom:10px;padding:10px 12px}.app-catering .found.conf-high{border-color:var(--live);background:var(--live-soft)}.app-catering .found.conf-medium{border-color:var(--input);background:var(--input-soft)}.app-catering .found.conf-low,.app-catering .found.conf-none{border-color:var(--risk);background:var(--risk-soft)}.app-catering .found-h{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:3px;display:flex}.app-catering .found-h b{font-family:var(--font-mono);word-break:break-all;font-size:12.5px}.app-catering .conf-tag{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;flex:none;padding:2px 7px;font-size:9px;font-weight:800}.app-catering .conf-tag.conf-high{background:var(--live);color:#fff}.app-catering .conf-tag.conf-medium{background:var(--input);color:#fff}.app-catering .conf-tag.conf-low,.app-catering .conf-tag.conf-none{background:var(--risk);color:#fff}.app-catering .has-email{color:var(--live);font-weight:800}.app-catering .crashbox{font-family:var(--font-mono);white-space:pre-wrap;background:var(--risk-soft);border:1.5px solid var(--risk);color:var(--ink);border-radius:6px;margin:0;padding:10px 12px;font-size:11.5px;line-height:1.5;overflow-x:auto}
