:root{color-scheme:light dark;--bg:#f6f7fb;--bg-elev:#ffffff;--fg:#14161c;--muted:#5b6270;--border:#e3e6ee;--border-strong:#cfd4e0;--card:rgba(255,255,255,0.72);--card-solid:#ffffff;--th:#eef1f7;--field:#ffffff;--accent:#4f46e5;--accent-2:#06b6d4;--accent-fg:#ffffff;--accent-soft:rgba(79,70,229,0.1);--ring:rgba(79,70,229,0.35);--danger:#d23f31;--ok:#1f9d4d;--warn:#b47708;--grad:linear-gradient(135deg,#4f46e5,#7c3aed 45%,#06b6d4);--shadow-sm:0 1px 2px rgba(20,22,28,0.06),0 1px 3px rgba(20,22,28,0.08);--shadow-md:0 10px 30px -12px rgba(20,22,28,0.25);--shadow-glow:0 0 0 1px rgba(79,70,229,0.12),0 20px 50px -20px rgba(79,70,229,0.45);--radius:14px;--radius-lg:22px;--aurora-1:rgba(124,58,237,0.18);--aurora-2:rgba(6,182,212,0.16);--aurora-3:rgba(79,70,229,0.14)}@media (prefers-color-scheme:dark){:root{--bg:#0a0b10;--bg-elev:#12141c;--fg:#e8eaf2;--muted:#969db0;--border:#232637;--border-strong:#333750;--card:rgba(23,26,38,0.62);--card-solid:#161926;--th:#1a1e2c;--field:#12141c;--accent:#7c8bff;--accent-2:#22d3ee;--accent-fg:#0a0b10;--accent-soft:rgba(124,139,255,0.14);--ring:rgba(124,139,255,0.4);--danger:#ff6b5c;--ok:#5fd48a;--warn:#e2b23c;--grad:linear-gradient(135deg,#7c8bff,#a855f7 45%,#22d3ee);--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 16px 40px -16px rgba(0,0,0,0.7);--shadow-glow:0 0 0 1px rgba(124,139,255,0.18),0 24px 60px -24px rgba(124,139,255,0.5);--aurora-1:rgba(124,58,237,0.28);--aurora-2:rgba(34,211,238,0.2);--aurora-3:rgba(79,70,229,0.22)}}:root[data-theme=dark]{color-scheme:dark;--bg:#0a0b10;--bg-elev:#12141c;--fg:#e8eaf2;--muted:#969db0;--border:#232637;--border-strong:#333750;--card:rgba(23,26,38,0.62);--card-solid:#161926;--th:#1a1e2c;--field:#12141c;--accent:#7c8bff;--accent-2:#22d3ee;--accent-fg:#0a0b10;--accent-soft:rgba(124,139,255,0.14);--ring:rgba(124,139,255,0.4);--danger:#ff6b5c;--ok:#5fd48a;--warn:#e2b23c;--grad:linear-gradient(135deg,#7c8bff,#a855f7 45%,#22d3ee);--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 16px 40px -16px rgba(0,0,0,0.7);--shadow-glow:0 0 0 1px rgba(124,139,255,0.18),0 24px 60px -24px rgba(124,139,255,0.5);--aurora-1:rgba(124,58,237,0.28);--aurora-2:rgba(34,211,238,0.2);--aurora-3:rgba(79,70,229,0.22)}:root[data-theme=light]{color-scheme:light;--bg:#f6f7fb;--bg-elev:#ffffff;--fg:#14161c;--muted:#5b6270;--border:#e3e6ee;--border-strong:#cfd4e0;--card:rgba(255,255,255,0.72);--card-solid:#ffffff;--th:#eef1f7;--field:#ffffff;--accent:#4f46e5;--accent-2:#06b6d4;--accent-fg:#ffffff;--accent-soft:rgba(79,70,229,0.1);--ring:rgba(79,70,229,0.35);--danger:#d23f31;--ok:#1f9d4d;--warn:#b47708;--grad:linear-gradient(135deg,#4f46e5,#7c3aed 45%,#06b6d4);--shadow-glow:0 0 0 1px rgba(79,70,229,0.12),0 20px 50px -20px rgba(79,70,229,0.45);--aurora-1:rgba(124,58,237,0.18);--aurora-2:rgba(6,182,212,0.16);--aurora-3:rgba(79,70,229,0.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:-20vmax;z-index:-1;pointer-events:none;background:radial-gradient(40vmax 40vmax at 12% -8%,var(--aurora-1),transparent 60%),radial-gradient(38vmax 38vmax at 100% 8%,var(--aurora-2),transparent 60%),radial-gradient(46vmax 46vmax at 60% 108%,var(--aurora-3),transparent 60%);filter:blur(8px);animation:aurora-drift 26s ease-in-out infinite alternate}@keyframes aurora-drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(0,-3%,0) scale(1.08)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}html{scroll-behavior:auto}}main{max-width:1200px;margin:0 auto;padding:2.5rem 1.25rem 5rem}a{color:var(--accent)}h1{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;letter-spacing:-.02em;margin:0 0 .5rem}h2{font-size:1.2rem;letter-spacing:-.01em;margin-top:2.25rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}h2,h3{font-weight:700}h3{font-size:1.02rem}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;padding:.85rem 1.25rem;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--border)}.topbar,.topbar-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem}.topbar-inner{width:100%;max-width:1200px;margin:0 auto}.brand{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:-.01em;text-decoration:none;color:var(--fg)}.brand-mark{width:26px;height:26px;border-radius:8px;background:var(--grad);box-shadow:var(--shadow-glow);position:relative;flex:none}.brand-mark:after{content:"";position:absolute;inset:6px;border-radius:4px;border-color:rgba(255,255,255,.85) transparent transparent rgba(255,255,255,.85);border-style:solid;border-width:2px}.nav-links{display:flex;align-items:center;gap:.4rem}.nav-links a{padding:.4rem .8rem;border-radius:999px;font-weight:600;font-size:.9rem;text-decoration:none;color:var(--muted);transition:color .15s ease,background .15s ease}.nav-links a:hover{color:var(--fg);background:var(--accent-soft)}.account-menu{position:relative;display:flex;align-items:center;margin-left:.5rem;padding-left:.5rem;border-left:1px solid var(--border)}.gear-button{display:inline-flex;align-items:center;justify-content:center;padding:.4rem;border:none;border-radius:999px;background:none;box-shadow:none;color:var(--muted);cursor:pointer}.gear-button:hover:not(:disabled),.gear-button[aria-expanded=true]{color:var(--fg);background:var(--accent-soft);transform:none;box-shadow:none}.account-dropdown{position:absolute;top:calc(100% + .5rem);right:0;z-index:30;min-width:12.5rem;display:flex;flex-direction:column;padding:.35rem;background:var(--card-solid);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm),0 12px 32px rgba(0,0,0,.28)}.account-dropdown .account-who{margin:0;padding:.35rem .6rem .5rem;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--border);word-break:break-all}.account-dropdown a,.account-dropdown button{padding:.5rem .6rem;border:none;border-radius:8px;background:none;box-shadow:none;font-size:.9rem;font-weight:600;text-align:left;text-decoration:none;color:var(--fg);cursor:pointer}.account-dropdown a:hover,.account-dropdown button:hover:not(:disabled){background:var(--accent-soft);transform:none;box-shadow:none}button.link-button{padding:.4rem .8rem;border:none;border-radius:999px;background:none;box-shadow:none;font-weight:600;font-size:.9rem;color:var(--muted);cursor:pointer}button.link-button:hover:not(:disabled){color:var(--fg);background:var(--accent-soft);transform:none}.hero{text-align:center;padding:3.5rem 0 2.5rem}.hero h1{font-size:clamp(2rem,5vw,3.2rem)}.hero p.lead{max-width:44ch;margin:.35rem auto 0;color:var(--muted);font-size:1.02rem}.hero-search{max-width:620px;margin:2rem auto 0}.search-shell{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem 1rem;background:var(--card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-strong);border-radius:999px;box-shadow:var(--shadow-md);transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.search-shell:focus-within{border-color:transparent;box-shadow:var(--shadow-glow);transform:translateY(-1px)}.search-shell .search-icon{color:var(--muted);flex:none;display:grid;place-items:center}.search-shell input{flex:1 1;border:none;background:transparent;padding:.55rem .25rem;font-size:1.05rem;color:var(--fg);min-width:0}.search-shell input:focus{outline:none;box-shadow:none}.search-shell button{flex:none;border-radius:999px;padding:.7rem 1.4rem;font-weight:700}.hero-hint{margin-top:.9rem;font-size:.82rem;color:var(--muted)}.hero-hint kbd{font:inherit;font-size:.78rem;padding:.05rem .4rem;border:solid var(--border-strong);border-width:1px 1px 2px;border-radius:6px;background:var(--bg-elev)}form{flex-direction:column;gap:1rem;max-width:480px}.row,form{display:flex}.row{gap:.5rem}.row,.row form{align-items:flex-end}.row form{flex-direction:row;max-width:none;flex:1 1}label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;flex:1 1}input{padding:.6rem .7rem;font-size:1rem;background:var(--field);color:var(--fg);border:1px solid var(--border-strong);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}button{padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;cursor:pointer;background:var(--grad);background-size:160% 160%;color:#fff;border:none;border-radius:10px;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease,background-position .4s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-glow);background-position:100% 0}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.55;cursor:default}button.secondary{background:transparent;color:var(--fg);border:1px solid var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--accent-soft);box-shadow:none}button.danger{background:var(--danger)}.copyable{display:inline-flex;align-items:baseline;gap:.25rem;min-width:0;white-space:nowrap}.copyable .caret{flex:none;width:.6rem;color:var(--muted)}button.collapsible-toggle{display:flex;align-items:center;gap:.45rem;width:100%;padding:0;background:none;border:none;border-radius:0;color:inherit;font:inherit;text-align:left;cursor:pointer}button.collapsible-toggle:hover:not(:disabled){transform:none;box-shadow:none;background:none;color:var(--accent)}button.collapsible-toggle .caret{flex:none;width:.7rem;color:var(--muted);transition:transform .6s ease}.collapsible-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows 1s ease}.collapsible-body.open{grid-template-rows:1fr}.collapsible-body>div{overflow:hidden;min-height:0}@media (prefers-reduced-motion:reduce){.collapsible-body,button.collapsible-toggle .caret{transition:none}}button.copy-button{padding:0 .3rem;font-size:.85rem;font-weight:400;line-height:1;background:none;border:none;border-radius:4px;color:var(--muted);vertical-align:baseline}button.copy-button:hover:not(:disabled){transform:none;box-shadow:none;background:var(--accent-soft);color:var(--fg)}table{border-collapse:separate;border-spacing:0;width:100%;margin-top:.75rem;font-size:.9rem;background:var(--card-solid);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}td,th{border-bottom:1px solid var(--border);padding:.6rem .7rem;text-align:left;vertical-align:top}.wrap-anywhere{overflow-wrap:anywhere}tr:last-child td{border-bottom:none}th{background:var(--th);font-weight:700;font-size:.82rem;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--accent-soft)}.card{border:1px solid var(--border);background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius);padding:1.1rem 1.2rem;margin:.85rem 0;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.card a{text-decoration:none;font-weight:700}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:3rem 0 .25rem}.section-head h2{margin:0;border:none;padding:0}.section-head .count{font-size:.85rem;color:var(--muted);font-weight:600}.list-filter{margin-top:.9rem}.list-filter input{width:100%}.load-more{display:flex;justify-content:center;margin:1.5rem 0 .5rem}.more-link{margin:1rem 0 0;font-size:.9rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:1rem;gap:1rem;margin-top:1rem}.project-card{display:flex;flex-direction:column;gap:.6rem;padding:1.15rem 1.2rem;border:1px solid var(--border);background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .24s ease,border-color .2s ease}.project-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad);opacity:0;transition:opacity .2s ease}.project-card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow-glow)}.project-card:hover:before{opacity:1}.project-card .pc-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.project-card .pc-name{font-weight:800;letter-spacing:-.01em;font-size:1.05rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card .pc-top .badge{flex:none}.project-card .pc-domain{font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,monospace;font-size:.85rem;color:var(--accent);word-break:break-all}.project-card .pc-foot{display:flex;align-items:center;gap:.5rem;margin-top:auto;padding-top:.4rem;font-size:.82rem;color:var(--muted)}.project-card .pc-foot .sep{opacity:.5}.project-card.ghost{border-style:dashed;align-items:flex-start;justify-content:center;color:var(--muted);cursor:pointer}.project-card.ghost .pc-name{color:var(--fg)}.meta{color:var(--muted);font-size:.85rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;border:1px solid var(--border-strong);background:var(--bg-elev);text-transform:capitalize;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok,.badge.success{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:color-mix(in srgb,var(--ok) 12%,var(--bg-elev))}.badge.error,.badge.failed,.badge.timeout{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 12%,var(--bg-elev))}.badge.partial_success,.badge.pending,.badge.running{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 12%,var(--bg-elev))}.badge.reach-reachable{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:color-mix(in srgb,var(--ok) 12%,var(--bg-elev))}.badge.reach-unreachable{color:var(--muted);border-color:var(--border-strong);background:var(--bg-elev)}.badge.reach-unchecked,.badge.reach-wildcard_only{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 12%,var(--bg-elev))}.badge[class*=reach-]{text-transform:none}.alert{border:1px solid color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 10%,var(--bg-elev));color:var(--danger);border-radius:10px;padding:.7rem 1rem;margin:.85rem auto;max-width:620px;font-size:.9rem}.actions{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.scan-meta{display:grid;grid-template-columns:max-content 1fr;grid-gap:.2rem .9rem;gap:.2rem .9rem;margin:.75rem 0}.scan-meta dt{font-weight:700;color:var(--muted)}.scan-meta dd{margin:0;word-break:break-all}.empty{color:var(--muted);font-style:italic}.hint{border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:var(--accent-soft);color:var(--fg);border-radius:10px;padding:.6rem .9rem;margin:.25rem 0 .9rem;font-size:.88rem}.hint code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}.header-toggle{margin:.5rem 0 .25rem}.grade-present{color:var(--ok);font-weight:600}.grade-weak{color:var(--warn);font-weight:600}.grade-missing{color:var(--danger);font-weight:600}.skeleton{border-radius:var(--radius);height:96px;background:linear-gradient(100deg,var(--card-solid) 30%,color-mix(in srgb,var(--accent) 10%,var(--card-solid)) 50%,var(--card-solid) 70%);background-size:200% 100%;animation:shimmer 1.4s ease infinite;border:1px solid var(--border)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}label.check-row{flex-direction:row;align-items:center;gap:.5rem;font-weight:500}label.check-row input{width:auto;flex:none}.auth-panel{max-width:420px;margin:3rem auto 0}.auth-panel h1{text-align:center}.auth-panel form{max-width:none}.sso-block button{width:100%}.sso-block .separator{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--muted);font-size:.85rem;text-transform:lowercase}.sso-block .separator:after,.sso-block .separator:before{content:"";flex:1 1;height:1px;background:var(--border)}.notice{border:1px solid color-mix(in srgb,var(--ok) 50%,transparent);background:color-mix(in srgb,var(--ok) 10%,var(--bg-elev));color:var(--ok);border-radius:10px;padding:.7rem 1rem;margin:.85rem 0;font-size:.9rem}.secret-blocks{font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,monospace;font-size:1.15rem;letter-spacing:.08em;word-spacing:.3em;padding:.7rem .9rem;margin:.25rem 0 .9rem;background:var(--field);border:1px solid var(--border-strong);border-radius:10px}.secret-blocks,.uri-raw{overflow-wrap:anywhere;-webkit-user-select:all;-moz-user-select:all;user-select:all}.uri-raw{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;color:var(--muted);margin:.4rem 0 .9rem}.otpauth-link{display:inline-block;font-weight:700;text-decoration:none;padding:.5rem .9rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--accent-soft)}.otpauth-link:hover{border-color:var(--accent)}.recovery-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));grid-gap:.35rem .9rem;gap:.35rem .9rem;list-style:none;padding:.8rem .9rem;margin:.5rem 0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;letter-spacing:.04em;-webkit-user-select:all;-moz-user-select:all;user-select:all}.recovery-codes,select{background:var(--field);border:1px solid var(--border-strong);border-radius:10px}select{padding:.6rem .7rem;font-size:1rem;color:var(--fg);transition:border-color .15s ease,box-shadow .15s ease}select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}.setup-link{flex:1 1;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem;overflow-wrap:anywhere;padding:.6rem .7rem;margin:0;background:var(--field);border:1px solid var(--border-strong);border-radius:10px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.actions.row-actions{margin:0;gap:.35rem}.actions.row-actions button{padding:.35rem .6rem;font-size:.8rem}