@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Syne Fallback;src:local("Arial");ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.00%;size-adjust:98.47%}.__className_4dedb3{font-family:Syne,Syne Fallback;font-style:normal}.__variable_4dedb3{--font-display-face:"Syne","Syne Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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 Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_46fe82{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_46fe82{--font-mono-face:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--bg:#f5f5f7;--surface:#ffffff;--border:#e4e5ea;--text:#0a0b14;--muted:#5c5f6b;--primary:#173ded;--deep:#173ded;--on-deep:#ffffff;--blue-deep:#123499;--blue-bright:#2b54ff;--live:#1ecf6a;--ok:#0f8a4a;--ok-soft:#e7f6ee;--warn:#8a5a00;--warn-soft:#fbf3dd;--risk:#b4233a;--risk-soft:#fdecee;--logic:#123499;--logic-soft:#e8edff;--radius:16px;--radius-sm:8px;--shadow:0 0 0 transparent;--shadow-lg:0 12px 32px rgba(10,11,20,0.08);--pad:16px;--gutter:32px;--max:1120px;--sidebar-w:272px;--topbar-h:58px;--font-sans:var(--font-inter),Inter,system-ui,sans-serif;--font-display:var(--font-display-face),Syne,sans-serif;--font-mono:var(--font-mono-face),"IBM Plex Mono",ui-monospace,monospace;--ease-out:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::selection{background:color-mix(in srgb,var(--primary) 18%,white);color:var(--text)}button,input{font:inherit;color:inherit}.previews h2,h1{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.04em;line-height:1.02;overflow-wrap:break-word}h1{font-size:clamp(32px,4vw,44px)}.previews h2{font-size:clamp(28px,4vw,40px);line-height:.98}.page-head-title{font-family:var(--font-display);font-size:clamp(28px,3vw,36px);font-weight:700;letter-spacing:-.04em;line-height:1.02}h2,h3,p{margin:0}.eyebrow,.kicker,.section-kicker{margin:0;font-family:var(--font-mono);font-size:12px;font-weight:500;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.section-title{font-family:var(--font-sans);font-size:13px;font-weight:600;line-height:1.2;color:var(--text);letter-spacing:.02em;text-transform:uppercase}.lede,.summary,.why{margin:0;max-width:46rem;color:var(--muted);font-size:14px;font-weight:400;line-height:1.5;overflow-wrap:break-word}.why{color:var(--text);font-weight:500}.why strong{font-weight:600}.arch-mod-classes code,.dep-libs code,.env-grid code,.file,.finding-file,.fs-name,.mono,.run-card code,.run-hero code,.scan-file code,.sketch-term code,.start-card code,code{font-family:var(--font-mono);font-size:12px;font-weight:400;line-height:1.5;overflow-wrap:break-word}a{color:var(--primary)}.app-shell,.sidebar{display:flex;height:100dvh;overflow:hidden}.sidebar{--sidebar-ink:color-mix(in srgb,var(--on-deep) 72%,transparent);width:var(--sidebar-w);flex-shrink:0;background:radial-gradient(520px 320px at 12% -8%,color-mix(in srgb,white 22%,transparent),transparent 58%),linear-gradient(165deg,#0f2bb8 0,var(--primary) 48%,#2f5bff 100%);color:var(--on-deep);flex-direction:column;position:relative;z-index:30;border-right:1px solid color-mix(in srgb,white 12%,transparent)}.sidebar:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,white 14%,transparent) 1px,transparent 0);background-size:18px 18px;opacity:.35;pointer-events:none}.sidebar-top{position:relative;z-index:1;flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 0 12px;display:flex;flex-direction:column;gap:4px}.sidebar-brand{justify-content:space-between;padding:18px 16px 16px;border-bottom:1px solid color-mix(in srgb,white 14%,transparent);margin-bottom:8px}.sidebar-brand,.sidebar-brand-main{display:flex;align-items:center;gap:12px}.sidebar-brand-main{min-width:0}.sidebar-brand-copy{display:flex;flex-direction:column;min-width:0;gap:1px}.sidebar-brand-name{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.04em;line-height:1.1}.sidebar-brand-tag{font-size:11px;color:var(--sidebar-ink);letter-spacing:.02em}.sidebar-close{display:none;width:36px;height:36px;place-items:center;border:1px solid color-mix(in srgb,white 18%,transparent);border-radius:10px;background:color-mix(in srgb,white 8%,transparent);color:var(--on-deep);cursor:pointer;flex-shrink:0}.sidebar-close:hover{background:color-mix(in srgb,white 16%,transparent)}.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--surface);color:var(--primary);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.02em;flex-shrink:0;box-shadow:0 8px 18px rgba(10,11,20,.18)}.sidebar-section{padding:4px 10px 8px}.sidebar-section-nav{flex:1 1;min-height:0;display:flex;flex-direction:column}.sidebar-section-label{margin:0 0 8px;padding:0 8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--on-deep) 55%,transparent)}.sidebar-repos{display:flex;flex-direction:column;gap:4px}.sidebar-repo{gap:2px;padding:2px;border:1px solid transparent;border-radius:12px;color:var(--sidebar-ink);width:100%;transition:background .14s var(--ease-out),border-color .14s var(--ease-out),color .14s var(--ease-out)}.sidebar-repo,.sidebar-repo-open{display:flex;align-items:center;background:transparent;min-width:0}.sidebar-repo-open{gap:10px;flex:1 1;padding:9px 8px 9px 10px;border:0;border-radius:10px;color:inherit;cursor:pointer;text-align:left}.sidebar-repo-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.sidebar-repo:hover{background:color-mix(in srgb,white 10%,transparent);color:var(--on-deep)}.sidebar-repo.is-on{background:color-mix(in srgb,white 14%,transparent);color:var(--on-deep);border-color:color-mix(in srgb,white 16%,transparent)}.sidebar-repo-dot{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--on-deep) 40%,transparent);flex-shrink:0;transition:background .14s,box-shadow .14s}.sidebar-repo.is-on .sidebar-repo-dot{background:var(--live);box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 28%,transparent)}.sidebar-repo-actions{display:flex;flex-shrink:0;padding-right:4px}.sidebar-repo-action{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}.sidebar-repo-action:hover:not(:disabled){background:color-mix(in srgb,white 14%,transparent);color:var(--on-deep)}.sidebar-repo-action:disabled{opacity:.35;cursor:default}.sidebar-repo-name{font-size:13px;font-weight:600}.sidebar-repo-name,.sidebar-repo-phase{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sidebar-repo-phase{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:color-mix(in srgb,var(--on-deep) 78%,transparent)}.sidebar-repo.is-scanning{border-color:color-mix(in srgb,white 20%,transparent);background:color-mix(in srgb,white 10%,transparent)}.sidebar-repo.is-scanning .sidebar-repo-dot{background:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.25)}.sidebar-badge{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1}.sidebar-badge-risk{background:var(--risk);color:#fff}.sidebar-badge-warn{background:var(--warn);color:#fff}.sidebar-nav{display:flex;flex-direction:column;gap:3px;padding-bottom:4px}.sidebar-nav-item{display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--sidebar-ink);cursor:pointer;transition:background .14s var(--ease-out),color .14s var(--ease-out),border-color .14s var(--ease-out),transform .14s var(--ease-out);text-align:left;width:100%}.sidebar-nav-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.sidebar-nav-label{font-size:13px;font-weight:600;line-height:1.2}.sidebar-nav-hint{font-size:11px;line-height:1.3;color:color-mix(in srgb,var(--on-deep) 48%,transparent)}.sidebar-nav-item:hover{background:color-mix(in srgb,white 10%,transparent);color:var(--on-deep)}.sidebar-nav-item.is-on{background:var(--surface);color:var(--primary);border-color:transparent;box-shadow:0 10px 24px rgba(10,11,20,.16)}.sidebar-nav-item.is-on .sidebar-nav-hint{color:color-mix(in srgb,var(--primary) 62%,var(--muted))}.sidebar-nav-item svg{flex-shrink:0;margin-top:1px}.sidebar-scan{position:relative;z-index:1;padding:14px 12px calc(14px + env(safe-area-inset-bottom, 0px));border-top:1px solid color-mix(in srgb,white 14%,transparent);background:color-mix(in srgb,black 12%,transparent)}.sidebar-scan,.sidebar-scan form{display:flex;flex-direction:column;gap:8px}.sidebar-scan-input{width:100%;padding:11px 12px;border:1px solid color-mix(in srgb,white 18%,transparent);border-radius:12px;background:color-mix(in srgb,white 8%,transparent);color:var(--on-deep);font-size:13px;outline:none}.sidebar-scan-input::placeholder{color:color-mix(in srgb,var(--on-deep) 45%,transparent)}.sidebar-scan-input:focus{border-color:color-mix(in srgb,white 55%,transparent);background:color-mix(in srgb,white 14%,transparent)}.sidebar-scan-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 12px;border:1px solid transparent;border-radius:12px;background:var(--surface);color:var(--primary);font-size:13px;font-weight:700;cursor:pointer;transition:transform .14s var(--ease-out),background .14s var(--ease-out)}.sidebar-scan-btn:hover:not(:disabled){transform:translateY(-1px);background:#f8f9ff}.sidebar-scan-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.sidebar-error{padding:8px 10px;border-radius:10px;background:var(--risk-soft);color:var(--risk);font-size:12px}.sidebar-overlay{display:none}@keyframes spin{to{transform:rotate(1turn)}}.spin-icon{animation:spin .9s linear infinite}.main-area{flex:1 1;min-width:0;display:flex;flex-direction:column;height:100dvh;overflow:hidden}.topbar{display:none;align-items:center;gap:12px;padding:env(safe-area-inset-top,0) 14px 0;min-height:calc(var(--topbar-h) + env(safe-area-inset-top, 0px));background:linear-gradient(180deg,var(--blue-deep),var(--primary));z-index:20;border-bottom:1px solid color-mix(in srgb,white 12%,transparent)}.topbar,.topbar-menu{color:var(--on-deep);flex-shrink:0}.topbar-menu{width:40px;height:40px;border:1px solid color-mix(in srgb,white 16%,transparent);border-radius:12px;background:color-mix(in srgb,white 8%,transparent);cursor:pointer;padding:0;display:grid;place-items:center}.topbar-menu:hover{background:color-mix(in srgb,white 14%,transparent)}.topbar-copy{min-width:0;flex:1 1;display:flex;flex-direction:column;gap:1px}.topbar-title{font-size:14px;font-weight:700;min-width:0}.topbar-section,.topbar-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-section{font-size:12px;font-weight:500;color:color-mix(in srgb,var(--on-deep) 68%,transparent)}.main-canvas{flex:1 1;overflow-y:auto;min-width:0}.command,.plaque{background:var(--primary);color:var(--on-deep)}.plaque-inner,.previews{width:min(var(--max),100%);margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}.plaque{position:relative;overflow:hidden;padding:64px 0 56px;min-height:52vh;background:radial-gradient(900px 420px at 100% 0,color-mix(in srgb,white 16%,transparent),transparent 55%),linear-gradient(145deg,var(--blue-deep) 0,var(--primary) 52%,var(--blue-bright) 100%)}.plaque:before{content:"";position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,white 14%,transparent) 1px,transparent 0),linear-gradient(90deg,color-mix(in srgb,white 14%,transparent) 1px,transparent 0);background-size:80px 80px;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 88%);mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 88%)}.plaque h1{font-size:clamp(44px,6.4vw,76px);font-weight:800;line-height:.96;letter-spacing:-.045em;max-width:12ch}.plaque-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px}.plaque-brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:4px}.plaque-brand .brand-mark{width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--on-deep) 16%,transparent);border:1px solid color-mix(in srgb,var(--on-deep) 28%,transparent);color:var(--on-deep);font-size:12px}.plaque-brand-name{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.03em;color:var(--on-deep)}.plaque .kicker{color:color-mix(in srgb,var(--on-deep) 72%,transparent)}.plaque p{max-width:42rem;font-size:16px;line-height:1.55;color:color-mix(in srgb,var(--on-deep) 84%,transparent)}.scan-form{display:flex;gap:8px;width:100%;max-width:36rem;min-width:0;margin:0}.scan-form input{flex:1 1;min-width:0;padding:12px 16px;border:1px solid color-mix(in srgb,var(--on-deep) 32%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--on-deep) 8%,transparent);color:var(--on-deep);outline:none}.scan-form input::placeholder{color:color-mix(in srgb,var(--on-deep) 62%,transparent)}.scan-form input:focus,.scan-form input:hover{border-color:var(--on-deep)}.scan-form input:focus{background:color-mix(in srgb,var(--on-deep) 14%,transparent)}.btn-solid{padding:12px 18px;border:1px solid var(--surface);border-radius:var(--radius-sm);background:var(--surface);color:var(--primary);cursor:pointer;font-weight:500;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.btn-solid:hover:not(:disabled){background:var(--text);border-color:var(--text);color:var(--on-deep);transform:translateY(-1px)}.btn-solid:active:not(:disabled){background:var(--blue-deep);border-color:var(--blue-deep);color:var(--on-deep)}.btn-solid:disabled{opacity:.5;cursor:not-allowed}.lang-note{display:flex;align-items:flex-start;gap:0;max-width:36rem;font-size:13px!important;color:color-mix(in srgb,var(--on-deep) 72%,transparent)!important;background:color-mix(in srgb,var(--on-deep) 10%,transparent);border:1px solid color-mix(in srgb,var(--on-deep) 20%,transparent);padding:8px 12px!important;margin:0}.lang-note,.unscored-note{border-radius:var(--radius-sm)}.unscored-note{margin:12px 0 0;padding:10px 14px;background:var(--logic-soft);color:var(--logic);font-size:13px;line-height:1.45;max-width:52rem}.error{padding:12px 16px;border-radius:var(--radius);background:var(--risk-soft);color:var(--risk)}.landing{min-height:100vh}.previews{display:flex;flex-direction:column;gap:16px;padding-top:40px;padding-bottom:64px}.previews-lede{max-width:36rem;margin:-4px 0 8px;color:var(--muted);font-size:15px;line-height:1.5}.preview-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-top:12px}.preview-card{display:flex;flex-direction:column;gap:12px;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out),transform .2s var(--ease-out)}.preview-card:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));box-shadow:var(--shadow-lg);transform:translateY(-2px)}.preview-copy{display:flex;gap:10px;align-items:flex-start;min-width:0;padding:0 2px 2px}.preview-index{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--primary);padding-top:3px;flex-shrink:0}.preview-copy strong{display:block;font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.03em;line-height:1.15;margin-bottom:4px}.preview-copy span{display:block;color:var(--muted);font-size:13px;line-height:1.45}.preview-stage{min-height:108px;height:108px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#fafafb 0,var(--bg) 100%);padding:12px;overflow:hidden;position:relative;flex-shrink:0}.preview-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 5%,transparent),transparent 42%)}.sketch-cover{display:flex;flex-direction:column;gap:10px}.mock-cover-head{display:flex;align-items:center;gap:6px}.mock-dot{width:8px;height:8px;border-radius:50%;background:var(--border)}.mock-dot:first-child{background:#ff5f57}.mock-dot:nth-child(2){background:#febc2e}.mock-dot:nth-child(3){background:#28c840}.mock-cover-head em{margin-left:auto;font-style:normal;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.mock-cover-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;flex:1 1}.mock-cover-grid b{display:flex;align-items:flex-end;min-height:28px;padding:8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:11px;font-weight:600;color:var(--text)}.mock-cover-grid b:last-child{grid-column:1/-1;background:var(--deep);border-color:var(--deep);color:var(--on-deep);min-height:24px}.sketch-rooms{display:flex;flex-direction:column;gap:10px;justify-content:center}.mock-arch-nodes{display:flex;gap:8px}.mock-arch-nodes b{flex:1 1;text-align:center;padding:8px 6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:11px;font-weight:600}.mock-arch-nodes b:nth-child(2){color:var(--logic);border-color:color-mix(in srgb,var(--logic) 35%,var(--border))}.mock-arch-nodes b:nth-child(3){color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}.mock-arch-links{height:2px;margin:0 18%;background:linear-gradient(90deg,var(--border),var(--primary),var(--border));border-radius:2px}.mock-erd-strip{display:flex;gap:6px}.mock-erd-strip em{flex:1 1;font-style:normal;font-size:11px;font-weight:500;text-align:center;padding:8px 6px;border-radius:6px;border:1px dashed color-mix(in srgb,var(--primary) 30%,var(--border));background:color-mix(in srgb,var(--primary) 6%,var(--surface));color:var(--logic)}.sketch-rail{display:flex;flex-direction:column;justify-content:center;gap:12px}.mock-route-chip{align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--logic-soft);color:var(--logic);font-family:var(--font-mono);font-size:11px;font-weight:500}.mock-flow-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mock-flow-steps span{padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:11px;font-weight:600;color:var(--text)}.mock-flow-steps i{width:14px;height:2px;background:var(--primary);flex-shrink:0}.sketch-table{display:flex;flex-direction:column;gap:10px;justify-content:center}.mock-ep-filters{display:flex;gap:6px}.mock-ep-filters em{font-style:normal;font-size:11px;font-weight:600;padding:4px 9px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted)}.mock-ep-filters em:first-child{background:var(--primary);border-color:var(--primary);color:var(--on-deep)}.mock-ep-rows{display:flex;flex-direction:column;gap:6px}.mock-ep-rows span{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-family:var(--font-mono);font-size:10px;color:var(--text)}.mock-ep-rows b{font-size:10px;font-weight:700;color:var(--primary);min-width:2.4rem}.sketch-shelves{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:8px;gap:8px;align-items:stretch}.mock-dep-card{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:8px;border:1px solid var(--border);background:var(--surface)}.mock-dep-card strong{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.mock-dep-card code{font-size:11px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:3px 6px}.sketch-term{display:flex;flex-direction:column;justify-content:center;gap:8px;background:var(--blue-deep)!important;border-color:var(--blue-deep)!important}.sketch-term:after{display:none}.mock-term-label{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--on-deep) 65%,transparent)}.sketch-term code{color:var(--on-deep);font-size:13px;font-weight:500}.sketch-risk{display:flex;flex-direction:column;justify-content:center;gap:10px}.mock-path{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mock-path span{padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:11px;font-weight:600}.mock-path span.is-hot{border-color:color-mix(in srgb,var(--risk) 40%,var(--border));background:var(--risk-soft);color:var(--risk)}.mock-path i{width:12px;height:2px;background:var(--border);flex-shrink:0}.mock-path.is-dim{opacity:.45}.sketch-signals{display:flex;align-items:stretch;gap:8px}.mock-signal{flex:1 1;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface)}.mock-signal s{width:10px;height:10px;border-radius:50%;background:var(--border);text-decoration:none}.mock-signal.is-on s{background:var(--live)}.mock-signal em{font-style:normal;font-size:12px;font-weight:600;color:var(--text)}@media (max-width:980px){.preview-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.preview-rail{grid-template-columns:1fr}.plaque{min-height:auto;padding:48px 0 40px}}.canvas{gap:28px;padding:28px var(--gutter) 48px;max-width:var(--max);margin:0 auto}.canvas,.page-head{display:flex;flex-direction:column}.page-head{gap:6px}.arch-board,.arch-erd,.cover,.diagram-block,.env-block,.finding-block,.flow-diagrams,.flow-page,.runbook{display:flex;flex-direction:column;gap:16px;min-width:0;max-width:100%}.arch-board,.cover,.diagram-block,.flow-page,.runbook{gap:28px}.overview-header{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.overview-header-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:10px}.overview-meta-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.overview-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface,#f7f8fa);color:var(--text);font-size:12px;font-weight:500;line-height:1.3}.overview-chip.is-muted{color:var(--muted)}.overview-chip.is-action{cursor:pointer;background:transparent;color:var(--primary,#173ded);border-color:color-mix(in srgb,var(--primary,#173ded) 28%,var(--border))}.overview-chip.is-action:hover{background:color-mix(in srgb,var(--primary,#173ded) 8%,transparent)}.risk-pill{display:none}.figures{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr))}.figure,.figure-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);min-width:0;display:flex;flex-direction:column;gap:6px}.figure-btn{cursor:pointer;text-align:left;transition:border-color .2s var(--ease-out),transform .2s var(--ease-out)}.figure-btn:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));transform:translateY(-2px)}.figure b,.figure-btn b{font-size:26px;font-weight:700;line-height:1;letter-spacing:-.04em;font-family:var(--font-display);color:var(--primary)}.figure span,.figure-btn span{color:var(--muted);font-size:12px;font-weight:500}.fact-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}.fact-grid div{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);min-width:0}.fact-grid dt{font-family:var(--font-mono);font-size:11px;font-weight:500;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.fact-grid .is-wide{grid-column:1/-1}.fact-grid dd{margin:0;font-size:14px;line-height:1.5;overflow-wrap:break-word;font-weight:500}.finding-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.link-btn{border:none;background:none;color:var(--primary);cursor:pointer;font-size:13px;font-weight:500;padding:0;text-decoration:none}.link-btn:hover{text-decoration:underline}.finding-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.finding-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);min-width:0}.finding-card strong{font-size:14px;font-weight:600;line-height:1.2;overflow-wrap:break-word}.finding-card p{color:var(--muted);overflow-wrap:break-word}.finding-file{color:var(--primary);text-decoration:none}a.finding-file:hover{text-decoration:underline}a.finding-file:active{color:var(--deep)}.tag{display:inline-block;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:600;line-height:1.4}.tag-broken_relation,.tag-scope_gap{background:var(--risk-soft);color:var(--risk)}.tag-n_plus_one,.tag-parse_error{background:var(--warn-soft);color:var(--warn)}.tag-incomplete{background:var(--logic-soft);color:var(--logic)}.scan-actions{display:flex;flex-wrap:wrap;gap:8px}.btn-ghost{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font-size:13px;font-weight:500}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.diff-card{display:flex;flex-direction:column;gap:14px;padding:var(--pad);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.diff-head p{margin:4px 0 0;color:var(--muted)}.diff-stats{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}.diff-stats article{display:flex;flex-direction:column;gap:2px;min-width:0}.diff-stats em,.diff-stats span{color:var(--muted);font-style:normal;font-size:12px}.diff-stats strong{font-size:16px}.finding-card.is-removed{opacity:.72}.endpoint-board{display:flex;flex-direction:column;gap:12px;min-width:0}.endpoint-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.endpoint-search{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1 1;min-width:min(100%,220px)}.endpoint-search input{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.method-filters{display:flex;flex-wrap:wrap;gap:6px}.method-filters button{padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:12px;font-weight:600}.method-filters button.is-on{border-color:var(--primary);background:var(--logic-soft);color:var(--primary)}.endpoint-scroll{overflow-x:auto}.endpoint-table{width:100%;border-collapse:collapse;font-size:14px}.endpoint-table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border)}.endpoint-table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.endpoint-table code{font-family:var(--font-mono);font-size:13px}.method{display:inline-block;min-width:52px;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700;text-align:center;background:var(--logic-soft);color:var(--logic)}.method-get{background:var(--ok-soft);color:var(--ok)}.method-delete{background:var(--risk-soft);color:var(--risk)}.method-patch,.method-put{background:var(--warn-soft);color:var(--warn)}.arch-scroll{max-width:100%;min-width:0;overflow-x:auto;padding-bottom:8px}.arch-flow{position:relative;display:flex;align-items:flex-start;gap:40px;width:max-content;min-width:100%;padding-bottom:48px}.arch-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;color:color-mix(in srgb,var(--muted) 60%,transparent);z-index:0}.arch-wires path{fill:none;stroke:currentColor;stroke-width:1.5}.arch-lane{position:relative;z-index:1;flex:0 0 200px;width:200px;display:flex;flex-direction:column;gap:10px}.arch-lane-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.arch-lane-cards{gap:10px}.arch-lane-cards,.arch-mod{display:flex;flex-direction:column}.arch-mod{align-items:flex-start;gap:6px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;cursor:pointer;transition:border-color .2s var(--ease-out),transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}.arch-mod:hover:not(.is-open){border-color:color-mix(in srgb,var(--primary) 45%,var(--border));transform:translateY(-2px)}.arch-mod-top{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.arch-mod-dot{width:8px;height:8px;border-radius:8px;flex-shrink:0;background:var(--muted)}.arch-mod.is-db .arch-mod-dot{background:var(--ok)}.arch-mod.is-logic .arch-mod-dot{background:var(--logic)}.arch-mod.is-risk .arch-mod-dot{background:var(--risk)}.arch-mod-name{flex:1 1;min-width:0;font-size:13px;font-weight:600;line-height:1.2;overflow-wrap:break-word}.arch-mod-count{font-weight:500}.arch-mod-about,.arch-mod-count{font-size:12px;color:var(--muted)}.arch-mod-about{overflow-wrap:break-word}.arch-mod-classes{width:100%;margin:0;padding:8px 0 0;list-style:none;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}button.arch-mod.is-open{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 22%,transparent)}.arch-erd{display:flex;flex-direction:column;gap:0}.arch-erd .erd-canvas{display:flex;justify-content:center;align-items:flex-start;width:100%;min-height:200px;max-height:min(56vh,520px);overflow:auto;padding:20px 16px 24px;background-color:#f7f8fc;background-image:radial-gradient(circle at 1px 1px,rgba(23,61,237,.1) 1px,transparent 0);background-size:18px 18px}.arch-erd .diagram-wrap.is-erd{position:relative;min-height:160px}.arch-erd .diagram-scroll.is-erd,.arch-erd .diagram-wrap.is-erd{width:100%;border:0;background:transparent;max-height:none;padding:0;overflow:visible}.route-selector{display:flex;flex-direction:column;gap:8px}.route-selector-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.chart-switch{flex-wrap:wrap}.chart-switch,.tab{display:flex;gap:6px}.tab{padding:7px 12px;font-size:13px;font-weight:500;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;transition:background-color .12s,border-color .12s;align-items:center;max-width:100%;overflow-wrap:break-word}.tab:hover:not(.is-on){border-color:var(--primary);background:var(--bg)}.tab.is-on{background:var(--primary);border-color:var(--primary);color:var(--on-deep)}.route-kind-dot{display:block;width:7px;height:7px;border-radius:50%;background:var(--muted);flex-shrink:0}.tab.is-on .route-kind-dot{background:rgba(255,255,255,.55)}.tab .rk-http{background:var(--primary)}.tab .rk-job{background:var(--warn)}.flow-tabs{display:flex;gap:4px;padding:4px;background:var(--bg);border:1px solid var(--border);border-radius:10px;width:-moz-fit-content;width:fit-content}.flow-tab{padding:6px 14px;font-size:13px;font-weight:500;border:none;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.flow-tab:hover:not(.is-on){background:rgba(0,0,0,.04);color:var(--text)}.flow-tab.is-on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(10,11,20,.06)}.seq-callout{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:8px;background:var(--ok-soft);color:var(--ok);font-size:13px}.seq-callout svg{flex-shrink:0;margin-top:1px}.flow-legend{display:flex;flex-wrap:wrap;gap:12px 16px}.fl-item{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.fl-item i{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0}.fl-db i{background:var(--ok)}.fl-logic i{background:var(--logic)}.rail,.rails{display:flex;flex-direction:column;gap:14px}.rail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);min-width:0}.rail.is-risk{border-color:color-mix(in srgb,var(--risk) 50%,var(--border))}.rail-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.rail-kind-badge{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:var(--bg);color:var(--muted)}.rail-hop-count{font-size:12px;font-weight:500;color:var(--muted);margin-left:auto}.rail-head strong{flex:1 1 160px;min-width:0;font-size:14px;font-weight:600;line-height:1.2;overflow-wrap:break-word}.flow-chain{list-style:none;margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:6px;border-left:2px solid var(--border)}.flow-origin,.flow-step{display:flex;align-items:center;gap:12px;width:100%;min-width:0}.flow-origin{padding:6px 0;color:var(--muted);font-size:13px}.flow-step{padding:10px 14px;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .1s,box-shadow .1s}.flow-step:hover:not(.is-on),button.flow-step.is-on{border-color:var(--primary)}button.flow-step.is-on{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.fs-num{width:22px;font-family:var(--font-mono);font-size:12px;font-weight:600;line-height:1.2;text-align:center}.fs-num,.hop-icon{flex-shrink:0;color:var(--muted)}.hop-icon{width:16px;height:16px}.flow-step.is-db .hop-icon{color:var(--ok)}.flow-step.is-logic .hop-icon{color:var(--logic)}.fs-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.fs-role{font-size:11px;font-weight:600;line-height:1.2;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.flow-step.is-db .fs-role{color:var(--ok)}.flow-step.is-logic .fs-role{color:var(--logic)}.fs-name{font-size:13px;font-weight:600;color:var(--text)}.fs-caret{width:7px;height:7px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg);flex-shrink:0;color:var(--muted)}.fs-caret.is-open{transform:rotate(-135deg)}.method-panel{margin:4px 0 0 34px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);display:flex;flex-direction:column;gap:8px}.method-panel h5{margin:0;font-size:13px;font-weight:600;line-height:1.2;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role{color:var(--muted);font-weight:400}.role-badge{padding:2px 7px;border-radius:5px;letter-spacing:.04em;background:var(--bg)}.method-heading,.role-badge{font-size:11px;font-weight:600;color:var(--muted)}.method-heading{line-height:1.2;letter-spacing:.06em;text-transform:uppercase}.method-row{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.mark{display:inline-block;margin:0 6px 4px 0;padding:3px 7px;border-radius:6px;background:var(--bg);color:var(--muted);font-size:12px}.mark-tenant{background:var(--risk-soft);color:var(--risk)}.mark-call{background:var(--logic-soft);color:var(--logic)}.rail-notes{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.rail-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;overflow-wrap:break-word;font-size:13px}.dep-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:start}.dep-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);min-width:0}.dep-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.dep-card-head h3{font-size:13px;font-weight:600;line-height:1.2}.dep-count{color:var(--muted);font-weight:500;font-size:13px}.dep-libs{list-style:none;margin:10px 0 0;padding:0}.dep-libs li{padding:7px 0;border-top:1px solid var(--border);font-size:12px}.run-hero{position:relative;overflow:hidden;background:radial-gradient(520px 180px at 100% -20%,color-mix(in srgb,white 18%,transparent),transparent 55%),linear-gradient(145deg,var(--blue-deep) 0,var(--primary) 48%,var(--blue-bright) 100%);color:var(--on-deep);border-radius:var(--radius);padding:22px 24px;display:flex;flex-direction:column;gap:10px}.run-hero .eyebrow{color:color-mix(in srgb,var(--on-deep) 72%,transparent)}.run-hero code{color:var(--on-deep);font-weight:500;font-size:13px}.run-hero-note{margin:0;font-size:12px;color:color-mix(in srgb,var(--on-deep) 68%,transparent)}.runbook-stack{display:flex;flex-wrap:wrap;gap:8px}.runbook-block{gap:12px}.runbook-block,.runbook-empty{display:flex;flex-direction:column}.runbook-empty{gap:8px;padding:18px 20px;border:1px dashed var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 70%,var(--bg))}.runbook-empty code{font-size:12px}.run-grid,.starts{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.run-card,.start-card{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad)}.run-card small,.start-card span{color:var(--muted);font-size:12px}.start-card strong{font-size:14px;font-weight:600;line-height:1.2;overflow-wrap:break-word}.env-block{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad)}.env-grid{display:flex;flex-wrap:wrap;gap:6px}.env-grid code{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.rule{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin:0;padding:0;list-style:none}.rule li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad);color:var(--muted);font-size:13px}.rule b{display:block;margin-bottom:6px;font-size:13px;font-weight:600;line-height:1.2;color:var(--text)}.rule .is-warn b{color:var(--warn)}.rule .is-risk b{color:var(--risk)}.signals{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.signals li{display:grid;grid-template-columns:8px 120px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:baseline;padding:12px 16px}.signals li+li{border-top:1px solid var(--border)}.signals strong{font-size:13px;font-weight:600;line-height:1.2}.signals span{color:var(--muted);font-size:13px;overflow-wrap:break-word}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.dot-ok{background:var(--ok)}.dot-miss{background:var(--risk)}.dot-unknown{background:var(--border)}.diagram-panel{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-lg)}.diagram-panel-head{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 5%,var(--surface)),var(--surface))}.diagram-panel-hint{margin:0;font-size:12px;color:var(--muted)}.diagram-panel-empty{padding:28px 20px}.diagram-toolbar{justify-content:space-between;gap:10px}.diagram-toolbar,.diagram-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center}.diagram-toolbar-actions{gap:6px}.diagram-canvas{position:relative;min-height:480px;max-height:78vh;overflow:auto;padding:32px 24px;background-color:#f7f8fc;background-image:linear-gradient(90deg,rgba(23,61,237,.07) 1px,transparent 0),linear-gradient(180deg,rgba(23,61,237,.07) 1px,transparent 0);background-size:24px 24px}.diagram-canvas.is-flow{min-height:320px;max-height:70vh}.diagram-canvas:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(680px 280px at 0 0,color-mix(in srgb,var(--primary) 8%,transparent),transparent 60%),radial-gradient(520px 240px at 100% 100%,color-mix(in srgb,var(--primary) 6%,transparent),transparent 55%)}.diagram-zoom-frame{position:relative;z-index:1}.diagram-zoom{width:max-content;transform-origin:top left}.zoom-readout{min-width:3.2rem;text-align:center;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);padding:0 4px;font-family:var(--font-mono)}.erd-head-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px}.erd-head-row .section-title{margin-bottom:4px}.erd-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;font-weight:500;color:var(--muted)}.erd-legend span{display:inline-flex;align-items:center;gap:6px}.erd-swatch{width:12px;height:12px;border-radius:3px;border:1.5px solid var(--border);background:var(--surface);flex-shrink:0}.erd-swatch.is-entity{border-color:var(--primary);background:#eef2ff}.erd-swatch.is-key{border-color:var(--logic);background:linear-gradient(135deg,#eef2ff 50%,#f7f8fc 0)}.erd-swatch.is-rel{border:0;height:2px;width:16px;border-radius:2px;background:#3d4460}.diagram-detail{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 4%,var(--surface)),var(--surface));box-shadow:inset 3px 0 0 var(--primary)}.diagram-detail div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.diagram-detail strong{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.02em}.diagram-detail span{font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--primary);background:var(--logic-soft);border-radius:999px;padding:2px 8px}.diagram-detail code{display:inline-block;font-size:12px;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.diagram-detail p{color:var(--muted);margin:0}.diagram-detail a{color:var(--primary);font-weight:600;font-size:13px;text-decoration:none}.diagram-detail a:hover{text-decoration:underline}.diagram-detail ul{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0;padding:0;list-style:none}.diagram-detail li{font-size:12px;padding:4px 8px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--muted)}.diagram-detail li code{border:0;background:transparent;padding:0;color:var(--text);font-size:12px}.diagram-wrap{position:relative;min-height:48px;z-index:1}.diagram-wrap.is-loading .diagram-scroll{opacity:.35;min-height:72px}.diagram-canvas .diagram-wrap.is-loading{min-height:220px}.diagram-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--primary);background:color-mix(in srgb,var(--surface) 72%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.diagram-loading span{font-size:13px;font-weight:500;color:var(--muted)}.diagram-loading .spin-icon{color:var(--primary)}.diagram-scroll svg g.node.is-class{cursor:pointer}.diagram-scroll svg g.node.is-picked path,.diagram-scroll svg g.node.is-picked polygon,.diagram-scroll svg g.node.is-picked rect{stroke:#173ded!important;stroke-width:2.5px!important;filter:drop-shadow(0 0 0 2px color-mix(in srgb,#173ded 25%,transparent))}.diagram-canvas .diagram-scroll svg,.erd-canvas .diagram-scroll svg{filter:drop-shadow(0 4px 14px rgba(18,52,153,.08))}.erd-canvas .diagram-scroll svg .er.entityBox,.erd-canvas .diagram-scroll svg rect.er.entityBox{fill:#ffffff!important;stroke:#173ded!important;stroke-width:1.5px!important}.erd-canvas .diagram-scroll svg .er.attributeBoxOdd{fill:#f7f8fc!important}.erd-canvas .diagram-scroll svg .er.attributeBoxEven{fill:#eef2ff!important}.erd-canvas .diagram-scroll svg .er.relationshipLabelBox{fill:#ffffff!important}.diagram-canvas .diagram-scroll svg .cluster rect,.diagram-canvas .diagram-scroll svg .node polygon,.diagram-canvas .diagram-scroll svg .node rect{filter:drop-shadow(0 2px 6px rgba(18,52,153,.06))}.diagram-scroll{max-width:100%;overflow-x:auto;padding-bottom:8px}.diagram-scroll svg{display:block;height:auto}.diagram-scroll.is-erd svg{max-width:100%;height:auto}.scan-work{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad)}.scan-work-top{display:flex;align-items:flex-start;gap:12px}.scan-work-top>div{flex:1 1;min-width:0}.scan-work-top p{color:var(--primary)}.scan-work-top p,.scan-work-top strong{font-size:13px;font-weight:600;line-height:1.2}.scan-work-top strong{display:block;margin-top:4px;overflow-wrap:break-word}.scan-work-top b{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}.working-pulse{width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--primary);flex-shrink:0;animation:working-pulse 1.4s ease-out infinite}.working-bar{height:3px;border-radius:8px;background:var(--border);overflow:hidden}.working-bar span{display:block;height:100%;width:0;background:var(--primary)}.working-bar span.is-indet{width:32%;animation:working-indet 1.1s ease-in-out infinite}.scan-file{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:8px;background:var(--bg)}.scan-file span{font-size:13px;font-weight:600;line-height:1.2;color:var(--muted)}.file{color:var(--muted);font-size:12px}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sidebar-nav-item:focus-visible,.sidebar-repo-action:focus-visible,.sidebar-repo-open:focus-visible,.sidebar-scan-btn:focus-visible,.sidebar-scan-input:focus-visible{outline-color:color-mix(in srgb,var(--on-deep) 80%,transparent)}@keyframes working-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--primary) 45%,transparent)}70%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes working-indet{0%{transform:translateX(-120%)}to{transform:translateX(340%)}}@media (max-width:800px){.signals li{grid-template-columns:8px minmax(0,1fr)}.signals span,.signals strong{grid-column:2}}@media (max-width:720px){:root{--gutter:16px}.plaque{padding:32px 0}.scan-form{flex-direction:column;align-items:stretch}.figures{grid-template-columns:1fr 1fr 1fr}.sidebar-nav-hint{display:none}.sidebar-nav-item{align-items:center;padding:11px 10px}}@media (max-width:900px){:root{--sidebar-w:min(320px,88vw)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);transform:translateX(-105%);transition:transform .28s var(--ease-out);z-index:50;box-shadow:none}.sidebar.is-open{transform:translateX(0);box-shadow:24px 0 48px rgba(10,11,20,.28)}.sidebar-close{display:grid}.sidebar-overlay{display:block;position:fixed;inset:0;border:0;padding:0;margin:0;background:rgba(8,12,28,.48);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;cursor:pointer}.topbar{display:flex}.main-area{height:100dvh}.canvas{padding-top:20px}}@media (max-width:480px){.figures{grid-template-columns:1fr 1fr}.sidebar-repo-actions{opacity:1}.topbar-copy{gap:0}}@media (prefers-reduced-motion:reduce){.sidebar,.spin-icon,.working-bar span.is-indet,.working-pulse{animation:none;transition:none}.working-bar span.is-indet{width:100%;transform:none}}