@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibmplexmono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibmplexmono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibmplexmono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibmplexmono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibmplexsans-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibmplexsans-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibmplexsans-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibmplexsans-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spacegrotesk-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spacegrotesk-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/spacegrotesk-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/spacegrotesk-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/spacegrotesk-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/spacegrotesk-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/spacegrotesk-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/spacegrotesk-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--page:#eef0f2;--card:#f1f2f3;--ink:#08090a;--muted:#6a6e72;--line:#cdcfd2;--line-2:#bcbfc3;--blue:oklch(55% .21 256);--blue-deep:oklch(49% .21 256);--red:oklch(55% .2 25);--green:oklch(52% .13 155);--amber:oklch(58% .13 75);--shadow:0 1px 0 #ffffff80 inset,0 16px 38px -26px #141e326b;--maxw:1100px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:16.5px;line-height:1.6}a{color:inherit;text-decoration:none}.disp{letter-spacing:-.03em;font-family:Space Grotesk,sans-serif}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:12px}.kicker .b{color:var(--blue)}body.auth{background:var(--ink);flex-direction:column;min-height:100vh;display:flex}.auth-head{padding:30px 28px}.auth-head .brand{letter-spacing:-.02em;color:#fff;font-family:Space Grotesk,sans-serif;font-size:19px;font-weight:700}.auth-head .brand .b{color:var(--blue)}.auth-main{flex:1;justify-content:center;align-items:center;padding:20px 20px 60px;display:flex}.auth-card{background:var(--card);border:1px solid var(--line);width:100%;max-width:440px;box-shadow:var(--shadow);padding:38px 36px 34px}.auth-card h1{letter-spacing:-.03em;margin:10px 0 6px;font-family:Space Grotesk,sans-serif;font-size:27px}.auth-card .lead{color:var(--muted);margin-bottom:26px;font-size:15px}.auth-foot{border-top:1px solid var(--line);color:var(--muted);flex-direction:column;gap:8px;margin-top:24px;padding-top:20px;font-size:14.5px;display:flex}.auth-foot a{color:var(--blue);text-underline-offset:2px;text-decoration:underline}.auth-foot a:hover{color:var(--blue-deep)}.auth-back{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:#ffffff8c;margin-top:22px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:block}.auth-back:hover{color:#fff}.field{margin-bottom:18px}.field label{margin-bottom:7px;font-size:13.5px;font-weight:600;display:block}.field input{width:100%;font:inherit;border:1px solid var(--line-2);color:var(--ink);background:#fff;padding:11px 13px;font-size:15.5px}.field input:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}.field input.has-error{border-color:var(--red)}.field-error{color:var(--red);margin-top:6px;font-size:13.5px}.check{align-items:center;gap:9px;margin-bottom:20px;font-size:14.5px;display:flex}.check input{width:16px;height:16px;accent-color:var(--blue)}.btn{font:inherit;background:var(--blue);color:#fff;cursor:pointer;border:0;padding:12px 22px;font-size:15.5px;font-weight:600;transition:background .15s;display:inline-block}.btn:hover{background:var(--blue-deep)}.btn-block{width:100%}.btn-ghost{color:var(--ink);border:1px solid var(--line-2);background:0 0}.btn-ghost:hover{border-color:var(--ink);background:#fff}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{filter:brightness(.9)}.btn-sm{padding:8px 14px;font-size:13.5px}.status{border-left:3px solid var(--blue);background:#e6ebf5;margin-bottom:22px;padding:12px 15px;font-size:14.5px}.status-error{border-left-color:var(--red);background:#f7e7e7}body.portal{background:var(--page);min-height:100vh}.portal-bar{background:var(--ink);color:#fff}.portal-bar-in{max-width:var(--maxw);justify-content:space-between;align-items:center;gap:20px;height:72px;margin:0 auto;padding:0 28px;display:flex}.portal-bar .brand{letter-spacing:-.02em;color:#fff;font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:700}.portal-bar .brand .b{color:var(--blue)}.portal-nav{letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:22px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:flex}.portal-nav a{color:#fff9;transition:color .15s}.portal-nav a:hover,.portal-nav a.here{color:#fff}.portal-nav form{display:inline}.portal-nav button{font:inherit;color:#fff9;cursor:pointer;background:0 0;border:0;padding:0}.portal-nav button:hover{color:#fff}.portal-main{max-width:var(--maxw);margin:0 auto;padding:44px 28px 70px}.portal-main h1{letter-spacing:-.03em;margin:8px 0;font-family:Space Grotesk,sans-serif;font-size:31px}.portal-main .lead{color:var(--muted);max-width:60ch;margin-bottom:32px}.panel{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:22px;padding:26px 28px}.panel h2{letter-spacing:-.02em;margin-bottom:12px;font-family:Space Grotesk,sans-serif;font-size:19px}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-bottom:30px;display:grid}.stat{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:22px 24px}.stat .num{letter-spacing:-.03em;font-family:Space Grotesk,sans-serif;font-size:34px;line-height:1.1}.stat .lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.table-scroll{overflow-x:auto}table.data{border-collapse:collapse;background:var(--card);border:1px solid var(--line);width:100%;font-size:14.5px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);padding:12px 14px}table.data th{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:400}table.data tr:last-child td{border-bottom:0}table.data tr:hover td{background:#e9eaec}.tag{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--muted);padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-block}.tag-admin{border-color:var(--blue);color:var(--blue)}.tag-blocked{border-color:var(--red);color:var(--red)}.searchbar{gap:10px;margin-bottom:20px;display:flex}.searchbar input{font:inherit;border:1px solid var(--line-2);background:#fff;flex:1;padding:10px 13px;font-size:15px}.pager{color:var(--muted);align-items:center;gap:14px;margin-top:22px;font-size:14px;display:flex}.pager .off{opacity:.4;cursor:default}.dl{grid-template-columns:180px 1fr;gap:10px 20px;font-size:15px;display:grid}.dl dt{color:var(--muted);font-size:13.5px}.actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}@media (width<=640px){.auth-card{padding:30px 24px 26px}.portal-bar-in{flex-direction:column;align-items:flex-start;gap:12px;height:auto;padding:16px 20px}.portal-main{padding:32px 20px 60px}.dl{grid-template-columns:1fr;gap:4px 0}.dl dd{margin-bottom:12px}}body.admin{background:var(--page);min-height:100vh}.admin-shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.admin-side{background:var(--ink);color:#fff}.side-inner{flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.side-head{border-bottom:1px solid #ffffff17;padding:26px 24px 22px}.side-head .brand{letter-spacing:-.02em;color:#fff;font-family:Space Grotesk,sans-serif;font-size:17.5px;font-weight:700;display:block}.side-head .brand .b{color:var(--blue)}.side-sub{letter-spacing:.16em;text-transform:uppercase;color:#fff6;margin-top:5px;font-family:IBM Plex Mono,monospace;font-size:11px}.side-nav{flex:1;padding:18px 0 24px}.side-group{letter-spacing:.16em;text-transform:uppercase;color:#ffffff4d;padding:16px 24px 7px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.side-group:first-child{padding-top:0}.side-nav a{color:#ffffff9e;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:9px 24px;font-size:15px;transition:color .15s,background .15s;display:flex}.side-nav a:hover{color:#fff;background:#ffffff0b}.side-nav a.here{color:#fff;border-left-color:var(--blue);background:#ffffff12}.side-count{color:#ffffff8c;border:1px solid #ffffff2e;padding:4px 7px;font-family:IBM Plex Mono,monospace;font-size:11px;font-style:normal;line-height:1}.side-nav a.here .side-count{color:#fff;border-color:#ffffff4d}.side-count.is-alert{background:var(--blue);border-color:var(--blue);color:#fff}.side-foot{border-top:1px solid #ffffff17;padding:20px 24px 24px}.side-user{font-size:14.5px;font-weight:600}.side-mail{color:#ffffff6b;word-break:break-all;margin-bottom:12px;font-size:12.5px}.side-links{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:16px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex}.side-links a,.side-links button{color:#ffffff8c;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;transition:color .15s}.side-links a:hover,.side-links button:hover{color:#fff}.admin-main{max-width:1180px;padding:46px 44px 72px}.admin-main h1{letter-spacing:-.03em;margin:8px 0;font-family:Space Grotesk,sans-serif;font-size:31px}.admin-main .lead{color:var(--muted);max-width:62ch;margin-bottom:32px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px;display:flex}.page-head .lead{margin-bottom:0}.meta{color:var(--muted);margin-bottom:14px;font-size:13.5px}.meta a{color:var(--blue);text-underline-offset:2px;text-decoration:underline}.meta a:hover{color:var(--blue-deep)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.filters a{letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--muted);padding:7px 13px;font-family:IBM Plex Mono,monospace;font-size:11.5px;transition:border-color .15s,color .15s,background .15s}.filters a:hover{border-color:var(--ink);color:var(--ink)}.filters a.on{background:var(--ink);border-color:var(--ink);color:#fff}.tag-ok{border-color:var(--green);color:var(--green)}.tag-warn{border-color:var(--amber);color:var(--amber)}.tag-live{border-color:var(--blue);color:var(--blue)}.bar{background:var(--line-2);width:104px;height:6px;display:block;position:relative}.bar i{background:var(--blue);position:absolute;top:0;bottom:0;left:0}.bar.done i{background:var(--green)}.bar-val{color:var(--muted);margin-top:5px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:block}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sub{color:var(--muted);margin-top:2px;font-size:12.5px;display:block}.cols{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));align-items:start;gap:22px;display:grid}.cols .panel{margin-bottom:0}.panel-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.panel-head h2{margin-bottom:0}.panel-head a{letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-family:IBM Plex Mono,monospace;font-size:11.5px}.panel-head a:hover{color:var(--blue-deep)}.liste{list-style:none}.liste li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:18px;padding:12px 0;display:flex}.liste li:first-child{padding-top:0}.liste li:last-child{border-bottom:0;padding-bottom:0}.liste .t{font-size:14.5px;font-weight:600}.liste .s{color:var(--muted);margin-top:2px;font-size:12.5px;font-weight:400;display:block}.liste .r{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted);font-size:14px}@media (width<=900px){.admin-shell{grid-template-columns:1fr}.side-inner{height:auto;position:static;overflow:visible}.side-nav{flex:none;padding:0;display:flex;overflow-x:auto}.side-group{display:none}.side-nav a{white-space:nowrap;border-bottom:2px solid #0000;border-left:0;padding:14px 18px}.side-nav a.here{border-left:0;border-bottom-color:var(--blue)}.side-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.side-mail{display:none}.admin-main{padding:32px 20px 60px}.page-head{flex-direction:column;align-items:flex-start;gap:14px}}.mono{font-family:IBM Plex Mono,monospace;font-size:13px}table.data tfoot th,table.data tfoot td{border-top:1px solid var(--line-2);background:#e9eaec}table.data tfoot tr:hover td{background:#e9eaec}
