:root{--g1:#7c5cff;--g2:#3ec9ff;--bg:#06080f;--glass:#ffffff0d;--glass2:#ffffff16;--stroke:#ffffff1a;--stroke2:#ffffff29;--ink:#f4f6ff;--dim:#9aa6c0;--faint:#8894ad;--on-g:#0a0d18;--warn:#ffb454;--danger:#ff6b81;--ok:#4ade9c;--glow:0 12px 44px -10px #7c5cff8c;--r:22px;--r-m:17px;--r-s:14px;--r-xs:11px;--r-full:999px;--touch-min:44px;--pad:18px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--fs-3xs:9.5px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:20px;--fs-xl:24px;--fw-med:650;--fw-bold:750;--fw-heavy:850;--tr-xl:-.022em;--tr-lg:-.014em;--tr-num:-.018em;--tr-lat:.012em;--lh-title:1.14;--lh-body:1.5;--maxw:412px;--mat-card-blur:12px;--mat-chrome-blur:26px;--mat-card-bg:#ffffff0d;--mat-card-edge:#ffffff24;--sh-inset:inset 0 1px 0 #ffffff0e;--sh-card:0 8px 22px -16px #00000080;--press:.1s ease-out;--font:"Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--font);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;min-height:100dvh}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}:focus-visible{outline:2px solid var(--g2);outline-offset:2px}.num{font-variant-numeric:tabular-nums;letter-spacing:var(--tr-num)}.lat{letter-spacing:var(--tr-lat)}.shell{max-width:var(--maxw);padding:0 var(--pad) var(--sp-6);margin:0 auto}.gate{justify-content:center;align-items:center;gap:var(--sp-3);text-align:center;min-height:100dvh;padding:var(--sp-6) 0 calc(env(safe-area-inset-bottom) + var(--sp-6));flex-direction:column;display:flex}.gatelogo{border-radius:16px;width:64px;height:64px}.gate h1{font-size:var(--fs-xl);font-weight:var(--fw-heavy);letter-spacing:var(--tr-xl);line-height:var(--lh-title);background:linear-gradient(100deg, var(--g1), var(--g2));color:#0000;-webkit-background-clip:text;background-clip:text}.gate .sub{font-size:var(--fs-sm);color:var(--dim);max-width:30ch;line-height:1.55}.gate .sub b{color:var(--ink);font-weight:var(--fw-bold)}.gate form{gap:var(--sp-3);width:100%;margin-top:var(--sp-3);flex-direction:column;display:flex}.field{text-align:start;flex-direction:column;gap:5px;display:flex}.field span{font-size:var(--fs-3xs);font-weight:var(--fw-bold);color:var(--faint)}.field input{width:100%;min-height:var(--touch-min);padding:0 var(--sp-4);border:1px solid var(--stroke2);border-radius:var(--r-s);color:var(--ink);font:inherit;background:#ffffff0d;font-size:16px}.field input:focus{border-color:var(--g2);outline:none;box-shadow:0 0 0 3px #3ec9ff24}.gate .primary{min-height:var(--touch-min);border-radius:var(--r-s);background:linear-gradient(100deg, var(--g1), var(--g2));color:var(--on-g);font-size:var(--fs-base);font-weight:var(--fw-bold);box-shadow:var(--glow)}.gate .primary:disabled{opacity:.6;box-shadow:none}.gate .primary.ghost{border:1px solid var(--stroke2);color:var(--dim);box-shadow:none;padding:0 var(--sp-5);margin-top:var(--sp-3);background:0 0}.gate .link{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--faint);text-underline-offset:3px;text-decoration:underline}.gate .notice{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-s);font-size:var(--fs-xs);color:var(--warn);background:#ffb4541f;border:1px solid #ffb4544d;max-width:34ch;line-height:1.5}.bar{align-items:center;gap:var(--sp-2);padding:calc(env(safe-area-inset-top) + var(--sp-4)) 0 var(--sp-3);display:flex}.bar .logo{border-radius:8px;flex:none;width:28px;height:28px}.bar h1{font-size:var(--fs-md);font-weight:var(--fw-heavy);line-height:var(--lh-title);letter-spacing:var(--tr-lat);background:linear-gradient(100deg, var(--g1), var(--g2));color:#0000;-webkit-background-clip:text;background-clip:text}.bar h1.plain{color:var(--ink);letter-spacing:var(--tr-lg);background:0 0}.bar .sp{flex:1}.bar .pill{min-height:31px;padding:0 var(--sp-3);border:1px solid var(--stroke);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--dim);transition:background var(--press), color var(--press), border-color var(--press);background:#ffffff09}.bar .pill.on{background:linear-gradient(100deg, var(--g1), var(--g2));color:var(--on-g);border-color:#0000}.bar .back{width:var(--touch-min);height:var(--touch-min);color:var(--dim);place-items:center;margin-inline-start:calc(var(--sp-2) * -1);font-size:26px;line-height:1;display:grid}.state{align-items:center;gap:var(--sp-2);min-height:28px;margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.state .num{font-size:var(--fs-3xs);color:var(--faint);font-weight:var(--fw-med)}.alertpill{border-radius:var(--r-full);min-height:26px;color:var(--warn);font-weight:var(--fw-bold);font-size:var(--fs-3xs);background:#ffb45424;border:1px solid #ffb4544d;align-items:center;gap:5px;padding:0 10px;display:inline-flex}.edithint{margin-bottom:var(--sp-4);padding:var(--sp-2) var(--sp-3);border:1px solid var(--stroke);border-radius:var(--r-s);font-size:var(--fs-3xs);color:var(--dim);background:#ffffff08;line-height:1.6}.edithint button{border-radius:var(--r-full);color:var(--danger);font-size:var(--fs-3xs);font-weight:var(--fw-bold);background:#ff6b811f;border:1px solid #ff6b814d;margin-inline-start:var(--sp-2);padding:2px 9px}.pad{gap:var(--sp-5) var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.app{gap:var(--sp-2);flex-direction:column;display:flex;position:relative}.app .ico{aspect-ratio:1;border-radius:var(--r-m);background-image:var(--fill);width:min(100%,90px);transition:transform var(--press), box-shadow var(--press);background-position:50%;background-repeat:no-repeat;background-size:contain;border:1px solid #ffffff12;margin-inline:auto;box-shadow:0 10px 24px -12px #000000f2}.app .ico.mono{background:var(--fill);font-size:var(--fs-xl);font-weight:var(--fw-heavy);letter-spacing:var(--tr-lg);color:var(--on-g);place-items:center;font-style:normal;display:grid}.app b{font-size:11px;font-weight:var(--fw-med);color:var(--dim);letter-spacing:-.01em;text-align:center;-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;min-height:27px;padding-inline:2px;line-height:1.25;display:-webkit-box;overflow:hidden}.app.is-press .ico{transform:scale(.95)}.app .mark{top:-5px;border:3px solid var(--bg);background:var(--warn);border-radius:50%;width:17px;height:17px;position:absolute;inset-inline-end:-5px}.app .mark.bad{background:var(--danger)}.app.void{opacity:.45;pointer-events:none}.app.off .ico{filter:grayscale();opacity:.45}.app.off b{color:var(--faint)}.pad .minus{top:-7px;z-index:2;border:1px solid var(--stroke2);width:24px;height:24px;color:var(--ink);background:#1c2232;border-radius:50%;place-items:center;font-size:14px;line-height:1;display:grid;position:absolute;inset-inline-start:-6px}.pad.shelfpad{margin-top:var(--sp-3)}.pad .minus.plus{color:var(--ok)}body.dragging{-webkit-user-select:none;user-select:none;overflow:hidden}.app.lift{z-index:5}.app.lift .ico{outline:2px solid var(--g2);outline-offset:2px;transition:none;box-shadow:0 22px 48px -12px #000000f2}.app.lift b{color:var(--ink)}.shelf{margin-top:var(--sp-5);align-items:center;gap:var(--sp-2);width:100%;min-height:var(--touch-min);padding:0 var(--sp-3);border:1px solid var(--stroke);border-radius:var(--r-s);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--dim);background:#ffffff06;display:flex}.shelf.is-press{background:#ffffff12}.shelf .peek{flex:none;display:flex}.shelf .peek .ico{aspect-ratio:auto;border:1.5px solid var(--bg);width:22px;height:22px;box-shadow:none;filter:grayscale();opacity:.6;border-radius:6px;margin-inline-start:-6px;font-size:8px}.shelf .chev{color:var(--faint);margin-inline-start:auto;font-size:13px}.scrim{z-index:30;-webkit-backdrop-filter:blur(20px)saturate(1.1);background:#04060c4d;position:fixed;inset:0}.app.menu-src{z-index:31}.app.menu-src .ico{transform:scale(1.06);box-shadow:0 20px 40px -14px #000000f2}.app.menu-src b{color:var(--ink)}.menu{z-index:32;visibility:hidden;-webkit-backdrop-filter:blur(28px)saturate(1.7);background:#262b38b8;border-radius:14px;width:252px;max-width:calc(100vw - 24px);position:fixed;overflow:hidden;box-shadow:0 22px 50px -14px #000000bf,0 0 0 .5px #ffffff1f}.mrow{align-items:center;gap:var(--sp-3);width:100%;min-height:var(--touch-min);padding:7px var(--sp-4);color:var(--ink);text-align:start;border-top:.5px solid #ffffff1c;display:flex}.mrow:first-child{border-top:0}.mrow .ml{flex:1;min-width:0}.mrow .ml b{font-size:16px;font-weight:var(--fw-med);letter-spacing:var(--tr-lg);line-height:1.25;display:block}.mrow .ml small{font-size:var(--fs-3xs);color:var(--faint);font-weight:var(--fw-med);margin-top:1px;display:block}.mrow .gi{opacity:.9;flex:none;width:20px;height:20px}.mrow.is-press{background:#ffffff1f}.mrow.stage{color:var(--warn)}.mrow.bad{color:var(--danger)}.mrow.good{color:var(--ok)}.mrow.off{color:var(--faint);opacity:.55}.mrow.off .ml small{color:inherit}.envbar{gap:var(--sp-2);display:flex}.envbar button{min-height:var(--touch-min);border:1px solid var(--stroke);border-radius:var(--r-s);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--dim);transition:background var(--press), border-color var(--press), color var(--press);background:#ffffff08;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;display:flex}.envbar button small{font-size:var(--fs-3xs);font-weight:var(--fw-med);color:var(--faint)}.envbar button[aria-pressed=true][data-env=production]{background:linear-gradient(100deg, var(--g1), var(--g2));color:var(--on-g);box-shadow:var(--glow);border-color:#0000}.envbar button[aria-pressed=true][data-env=staging]{background:var(--warn);color:var(--on-g);border-color:#0000;box-shadow:0 12px 44px -10px #ffb45480}.envbar button[aria-pressed=true] small{color:#0a0d18b8}.filters{gap:var(--sp-2);margin-top:var(--sp-3);scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);padding-bottom:2px;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filters button{min-height:32px;padding:0 var(--sp-3);border-radius:var(--r-full);border:1px solid var(--stroke);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--dim);white-space:nowrap;transition:background var(--press), color var(--press), border-color var(--press);background:#ffffff08;flex:none;align-items:center;gap:5px;display:flex}.filters button b{font-weight:var(--fw-med);color:var(--faint);font-size:var(--fs-3xs)}.filters button[aria-pressed=true]{color:var(--ink);border-color:var(--stroke2);background:#ffffff29}.filters button[aria-pressed=true] b{color:var(--dim)}.grid{gap:var(--sp-3);margin-top:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.tile{background-color:var(--mat-card-bg);border:1px solid var(--stroke);border-top-color:var(--mat-card-edge);border-radius:var(--r-m);-webkit-backdrop-filter:blur(var(--mat-card-blur)) saturate(100%);box-shadow:var(--sh-card), var(--sh-inset);transition:background-color var(--press), border-color var(--press);flex-direction:column;display:flex;position:relative}.tilelink{gap:var(--sp-2);padding:var(--sp-4) var(--sp-3) var(--sp-2);flex-direction:column;flex:1;display:flex}.tile:has(>.tilelink.is-press){border-color:var(--stroke2);background-color:#ffffff1c}.copies{padding:0 var(--sp-3) var(--sp-3);gap:6px;display:flex}.copy{min-width:0;min-height:var(--touch-min);border:1px solid var(--stroke);border-radius:var(--r-xs);font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--dim);transition:background var(--press), border-color var(--press), color var(--press);background:#ffffff0a;flex:1;justify-content:center;align-items:center;gap:4px;display:flex}.copy .gi{flex:none;width:14px;height:14px}.copy.stage{color:var(--warn);border-color:#ffb4544d}.copy.is-press{background:#ffffff29}.copy.done{color:var(--ok);border-color:#4ade9c73}.tile .ico{width:var(--touch-min);height:var(--touch-min);border-radius:var(--r-s);background-image:var(--fill);border:1px solid var(--stroke);background-position:50%;background-repeat:no-repeat;background-size:contain;flex:none}.tile .ico.mono{background:var(--fill);font-size:var(--fs-md);font-weight:var(--fw-heavy);letter-spacing:var(--tr-lg);color:var(--on-g);place-items:center;font-style:normal;display:grid}.tile h2{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:var(--tr-lg);line-height:1.2}.tile p{font-size:var(--fs-xs);color:var(--faint);margin-top:-2px;line-height:1.35}.statusrow{padding-top:var(--sp-2);align-items:center;gap:6px;margin-top:auto;display:flex}.dot{border-radius:50%;flex:none;width:7px;height:7px}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px #4ade9c24}.dot.warn{background:var(--warn);box-shadow:0 0 0 3px #ffb45424}.dot.bad{background:var(--danger);box-shadow:0 0 0 3px #ff6b8124}.dot.mute{background:var(--faint)}.statusrow span{font-size:var(--fs-3xs);color:var(--dim);font-weight:var(--fw-med)}.flag{top:10px;text-align:center;max-width:104px;line-height:1.3;font-size:var(--fs-3xs);font-weight:var(--fw-bold);border-radius:var(--r-full);color:var(--warn);background:#ffb45429;border:1px solid #ffb4544d;padding:2px 7px;position:absolute;inset-inline-end:10px}.flag.bad{color:var(--danger);background:#ff6b8124;border-color:#ff6b8147}.tile.void .tilelink{opacity:.5;pointer-events:none}.tile.void .statusrow span{color:var(--faint)}.grid[data-env=staging] .tile:not(.void){border-inline-start:2px solid #ffb4548c}.empty{padding:var(--sp-6) var(--sp-4);text-align:center;border:1px dashed var(--stroke);border-radius:var(--r-m);grid-column:1/-1}.empty p{font-size:var(--fs-sm);color:var(--dim)}.foot{margin-top:var(--sp-5);text-align:center}.foot .ver{min-height:32px;padding:0 var(--sp-3);border:1px solid var(--stroke);border-radius:var(--r-full);font-size:var(--fs-3xs);font-weight:var(--fw-med);color:var(--dim);background:#ffffff08;align-items:center;gap:5px;display:inline-flex}.foot .ver:disabled{opacity:.5}.toast{inset-inline:0;bottom:calc(env(safe-area-inset-bottom) + 20px);width:max-content;max-width:calc(100% - 40px);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-full);background:var(--glass2);border:1px solid var(--stroke2);-webkit-backdrop-filter:blur(var(--mat-chrome-blur));font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--ink);opacity:0;pointer-events:none;z-index:40;margin-inline:auto;transition:opacity .18s ease-out,transform .18s ease-out;position:fixed;transform:translateY(8px);box-shadow:0 18px 48px -12px #000000b8}.toast.on{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
