*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;height:100%}body{min-height:100%;font-family:var(--sans);background:var(--bg);color:var(--text);flex-direction:column;font-size:14px;line-height:1.6;display:flex}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}:root{--bg:#080808;--surface:#0f0f0f;--surface2:#ffffff0a;--border:#181818;--border2:#242424;--text:#ccc;--muted:#6e6e6e;--subtle:#3a3a3a;--green:#52c46a;--yellow:#cfc060;--orange:#c87d48;--red:#c44f4f;--magenta:#c062a6;--blue:#5490cc;--cyan:#44bfbf;--silver:#7e9898;--mono:ui-monospace, Menlo, Monaco, "Courier New", monospace;--sans:ui-sans-serif, system-ui, -apple-system, sans-serif;--radius:6px;--t:.12s}.admin-shell{background:var(--bg);min-height:100vh}.admin-topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:200;align-items:center;gap:1rem;height:56px;padding:0 1.5rem;display:flex;position:fixed;top:0;left:0;right:0}.admin-topbar-brand{letter-spacing:.05em;color:var(--orange);text-transform:uppercase;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;display:flex}.admin-topbar-spacer{flex:1}.admin-topbar-links{align-items:center;gap:.25rem;display:flex}.admin-topbar-links a{border-radius:var(--radius);color:var(--muted);transition:color var(--t), background var(--t);align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.78rem;display:inline-flex}.admin-topbar-links a:hover{color:var(--text);background:var(--surface2)}.admin-sidebar{border-right:1px solid var(--border);background:var(--surface);z-index:100;flex-direction:column;gap:.25rem;width:220px;height:calc(100vh - 56px);padding:1.25rem .75rem;display:flex;position:fixed;top:56px;left:0;overflow-y:auto}.admin-sidebar-label{letter-spacing:.1em;text-transform:uppercase;color:var(--subtle);padding:.5rem .75rem .25rem;font-size:.62rem;font-weight:700}.admin-nav-link{border-radius:var(--radius);color:var(--muted);transition:color var(--t), background var(--t);white-space:nowrap;align-items:center;gap:.6rem;padding:.5rem .75rem;font-size:.83rem;font-weight:500;display:flex}.admin-nav-link:hover{color:var(--text);background:var(--surface2)}.admin-nav-link.active{color:var(--orange);background:color-mix(in srgb, var(--orange) 10%, transparent);font-weight:600}.admin-account{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:.5rem;padding-top:.75rem;display:flex}.admin-account-user{border-radius:var(--radius);color:var(--text);transition:background var(--t), color var(--t);align-items:center;gap:.6rem;margin:0 .75rem;padding:.5rem .75rem;font-size:.83rem;display:flex}.admin-account-user:hover{background:var(--surface2)}.admin-account-user.active{color:var(--orange);background:color-mix(in srgb, var(--orange) 10%, transparent)}.admin-account-avatar{background:var(--surface2);border:1px solid var(--border2);width:22px;height:22px;color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:.7rem;font-weight:700;display:grid}.admin-account-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);flex:1;font-size:.76rem;overflow:hidden}.admin-account-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.admin-account-dot[data-state=open]{background:var(--green)}.admin-account-dot[data-state=locked]{background:var(--subtle)}.admin-account-logout{padding:0 .75rem}.admin-logout-btn{border:1px solid var(--border2);border-radius:var(--radius);width:100%;color:var(--muted);cursor:pointer;transition:color var(--t), border-color var(--t);background:0 0;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8rem;display:flex}.admin-logout-btn:hover{color:var(--red);border-color:color-mix(in srgb, var(--red) 35%, transparent)}.admin-build{font-family:var(--mono);color:var(--muted);opacity:.7;padding:.25rem .75rem 0;font-size:.66rem}.admin-burger{border-radius:var(--radius);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:color var(--t), background var(--t);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;margin-left:-.5rem;display:none}.admin-burger:hover{color:var(--text);background:var(--surface2)}.admin-drawer-bd{z-index:140;background:#00000080;display:none;position:fixed;inset:56px 0 0}.admin-drawer{z-index:150;border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:.25rem;width:240px;height:calc(100vh - 56px);padding:1.25rem .75rem;transition:transform .18s;display:none;position:fixed;top:56px;left:0;overflow-y:auto;transform:translate(-100%)}.admin-drawer[data-open=true]{transform:translate(0)}.admin-content{min-height:100vh;margin-left:220px;padding:calc(56px + 2rem) 2.5rem 4rem}@media (max-width:768px){.admin-sidebar{display:none}.admin-burger,.admin-drawer{display:flex}.admin-drawer-bd{display:block}.admin-content{margin-left:0;padding:calc(56px + 1.25rem) 1.25rem 4rem}.modal-bd{align-items:flex-end;padding:0}.modal{border-bottom-right-radius:0;border-bottom-left-radius:0;max-width:100%;max-height:85vh}.page-title{font-size:1.15rem}.page-subtitle{font-size:.82rem}.section-title{font-size:.92rem}code,.mono,.secret-env{overflow-wrap:anywhere}.modal-ft{flex-wrap:wrap}.modal-ft .btn{flex:auto;justify-content:center}.form-grid{grid-template-columns:1fr}}.page-title{letter-spacing:-.03em;color:var(--text);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.page-subtitle{color:var(--muted);margin-bottom:2rem;font-size:.83rem}.section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--subtle);font-size:.65rem;font-weight:700;font-family:var(--mono);margin-bottom:.875rem}.card{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);overflow:hidden}.card-header{border-bottom:1px solid var(--border);color:var(--text);padding:.875rem 1.25rem;font-size:.78rem;font-weight:600}.card-body{padding:1.25rem}.svc-meta{display:none}.table-wrap{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);box-shadow:var(--card-shadow);overflow:hidden}table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.83rem}thead tr{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--border) 50%, transparent)}th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);font-size:.62rem;font-weight:700;font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;padding:.55rem 1rem;overflow:hidden}tbody tr{border-bottom:1px solid var(--border);transition:background var(--t)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--surface2)}td{color:var(--text);vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;padding:.65rem 1rem;overflow:hidden}td[data-col=actions],td[data-col=reason],td[data-col=context]{white-space:normal;overflow:visible}@media (max-width:768px){.table-wrap{box-shadow:none;background:0 0;border:none;overflow:visible}table,tbody{flex-direction:column;gap:.5rem;display:flex}colgroup,thead{display:none}tbody tr{border:1px solid var(--border2);border-radius:var(--radius);background:var(--surface);white-space:normal;grid-template-rows:auto auto auto;grid-template-columns:auto 1fr;gap:.2rem .75rem;padding:.875rem 1rem;display:grid;overflow:visible}tbody tr:hover{background:var(--surface2)}td{white-space:normal;padding:.15rem 0;display:block;overflow:visible}td:before,td:empty{display:none}tbody tr{grid-template-rows:auto;grid-template-columns:auto 1fr}td[data-col=status]{grid-column:1;align-items:center;display:flex}td[data-col=name]{grid-column:2;align-items:center;font-size:.875rem;font-weight:600;display:flex}td[data-col=id],td[data-col=domain]{color:var(--muted);font-size:.72rem;font-family:var(--mono);grid-column:1/-1;align-items:center;display:flex}td[data-col=actions]{border-top:1px solid var(--border);white-space:normal;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:.625rem;display:flex;overflow:visible}td[data-col=type]{color:var(--muted);font-size:.74rem;font-family:var(--mono);grid-column:1/-1;align-items:center;display:flex}td[data-col=site]{grid-column:1/-1;align-items:center;font-size:.8rem;display:flex}td[data-col=last-verified]{color:var(--subtle);font-size:.72rem;font-family:var(--mono);grid-column:1/-1;align-items:center;display:flex}td[data-col=bl-domain]{grid-column:1/-1;align-items:center;display:flex}td[data-col=reason]{color:var(--muted);white-space:normal;grid-column:1/-1;align-items:flex-start;font-size:.78rem;display:flex}td[data-col=added]{color:var(--subtle);font-size:.72rem;font-family:var(--mono);grid-column:1/-1;align-items:center;display:flex}td[data-col=bl-actions]{border-top:1px solid var(--border);white-space:normal;grid-column:1/-1;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:.625rem;display:flex;overflow:visible}td[data-col=ts]{color:var(--subtle);font-size:.72rem;font-family:var(--mono);grid-column:1/-1;align-items:center;display:flex}td[data-col=action]{grid-column:1/-1;align-items:center;display:flex}td[data-col=context]{border-top:1px solid var(--border);white-space:normal;grid-column:1/-1;align-items:flex-start;margin-top:.25rem;padding-top:.5rem;display:flex;overflow:visible}table[data-mobile=labels] tbody tr{grid-template-columns:1fr;gap:0}table[data-mobile=labels] td{border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent);overflow-wrap:anywhere;grid-column:1/-1;padding:.3rem 0;display:block}table[data-mobile=labels] tbody tr td:first-child{border-top:none;padding-top:0}table[data-mobile=labels] td[data-label]:before{content:attr(data-label);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--subtle);margin-bottom:.15rem;font-size:.6rem;display:block}table[data-mobile=labels] td:not([data-label]){border-top:1px solid var(--border);flex-wrap:wrap;gap:.5rem;margin-top:.25rem;padding-top:.625rem;display:flex;text-align:left!important;white-space:normal!important}table[data-mobile=labels] td:not([data-label]):empty{display:none}table[data-mobile=services] tbody tr{grid-template-columns:1fr auto;align-items:start;gap:.25rem .75rem}table[data-mobile=services] td[data-col=svc-name]{flex-direction:column;grid-area:1/1;gap:.3rem;font-size:.9rem;font-weight:600;display:flex}table[data-mobile=services] td[data-col=svc-actions]{border:none;grid-area:1/2;justify-content:flex-end;margin:0;padding:0;display:flex}table[data-mobile=services] td[data-col=svc-state],table[data-mobile=services] td[data-col=svc-health],table[data-mobile=services] td[data-col=svc-probe],table[data-mobile=services] td[data-col=svc-uptime],table[data-mobile=services] td[data-col=svc-restarts]{display:none}.svc-meta{color:var(--muted);font-size:.74rem;font-weight:400;font-family:var(--mono);overflow-wrap:anywhere;line-height:1.5;display:block}}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.875rem;margin-bottom:1.25rem;display:grid}.form-full{grid-column:1/-1}.field{flex-direction:column;gap:.3rem;display:flex}.label{letter-spacing:.06em;text-transform:uppercase;color:var(--subtle);font-size:.68rem;font-weight:600;font-family:var(--mono)}.input,.select,.textarea{border:1px solid var(--border2);border-radius:var(--radius);background:color-mix(in srgb, var(--border) 30%, var(--surface));color:var(--text);outline:none;width:100%;padding:.5rem .75rem;font-size:.83rem;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--orange);box-shadow:0 0 0 2px color-mix(in srgb, var(--orange) 14%, transparent)}.input::placeholder,.textarea::placeholder{color:var(--subtle)}.textarea{resize:vertical;font-size:.8rem;font-family:var(--mono)}.select{cursor:pointer}.input-hint{color:var(--muted);margin-top:.2rem;font-size:.72rem}.btn{border-radius:var(--radius);border:1px solid var(--border2);background:var(--surface);color:var(--text);transition:background var(--t), border-color var(--t), opacity .12s;white-space:nowrap;cursor:pointer;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.83rem;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-locked{opacity:.35!important;cursor:not-allowed!important}.btn-locked:hover{background:var(--surface)!important;filter:none!important;transform:none!important}.btn-primary{background:var(--orange);color:#0a0a0a;border-color:#0000;font-weight:600}.btn-primary:hover{opacity:.85;background:var(--orange)}.btn-danger{color:var(--red);border-color:color-mix(in srgb, var(--red) 30%, transparent);background:0 0}.btn-danger:hover{background:color-mix(in srgb, var(--red) 8%, transparent)}.btn-sm{padding:.3rem .65rem;font-size:.75rem}.pill{letter-spacing:.03em;font-size:.72rem;font-weight:600;font-family:var(--mono);border:1px solid;border-radius:3px;align-items:center;gap:.3rem;padding:.1rem .5rem;display:inline-flex}.pill-green{color:var(--green);border-color:color-mix(in srgb, var(--green) 30%, transparent);background:color-mix(in srgb, var(--green) 8%, transparent)}.pill-yellow{color:var(--yellow);border-color:color-mix(in srgb, var(--yellow) 30%, transparent);background:color-mix(in srgb, var(--yellow) 8%, transparent)}.pill-blue{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 30%, transparent);background:color-mix(in srgb, var(--blue) 8%, transparent)}.pill-gray{color:var(--silver);border-color:color-mix(in srgb, var(--silver) 30%, transparent);background:color-mix(in srgb, var(--silver) 8%, transparent)}.pill-magenta{color:var(--magenta);border-color:color-mix(in srgb, var(--magenta) 30%, transparent);background:color-mix(in srgb, var(--magenta) 8%, transparent)}.secret-box{background:color-mix(in srgb, var(--green) 6%, var(--surface));border:1px solid color-mix(in srgb, var(--green) 25%, transparent);border-radius:var(--radius);flex-direction:column;gap:.875rem;padding:1.25rem;display:flex}.secret-value{font-family:var(--mono);color:var(--green);word-break:break-all;letter-spacing:.02em;background:color-mix(in srgb, var(--green) 4%, var(--bg));border:1px solid color-mix(in srgb, var(--green) 15%, transparent);border-radius:4px;padding:.75rem 1rem;font-size:.85rem}.secret-env{font-family:var(--mono);color:var(--muted);background:var(--surface);border:1px solid var(--border2);border-radius:4px;padding:.5rem .75rem;font-size:.78rem}.secret-warning{color:var(--yellow);align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;display:flex}.alert-error{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--red) 30%, transparent);background:color-mix(in srgb, var(--red) 6%, transparent);color:var(--red);padding:.75rem 1rem;font-size:.83rem}.alert-info{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--cyan) 30%, transparent);background:color-mix(in srgb, var(--cyan) 6%, transparent);color:var(--cyan);padding:.75rem 1rem;font-size:.83rem}.alert-success{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--green) 30%, transparent);background:color-mix(in srgb, var(--green) 6%, transparent);color:var(--green);padding:.75rem 1rem;font-size:.83rem}.mono{font-family:var(--mono);letter-spacing:0;color:var(--muted);font-size:.85em}.modal-bd{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:500;background:#000000a6;justify-content:center;align-items:center;padding:1rem;animation:.15s both modal-in;display:flex;position:fixed;inset:0}@keyframes modal-in{0%{opacity:0}}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:calc(var(--radius) + 2px);width:100%;max-width:540px;max-height:90vh;animation:.18s both modal-slide;overflow-y:auto}@keyframes modal-slide{0%{opacity:0;transform:translateY(8px)}}.modal-hd{border-bottom:1px solid var(--border);color:var(--text);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:.9rem 1.25rem;font-size:.875rem;font-weight:600;display:flex;position:sticky;top:0}.modal-x{width:26px;height:26px;color:var(--muted);cursor:pointer;transition:background var(--t), color var(--t);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;display:flex}.modal-x:hover{background:var(--surface2);color:var(--text)}.modal-body{padding:1.25rem}.modal-ft{border-top:1px solid var(--border);background:var(--surface);justify-content:flex-end;gap:.5rem;padding:.875rem 1.25rem;display:flex;position:sticky;bottom:0}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.checkbox-row{cursor:pointer;color:var(--text);align-items:center;gap:.5rem;padding:.4rem 0;font-size:.82rem;display:flex}.checkbox-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--cyan);cursor:pointer;flex-shrink:0}.pulse{vertical-align:middle;align-items:center;gap:3px;display:inline-flex}.pulse span{background:var(--pulse-color,var(--muted));opacity:.35;border-radius:50%;width:5px;height:5px}.pulse[data-live=true] span{animation:1.4s ease-in-out infinite pulse-beat}.pulse[data-live=true] span:nth-child(2){animation-delay:.18s}.pulse[data-live=true] span:nth-child(3){animation-delay:.36s}.pulse[data-tone=ok]{--pulse-color:var(--green)}.pulse[data-tone=warn]{--pulse-color:var(--yellow)}.pulse[data-tone=bad]{--pulse-color:var(--red)}.pulse[data-live=false] span{opacity:1}@keyframes pulse-beat{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.pulse span{opacity:1;animation:none!important}}.logpanel-bd{z-index:210;background:#00000080;position:fixed;inset:0}.logpanel{z-index:211;background:var(--bg);border-left:1px solid var(--border2);flex-direction:column;width:min(46rem,92vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0009}.logpanel-hd{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:flex}.logpanel-title{font-family:var(--mono);color:var(--text);font-size:.82rem}.logpanel-sub{color:var(--muted);font-size:.68rem;font-family:var(--mono)}.logpanel-body{font-family:var(--mono);white-space:pre-wrap;word-break:break-all;color:var(--text);flex:1;margin:0;padding:.9rem 1.1rem;font-size:.72rem;line-height:1.55;overflow:auto}.logpanel-ft{border-top:1px solid var(--border);font-family:var(--mono);color:var(--muted);padding:.5rem 1.1rem .7rem;font-size:.66rem}
