.ap-lab{--ap-accent:#5b54e6;--ap-accent-d:#4a43d9;--ap-accent2:#6b63f5;--ap-accent-t:#ecebfc;--ap-navy:#0b0c15;--ap-ink:#1a1c2e;--ap-ink2:#4a4e68;--ap-ink3:#787c9c;--ap-bg:#eef0f7;--ap-card:#fff;--ap-panel:#f4f5fb;--ap-panel2:#eceef7;--ap-line:#e2e4f0;--ap-line2:#d7dae9;--ap-green:#0e9f6e;--ap-green-t:#e1f5ee;--ap-amber:#8d5a0b;--ap-amber-t:#fbf1da;--ap-coral:#d92d20;--ap-coral-t:#fde4e2;--ap-gold:#b8860b;--ap-gold-t:#fbf1da;--ap-indigo:#8478f2;--ap-indigo-t:rgba(132,120,242,0.14);--ap-shadow:0 1px 2px rgba(11,12,21,0.05),0 10px 26px -12px rgba(11,12,21,0.14);--accent:var(--ap-accent);--ink:var(--ap-ink);--ink2:var(--ap-ink2);--ink3:var(--ap-ink3);--card:var(--ap-card);--panel:var(--ap-panel);--panel2:var(--ap-panel2);--line:var(--ap-line);--bg:var(--ap-bg);--green:var(--ap-green);--red:var(--ap-coral);--mono:var(--font-mono,ui-monospace,monospace);background:var(--ap-bg);color:var(--ap-ink);font-size:13.5px;line-height:1.5;min-height:100vh}[data-theme=dark] .ap-lab{--ap-accent:#867fff;--ap-accent-d:#9a94ff;--ap-accent2:#867fff;--ap-accent-t:rgba(134,127,255,0.16);--ap-navy:#eef0fb;--ap-ink:#eef0fb;--ap-ink2:#b4b8d2;--ap-ink3:#9096b4;--ap-bg:#0b0c15;--ap-card:#141626;--ap-panel:#1b1e30;--ap-panel2:#242840;--ap-line:#262a40;--ap-line2:#2f3450;--ap-green:#37c48c;--ap-green-t:#12271f;--ap-amber:#e6a93b;--ap-amber-t:#2a2413;--ap-coral:#f8776b;--ap-coral-t:#2b1512;--ap-gold:#e7b84b;--ap-gold-t:#2a2413;--ap-indigo:#a99dff;--ap-indigo-t:rgba(169,157,255,0.18);--ap-shadow:0 1px 2px rgba(0,0,0,0.4),0 12px 30px -14px rgba(0,0,0,0.6)}.ap-lab .aapp{display:flex;height:100vh;background:var(--ap-bg)}.ap-lab .arail{width:236px;flex-shrink:0;background:var(--ap-navy);color:#c7cae0;display:flex;flex-direction:column;padding:18px 14px;overflow-y:auto}.ap-lab .amaincol{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.ap-lab .ascroll{flex:1;min-width:0;min-height:0;overflow-y:auto;padding:26px}.ap-lab .arbrand{display:flex;align-items:center;gap:9px;padding:6px 8px 16px}.ap-lab .arbrand .alg{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--ap-accent2),var(--ap-accent-d));display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:800;flex-shrink:0}.ap-lab .arbrand b{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.01em}.ap-lab .arbrand b i{font-style:normal;color:var(--ap-accent2)}.ap-lab .artag{margin-left:4px;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8a8fb0;background:#1d1f38;padding:3px 7px;border-radius:5px}.ap-lab .artag.admin{background:var(--ap-amber);color:#fff}.ap-lab .arlbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#8a8fb0;padding:14px 10px 7px}.ap-lab .arnav{display:flex;flex-direction:column;gap:2px}.ap-lab .arnav a,.ap-lab .arnav span.disabled{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;color:#c7cae0;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer}.ap-lab .arnav a svg,.ap-lab .arnav span.disabled svg{width:18px;height:18px;flex-shrink:0}.ap-lab .arnav a .badge{margin-left:auto;font-size:10.5px;font-weight:700;background:var(--ap-accent);color:#fff;border-radius:999px;padding:1px 7px}.ap-lab .arnav a:hover{background:#1d1f38;color:#fff}.ap-lab .arnav a.on{background:linear-gradient(135deg,var(--ap-accent2),var(--ap-accent-d));color:#fff}.ap-lab .arnav span.disabled{color:#6a6f8f;cursor:default}.ap-lab .aruser{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:#1d1f38}.ap-lab .aruser .av{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--ap-accent2),var(--ap-accent-d));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.ap-lab .aruser .ax{flex:1;min-width:0}.ap-lab .aruser b{display:block;font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-lab .aruser em{display:block;font-size:11px;font-style:normal;color:#8a8fb0;margin-top:1px}.ap-lab .adbar{height:62px;flex:none;border-bottom:1px solid var(--ap-line);display:flex;align-items:center;gap:16px;padding:0 26px;background:var(--ap-card)}.ap-lab .adbar h1{font-size:19px;font-weight:700;letter-spacing:-.02em;flex:none;margin:0}.ap-lab .adbar .adsp{flex:1}.ap-lab .adbar .tr{margin-left:auto;display:flex;align-items:center;gap:12px}.ap-lab .aptabs{display:none}@media (max-width:820px){.ap-lab .arail{display:none}.ap-lab .ascroll{padding:18px 16px 72px}.ap-lab .aptabs{display:flex;flex:none;border-top:1px solid var(--ap-line);background:var(--ap-card)}.ap-lab .aptabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 10px;font-size:10.5px;font-weight:600;color:var(--ap-ink3);text-decoration:none}.ap-lab .aptabs a svg{width:19px;height:19px}.ap-lab .aptabs a.on{color:var(--ap-accent)}}.ap-lab .grid2{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}@media (max-width:980px){.ap-lab .grid2{grid-template-columns:1fr}}.ap-lab .seclabel{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ap-ink3);margin:6px 2px 12px}.ap-lab .card{background:var(--ap-card);border:1px solid var(--ap-line);border-radius:16px;padding:20px;box-shadow:0 1px 2px rgba(11,12,21,.04)}.ap-lab .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.ap-lab .dhero{background:linear-gradient(135deg,var(--ap-accent),var(--ap-accent-d));border-radius:20px;padding:26px;color:#fff;display:flex;gap:26px;align-items:center;position:relative;overflow:hidden}.ap-lab .dhero .glow{position:absolute;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%);right:-40px;top:-80px}.ap-lab .dhero .ring{width:100px;height:100px;flex:none;background:conic-gradient(#fff calc(var(--p, 0) * 1%),rgba(255,255,255,.22) 0)}.ap-lab .dhero .ring,.ap-lab .dhero .ring span{border-radius:50%;display:flex;align-items:center;justify-content:center}.ap-lab .dhero .ring span{width:80px;height:80px;background:var(--ap-accent-d);flex-direction:column}.ap-lab .dhero .ring b{font-size:28px;font-weight:800;font-family:var(--mono);line-height:1}.ap-lab .dhero .ring small{font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-top:3px}.ap-lab .dhero .hx{flex:1;min-width:0}.ap-lab .dhero .k{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.8}.ap-lab .dhero h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:6px 0}.ap-lab .dhero p{font-size:14px;opacity:.88;max-width:52ch;margin:0}.ap-lab .dhero .hbtn{margin-top:14px;display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--ap-accent-d);border:0;border-radius:12px;padding:12px 18px;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer;text-decoration:none}.ap-lab .dhero .hbtn svg{width:16px;height:16px}.ap-lab .tilerow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}@media (max-width:560px){.ap-lab .tilerow{grid-template-columns:1fr 1fr}}.ap-lab .tile{background:var(--ap-card);border:1px solid var(--ap-line);border-radius:16px;padding:16px}.ap-lab .tile .tv{font-size:24px;font-weight:800;letter-spacing:-.02em}.ap-lab .tile .tl{font-size:12px;color:var(--ap-ink3);margin-top:2px}.ap-lab .lvl-ladder{display:flex;align-items:stretch;gap:0}.ap-lab .lvl-ladder .step{flex:1;display:flex;flex-direction:column;gap:6px;position:relative;padding-top:22px;padding-right:8px}.ap-lab .lvl-ladder .step .dot{position:absolute;top:0;left:0;width:18px;height:18px;border-radius:50%;background:var(--ap-panel2);border:2px solid var(--ap-line2);z-index:2}.ap-lab .lvl-ladder .step .dot.done{background:var(--ap-green);border-color:var(--ap-green)}.ap-lab .lvl-ladder .step .dot.cur{background:var(--ap-accent);border-color:var(--ap-accent);box-shadow:0 0 0 4px var(--ap-accent-t)}.ap-lab .lvl-ladder .step:before{content:"";position:absolute;top:8px;left:9px;right:-1px;height:2px;background:var(--ap-line);z-index:1}.ap-lab .lvl-ladder .step:first-child:before{display:none}.ap-lab .lvl-ladder .step .ln{font-size:12.5px;font-weight:700;letter-spacing:-.01em}.ap-lab .lvl-ladder .step .ls{font-size:11px;color:var(--ap-ink3)}.ap-lab .lvl-ladder .step.done .ln{color:var(--ap-green)}.ap-lab .lvl-ladder .step.cur .ln{color:var(--ap-accent)}.ap-lab .milestone{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--ap-accent-t),var(--ap-card));border:1px solid var(--ap-line);border-radius:14px;padding:15px 18px}.ap-lab .milestone .mi{width:42px;height:42px;border-radius:12px;background:var(--ap-accent);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}.ap-lab .milestone .mi svg{width:22px;height:22px}.ap-lab .milestone b{font-size:14.5px;display:block}.ap-lab .milestone p{font-size:12.5px;color:var(--ap-ink2);margin:2px 0 0}.ap-lab .milestone .in{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ap-accent);background:var(--ap-card);border:1px solid var(--ap-line);border-radius:999px;padding:6px 12px;flex:none}.ap-lab .mini-list .mrow{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--ap-line)}.ap-lab .mini-list .mrow:last-child{border-bottom:0}.ap-lab .mini-list .mt{font-size:13px;font-weight:600;flex:1}.ap-lab .mini-list .mv{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--ap-accent)}.ap-lab .cal{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}@media (max-width:700px){.ap-lab .cal{grid-template-columns:repeat(3,1fr)}}.ap-lab .calcell{aspect-ratio:1;border:1.5px solid var(--ap-line);border-radius:12px;background:var(--ap-card);padding:9px;display:flex;flex-direction:column;position:relative;cursor:pointer;text-decoration:none;color:inherit}.ap-lab .calcell:hover{border-color:var(--ap-accent)}.ap-lab .calcell .cn{font-family:var(--mono);font-size:13px;font-weight:700}.ap-lab .calcell .ct{font-size:9.5px;color:var(--ap-ink3);margin-top:2px;line-height:1.25;flex:1;overflow:hidden}.ap-lab .calcell .cdots{display:flex;gap:4px;margin-top:auto}.ap-lab .calcell .cd{width:8px;height:8px;border-radius:50%}.ap-lab .cd.approved{background:var(--ap-green)}.ap-lab .cd.submitted{background:var(--ap-accent)}.ap-lab .cd.needswork{background:var(--ap-amber)}.ap-lab .cd.todo{background:var(--ap-line2)}.ap-lab .calcell.milestone-cell{border-color:var(--ap-accent);background:var(--ap-accent-t)}.ap-lab .calcell.cur{border-color:var(--ap-accent);border-width:2px}.ap-lab .calcell.locked{opacity:.5;cursor:default}.ap-lab .lvlchip{font-size:10px;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:6px;text-transform:uppercase;display:inline-block}.ap-lab .lvlchip.l1{background:var(--ap-green-t);color:var(--ap-green)}.ap-lab .lvlchip.l2{background:var(--ap-accent-t);color:var(--ap-accent)}.ap-lab .lvlchip.l3{background:var(--ap-indigo-t);color:var(--ap-indigo)}.ap-lab .lvlchip.l4{background:var(--ap-gold-t);color:var(--ap-gold)}.ap-lab .rmlevel{margin-bottom:8px}.ap-lab .rmlevel .rmh{display:flex;align-items:center;gap:10px;margin:16px 2px 12px}.ap-lab .rmlevel .rmh h3{font-size:15px;font-weight:700;margin:0}.ap-lab .rmlevel .rmh .rmc{margin-left:auto;font-size:12px;color:var(--ap-ink3);font-family:var(--mono)}.ap-lab .rmmonths{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width:700px){.ap-lab .rmmonths{grid-template-columns:1fr}}.ap-lab .rmmonth{border:1.5px solid var(--ap-line);border-radius:13px;padding:15px;background:var(--ap-card);position:relative;text-decoration:none;color:inherit;display:block}.ap-lab .rmmonth.done{border-color:var(--ap-green)}.ap-lab .rmmonth.cur{border-color:var(--ap-accent);box-shadow:var(--ap-shadow)}.ap-lab .rmmonth.locked{opacity:.55;pointer-events:none}.ap-lab .rmmonth .mno{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ap-ink3)}.ap-lab .rmmonth h4{font-size:14px;font-weight:700;letter-spacing:-.01em;margin:4px 0 5px;line-height:1.25}.ap-lab .rmmonth p{font-size:12px;color:var(--ap-ink3);line-height:1.45;margin:0}.ap-lab .rmmonth .stat{position:absolute;top:14px;right:14px}.ap-lab .rmmonth .stat svg{width:18px;height:18px}.ap-lab .rmmonth.done .stat{color:var(--ap-green)}.ap-lab .rmmonth.cur .stat{color:var(--ap-accent)}.ap-lab .rmmonth.locked .stat{color:var(--ap-ink3)}.ap-lab .pfgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.ap-lab .pfitem{border:1px solid var(--ap-line);border-radius:14px;overflow:hidden;background:var(--ap-card)}.ap-lab .pfitem .pfb{padding:13px}.ap-lab .pfitem .pft{font-size:13.5px;font-weight:700;line-height:1.3}.ap-lab .pfitem .pfc{font-size:12px;color:var(--ap-ink3);margin-top:4px;line-height:1.4}.ap-lab .rq{display:flex;align-items:flex-start;gap:16px;padding:16px 18px;border-bottom:1px solid var(--ap-line)}.ap-lab .rq:last-child{border-bottom:0}.ap-lab .rq .av{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,var(--ap-accent2),var(--ap-accent-d));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none}.ap-lab .rq .rqx{flex:1;min-width:0}.ap-lab .rq .rqn{font-size:14px;font-weight:700}.ap-lab .rq .rqt{font-size:12.5px;color:var(--ap-ink3);margin-top:2px}.ap-lab .rq .rqp{font-size:13px;color:var(--ap-ink2);margin-top:7px;background:var(--ap-panel2);border-radius:9px;padding:9px 12px;line-height:1.5;max-width:52ch;white-space:pre-wrap}.ap-lab .rq .rqmeta{flex-direction:column;align-items:flex-end;flex:none}.ap-lab .rq .rqact,.ap-lab .rq .rqmeta{display:flex;gap:8px}.ap-lab .rq .rqact button{font-family:inherit;font-size:12.5px;font-weight:700;padding:9px 14px;border-radius:9px;border:1.5px solid var(--ap-line);background:var(--ap-card);cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--ap-ink2)}.ap-lab .rq .rqact .ap-approve{color:var(--ap-green);border-color:var(--ap-green)}.ap-lab .rq .rqact .ap-approve svg{width:14px;height:14px}.ap-lab .rq .rqact .ap-needswork{color:var(--ap-amber);border-color:var(--ap-amber)}.ap-lab .rq .rqact button:disabled{opacity:.5;cursor:default}.ap-lab .tbl{width:100%;border-collapse:collapse}.ap-lab .tbl th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ap-ink3);padding:0 14px 12px}.ap-lab .tbl td,.ap-lab .tbl th{border-bottom:1px solid var(--ap-line)}.ap-lab .tbl td{padding:14px;font-size:13.5px;vertical-align:middle}.ap-lab .tbl tr:last-child td{border-bottom:0}.ap-lab .tbl tr.link-row{cursor:pointer}.ap-lab .tbl tr.link-row:hover td{background:var(--ap-panel)}.ap-lab .tbl .nm{display:flex;align-items:center;gap:11px;font-weight:600;text-decoration:none;color:inherit}.ap-lab .tbl .nm .av{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--ap-accent2),var(--ap-accent-d));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex:none}.ap-lab .tbl .mini{width:84px;height:7px;border-radius:99px;background:var(--ap-line2);overflow:hidden;display:inline-block;vertical-align:middle;margin-right:8px}.ap-lab .tbl .mini i{display:block;height:100%;background:var(--ap-accent)}.ap-lab .tbl .top{color:var(--ap-amber)}.ap-lab .status-pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:capitalize}.ap-lab .status-pill.active{background:var(--ap-green-t);color:var(--ap-green)}.ap-lab .status-pill.ended,.ap-lab .status-pill.paused{background:var(--ap-panel2);color:var(--ap-ink3)}.ap-lab .status-pill.completed{background:var(--ap-gold-t);color:var(--ap-gold)}.ap-lab .monthpick{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px}.ap-lab .monthpick a{flex:none;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:999px;border:1px solid var(--ap-line);background:var(--ap-card);color:var(--ap-ink2);cursor:pointer;white-space:nowrap;text-decoration:none}.ap-lab .monthpick a.on{background:var(--ap-ink);color:var(--ap-bg);border-color:var(--ap-ink)}.ap-lab .auth-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--ap-line)}.ap-lab .auth-row:last-child{border-bottom:0}.ap-lab .auth-row.ritual{background:var(--ap-accent-t);border-radius:10px}.ap-lab .auth-row .adn{width:38px;font-family:var(--mono);font-weight:700;font-size:13px;color:var(--ap-ink3);text-align:center;flex:none}.ap-lab .auth-row .adx{flex:1;min-width:0}.ap-lab .auth-row .adt{font-size:13.5px;font-weight:600}.ap-lab .auth-row .ads{font-size:12px;color:var(--ap-ink3);margin-top:2px}.ap-lab .auth-row .ade{color:var(--ap-ink3);cursor:pointer;background:none;border:0;padding:4px;flex:none}.ap-lab .auth-row .ade svg{width:17px;height:17px}.ap-lab .auth-row .ade:disabled{opacity:.3;cursor:default}.ap-lab .field{width:100%;background:var(--ap-panel);border:1px solid var(--ap-line);border-radius:11px;padding:11px 13px;font-size:13.5px;font-family:inherit;color:var(--ap-ink)}.ap-lab .field:focus{outline:2px solid var(--ap-accent);outline-offset:1px}.ap-lab textarea.field{resize:vertical;min-height:90px}.ap-lab .flabel{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ap-ink3);display:block;margin:0 0 6px}.ap-lab .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:11px;padding:10px 16px;font-weight:700;font-size:13.5px;font-family:inherit;cursor:pointer;text-decoration:none}.ap-lab .btn:disabled{opacity:.55;cursor:default}.ap-lab .btn svg{width:16px;height:16px}.ap-lab .btn.prim{background:var(--ap-accent);color:#fff}.ap-lab .btn.sec{background:var(--ap-panel2);color:var(--ap-ink);border:1px solid var(--ap-line)}.ap-lab .btn.ghost{background:transparent;color:var(--ap-ink2);border:1px solid var(--ap-line)}.ap-lab .empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 20px;color:var(--ap-ink3)}.ap-lab .empty h3{font-size:17px;font-weight:700;color:var(--ap-ink);margin:10px 0 6px}.ap-lab .empty p{font-size:13.5px;max-width:40ch;line-height:1.5;margin:0}.ap-lab .toast-banner{background:var(--ap-green-t);color:var(--ap-green);border-radius:12px;padding:12px 16px;font-size:13px;font-weight:600;margin-bottom:16px}.ap-lab .toast-banner.warn{background:var(--ap-amber-t);color:var(--ap-amber)}