@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_a9dd00d3-module__r1lI4G__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_a9dd00d3-module__r1lI4G__variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_ec76ef60-module__y36ooG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_ec76ef60-module__y36ooG__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#f2efe9;--bg-2:#eae6dd;--panel:#fff;--panel-2:#faf8f3;--ink:#1c1b19;--ink-soft:#3a3a35;--muted:#6c6b66;--muted-2:#95938d;--line:#e6e1d5;--line-2:#d0cabd;--accent:#2e6ed4;--accent-deep:#1e4a91;--accent-soft:#e6efff;--danger:#a83116;--danger-soft:#fadcd0;--ok:#16794e;--ok-soft:#d6f5e3;--warn:#a1620a;--font-sans-stack:var(--font-sans), system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono-stack:var(--font-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.8125rem;--text-md:.875rem;--text-lg:1rem;--text-xl:1.25rem;--text-2xl:1.625rem;--text-3xl:2rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-xs:0 1px 2px #1c1b190d;--shadow-sm:0 1px 3px #1c1b190f, 0 1px 2px #1c1b190a;--shadow-md:0 4px 12px #1c1b190f, 0 1px 3px #1c1b190a;--shadow-lg:0 12px 32px #1c1b191f;--c-gray-bg:#f1efe8;--c-gray-border:#b4b2a9;--c-gray-th:#2c2c2a;--c-gray-ts:#5f5e5a;--c-blue-bg:#e6f1fb;--c-blue-border:#378add;--c-blue-th:#0c447c;--c-blue-ts:#185fa5;--c-purple-bg:#eeedfe;--c-purple-border:#7f77dd;--c-purple-th:#3c3489;--c-purple-ts:#534ab7;--c-teal-bg:#e1f5ee;--c-teal-border:#1d9e75;--c-teal-th:#085041;--c-teal-ts:#0f6e56;--c-amber-bg:#faeeda;--c-amber-border:#ba7517;--c-amber-th:#633806;--c-amber-ts:#854f0b;--c-rose-bg:#ffe4e6;--c-rose-border:#fb7185;--c-rose-th:#881337;--c-rose-ts:#be123c;--c-steel-bg:#e2e8f0;--c-steel-border:#475569;--c-steel-th:#0f172a;--c-steel-ts:#1e293b}html.theme-dark{--bg:#15161a;--bg-2:#1a1b1f;--panel:#1f2026;--panel-2:#25262d;--ink:#f0eee7;--ink-soft:#d9d6cd;--muted:#9a978f;--muted-2:#6c6a64;--line:#2e2f36;--line-2:#3a3b43;--accent:#5ea0ea;--accent-deep:#b4d0f5;--accent-soft:#13294c;--danger:#e88a72;--danger-soft:#3f1d14;--ok:#5ac79b;--ok-soft:#0a2e22;--warn:#e5a84a;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000080;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 12px 32px #0009;--c-gray-bg:#33332e;--c-gray-border:#75736c;--c-gray-th:#e8e6dc;--c-gray-ts:#b4b2a9;--c-blue-bg:#0c3660;--c-blue-border:#85b7eb;--c-blue-th:#b5d4f4;--c-blue-ts:#85b7eb;--c-purple-bg:#2e2870;--c-purple-border:#afa9ec;--c-purple-th:#ceacf6;--c-purple-ts:#afa9ec;--c-teal-bg:#054035;--c-teal-border:#5dcaa5;--c-teal-th:#9fe1cb;--c-teal-ts:#5dcaa5;--c-amber-bg:#4a2c06;--c-amber-border:#ef9f27;--c-amber-th:#fac775;--c-amber-ts:#ef9f27;--c-rose-bg:#4a0e21;--c-rose-border:#fda4af;--c-rose-th:#fecdd3;--c-rose-ts:#fda4af;--c-steel-bg:#1e293b;--c-steel-border:#94a3b8;--c-steel-th:#e2e8f0;--c-steel-ts:#cbd5e1}*{box-sizing:border-box}html,body{margin:0;padding:0}html{font-family:var(--font-sans-stack);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{background:var(--bg);color:var(--ink);font-size:var(--text-base);font-feature-settings:"cv11", "ss01", "ss03";min-height:100vh;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}::selection{background:var(--accent-soft);color:var(--accent-deep)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.app-shell{background:var(--bg);align-items:flex-start;min-height:100vh;display:flex}.app-main{flex:auto;min-width:0}main{margin:0;padding:0;display:block}.app-content{padding:var(--space-4) var(--space-6) var(--space-10);width:100%;max-width:1120px;margin:0 auto}.topbar{z-index:5;align-items:center;gap:var(--space-3);height:52px;padding:0 var(--space-6);background:color-mix(in oklab, var(--panel) 92%, transparent);-webkit-backdrop-filter:saturate(180%)blur(10px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.btn.topbar-menu{display:none}.topbar-title{font-size:var(--text-md);letter-spacing:-.005em;align-items:center;gap:6px;display:flex}.topbar-mode{color:var(--ink);font-weight:600}.topbar-site{color:var(--muted);font-weight:400}.sidebar{background:var(--panel);border-right:1px solid var(--line);z-index:20;flex-direction:column;flex:0 0 260px;align-self:flex-start;width:260px;height:100vh;transition:margin-left .22s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar-head{padding:var(--space-4) var(--space-4) var(--space-4);border-bottom:1px solid var(--line);justify-content:center;align-items:center;display:flex;position:relative}.sidebar-logo{object-fit:contain;width:auto;max-width:100%;height:70px;display:block}.btn.sidebar-close{display:none}.sidebar-head .btn.sidebar-close{top:var(--space-2);right:var(--space-2);position:absolute}.sidebar-nav,.sidebar-section{padding:var(--space-3) var(--space-2);flex-direction:column;gap:1px;display:flex}.sidebar-section{border-top:1px solid var(--line)}.sidebar-section-title{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-3) var(--space-2);font-weight:600}.nav-item{align-items:center;gap:var(--space-2);padding:7px var(--space-3);font:inherit;font-size:var(--text-md);color:var(--ink-soft);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:0;width:100%;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--panel-2);color:var(--ink)}.nav-item:active{background:var(--bg-2)}.nav-item.active{background:var(--ink);color:var(--panel)}html.theme-dark .nav-item.active{background:var(--accent-soft);color:var(--accent-deep)}.nav-item svg{stroke-width:2px;flex-shrink:0;width:16px;height:16px}.nav-item.action-primary{color:var(--accent)}.nav-item.action-primary:hover{background:var(--accent-soft);color:var(--accent-deep)}.nav-item.danger{color:var(--danger)}.nav-item.danger:hover{background:var(--danger-soft)}.stat-row{align-items:center;gap:var(--space-2);padding:6px var(--space-3);font:inherit;border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:22px 1fr auto;width:100%;transition:background .12s;display:grid}.stat-row:hover{background:var(--panel-2)}.stat-icon{color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.stat-icon svg{width:15px;height:15px}.stat-label{font-size:var(--text-sm);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.stat-count{font-size:var(--text-sm);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;min-width:20px;font-weight:600}.stat-count.muted{color:var(--muted-2);font-weight:500}.sidebar-foot{padding:var(--space-3) var(--space-2) var(--space-3);border-top:1px solid var(--line);flex-direction:column;gap:1px;margin-top:auto;display:flex}.sidebar-version{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--muted-2);letter-spacing:.01em}.sidebar-scrim{background:color-mix(in oklab, var(--ink) 40%, transparent);z-index:15;display:none;position:fixed;inset:0}@media (max-width:1023px){.sidebar{box-shadow:var(--shadow-lg);flex:none;transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-scrim{display:block}.btn.topbar-menu,.btn.sidebar-close{display:inline-flex}.app-content{padding:var(--space-4) var(--space-4) var(--space-10)}}.app-header{display:none}.btn{background:var(--panel);color:var(--ink);border:1px solid var(--line);height:34px;padding:0 var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--text-md);align-items:center;gap:var(--space-2);white-space:nowrap;font-weight:500;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.btn:hover{border-color:var(--line-2);background:var(--panel-2)}.btn:active{background:var(--bg-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{stroke-width:2px;width:15px;height:15px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn.primary:active{background:var(--accent-deep)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--panel-2);color:var(--ink);border-color:var(--line)}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:var(--danger);background:var(--danger-soft)}.btn.icon-only{justify-content:center;width:34px;padding:0}.btn.sm{height:28px;padding:0 var(--space-2);font-size:var(--text-sm)}.btn.sm svg{width:13px;height:13px}.seg{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);gap:2px;padding:2px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);padding:0 var(--space-3);cursor:pointer;height:28px;font:inherit;font-size:var(--text-md);border-radius:calc(var(--radius-sm) - 2px);background:0 0;border:0;align-items:center;gap:6px;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.seg button:hover{color:var(--ink);background:var(--panel-2)}.seg button.active,html.theme-dark .seg button.active{background:var(--ink);color:var(--panel)}.seg button svg{width:14px;height:14px}.seg.small button{height:26px;padding:0 var(--space-3);font-size:var(--text-sm)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-3)}h2.section-title{font-size:var(--text-md);margin:0 0 var(--space-3);color:var(--ink);align-items:center;gap:var(--space-2);letter-spacing:-.005em;font-weight:600;display:flex}h2.section-title svg{width:16px;height:16px;color:var(--muted)}.pill{background:var(--bg-2);color:var(--ink-soft);font-size:var(--text-xs);padding:1px var(--space-2);letter-spacing:.02em;border-radius:10px;font-weight:600}.section-add{font-size:var(--text-sm);color:var(--accent);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;gap:4px;margin-left:auto;font-weight:500;display:inline-flex}.section-add:hover{background:var(--accent-soft)}.section-add svg{width:13px;height:13px}.section-card.collapsed{padding:var(--space-3) var(--space-5)}.section-card.collapsed h2.section-title{margin:0}.section-title-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.section-title-toggle:hover .section-chevron{color:var(--ink)}.section-preview{margin-left:var(--space-2);font-size:var(--text-sm);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:400;overflow:hidden}.section-chevron{color:var(--muted-2);justify-content:center;align-items:center;transition:transform .18s,color .12s;display:inline-flex}.section-chevron svg{width:16px;height:16px}.section-chevron.collapsed{transform:rotate(-90deg)}.collapse-toolbar{margin-bottom:var(--space-3);justify-content:flex-end;display:flex}.meta-grid,.grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.grid label,.meta-grid label{font-size:var(--text-xs);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;gap:5px;font-weight:500;display:flex}.grid label.full,.meta-grid label.full{grid-column:1/-1}input[type=text],input[type=date],input[type=search],input[type=password],input[type=file],textarea,select{font:inherit;font-size:var(--text-md);color:var(--ink);padding:8px var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:100%;line-height:1.4;transition:border-color .12s,background .12s,box-shadow .12s}input:hover,textarea:hover,select:hover{border-color:var(--line-2)}input:focus,textarea:focus,select:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 20%, transparent);outline:none}textarea{resize:vertical;min-height:64px;line-height:1.5}select{cursor:pointer}html.theme-dark input,html.theme-dark textarea,html.theme-dark select{background:var(--bg-2)}html.theme-dark input:focus,html.theme-dark textarea:focus,html.theme-dark select:focus{background:var(--bg)}.items{gap:var(--space-3);flex-direction:column;display:flex}.item{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);background:var(--panel-2);transition:border-color .12s,box-shadow .12s}.item:hover{border-color:var(--line-2);box-shadow:var(--shadow-xs)}.item-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.item-head .name{font-weight:600;font-size:var(--text-md);color:var(--ink);letter-spacing:-.005em;flex:1}.item-head button{cursor:pointer;color:var(--muted-2);border-radius:var(--radius-xs);background:0 0;border:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;transition:background .12s,color .12s;display:inline-flex}.item-head button:hover{background:var(--bg-2);color:var(--ink)}.item-head button.del:hover{color:var(--danger);background:var(--danger-soft)}.item-head button svg{width:14px;height:14px}.empty-items{text-align:center;color:var(--muted-2);padding:var(--space-5);font-style:italic;font-size:var(--text-sm)}.inv-search{width:100%;margin-bottom:var(--space-3);height:38px}.inv-filter-bar{gap:var(--space-2);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.inv-chip{background:var(--panel);border:1px solid var(--line);cursor:pointer;font:inherit;font-size:var(--text-sm);color:var(--muted);border-radius:100px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;transition:all .12s;display:inline-flex}.inv-chip svg{width:13px;height:13px}.inv-chip:hover{border-color:var(--line-2);color:var(--ink);background:var(--panel-2)}.inv-chip.active{background:var(--ink);color:var(--panel);border-color:var(--ink)}.inv-chip-count{background:color-mix(in oklab, var(--ink) 10%, transparent);font-size:var(--text-xs);text-align:center;border-radius:10px;min-width:20px;padding:0 7px;font-weight:600}.inv-chip.active .inv-chip-count{background:#ffffff38}table.inventory{border-collapse:collapse;width:100%;font-size:var(--text-base)}table.inventory th,table.inventory td{border-bottom:1px solid var(--line);padding:10px var(--space-3);text-align:left;vertical-align:middle}table.inventory th{color:var(--muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:var(--panel);border-bottom-color:var(--line-2);position:sticky;top:0}table.inventory th:hover{color:var(--ink)}table.inventory th.sort-asc:after,table.inventory th.sort-desc:after{color:var(--accent);margin-left:4px}table.inventory th.sort-asc:after{content:"↑"}table.inventory th.sort-desc:after{content:"↓"}tr.inv-row{transition:background .1s}tr.inv-row:hover{background:var(--panel-2)}.inv-type-pill{font-size:var(--text-xs);white-space:nowrap;border:1px solid;border-radius:100px;align-items:center;gap:5px;padding:3px 9px 3px 7px;font-weight:600;display:inline-flex}.inv-type-pill svg{width:12px;height:12px}.inv-type-firewalls{background:var(--c-blue-bg);color:var(--c-blue-th);border-color:var(--c-blue-border)}.inv-type-switches{background:var(--c-gray-bg);color:var(--c-gray-th);border-color:var(--c-gray-border)}.inv-type-hypervisors{background:var(--c-purple-bg);color:var(--c-purple-th);border-color:var(--c-purple-border)}.inv-type-vms{background:var(--c-rose-bg);color:var(--c-rose-th);border-color:var(--c-rose-border)}.inv-type-storage{background:var(--c-steel-bg);color:var(--c-steel-th);border-color:var(--c-steel-border)}.inv-type-devices{background:var(--c-gray-bg);color:var(--c-gray-th);border-color:var(--c-gray-border)}.inv-type-aps{background:var(--c-amber-bg);color:var(--c-amber-th);border-color:var(--c-amber-border)}.inv-type-vendors,.inv-type-sub-c-teal{background:var(--c-teal-bg);color:var(--c-teal-th);border-color:var(--c-teal-border)}.inv-type-sub-c-amber{background:var(--c-amber-bg);color:var(--c-amber-th);border-color:var(--c-amber-border)}.inv-type-sub-c-blue{background:var(--c-blue-bg);color:var(--c-blue-th);border-color:var(--c-blue-border)}.inv-ip{font-family:var(--font-mono-stack);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap}.inv-vlan{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.inv-vlan-dot{width:8px;height:8px;box-shadow:0 0 0 1.5px color-mix(in oklab, var(--line) 60%, transparent);border-radius:50%;flex-shrink:0}.vendors-empty{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-10) var(--space-6);color:var(--muted);flex-direction:column;display:flex}.vendors-empty svg{width:36px;height:36px;color:var(--accent);stroke-width:1.6px}.vendors-empty h2{color:var(--ink);font-size:var(--text-lg);margin:0;font-weight:600}.vendors-empty p{max-width:460px;font-size:var(--text-sm);margin:0;line-height:1.55}.vendors-empty .btn{margin-top:var(--space-2)}.vendors-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.vendor-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4) var(--space-4);gap:var(--space-3);border-left:3px solid #0d9488;flex-direction:column;display:flex}.vendor-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.vendor-title h3{font-size:var(--text-md);color:var(--ink);letter-spacing:-.01em;margin:0;font-weight:700}.vendor-software{font-size:var(--text-sm);color:#0f766e;margin-top:2px;font-weight:600}html.theme-dark .vendor-software{color:#5eead4}.vendor-cat{font-size:var(--text-xs);color:#0f766e;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;background:#ccfbf1;border:1px solid #5eead4;border-radius:100px;flex-shrink:0;padding:2px 8px;font-weight:700}html.theme-dark .vendor-cat{color:#5eead4;background:#0d948838;background:lab(54.8779% -35.9849 -3.45019/.22);border-color:#0d948866;border-color:lab(54.8779% -35.9849 -3.45019/.4)}.vendor-contact{font-size:var(--text-sm);flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.vendor-contact li{align-items:center;gap:var(--space-2);color:var(--ink);grid-template-columns:110px 1fr;display:grid}.vendor-contact .vc-label{color:var(--muted);font-weight:500;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:5px;display:inline-flex}.vendor-contact .vc-label svg{width:12px;height:12px}.vendor-contact a{color:var(--accent);overflow-wrap:anywhere;text-decoration:none}.vendor-contact a:hover{text-decoration:underline}.vc-mono{font-family:var(--font-mono-stack);font-size:var(--text-sm)}.vendor-role{font-size:var(--text-sm);color:var(--ink);white-space:pre-wrap;padding-top:var(--space-3);border-top:1px dashed var(--line);line-height:1.5}.vendor-notes{font-size:var(--text-sm);color:var(--muted);white-space:pre-wrap;font-style:italic}.vendors-noresult{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);color:var(--muted-2);grid-column:1/-1;font-style:italic;display:flex}.vendors-noresult svg{width:18px;height:18px}.report-hero{padding:var(--space-8) var(--space-6);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.report-hero h2{margin:0 0 var(--space-2);font-size:var(--text-2xl);letter-spacing:-.025em;color:var(--ink);font-weight:700;line-height:1.15}.report-hero-meta{gap:var(--space-5);color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.report-hero-meta strong{color:var(--ink-soft);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;margin-right:6px}.report-hero-notes{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:var(--radius-sm);white-space:pre-wrap;font-size:var(--text-base);color:var(--ink-soft);line-height:1.55}.report-controls{gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;display:flex}.toggle-check{font-size:var(--text-sm);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.toggle-check input{accent-color:var(--accent)}.modal-bg{background:color-mix(in oklab, var(--ink) 60%, transparent);z-index:100;padding:var(--space-12) var(--space-4);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;max-width:720px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-head{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line);align-items:center;gap:var(--space-3);display:flex}.modal-head h2{font-size:var(--text-lg);letter-spacing:-.015em;flex:1;margin:0;font-weight:600}.modal-head .close{cursor:pointer;color:var(--muted-2);border-radius:var(--radius-sm);background:0 0;border:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;display:inline-flex}.modal-head .close:hover{background:var(--panel-2);color:var(--ink)}.modal-body{padding:var(--space-5) var(--space-6) var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.modal-section{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);background:var(--panel-2);flex-direction:column;display:flex}.modal-section h3{font-size:var(--text-md);letter-spacing:-.005em;margin:0;font-weight:600}.modal-section .hint{font-size:var(--text-sm);color:var(--muted);line-height:1.55}.modal-section textarea{min-height:110px;font-family:var(--font-mono-stack);font-size:var(--text-sm)}.status{font-size:var(--text-sm);padding:8px var(--space-3);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-deep);font-weight:500}.status.error{background:var(--danger-soft);color:var(--danger)}.status.success{background:var(--ok-soft);color:var(--ok)}.key-saved{align-items:center;gap:var(--space-2);padding:8px var(--space-3);background:var(--ok-soft);color:var(--ok);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;display:flex}.diagram-wrap{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--panel-2);height:720px;overflow:hidden}.react-flow__renderer,.react-flow__background{background:var(--panel-2)}.react-flow__minimap{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel)!important}.react-flow__controls button{background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line)}.react-flow__controls button:hover{background:var(--accent-soft)}.node-box{border-radius:var(--radius-sm);text-align:center;min-width:160px;font-family:var(--font-sans-stack);border:1px solid;padding:10px 14px}.node-box .nb-title{letter-spacing:-.005em;font-size:13px;font-weight:600}.node-box .nb-sub{margin-top:3px;font-size:11px}.node-box .nb-tag{margin-top:4px;font-size:10px;font-weight:600}.node-box.c-gray{background:var(--c-gray-bg);border-color:var(--c-gray-border)}.node-box.c-gray .nb-title{color:var(--c-gray-th)}.node-box.c-gray .nb-sub{color:var(--c-gray-ts)}.node-box.c-blue{background:var(--c-blue-bg);border-color:var(--c-blue-border)}.node-box.c-blue .nb-title{color:var(--c-blue-th)}.node-box.c-blue .nb-sub{color:var(--c-blue-ts)}.node-box.c-purple{background:var(--c-purple-bg);border-color:var(--c-purple-border)}.node-box.c-purple .nb-title{color:var(--c-purple-th)}.node-box.c-purple .nb-sub{color:var(--c-purple-ts)}.node-box.c-teal{background:var(--c-teal-bg);border-color:var(--c-teal-border)}.node-box.c-teal .nb-title{color:var(--c-teal-th)}.node-box.c-teal .nb-sub{color:var(--c-teal-ts)}.node-box.c-amber{background:var(--c-amber-bg);border-color:var(--c-amber-border)}.node-box.c-amber .nb-title{color:var(--c-amber-th)}.node-box.c-amber .nb-sub{color:var(--c-amber-ts)}.node-box.c-rose{background:var(--c-rose-bg);border-color:var(--c-rose-border)}.node-box.c-rose .nb-title{color:var(--c-rose-th)}.node-box.c-rose .nb-sub{color:var(--c-rose-ts)}.node-box.c-steel{background:var(--c-steel-bg);border-color:var(--c-steel-border)}.node-box.c-steel .nb-title{color:var(--c-steel-th)}.node-box.c-steel .nb-sub{color:var(--c-steel-ts)}.vlan-group{border-radius:var(--radius-lg);padding:var(--space-4);background:0 0;border:1.8px dashed;padding-top:36px;position:relative}.vlan-group-title{top:10px;left:var(--space-4);letter-spacing:.01em;font-size:12px;font-weight:600;font-family:var(--font-sans-stack);position:absolute}.print-only{display:none}:root{--koesio-purple:#7c3aed;--koesio-purple-strong:#6d28d9;--koesio-red:#e11d48}.koesio-frame{box-sizing:border-box;border:1.2pt solid var(--koesio-purple);background:#fff;border-left-width:4.5mm;flex-direction:column;width:100%;height:100%;padding:3mm;display:flex}.koesio-header{border:.8pt solid var(--koesio-purple);grid-template-columns:24mm 1fr 26mm;min-height:12mm;margin-bottom:3mm;display:grid}.koesio-brand{border-right:.8pt solid var(--koesio-purple);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2mm 3mm;display:flex}.koesio-logo{color:var(--koesio-purple);letter-spacing:-.02em;font-size:18pt;font-weight:800;line-height:1;font-family:var(--font-sans-stack)}.koesio-info{border-right:.8pt solid var(--koesio-purple);grid-template-rows:1fr 1fr;display:grid}.koesio-client-name{border-bottom:.8pt solid var(--koesio-purple);text-align:center;color:#2c2c2a;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;padding:0 2mm;font-size:10pt;font-weight:600;line-height:1.1;display:flex;overflow:hidden}.koesio-details{grid-template-columns:1fr 1fr 1fr;display:grid}.koesio-details>div{border-right:.8pt solid var(--koesio-purple);text-align:center;color:#2c2c2a;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;padding:0 2mm;font-size:8.5pt;font-weight:500;line-height:1.1;display:flex;overflow:hidden}.koesio-details>div:last-child{border-right:none}.koesio-client-logo{color:var(--koesio-purple);text-align:center;justify-content:center;align-items:center;padding:2mm;font-size:9pt;font-style:italic;display:flex}.koesio-subheader{color:#5f5e5a;border-bottom:.4pt solid #e8e6dc;margin-bottom:2mm;padding:0 1mm 1.5mm;font-size:8.5pt}.koesio-subheader strong{color:#2c2c2a;font-weight:600}.print-inventory-table{border-collapse:collapse;width:100%;font-size:7.5pt;font-family:var(--font-sans-stack)}.print-inventory-table th{color:#5f5e5a;text-transform:uppercase;letter-spacing:.05em;text-align:left;background:#f0ede8;border-bottom:.5pt solid #b4b2a9;padding:1.8mm 2mm;font-size:6.5pt;font-weight:700}.print-inventory-table td{vertical-align:middle;border-bottom:.3pt solid #e8e6dc;padding:1.2mm 2mm}.print-inventory-table tbody tr:nth-child(odd){background:#fafafa}.pi-type-pill{white-space:nowrap;border:.4pt solid;border-radius:3mm;align-items:center;gap:3px;padding:.4mm 1.5mm;font-size:6.5pt;font-weight:700;display:inline-flex}.pi-type-firewalls{color:#0c447c;background:#e6f1fb;border-color:#378add}.pi-type-switches{color:#2c2c2a;background:#f1efe8;border-color:#b4b2a9}.pi-type-hypervisors{color:#3c3489;background:#eeedfe;border-color:#7f77dd}.pi-type-vms{color:#881337;background:#ffe4e6;border-color:#fb7185}.pi-type-storage{color:#0f172a;background:#e2e8f0;border-color:#475569}.pi-type-devices{color:#2c2c2a;background:#f1efe8;border-color:#b4b2a9}.pi-type-aps{color:#633806;background:#faeeda;border-color:#ba7517}.pi-ip{font-family:var(--font-mono-stack);white-space:nowrap;font-size:7pt}.pi-vlan{white-space:nowrap;align-items:center;gap:1.2mm;display:inline-flex}.pi-vlan-dot{border-radius:50%;width:2mm;height:2mm;display:inline-block}.pi-details{color:#5f5e5a;font-size:7pt}.print-vendors-grid{font-family:var(--font-sans-stack);grid-template-columns:1fr 1fr;gap:3mm;display:grid}.print-vendor-card{color:#2c2c2a;background:#fafafa;border:.4pt solid #b4b2a9;border-left:2pt solid #0d9488;padding:2.5mm 3mm;font-size:8pt}.pvc-head{justify-content:space-between;align-items:baseline;gap:2mm;margin-bottom:1mm;display:flex}.pvc-name{color:#2c2c2a;margin:0;font-size:10pt;font-weight:700}.pvc-cat{color:#0f766e;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;background:#ccfbf1;border:.4pt solid #5eead4;border-radius:2mm;padding:.3mm 1.5mm;font-size:6.5pt;font-weight:700}.pvc-software{color:#0f766e;margin-bottom:1.5mm;font-size:8.5pt;font-weight:600}.pvc-contact{grid-template-columns:22mm 1fr;gap:.3mm 2mm;margin:0 0 1.5mm;font-size:7.5pt;display:grid}.pvc-contact dt{color:#5f5e5a;text-transform:uppercase;letter-spacing:.05em;align-self:center;font-size:6.5pt;font-weight:700}.pvc-contact dd{color:#2c2c2a;margin:0}.pvc-mono{font-family:var(--font-mono-stack);word-break:break-all;font-size:7pt}.pvc-role{color:#2c2c2a;white-space:pre-wrap;border-top:.3pt dashed #b4b2a9;padding-top:1.5mm;font-size:7.5pt;line-height:1.4}.pvc-notes{color:#5f5e5a;white-space:pre-wrap;margin-top:1.2mm;font-size:7pt;font-style:italic}@media print{@page{size:A4 landscape;margin:10mm}html,body{font-size:11px;color:#2c2c2a!important;background:#fff!important;margin:0!important;padding:0!important}html.theme-dark{--bg:#fff;--panel:#fff;--ink:#2c2c2a;--line:#ddd}.app-header,.modal-bg,.screen-only{display:none!important}.print-only{display:block!important}.print-page{page-break-after:always;break-after:page;page-break-inside:avoid;break-inside:avoid;margin:0;padding:0}.print-page:last-child{page-break-after:auto;break-after:auto}.koesio-frame{box-sizing:border-box;width:277mm;height:188mm;max-height:188mm;padding:3mm;display:block;overflow:hidden}.koesio-header{height:14mm;max-height:14mm;margin-bottom:2mm;overflow:hidden}.koesio-subheader{height:6mm;max-height:6mm;margin-bottom:1mm;padding:1mm 1mm 1.5mm;line-height:1;overflow:hidden}.print-diagram{justify-content:center;align-items:center;width:100%;height:158mm;max-height:158mm;display:flex;overflow:hidden}.print-diagram svg{width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;display:block!important}.print-page-inventory .koesio-frame-inventory{height:auto;min-height:188mm;max-height:none;overflow:visible}.print-page-inventory .print-inventory-table{page-break-inside:auto;break-inside:auto}.print-page-inventory .print-inventory-table thead{display:table-header-group}.print-page-inventory .print-inventory-table tfoot{display:table-footer-group}.print-page-inventory .print-inventory-table tr{page-break-inside:avoid;break-inside:avoid}.print-page-vendors .koesio-frame-vendors{height:auto;min-height:188mm;max-height:none;overflow:visible}.print-page-vendors .print-vendors-grid{break-inside:auto;page-break-inside:auto}.print-page-vendors .print-vendor-card{break-inside:avoid;page-break-inside:avoid}}.tuto-page{max-width:820px;padding:var(--space-10) var(--space-6) var(--space-12);background:var(--bg);min-height:100vh;color:var(--ink);margin:0 auto}.tuto-head{align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-10);padding-bottom:var(--space-6);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.tuto-back{text-decoration:none}.tuto-title{font-size:var(--text-3xl);letter-spacing:-.02em;margin:0;font-weight:700}.tuto-lead{font-size:var(--text-lg);color:var(--ink-soft);max-width:60ch;margin:0;line-height:1.55}.tuto-prose{gap:var(--space-10);flex-direction:column;display:flex}.tuto-section{gap:var(--space-5);grid-template-columns:48px 1fr;align-items:start;display:grid}.tuto-step-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-deep);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tuto-step-icon svg{stroke-width:2px;width:20px;height:20px}.tuto-step-body h2{font-size:var(--text-xl);margin:0 0 var(--space-3);letter-spacing:-.01em;color:var(--ink);font-weight:600}.tuto-step-body p,.tuto-step-body ul{font-size:var(--text-md);color:var(--ink-soft);margin:0 0 var(--space-3);line-height:1.65}.tuto-step-body ul{padding-left:1.2em}.tuto-step-body li{margin-bottom:var(--space-1)}.tuto-step-body li::marker{color:var(--muted-2)}.tuto-step-body strong{color:var(--ink);font-weight:600}.tuto-step-body code{font-family:var(--font-mono-stack);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--ink);padding:1px 5px;font-size:.9em}.tuto-media{margin:var(--space-4) 0 0;padding:var(--space-8) var(--space-4);border:1.5px dashed var(--line-2);border-radius:var(--radius-md);background:var(--panel);text-align:center}.tuto-media figcaption{font-size:var(--text-sm);color:var(--muted);font-style:italic}@media (max-width:640px){.tuto-page{padding:var(--space-6) var(--space-4) var(--space-10)}.tuto-section{gap:var(--space-3);grid-template-columns:1fr}.tuto-step-icon{width:38px;height:38px}}.hub{min-height:100vh;padding:var(--space-10) var(--space-6);justify-content:center;align-items:center;gap:var(--space-10);flex-direction:column;display:flex}.hub-head{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.hub-logo{filter:drop-shadow(0 4px 18px #1c1b1914);width:160px;height:auto}html.theme-dark .hub-logo{filter:drop-shadow(0 4px 18px #0009)}.hub-tagline{color:var(--muted);font-size:var(--text-md);letter-spacing:-.01em;margin:0}.hub-cards{gap:var(--space-5);grid-template-columns:repeat(2,minmax(280px,360px));width:100%;max-width:800px;display:grid}.hub-card{gap:var(--space-3);padding:var(--space-6);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--ink);flex-direction:column;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.hub-card:hover{border-color:var(--line-2);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.hub-card-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:44px;height:44px;color:var(--accent-deep);justify-content:center;align-items:center;display:flex}.hub-card-icon svg{width:22px;height:22px}.hub-card-body h2{margin:0 0 var(--space-1);font-size:var(--text-xl);letter-spacing:-.015em}.hub-card-body p{color:var(--muted);font-size:var(--text-md);margin:0;line-height:1.55}.hub-card-cta{font-size:var(--text-md);color:var(--accent);align-items:center;gap:6px;margin-top:auto;font-weight:600;display:inline-flex}.hub-card-cta svg{width:14px;height:14px;transition:transform .12s}.hub-card:hover .hub-card-cta svg{transform:translate(2px)}.hub-foot{color:var(--muted-2);font-size:var(--text-sm)}@media (max-width:720px){.hub-cards{grid-template-columns:1fr;max-width:420px}}.proc-shell{background:var(--bg);align-items:flex-start;min-height:100vh;display:flex}.proc-main{flex:auto;min-width:0}.proc-content{padding:var(--space-4) var(--space-6) var(--space-10);width:100%;max-width:1200px;margin:0 auto}.proc-sidebar{background:var(--panel);border-right:1px solid var(--line);width:240px;height:100vh;padding:var(--space-4) var(--space-3);align-self:flex-start;gap:var(--space-3);flex-direction:column;flex:0 0 240px;display:flex;position:sticky;top:0;overflow-y:auto}.proc-sidebar-head{align-items:center;gap:var(--space-2);padding:0 var(--space-2);display:flex}.proc-sidebar-logo{width:100px;height:auto}.proc-module-badge{background:var(--accent-soft);color:var(--accent-deep);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:inline-flex}.proc-back{border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--muted);align-items:center;gap:6px;padding:8px 10px;text-decoration:none;display:inline-flex}.proc-back:hover{color:var(--ink);background:var(--panel-2);text-decoration:none}.proc-back svg{width:14px;height:14px}.proc-sidebar-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);padding:0 var(--space-2);margin-top:var(--space-3)}.proc-doc-link{border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.proc-doc-link:hover{background:var(--panel-2);color:var(--ink)}.proc-doc-link.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.proc-doc-link .doc-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.proc-sidebar-foot{padding-top:var(--space-3);border-top:1px solid var(--line);gap:var(--space-2);flex-direction:column;margin-top:auto;display:flex}.lib-head{justify-content:space-between;align-items:center;gap:var(--space-4);margin:var(--space-2) 0 var(--space-6);flex-wrap:wrap;display:flex}.lib-title{font-size:var(--text-2xl);letter-spacing:-.02em;margin:0}.lib-title-sub{font-size:var(--text-md);color:var(--muted);margin:4px 0 0}.lib-search{flex:280px;max-width:360px;position:relative}.lib-search svg{width:15px;height:15px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.lib-search input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);width:100%;height:36px;color:var(--ink);font-size:var(--text-md);padding:0 10px 0 32px}.lib-search input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.lib-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.lib-card{padding:var(--space-4);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);cursor:pointer;color:var(--ink);flex-direction:column;min-height:140px;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.lib-card:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm);text-decoration:none;transform:translateY(-1px)}.lib-card-title{font-size:var(--text-lg);letter-spacing:-.01em;margin:0 0 var(--space-1);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.lib-card-meta{font-size:var(--text-sm);color:var(--muted)}.lib-card-foot{padding-top:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);border-top:1px dashed var(--line);margin-top:auto;display:flex}.lib-chip{font-size:var(--text-xs);color:var(--muted);background:var(--bg-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.lib-chip svg{width:12px;height:12px}.lib-card-actions{gap:2px;display:flex}.lib-card-actions .btn{height:26px;font-size:var(--text-xs);padding:0 8px}.lib-card-actions .btn.icon-only{width:26px;padding:0}.lib-card-actions .btn svg{width:13px;height:13px}.lib-new{border:2px dashed var(--line-2);box-shadow:none;text-align:center;justify-content:center;align-items:center;gap:var(--space-2);color:var(--muted);cursor:pointer;background:0 0}.lib-new:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.lib-new svg{width:22px;height:22px}.lib-new-label{font-size:var(--text-md);font-weight:600}.lib-empty{text-align:center;padding:var(--space-12) var(--space-6);color:var(--muted)}.lib-empty h3{margin:0 0 var(--space-2);color:var(--ink)}.proc-editor{gap:var(--space-6);grid-template-columns:220px 1fr;align-items:start;display:grid}.proc-editor-toc{max-height:calc(100vh - 100px);padding:var(--space-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);font-size:var(--text-sm);position:sticky;top:72px;overflow-y:auto}.proc-editor-toc-title{margin:0 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2)}.proc-editor-toc ul{margin:0;padding:0;list-style:none}.proc-editor-toc li{margin:0}.proc-editor-toc a{border-radius:var(--radius-xs);color:var(--ink-soft);font-size:var(--text-sm);padding:4px 6px;line-height:1.4;text-decoration:none;display:block}.proc-editor-toc a:hover{background:var(--panel-2);color:var(--ink);text-decoration:none}.proc-editor-toc a.lvl-2{color:var(--muted);padding-left:16px}.proc-editor-toc a.lvl-3{color:var(--muted-2);font-size:var(--text-xs);padding-left:28px}.proc-editor-toc a.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.proc-editor-toc-empty{color:var(--muted-2);font-size:var(--text-sm);font-style:italic}.proc-editor-body{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.proc-editor-headcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-xs);gap:var(--space-3);flex-direction:column;display:flex}.proc-title-input{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--ink);background:0 0;border:none;outline:none;width:100%;padding:0;font-weight:700}.proc-title-input::placeholder{color:var(--muted-2)}.proc-meta-row{gap:var(--space-3);font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;align-items:center;display:flex}.proc-meta-field{align-items:center;gap:6px;display:inline-flex}.proc-meta-field svg{width:13px;height:13px}.proc-meta-field input{font-size:var(--text-sm);color:var(--ink);border-radius:var(--radius-xs);background:0 0;border:none;width:auto;min-width:60px;padding:2px 4px}.proc-meta-field input:hover{background:var(--panel-2)}.proc-meta-field input:focus{background:var(--panel-2);outline:1px solid var(--accent)}.proc-toolbar{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.proc-toolbar-left,.proc-toolbar-right{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.proc-savestate{font-size:var(--text-sm);color:var(--muted);align-items:center;gap:4px;display:inline-flex}.proc-savestate svg{width:12px;height:12px}.proc-savestate.dirty{color:var(--warn)}.proc-savestate.saved{color:var(--ok)}.block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-4) var(--space-5);position:relative}.block:hover{border-color:var(--line-2)}.block.dragging{opacity:.5;box-shadow:var(--shadow-lg)}.block-handle{left:-28px;top:var(--space-4);width:22px;height:22px;color:var(--muted-2);cursor:grab;opacity:0;border-radius:var(--radius-xs);background:0 0;border:none;justify-content:center;align-items:center;transition:opacity .12s;display:inline-flex;position:absolute}.block:hover .block-handle{opacity:1}.block-handle:hover{background:var(--panel-2);color:var(--ink)}.block-handle:active{cursor:grabbing}.block-handle svg{width:14px;height:14px}.block-actions{right:var(--space-3);top:var(--space-3);opacity:0;gap:2px;transition:opacity .12s;display:flex;position:absolute}.block:hover .block-actions,.block:focus-within .block-actions{opacity:1}.block-actions .btn{height:26px;font-size:var(--text-xs);padding:0 8px}.block-actions .btn.icon-only{width:26px;padding:0}.block-actions .btn svg{width:13px;height:13px}.block-type-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);margin-bottom:var(--space-2)}.add-section{justify-content:center;padding:4px 0;display:flex;position:relative}.add-section-line{background:var(--line);opacity:.6;height:1px;position:absolute;top:50%;left:0;right:0}.add-section:hover .add-section-line{opacity:1}.add-section-btn{background:var(--bg);border:1px dashed var(--line-2);font-size:var(--text-xs);color:var(--muted);cursor:pointer;opacity:.75;border-radius:999px;align-items:center;gap:4px;padding:4px 12px;transition:color .12s,border-color .12s,opacity .12s,background .12s;display:inline-flex;position:relative}.add-section:hover .add-section-btn,.add-section-btn:focus-visible{opacity:1}.add-section-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--panel)}.add-section-btn svg{width:12px;height:12px}.add-section-menu{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:10;flex-direction:column;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.add-section-menu button{border-radius:var(--radius-sm);text-align:left;color:var(--ink);font-size:var(--text-md);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.add-section-menu button:hover{background:var(--panel-2)}.add-section-menu svg{width:14px;height:14px;color:var(--muted)}.add-section-menu .desc{font-size:var(--text-xs);color:var(--muted);margin-top:2px;display:block}.block-heading-row{gap:var(--space-3);align-items:center;display:flex}.block-heading-level{background:var(--bg-2);border-radius:var(--radius-sm);flex:none;gap:2px;padding:2px;display:flex}.block-heading-level button{min-width:36px;height:28px;color:var(--muted);border-radius:var(--radius-xs);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0 8px;font-weight:600}.block-heading-level button.active{background:var(--panel);color:var(--accent-deep);box-shadow:var(--shadow-xs)}.block-heading-input{letter-spacing:-.02em;color:var(--ink);background:0 0;border:none;outline:none;flex:auto;padding:0;font-weight:700}.block-heading-input.h1{font-size:var(--text-2xl)}.block-heading-input.h2{font-size:var(--text-xl)}.block-heading-input.h3{font-size:var(--text-lg)}.block-text textarea,.block-step-body textarea{resize:vertical;width:100%;min-height:120px;font-family:var(--font-sans-stack);font-size:var(--text-md);color:var(--ink);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;line-height:1.6}.block-text textarea:hover,.block-step-body textarea:hover{border-color:var(--line)}.block-text textarea:focus,.block-step-body textarea:focus{border-color:var(--accent);background:var(--panel-2);outline:none}.block-step{gap:var(--space-3) var(--space-4);grid-template-columns:auto 1fr;display:grid}.block-step-number{background:var(--accent);color:#fff;width:36px;height:36px;font-weight:700;font-size:var(--text-md);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.block-step-content{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.block-step-title{font-size:var(--text-lg);color:var(--ink);background:0 0;border:none;outline:none;width:100%;padding:0;font-weight:600}.block-step-title::placeholder{color:var(--muted-2)}.block-step-time{font-size:var(--text-sm);color:var(--muted);align-items:center;gap:6px;display:inline-flex}.block-step-time input{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-xs);width:50px;color:var(--ink);font-size:var(--text-sm);padding:2px 6px}.block-step-image{margin-top:var(--space-2);border:1.5px dashed var(--line-2);border-radius:var(--radius-sm);padding:var(--space-4);text-align:center;color:var(--muted);font-size:var(--text-sm);cursor:pointer;transition:border-color .12s,background .12s;position:relative}.block-step-image:hover,.block-step-image.dragover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.block-step-image img{border-radius:var(--radius-xs);max-width:100%;height:auto;margin:0 auto;display:block}.block-step-image .remove-img{border:1px solid var(--line);cursor:pointer;width:24px;height:24px;color:var(--ink);background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:6px;right:6px}html.theme-dark .block-step-image .remove-img{background:#1f2026e6}.block-gallery-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.gallery-item{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);aspect-ratio:4/3;flex-direction:column;display:flex;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;cursor:zoom-in;width:100%;height:100%;display:block}.gallery-caption{background:var(--panel);border:none;border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-soft);outline:none;width:100%;padding:4px 6px}.gallery-caption:focus{background:var(--accent-soft)}.gallery-item .remove-img{border:1px solid var(--line);cursor:pointer;width:22px;height:22px;color:var(--ink);z-index:2;background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:4px;right:4px}html.theme-dark .gallery-item .remove-img{background:#1f2026e6}.gallery-add{border:1.5px dashed var(--line-2);border-radius:var(--radius-sm);aspect-ratio:4/3;color:var(--muted);cursor:pointer;font-size:var(--text-sm);justify-content:center;align-items:center;gap:4px;transition:border-color .12s,background .12s,color .12s;display:flex}.gallery-add:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.gallery-add svg{width:18px;height:18px}.lightbox{z-index:1000;padding:var(--space-6);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:95vw;max-height:95vh;box-shadow:var(--shadow-lg)}.lightbox-close{top:var(--space-4);right:var(--space-4);color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;position:absolute}.lightbox-close:hover{background:#fff3}.proc-preview{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-8) var(--space-10);box-shadow:var(--shadow-sm);font-size:var(--text-md);line-height:1.65}.proc-preview h1{font-size:var(--text-3xl);margin:0 0 var(--space-2);letter-spacing:-.025em}.proc-preview h2{font-size:var(--text-2xl);margin:var(--space-6) 0 var(--space-3);letter-spacing:-.02em}.proc-preview h3{font-size:var(--text-xl);margin:var(--space-5) 0 var(--space-2);letter-spacing:-.015em}.proc-preview p{margin:0 0 var(--space-3)}.proc-preview ul,.proc-preview ol{margin:0 0 var(--space-3);padding-left:1.5em}.proc-preview li{margin-bottom:4px}.proc-preview img{border-radius:var(--radius-xs);max-width:100%;height:auto}.proc-preview a{color:var(--accent)}.proc-preview .step{gap:var(--space-3) var(--space-4);margin-bottom:var(--space-5);grid-template-columns:36px 1fr;display:grid}.proc-preview .step-num{background:var(--accent);color:#fff;width:36px;height:36px;font-weight:700;font-size:var(--text-md);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.proc-preview .step-title{font-size:var(--text-lg);margin:4px 0;font-weight:600}.proc-preview .step-time{font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-2)}.proc-preview .gallery{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.proc-preview .gallery figure{margin:0}.proc-preview .gallery img{aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;width:100%}.proc-preview .gallery figcaption{font-size:var(--text-xs);color:var(--muted);text-align:center;margin-top:4px}.proc-preview table{border-collapse:collapse;margin:0 0 var(--space-3)}.proc-preview th,.proc-preview td{border:1px solid var(--line);padding:4px 8px}.proc-preview th{background:var(--panel-2)}.proc-print{display:none}@media print{.proc-print{display:block!important}@page{size:A4 portrait;margin:0}body{color:#000;background:#fff}.proc-print .print-page{page-break-after:always;page-break-inside:avoid;box-sizing:border-box;width:210mm;height:297mm;overflow:hidden}.proc-print .koesio-frame{border:1.2pt solid var(--koesio-purple);box-sizing:border-box;flex-direction:column;width:210mm;height:297mm;max-height:297mm;padding:8mm;display:flex;overflow:hidden}.proc-print .koesio-header{border:.8pt solid var(--koesio-purple);grid-template-columns:30mm 1fr 30mm;height:18mm;max-height:18mm;margin-bottom:2mm;display:grid;overflow:hidden}.proc-print .koesio-brand{border-right:.8pt solid var(--koesio-purple);justify-content:center;align-items:center;padding:1mm;display:flex}.proc-print .koesio-logo{color:var(--koesio-purple);font-size:16pt;font-weight:800;line-height:1}.proc-print .koesio-info{border-right:.8pt solid var(--koesio-purple);flex-direction:column;display:flex}.proc-print .koesio-client-name{border-bottom:.8pt solid var(--koesio-purple);text-transform:uppercase;letter-spacing:.04em;color:var(--koesio-purple-strong);flex:1;align-items:center;padding:1mm 2mm;font-size:9.5pt;font-weight:700;display:flex}.proc-print .koesio-details{flex:1;grid-template-columns:1fr 1fr 1fr;display:grid}.proc-print .koesio-details>div{border-right:.8pt solid var(--koesio-purple);color:#444;justify-content:center;align-items:center;padding:1mm 2mm;font-size:8pt;display:flex}.proc-print .koesio-details>div:last-child{border-right:none}.proc-print .koesio-client-logo{color:var(--koesio-purple);justify-content:center;align-items:center;font-size:7pt;font-style:italic;display:flex}.proc-print .koesio-subheader{color:#555;border-bottom:.6pt solid var(--koesio-purple);height:6mm;margin-bottom:2mm;padding:1.5mm 1mm;font-size:9pt;line-height:1}.proc-print .koesio-subheader strong{color:#2c2c2a;font-weight:600}.proc-cover-frame{background:#fff}.proc-cover-body{flex-direction:column;flex:1;justify-content:center;padding:10mm 6mm;display:flex;position:relative}.proc-cover-eyebrow{color:var(--koesio-purple);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4mm;font-size:10pt;font-weight:700}.proc-cover-title{color:#1c1b19;letter-spacing:-.025em;border-bottom:4px solid var(--koesio-purple);margin:0 0 14mm;padding-bottom:6mm;font-size:30pt;font-weight:800;line-height:1.1}.proc-cover-grid{grid-template-columns:1fr 1fr;gap:8mm 12mm;margin-bottom:12mm;display:grid}.proc-cover-label{color:var(--koesio-purple);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1mm;font-size:8pt;font-weight:600}.proc-cover-value{color:#1c1b19;font-size:13pt;font-weight:500}.proc-cover-foot{color:var(--koesio-purple);text-align:center;letter-spacing:.04em;text-transform:uppercase;border-top:.6pt solid color-mix(in srgb, var(--koesio-purple) 30%, transparent);padding-top:3mm;font-size:8pt;position:absolute;bottom:6mm;left:6mm;right:6mm}.proc-page-frame{background:#fff}.proc-print-toc-body{flex:1;padding:6mm 6mm 4mm;overflow:hidden}.proc-print-section-heading{color:var(--koesio-purple);letter-spacing:-.01em;border-bottom:.6pt solid var(--koesio-purple);margin:0 0 6mm;padding-bottom:2mm;font-size:18pt}.proc-print-toc-list{margin:0;padding:0;list-style:none}.proc-print-toc-list li{color:#1c1b19;border-bottom:.4pt dashed color-mix(in srgb, var(--koesio-purple) 25%, transparent);align-items:baseline;gap:2mm;padding:1.6mm 0;font-size:11pt;display:flex}.proc-print-toc-list li.lvl-2{color:#333;padding-left:6mm;font-size:10pt}.proc-print-toc-list li.lvl-3{color:#555;padding-left:12mm;font-size:9pt}.proc-print-toc-list .toc-text{flex:none}.proc-print-toc-list .toc-dots{border-bottom:.4pt dotted color-mix(in srgb, var(--koesio-purple) 35%, transparent);flex:auto;align-self:end;margin:0 1mm 1mm}.proc-print-content{color:#1c1b19;padding:12mm 14mm;font-size:11pt;line-height:1.55}.proc-print-content .proc-h1{color:var(--koesio-purple);letter-spacing:-.015em;border-bottom:.8pt solid var(--koesio-purple);page-break-after:avoid;margin:8mm 0 3mm;padding-bottom:1.5mm;font-size:18pt}.proc-print-content .proc-h2{color:var(--koesio-purple-strong);letter-spacing:-.01em;page-break-after:avoid;margin:6mm 0 2mm;font-size:14pt}.proc-print-content .proc-h3{color:#444;page-break-after:avoid;margin:4mm 0 1mm;font-size:12pt}.proc-print-content .proc-text{margin:0 0 3mm}.proc-print-content .proc-text p{margin:0 0 2.5mm}.proc-print-content .proc-text ul,.proc-print-content .proc-text ol{margin:0 0 3mm;padding-left:6mm}.proc-print-content .proc-text li{margin:.5mm 0}.proc-print-content .proc-text a{color:var(--koesio-purple-strong);text-decoration:underline}.proc-print-content .proc-text img{max-width:100%;height:auto}.proc-print-content .proc-text blockquote{border-left:3px solid var(--koesio-purple);color:#555;margin:2mm 0;padding:1mm 4mm;font-style:italic}.proc-print-content .proc-text code{font-family:var(--font-mono-stack);background:#f4f0fa;border-radius:1mm;padding:0 1mm;font-size:.9em}.proc-print-content .proc-text pre{border-left:2pt solid var(--koesio-purple);font-family:var(--font-mono-stack);page-break-inside:avoid;background:#f4f0fa;border-radius:0;padding:2mm 3mm;font-size:9pt;overflow:hidden}.proc-print-content .proc-step{page-break-inside:avoid;break-inside:avoid;margin:5mm 0}.proc-print-content .proc-step-row{grid-template-columns:9mm 1fr;gap:3mm;display:grid}.proc-print-content .proc-step-num{background:var(--koesio-purple);color:#fff;text-align:center;border-radius:50%;width:9mm;height:9mm;font-size:11pt;font-weight:700;line-height:9mm}.proc-print-content .proc-step-title{color:#1c1b19;margin-bottom:1mm;font-size:12.5pt;font-weight:700}.proc-print-content .proc-step-time{color:var(--koesio-purple-strong);margin-bottom:1.5mm;font-size:8.5pt;font-style:italic}.proc-print-content .proc-step-text p{margin:0 0 2mm}.proc-print-content .proc-step-text ul,.proc-print-content .proc-step-text ol{margin:0 0 2mm;padding-left:6mm}.proc-print-content .proc-step-image{page-break-inside:avoid;border:.4pt solid #ddd;max-width:100%;margin-top:2mm}.proc-print-content .proc-gallery{page-break-inside:avoid;grid-template-columns:1fr 1fr;gap:4mm;margin:4mm 0;display:grid}.proc-print-content .proc-gallery-figure{margin:0}.proc-print-content .proc-gallery-figure img{border:.4pt solid #ddd;width:100%;height:auto}.proc-print-content .proc-gallery-figure figcaption{color:#555;text-align:center;margin-top:1mm;font-size:8.5pt;font-style:italic}}.tiptap-shell{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);overflow:hidden}.tiptap-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tiptap-toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;padding:4px;display:flex}.tiptap-toolbar button{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.tiptap-toolbar button svg{stroke-width:2px;width:14px;height:14px}.tiptap-toolbar button:hover{background:var(--bg-2);color:var(--ink)}.tiptap-toolbar button.active{background:var(--accent-soft);color:var(--accent-deep);border-color:color-mix(in oklab, var(--accent) 30%, transparent)}.tiptap-toolbar button:disabled{opacity:.35;cursor:not-allowed}.tiptap-sep{background:var(--line);align-self:stretch;width:1px;margin:4px}.tiptap-shell .ProseMirror{min-height:80px;padding:var(--space-3) var(--space-4);background:var(--panel);font-size:var(--text-md);color:var(--ink);outline:none;line-height:1.65}.tiptap-shell .ProseMirror>*+*{margin-top:.6em}.tiptap-shell .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted-2);float:left;pointer-events:none;height:0}.tiptap-shell .ProseMirror h2{font-size:var(--text-xl);letter-spacing:-.015em}.tiptap-shell .ProseMirror h3{font-size:var(--text-lg);letter-spacing:-.01em}.tiptap-shell .ProseMirror ul,.tiptap-shell .ProseMirror ol{padding-left:1.4em}.tiptap-shell .ProseMirror li{margin:4px 0}.tiptap-shell .ProseMirror blockquote{border-left:3px solid var(--line-2);color:var(--muted);margin:0;padding:2px 12px}.tiptap-shell .ProseMirror pre{background:var(--bg-2);border-radius:var(--radius-sm);font-family:var(--font-mono-stack);padding:8px 10px;font-size:.9em;overflow-x:auto}.tiptap-shell .ProseMirror code{background:var(--bg-2);border-radius:var(--radius-xs);font-family:var(--font-mono-stack);padding:1px 5px;font-size:.92em}.tiptap-shell .ProseMirror a.proc-link{color:var(--accent);text-decoration:underline}.tiptap-shell .ProseMirror img.proc-inline-img{border-radius:var(--radius-xs);max-width:100%;height:auto;display:block}.proc-savestate{background:var(--bg-2);white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:4px 10px}.proc-savestate.dirty{color:var(--warn);background:color-mix(in oklab, var(--warn) 10%, var(--panel));border-color:color-mix(in oklab, var(--warn) 25%, transparent)}.proc-savestate.saved{color:var(--ok);background:color-mix(in oklab, var(--ok) 10%, var(--panel));border-color:color-mix(in oklab, var(--ok) 25%, transparent)}.btn-count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.history-overlay{background:color-mix(in oklab, var(--ink) 35%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:900;animation:.14s ease-out history-fade;position:fixed;inset:0}html.theme-dark .history-overlay{background:#0000008c}@keyframes history-fade{0%{opacity:0}to{opacity:1}}.history-panel{background:var(--panel);border-left:1px solid var(--line);width:min(440px,92vw);height:100vh;box-shadow:var(--shadow-lg);z-index:950;flex-direction:column;animation:.18s ease-out history-slide;display:flex;position:fixed;top:0;right:0}@keyframes history-slide{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.history-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);border-bottom:1px solid var(--line);display:flex}.history-head h2{font-size:var(--text-lg);letter-spacing:-.01em;margin:0}.history-sub{font-size:var(--text-sm);color:var(--muted);margin:4px 0 0;line-height:1.4}.history-empty{padding:var(--space-8) var(--space-5);text-align:center;color:var(--muted);align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.history-empty svg{color:var(--muted-2);width:32px;height:32px}.history-empty p{font-size:var(--text-md);max-width:320px;margin:0;line-height:1.5}.history-empty strong{color:var(--ink)}.history-list{padding:var(--space-3) var(--space-3) var(--space-6);flex-direction:column;flex:1;gap:2px;margin:0;list-style:none;display:flex;overflow-y:auto}.history-item{gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);grid-template-columns:24px 1fr auto;display:grid;position:relative}.history-item:hover{background:var(--panel-2)}.history-item.head{background:color-mix(in oklab, var(--accent) 6%, var(--panel))}.history-item.head:hover{background:color-mix(in oklab, var(--accent) 10%, var(--panel))}.history-marker{color:var(--muted-2);flex-direction:column;align-items:center;padding-top:4px;display:flex}.history-marker svg{width:16px;height:16px;color:var(--accent)}.history-marker .dot{background:var(--line-2);border-radius:50%;width:8px;height:8px;margin-top:4px}.history-item:not(:last-child) .history-marker:after{content:"";background:var(--line);flex:1;width:1px;margin-top:4px}.history-body{flex-direction:column;gap:2px;min-width:0;display:flex}.history-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.history-label{border-radius:var(--radius-xs);font-size:var(--text-md);color:var(--ink);cursor:pointer;background:0 0;border:1px dashed #0000;align-items:center;gap:4px;margin-left:-4px;padding:2px 6px;font-weight:600;display:inline-flex}.history-label:hover{border-color:var(--line-2);background:var(--panel)}.history-label svg{color:var(--accent)}.history-label-empty{color:var(--muted-2);align-items:center;gap:4px;font-style:italic;font-weight:400;display:inline-flex}.history-label-input{border:1px solid var(--accent);border-radius:var(--radius-xs);background:var(--panel);height:26px;color:var(--ink);font-size:var(--text-md);outline:none;flex:1;min-width:0;padding:0 8px;font-weight:600}.history-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--accent);color:#fff;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.history-meta{font-size:var(--text-xs);color:var(--muted)}.history-actions{align-self:center;align-items:center;gap:2px;display:flex}.history-actions .btn.sm svg{width:12px;height:12px}@media (max-width:640px){.history-panel{border-left:none;width:100vw}}.history-item.flash{animation:1.6s ease-out history-flash}@keyframes history-flash{0%{background:color-mix(in oklab, var(--ok) 25%, var(--panel))}to{background:var(--panel)}}.history-item.flash.head{animation-name:history-flash-head}@keyframes history-flash-head{0%{background:color-mix(in oklab, var(--ok) 25%, var(--panel))}to{background:color-mix(in oklab, var(--accent) 6%, var(--panel))}}
