@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/space-grotesk-500-lFbtlQH6.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/space-grotesk-700-RjhwGPKo.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/plex-sans-400-CDDApCn2.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/plex-sans-500-6ng42L7E.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/plex-sans-600-CuJfVYMP.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/plex-mono-400-DMJ8VG8y.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/plex-mono-500-DSY6xOcd.woff2)format("woff2")}:root{color-scheme:dark;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-ui:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--bg:#0d1018;--s1:#12151f;--s2:#161b28;--s3:#1c2233;--s-overlay:#0d1018b8;--s-glass:#12151fd1;--ink:#edeff7;--ink-2:#9ba3b8;--ink-3:#6b7288;--line:#94a3c721;--line-strong:#94a3c738;--accent:#ff9c57;--accent-strong:#ffb07a;--accent-ink:#33170a;--accent-soft:#ff9c5721;--accent-ring:#ff9c5780;--accent-glow:#ff9c573d;--steel:#8fb4ff;--steel-soft:#8fb4ff1f;--ok:#5ee19a;--ok-soft:#5ee19a1f;--warn:#ffc66b;--warn-soft:#ffc66b21;--danger:#ff7a76;--danger-strong:#ff9a97;--danger-soft:#ff7a7621;--fmt-npm:#ff8582;--fmt-npm-soft:#ff85821f;--fmt-cargo:#ffaf7a;--fmt-cargo-soft:#ffaf7a1f;--fmt-oci:#7eb8ff;--fmt-oci-soft:#7eb8ff1f;--fmt-go:#6fd8e8;--fmt-go-soft:#6fd8e821;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-full:999px;--sidebar-w:248px;--topbar-h:56px;--shadow-1:0 1px 2px #03050a66;--shadow-2:0 2px 6px #03050a59, 0 12px 32px -16px #03050ab3;--shadow-3:0 4px 12px #03050a66, 0 24px 64px -24px #03050ae6;--ease-out:cubic-bezier(.25, 1, .5, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--t-fast:.12s var(--ease-out);--t-med:.2s var(--ease-out);--t-slow:.32s var(--ease-out)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-ui);color:var(--ink);background:var(--bg);min-height:100vh;font-size:.875rem;line-height:1.55}::selection{color:var(--ink);background:#ff9c5747}#app{min-height:100vh}a{color:var(--accent);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--accent-strong)}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px;border-radius:var(--r-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:3px solid var(--bg);background:#94a3c72e;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3c752}@keyframes rise-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.97)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 0 0 var(--pulse-color,var(--ok))}60%{opacity:.75;box-shadow:0 0 0 5px #0000}}@keyframes feed-flash{0%{background-color:var(--accent-soft)}to{background-color:#0000}}@keyframes spin{to{transform:rotate(360deg)}}.page-enter{animation:rise-in .3s var(--ease-out) backwards}.stagger>*{animation:rise-in .32s var(--ease-out) backwards}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(n+6){animation-delay:.2s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);z-index:60;background:var(--s1);border-right:1px solid var(--line);transition:transform var(--t-slow);flex-direction:column;padding:14px 10px 12px;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden auto}.brand{align-items:center;gap:10px;padding:6px 10px 16px;display:flex}.brand-mark{width:34px;height:34px;color:var(--accent-ink);box-shadow:0 3px 10px -2px var(--accent-glow), inset 0 1px 0 #ffffff59;background:linear-gradient(140deg,#ffb07a,#ff8a3d 58%,#f9702e);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:1.05rem;font-weight:700;line-height:1.1}.brand-name a,.brand-name a:hover{color:inherit}.brand-sub{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;font-size:.625rem}.nav-section{margin-top:14px}.nav-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);padding:0 12px 6px;font-size:.655rem;font-weight:600}.nav{flex-direction:column;gap:2px;display:flex}.nav-link{border-radius:var(--r-sm);color:var(--ink-2);transition:color var(--t-fast), background var(--t-fast);align-items:center;gap:10px;padding:8px 12px;font-size:.845rem;font-weight:500;display:flex;position:relative}.nav-link:hover{color:var(--ink);background:#94a3c712}.nav-link:active{transform:translateY(.5px)}.nav-link.active{color:var(--ink);background:#94a3c717}.nav-link.active:before{content:"";background:var(--accent);width:3px;box-shadow:0 0 10px var(--accent-glow);border-radius:999px;position:absolute;top:7px;bottom:7px;left:-6px}.nav-link .icon{color:var(--ink-3);transition:color var(--t-fast)}.nav-link:hover .icon,.nav-link.active .icon{color:var(--accent)}.sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding-top:12px}.user-chip{border-radius:var(--r-md);align-items:center;gap:10px;padding:8px 10px;display:flex}.avatar{border-radius:var(--r-full);background:var(--s3);border:1px solid var(--line-strong);width:32px;height:32px;color:var(--accent);font-family:var(--font-display);letter-spacing:.02em;flex-shrink:0;place-items:center;font-size:.7rem;font-weight:700;display:grid}.user-chip-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;line-height:1.2;overflow:hidden}.user-chip-meta{align-items:center;gap:6px;min-width:0;display:flex}.signin-cta{border-radius:var(--r-md);width:100%;color:var(--accent-ink);box-shadow:0 6px 18px -6px var(--accent-glow);transition:transform var(--t-fast), box-shadow var(--t-fast), filter var(--t-fast);background:linear-gradient(140deg,#ffb07a,#ff8a3d 60%,#f9702e);justify-content:center;align-items:center;gap:8px;padding:9px 12px;font-size:.84rem;font-weight:600;display:flex}.signin-cta:hover{filter:brightness(1.06);box-shadow:0 8px 22px -6px var(--accent-glow);color:var(--accent-ink)}.signin-cta:active{transform:scale(.98)}.main{min-width:0;margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100vh;display:flex}.topbar{z-index:50;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 20px;display:flex;position:sticky;top:0}.topbar-burger{border-radius:var(--r-sm);color:var(--ink-2);padding:7px;display:none}.topbar-burger:hover{color:var(--ink);background:#94a3c717}.search-trigger{border-radius:var(--r-md);border:1px solid var(--line);background:color-mix(in srgb, var(--s1) 72%, transparent);width:320px;min-width:0;max-width:42vw;color:var(--ink-3);transition:border-color var(--t-fast), background var(--t-fast), color var(--t-fast);align-items:center;gap:9px;padding:7px 12px;font-size:.82rem;display:flex}.search-trigger:hover{border-color:var(--line-strong);color:var(--ink-2);background:var(--s1)}.search-trigger .kbd-group{margin-left:auto}.kbd{font-family:var(--font-mono);color:var(--ink-3);background:var(--s2);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-size:.64rem;line-height:1.4}.kbd-group{gap:3px;display:inline-flex}.topbar-spacer{flex:1}.conn{border-radius:var(--r-full);border:1px solid var(--line);background:color-mix(in srgb, var(--s1) 72%, transparent);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);transition:color var(--t-med), border-color var(--t-med);align-items:center;gap:7px;padding:5px 10px;font-size:.635rem;display:inline-flex}.conn-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.conn.online .conn-dot{background:var(--ok);--pulse-color:var(--ok);animation:2.4s ease-in-out infinite pulse-dot}.conn.connecting .conn-dot{background:var(--warn);--pulse-color:var(--warn);animation:1.1s ease-in-out infinite pulse-dot}.conn.offline{color:var(--ink-3)}.conn.offline .conn-dot{background:var(--ink-3)}.content{flex:1;width:100%;max-width:1200px;padding:28px 28px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.7rem;font-weight:700;line-height:1.15}.page-sub{color:var(--ink-2);max-width:56ch;margin-top:5px;font-size:.85rem}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.section{margin-bottom:26px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.02rem;font-weight:700}.footer{border-top:1px solid var(--line);color:var(--ink-3);font-size:.72rem;font-family:var(--font-mono);justify-content:space-between;gap:12px;padding:18px 28px;display:flex}.btn{border-radius:var(--r-md);white-space:nowrap;transition:transform var(--t-fast), background var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), filter var(--t-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{color:var(--accent-ink);box-shadow:0 4px 14px -4px var(--accent-glow), inset 0 1px 0 #ffffff47;background:linear-gradient(140deg,#ffb07a,#ff8a3d 60%,#f9702e)}.btn-primary:hover{filter:brightness(1.07)}.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn-ghost:hover{background:#94a3c714;border-color:#94a3c757}.btn-quiet{color:var(--ink-2)}.btn-quiet:hover{color:var(--ink);background:#94a3c714}.btn-danger{background:var(--danger-soft);color:var(--danger-strong);border-color:#ff7a764d}.btn-danger:hover{background:#ff7a7633}.btn-sm{border-radius:var(--r-sm);padding:5px 10px;font-size:.76rem}.btn-icon{border-radius:var(--r-sm);padding:7px}.chip{border-radius:var(--r-full);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:2px 8px;font-size:.68rem;font-weight:600;line-height:1.6;display:inline-flex}.chip-ok{background:var(--ok-soft);color:var(--ok);border-color:#5ee19a40}.chip-warn{background:var(--warn-soft);color:var(--warn);border-color:#ffc66b40}.chip-danger{background:var(--danger-soft);color:var(--danger-strong);border-color:#ff7a7640}.chip-info{background:var(--steel-soft);color:var(--steel);border-color:#8fb4ff40}.chip-neutral{color:var(--ink-2);border-color:var(--line);background:#94a3c71a}.chip-accent{background:var(--accent-soft);color:var(--accent);border-color:#ff9c5747}.tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;background:#94a3c712;align-items:center;gap:5px;padding:2px 7px;font-size:.635rem;font-weight:500;display:inline-flex}.tag-npm{color:var(--fmt-npm);background:var(--fmt-npm-soft);border-color:#ff858247}.tag-cargo{color:var(--fmt-cargo);background:var(--fmt-cargo-soft);border-color:#ffaf7a47}.tag-oci{color:var(--fmt-oci);background:var(--fmt-oci-soft);border-color:#7eb8ff47}.tag-go{color:var(--fmt-go);background:var(--fmt-go-soft);border-color:#6fd8e847}.version{font-family:var(--font-mono);color:var(--accent);background:var(--accent-soft);border-radius:var(--r-sm);white-space:nowrap;border:1px solid #ff9c5738;padding:1px 7px;font-size:.71rem;font-weight:500}.role{letter-spacing:.05em;text-transform:uppercase;border-radius:var(--r-full);border:1px solid;align-items:center;gap:5px;padding:2px 8px;font-size:.66rem;font-weight:600;display:inline-flex}.role-admin{color:var(--accent);background:var(--accent-soft);border-color:#ff9c574d}.role-publisher{color:var(--steel);background:var(--steel-soft);border-color:#8fb4ff4d}.role-reader{color:var(--ink-2);border-color:var(--line-strong);background:#94a3c71a}.role-anonymous{color:var(--ink-3);border-color:var(--line);background:0 0}.perm{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);color:var(--ink-3);background:0 0;border-radius:5px;justify-content:center;align-items:center;padding:1.5px 6px;font-size:.6rem;font-weight:500;display:inline-flex}.perm.on{color:var(--ok);background:var(--ok-soft);border-color:#5ee19a4d}.perm-row{flex-wrap:wrap;gap:4px;display:inline-flex}.card{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.card-pad{padding:18px 20px}.card-hover{transition:border-color var(--t-med), transform var(--t-med), box-shadow var(--t-med), background var(--t-med)}.card-hover:hover{border-color:var(--line-strong);background:var(--s2);box-shadow:var(--shadow-2);transform:translateY(-1px)}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color var(--t-med), background var(--t-med);padding:16px 18px;position:relative;overflow:hidden}.stat:hover{border-color:var(--line-strong);background:var(--s2)}.stat:after{content:"";background:linear-gradient(90deg, var(--stat-tint,var(--accent)) 0%, transparent 70%);opacity:.35;height:1px;position:absolute;bottom:12px;left:18px;right:18px}.stat-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);font-size:.665rem;font-weight:600}.stat-head .icon{color:var(--stat-tint,var(--accent));opacity:.9}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:14px;font-size:1.9rem;font-weight:700;line-height:1.1}.stat-foot{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.03em;font-size:.63rem}.table-card{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%}.table thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);background:color-mix(in srgb, var(--s2) 66%, transparent);border-bottom:1px solid var(--line);white-space:nowrap;user-select:none;padding:10px 16px;font-size:.655rem;font-weight:600}.table tbody td{vertical-align:middle;padding:12px 16px;font-size:.84rem}.table tbody tr{border-top:1px solid var(--line);transition:background var(--t-fast)}.table tbody tr:first-child{border-top:none}.table tbody tr:hover{background:#94a3c70d}.table .row-link{color:var(--ink);font-weight:500;font-family:var(--font-mono);font-size:.8rem}.table .row-link:hover{color:var(--accent)}.cell-muted{color:var(--ink-2)}.cell-dim{color:var(--ink-3);font-size:.78rem}.cell-mono{font-family:var(--font-mono);font-size:.76rem}.cell-num{font-variant-numeric:tabular-nums}.cell-actions{justify-content:flex-end;gap:4px;display:flex}.pagination{border-top:1px solid var(--line);background:color-mix(in srgb, var(--s2) 45%, transparent);justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.pagination-info{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;font-size:.66rem}.pagination-nav{gap:6px;display:flex}.field{margin-bottom:14px}.field-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);margin-bottom:6px;font-size:.7rem;font-weight:600;display:block}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--bg);width:100%;color:var(--ink);transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);outline:none;padding:8px 11px;font-size:.85rem}.input:hover,.select:hover{border-color:#94a3c757}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff9c5729}.input::placeholder{color:var(--ink-3)}.select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}.field-hint{color:var(--ink-3);margin-top:5px;font-size:.72rem}.field-error{color:var(--danger-strong);margin-top:5px;font-size:.72rem}.form-row{gap:12px;display:flex}.form-row>*{flex:1}.checkbox-row{color:var(--ink-2);cursor:pointer;user-select:none;align-items:center;gap:8px;font-size:.82rem;display:flex}input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.switch{background:var(--s3);border:1px solid var(--line-strong);width:34px;height:20px;transition:background var(--t-med), border-color var(--t-med);border-radius:999px;flex-shrink:0;position:relative}.switch:after{content:"";background:var(--ink-2);width:14px;height:14px;transition:transform var(--t-med), background var(--t-med);border-radius:50%;position:absolute;top:2px;left:2px}.switch.on{background:var(--accent-soft);border-color:#ff9c5766}.switch.on:after{background:var(--accent);transform:translate(14px)}.search-box{align-items:center;display:flex;position:relative}.search-box .icon{color:var(--ink-3);pointer-events:none;position:absolute;left:11px}.search-box .input{padding-left:36px}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.filter-bar .search-box{flex:1;min-width:220px}.filter-bar .select{width:auto;min-width:150px}.modal-overlay{z-index:200;background:var(--s-overlay);-webkit-backdrop-filter:blur(6px);animation:fade-in .16s var(--ease-out);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:100%;max-width:460px;max-height:min(86vh,720px);box-shadow:var(--shadow-3);animation:scale-in .22s var(--ease-spring);padding:20px;overflow-y:auto}.modal-wide{max-width:620px}.modal-title{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:4px;font-size:1.06rem;font-weight:700}.modal-sub{color:var(--ink-2);margin-bottom:16px;font-size:.8rem}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.toaster{z-index:300;flex-direction:column;gap:8px;max-width:min(380px,100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--r-md);background:var(--s-glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line-strong);box-shadow:var(--shadow-2);animation:slide-in-right .26s var(--ease-spring);transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);align-items:flex-start;gap:10px;padding:11px 13px;display:flex}.toast.leaving{opacity:0;transform:translate(14px)}.toast .icon{flex-shrink:0;margin-top:1px}.toast-success .icon{color:var(--ok)}.toast-error .icon{color:var(--danger-strong)}.toast-info .icon{color:var(--steel)}.toast-event .icon{color:var(--accent)}.toast-title{color:var(--ink);font-size:.82rem;font-weight:600;line-height:1.35}.toast-detail{color:var(--ink-2);word-break:break-word;margin-top:2px;font-size:.75rem;line-height:1.4}.toast-close{color:var(--ink-3);border-radius:4px;flex-shrink:0;margin-left:auto;padding:2px}.toast-close:hover{color:var(--ink)}.skeleton{border-radius:var(--r-sm);user-select:none;pointer-events:none;background:linear-gradient(100deg,#94a3c714 40%,#94a3c729 50%,#94a3c714 60%) 0 0/200% 100%;animation:1.6s linear infinite shimmer;position:relative;color:#0000!important}.skeleton-text{border-radius:4px;height:.85em}.skeleton-block{width:100%}.empty{text-align:center;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;padding:44px 20px;display:flex}.empty .icon{color:var(--ink-3);opacity:.7;margin-bottom:12px}.empty-title{font-family:var(--font-display);color:var(--ink);margin-bottom:4px;font-size:.95rem;font-weight:700}.empty-text{max-width:40ch;font-size:.8rem;line-height:1.5}.empty .btn{margin-top:14px}.alert{border-radius:var(--r-md);border:1px solid;align-items:flex-start;gap:10px;margin-bottom:14px;padding:11px 13px;font-size:.82rem;line-height:1.45;display:flex}.alert .icon{flex-shrink:0;margin-top:1px}.alert-info{background:var(--steel-soft);color:var(--steel);border-color:#8fb4ff40}.alert-warn{background:var(--warn-soft);color:var(--warn);border-color:#ffc66b47}.alert-error{background:var(--danger-soft);color:var(--danger-strong);border-color:#ff7a7647}.alert-ok{background:var(--ok-soft);color:var(--ok);border-color:#5ee19a42}.code-line{border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--ink-2);background:#0a0d14;align-items:center;gap:10px;padding:10px 12px;font-size:.78rem;display:flex;overflow-x:auto}.code-line code{white-space:nowrap;flex:1}.code-line .accent{color:var(--accent)}.copy-btn{color:var(--ink-3);border-radius:var(--r-sm);transition:color var(--t-fast), background var(--t-fast);flex-shrink:0;align-items:center;gap:5px;padding:4px 6px;font-size:.7rem;font-weight:600;display:inline-flex}.copy-btn:hover{color:var(--ink);background:#94a3c71a}.copy-btn.copied{color:var(--ok)}.mono{font-family:var(--font-mono);font-size:.92em}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--ink-2);border-radius:var(--r-sm) var(--r-sm) 0 0;white-space:nowrap;transition:color var(--t-fast), background var(--t-fast);padding:9px 13px;font-size:.82rem;font-weight:500;position:relative}.tab:hover{color:var(--ink);background:#94a3c70f}.tab.active{color:var(--ink)}.tab.active:after{content:"";background:var(--accent);height:2px;box-shadow:0 0 8px var(--accent-glow);border-radius:999px;position:absolute;bottom:-1px;left:8px;right:8px}.feed-card{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden}.feed-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.feed-live{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:7px;font-size:.62rem;display:inline-flex}.feed-live .conn-dot{background:var(--ink-3);width:6px;height:6px}.feed-live.online{color:var(--ok)}.feed-live.online .conn-dot{background:var(--ok);--pulse-color:var(--ok);animation:2.4s ease-in-out infinite pulse-dot}.feed{list-style:none}.feed-row{border-top:1px solid var(--line);transition:background var(--t-fast);align-items:center;gap:12px;padding:11px 18px;display:flex}.feed-row:first-child{border-top:none}.feed-row:hover{background:#94a3c70d}.feed-row.fresh{animation:rise-in .28s var(--ease-out) both, feed-flash 1.4s var(--ease-out) both}.feed-time{font-family:var(--font-mono);color:var(--ink-3);flex-shrink:0;min-width:84px;font-size:.66rem}.feed-main{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.feed-pkg{font-family:var(--font-mono);color:var(--ink);text-overflow:ellipsis;font-size:.8rem;font-weight:500;overflow:hidden}.feed-pkg:hover{color:var(--accent)}.palette-overlay{z-index:400;background:var(--s-overlay);-webkit-backdrop-filter:blur(8px);animation:fade-in .14s var(--ease-out);justify-content:center;align-items:flex-start;padding:12vh 20px 20px;display:flex;position:fixed;inset:0}.palette{background:var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:100%;max-width:560px;box-shadow:var(--shadow-3);animation:scale-in .2s var(--ease-spring);overflow:hidden}.palette-input-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-input-row .icon{color:var(--ink-3);flex-shrink:0}.palette-input{color:var(--ink);font-size:.95rem;font-family:var(--font-ui);background:0 0;border:none;outline:none;flex:1}.palette-input::placeholder{color:var(--ink-3)}.palette-list{max-height:340px;padding:6px;overflow-y:auto}.palette-group{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);padding:8px 10px 4px;font-size:.64rem;font-weight:600}.palette-item{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast);align-items:center;gap:10px;padding:8px 10px;font-size:.85rem;display:flex}.palette-item .icon{color:var(--ink-3);flex-shrink:0}.palette-item:hover,.palette-item.selected{color:var(--ink);background:#94a3c717}.palette-item.selected .icon{color:var(--accent)}.palette-item-detail{color:var(--ink-3);font-size:.7rem;font-family:var(--font-mono);margin-left:auto}.palette-foot{border-top:1px solid var(--line);color:var(--ink-3);gap:14px;padding:9px 14px;font-size:.66rem;display:flex}.palette-foot .kbd{margin-right:4px}.matrix{border-collapse:collapse;width:100%}.matrix th{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;padding:8px 10px;font-size:.64rem;font-weight:600}.matrix th:first-child{text-align:left}.matrix td{border-bottom:1px solid var(--line);text-align:center;padding:8px 10px}.matrix td:first-child{text-align:left}.matrix tr:last-child td{border-bottom:none}.matrix-repo{font-family:var(--font-mono);color:var(--ink);align-items:center;gap:8px;font-size:.78rem;display:flex}.perm-toggle{border-radius:var(--r-sm);border:1px solid var(--line-strong);width:26px;height:26px;color:var(--ink-3);transition:all var(--t-fast);background:0 0;place-items:center;display:inline-grid}.perm-toggle:hover{color:var(--ink-2);border-color:#94a3c766}.perm-toggle.on{background:var(--ok-soft);color:var(--ok);border-color:#5ee19a66}.perm-toggle:disabled{opacity:.4;cursor:not-allowed}.source-note{color:var(--ink-3);font-size:.66rem;font-family:var(--font-mono)}.login-page{background:radial-gradient(1100px 500px at 85% -10%, #ff8a3d17, transparent 60%), radial-gradient(900px 480px at -10% 108%, #8fb4ff12, transparent 60%), var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-grid-decor{pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:44px 44px;position:absolute;inset:0;mask-image:radial-gradient(70% 55% at 50% 42%,#00000080,#0000 70%)}.login-box{width:100%;max-width:392px;animation:scale-in .36s var(--ease-spring);position:relative}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;display:flex}.login-brand .brand-mark{border-radius:13px;width:46px;height:46px}.login-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.45rem;font-weight:700}.login-sub{color:var(--ink-3);font-size:.78rem;font-family:var(--font-mono)}.login-card{background:var(--s-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:24px}.login-foot{font-family:var(--font-mono);color:var(--ink-3);justify-content:space-between;align-items:center;margin-top:20px;font-size:.66rem;display:flex}.detail-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}.side-stack{top:calc(var(--topbar-h) + 16px);flex-direction:column;gap:14px;display:flex;position:sticky}.side-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:4px;font-size:.655rem;font-weight:600}.side-value{font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.side-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:.8rem;display:flex}.side-row:first-of-type{border-top:none}.readme{color:var(--ink-2);font-size:.88rem;line-height:1.65}.readme h1,.readme h2,.readme h3,.readme h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:1.3em 0 .5em}.readme>:first-child{margin-top:0}.readme h1{font-size:1.4rem}.readme h2{border-bottom:1px solid var(--line);padding-bottom:6px;font-size:1.15rem}.readme h3{font-size:1rem}.readme p{margin:.6em 0}.readme a{color:var(--steel)}.readme a:hover{color:var(--accent)}.readme code{font-family:var(--font-mono);border:1px solid var(--line);color:var(--ink);background:#94a3c71a;border-radius:5px;padding:.08em .35em;font-size:.85em}.readme pre{border:1px solid var(--line);border-radius:var(--r-md);background:#0a0d14;margin:.8em 0;padding:14px 16px;overflow-x:auto}.readme pre code{color:var(--ink-2);background:0 0;border:none;padding:0;font-size:.78rem}.readme ul,.readme ol{margin:.6em 0 .6em 1.4em}.readme li{margin:.25em 0}.readme blockquote{border-left:3px solid var(--accent);color:var(--ink-2);margin:.8em 0;padding:2px 0 2px 14px}.readme table{border-collapse:collapse;width:100%;margin:.8em 0;font-size:.82rem}.readme th,.readme td{border:1px solid var(--line);text-align:left;padding:7px 10px}.readme th{background:var(--s2);color:var(--ink)}.readme img{border-radius:var(--r-sm);max-width:100%}.row{align-items:center;gap:8px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:4px;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.small{font-size:.78rem}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spinner{border:2px solid #94a3c733;border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.divider{background:var(--line);border:none;height:1px;margin:14px 0}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.dashboard-cols{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.dashboard-cols>*,.detail-grid>*{min-width:0}.token-reveal{background:var(--ok-soft);border-radius:var(--r-md);border:1px solid #5ee19a4d;margin-bottom:14px;padding:12px 14px}.token-reveal-label{color:var(--ok);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:8px;font-size:.7rem;font-weight:600;display:flex}.drawer-overlay{display:none}@media (width<=1080px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid,.dashboard-cols{grid-template-columns:minmax(0,1fr)}.side-stack{position:static}}@media (width<=768px){.sidebar{box-shadow:none;width:min(300px,84vw);transform:translate(-104%)}.sidebar.open{box-shadow:var(--shadow-3);transform:translate(0)}.drawer-overlay{z-index:55;background:var(--s-overlay);opacity:0;pointer-events:none;transition:opacity var(--t-slow);display:block;position:fixed;inset:0}.drawer-overlay.visible{opacity:1;pointer-events:auto}.main{margin-left:0}.topbar{padding:0 14px}.topbar-burger{display:inline-flex}.search-trigger{flex:1;width:auto;max-width:none}.search-trigger .kbd-group,.conn .conn-text{display:none}.conn{padding:5px 7px}.content{padding:18px 14px 40px}.page-title{font-size:1.35rem}.stats-grid{gap:10px}.stat{padding:13px 14px}.stat-value{font-size:1.5rem}.table thead th{padding:9px 12px}.table tbody td{padding:10px 12px}.form-row{flex-direction:column;gap:0}.footer{flex-direction:column;gap:4px;padding:14px}.toaster{max-width:none;bottom:12px;left:12px;right:12px}.feed-time{min-width:60px}.modal{padding:16px}}@media (width<=480px){.stats-grid{grid-template-columns:1fr 1fr}.page-head{flex-direction:column;align-items:flex-start}.cell-hide-sm{display:none}}
