@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_6044a18b-module__IeZqpq__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_6044a18b-module__IeZqpq__variable{--font-plex-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.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-20C4,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(../media/99e609270109b47d-s.p.40sczeszzbjw1.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.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-20C4,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(../media/effe91970fc4db64-s.p.0oace-s_gkfks.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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_28411002-module__cjC0Ca__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_28411002-module__cjC0Ca__variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8dd8a3188b79fd8f-s.2o9_j983y90g0.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c8f209abc35ee02-s.p.0c0g8ifvh7k7-.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:DM Serif Display Fallback;src:local(Times New Roman);ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.0%;size-adjust:109.78%}.dm_serif_display_169716ba-module__XSruGq__className{font-family:DM Serif Display,DM Serif Display Fallback;font-style:normal;font-weight:400}.dm_serif_display_169716ba-module__XSruGq__variable{--font-dm-serif:"DM Serif Display", "DM Serif Display Fallback"}
:root{--font-display:"DM Serif Display", serif;--font-body:"IBM Plex Sans", -apple-system, system-ui, sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", monospace;--text-xs:.8rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.15rem;--text-xl:1.5rem;--text-2xl:2rem;--color-bg:#0b1120;--color-surface:#111827;--color-surface-raised:#1a2332;--color-surface-sunken:#0d1526;--color-surface-hover:#1e2d3d;--color-ink:#e2e8f0;--color-ink-soft:#94a3b8;--color-ink-muted:#64748b;--color-border:#1e2d3d;--color-border-light:#162032;--color-primary:#d4a843;--color-primary-soft:#d4a84333;--color-primary-bg:#d4a84314;--color-success:#34d399;--color-success-bg:#34d3991a;--color-danger:#f87171;--color-danger-bg:#f871711a;--color-warning:#fbbf24;--color-warning-bg:#fbbf241a;--color-info:#60a5fa;--color-info-bg:#60a5fa1a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--sidebar-width:260px;--sidebar-collapsed:64px;--header-height:60px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 12px 36px #00000080;--transition-fast:.15s ease;--transition-base:.25s ease}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);background:var(--color-bg);-webkit-text-size-adjust:100%;line-height:1.6;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-ink);font-weight:400;line-height:1.3}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}code,.text-mono{font-family:var(--font-mono)}::selection{background:var(--color-primary-soft);color:var(--color-ink)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-muted)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-soft{color:var(--color-ink-soft)}.text-muted{color:var(--color-ink-muted)}.text-danger{color:var(--color-danger)}.text-mono{font-family:var(--font-mono)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.card{background:var(--color-surface);border:1px solid var(--color-border);transition:border-color var(--transition-fast);border-radius:14px;overflow:hidden}.card:hover{border-color:#d4a84326}.card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.card__header h3{font-size:var(--text-base);font-family:var(--font-body);font-weight:600}.card__body{padding:var(--space-5)}.card__body--flush{padding:0}.stats-row{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-4) var(--space-5);transition:border-color var(--transition-fast), transform var(--transition-fast);border-radius:14px}.stat-card:hover{border-color:#d4a84333;transform:translateY(-1px)}.stat-card__label{font-size:var(--text-xs);color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-1);font-weight:600}.stat-card__value{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink);line-height:1.2}.stat-card__change{font-size:var(--text-xs);color:var(--color-ink-muted);margin-top:var(--space-1)}.badge{white-space:nowrap;letter-spacing:.01em;border-radius:8px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.badge--neutral{color:var(--color-ink-soft);background:#94a3b81f}.tabs{margin-bottom:var(--space-5);background:var(--color-surface-sunken);border-radius:12px;gap:4px;width:fit-content;padding:3px;display:flex}.tab{font-size:var(--text-sm);color:var(--color-ink-muted);cursor:pointer;transition:all var(--transition-fast);font-weight:500;font-family:var(--font-body);background:0 0;border:none;border-radius:9px;padding:7px 16px}.tab:hover{color:var(--color-ink-soft);background:#ffffff08}.tab--active{color:var(--color-ink);background:var(--color-surface-raised);box-shadow:0 1px 3px #0003}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-header h1{font-size:var(--text-xl);align-items:center;gap:.4em;margin-bottom:2px;display:flex}.page-header h1 svg{flex-shrink:0;width:1.1em;height:1.1em}.page-header__subtitle{font-size:var(--text-sm);color:var(--color-ink-muted)}.page-header__actions{gap:var(--space-3);align-items:center;display:flex}.grid-2{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}@media (max-width:900px){.grid-2{grid-template-columns:1fr}}.search-input{position:relative}.search-input__icon{width:16px;height:16px;color:var(--color-ink-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}@media (max-width:768px){.stats-row{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--space-3)}.stat-card__value{font-size:var(--text-lg)}.page-header{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column}.page-header h1{font-size:var(--text-lg)}.page-header__actions{flex-wrap:wrap;width:100%}.table-wrap,.card__body--flush{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{min-width:600px}.grid-2{gap:var(--space-3);grid-template-columns:1fr}.form__row{flex-direction:column}.tabs{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}}@media (max-width:480px){.stats-row{grid-template-columns:1fr}}
.app{height:100vh;display:flex;overflow:hidden}.app__main{margin-left:var(--sidebar-width);height:100vh;transition:margin-left var(--transition-base);flex-direction:column;flex:1;display:flex;overflow:hidden}.app--sidebar-collapsed .app__main{margin-left:var(--sidebar-collapsed)}.header{height:var(--header-height);padding:0 var(--space-6);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);background:#111827cc;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header__left{align-items:center;gap:var(--space-4);display:flex}.header__title{font-family:var(--font-body);font-weight:700;font-size:var(--text-base);color:var(--color-ink);letter-spacing:-.01em}.header__breadcrumb{font-size:var(--text-xs);color:var(--color-ink-muted)}.header__right{align-items:center;gap:var(--space-2);display:flex}.header__date{color:var(--color-ink-muted);white-space:nowrap;font-size:11px}.header__divider{background:var(--color-border);width:1px;height:20px;margin:0 var(--space-2)}.header__menu-toggle{border:1px solid var(--color-border);background:var(--color-surface-raised);width:40px;height:40px;color:var(--color-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:none}.header__menu-toggle:active{background:var(--color-surface-hover);transform:scale(.95)}.header__menu-toggle svg{width:22px;height:22px}.content{flex:1;min-height:0;overflow:hidden auto}.content__inner{padding:var(--space-6);max-width:1400px;padding-bottom:var(--space-8)}.sidebar-overlay{z-index:99;background:#0009;display:none;position:fixed;inset:0}.sidebar-overlay--visible{display:block}@media (max-width:768px){.app__main{width:100%;margin-left:0!important}.header{padding:0 var(--space-3)}.header__menu-toggle{display:flex!important}.header__date,.header__divider{display:none}.content__inner{padding:var(--space-3);padding-bottom:var(--space-6)}}
.sidebar{width:var(--sidebar-width);border-right:1px solid var(--color-border);z-index:100;height:100vh;transition:width var(--transition-base);background:linear-gradient(#0f1729 0%,#111827 100%);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar__brand{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.sidebar__logo{background:var(--color-primary);border-radius:var(--radius-md);width:34px;height:34px;color:var(--color-bg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__logo svg{width:18px;height:18px}.sidebar__brand-name{font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);color:var(--color-ink);letter-spacing:-.01em;line-height:1.2;display:block}.sidebar__brand-sub{color:var(--color-ink-muted);letter-spacing:.02em;font-size:10px}.sidebar__nav{padding:var(--space-2) var(--space-3);flex:1;overflow-y:auto}.sidebar__section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-muted);padding:var(--space-4) var(--space-3) 6px;font-size:9px;font-weight:700}.sidebar__item{cursor:pointer;color:var(--color-ink-soft);transition:all var(--transition-fast);width:100%;font-size:13px;font-weight:500;font-family:var(--font-body);text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;margin-bottom:1px;padding:7px 10px;text-decoration:none;display:flex;position:relative}.sidebar__item:hover{color:var(--color-ink);background:#ffffff0a;text-decoration:none}.sidebar__item--active{color:var(--color-primary);background:#d4a8431a}.sidebar__item--active:before{content:"";background:var(--color-primary);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:0}.sidebar__item--active .sidebar__icon{color:var(--color-primary)}.sidebar__icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.sidebar__item:hover .sidebar__icon,.sidebar__item--active .sidebar__icon{opacity:1}.sidebar__icon svg{width:16px;height:16px}.sidebar__item-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar__badge{background:var(--color-primary);min-width:18px;height:18px;color:var(--color-bg);border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;display:flex}.sidebar__footer{border-top:1px solid var(--color-border);padding:var(--space-3)}.sidebar__user{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);margin-bottom:var(--space-2);cursor:default;display:flex}.sidebar__avatar{background:linear-gradient(135deg, var(--color-primary), #b8922e);width:30px;height:30px;color:var(--color-bg);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.sidebar__user-name{color:var(--color-ink);font-size:12px;font-weight:600;line-height:1.2;display:block}.sidebar__user-role{color:var(--color-ink-muted);font-size:10px;display:block}.sidebar__footer-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.sidebar__toggle{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--color-ink-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;text-decoration:none;display:flex}.sidebar__toggle:hover{color:var(--color-ink);background:#ffffff0f}.sidebar__toggle svg{width:16px;height:16px}.sidebar__powered{border:1px solid var(--color-border);color:var(--color-ink-muted);text-align:center;background:#ffffff05;border-radius:8px;padding:6px 10px;font-size:9px;line-height:1.5}.sidebar__powered strong{color:var(--color-primary);letter-spacing:.02em;font-size:10px;font-weight:700;display:block}.app--sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}.app--sidebar-collapsed .sidebar__brand-text,.app--sidebar-collapsed .sidebar__item-text,.app--sidebar-collapsed .sidebar__section-label,.app--sidebar-collapsed .sidebar__badge,.app--sidebar-collapsed .sidebar__user-text,.app--sidebar-collapsed .sidebar__powered,.app--sidebar-collapsed .sidebar__footer-row{display:none}.app--sidebar-collapsed .sidebar__item{justify-content:center;padding:10px}.app--sidebar-collapsed .sidebar__item--active:before{display:none}.app--sidebar-collapsed .sidebar__user{justify-content:center}@media (max-width:768px){.sidebar{transition:transform var(--transition-base);width:280px;box-shadow:var(--shadow-lg);transform:translate(-100%)}.app--sidebar-open .sidebar{transform:translate(0)}.app--sidebar-collapsed .sidebar{width:280px;transform:translate(-100%)}.app--sidebar-collapsed.app--sidebar-open .sidebar{transform:translate(0)}.app--sidebar-collapsed .sidebar__brand-text,.app--sidebar-collapsed .sidebar__item-text,.app--sidebar-collapsed .sidebar__section-label,.app--sidebar-collapsed .sidebar__badge,.app--sidebar-collapsed .sidebar__user-text,.app--sidebar-collapsed .sidebar__powered,.app--sidebar-collapsed .sidebar__footer-row{display:revert}.app--sidebar-collapsed .sidebar__item{justify-content:flex-start;padding:7px 10px}}
.btn{font-family:var(--font-body);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:600;line-height:1.4;display:inline-flex}.btn svg{flex-shrink:0;width:18px;height:18px}.btn--primary{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.btn--primary:hover{opacity:.9}.btn--secondary{background:var(--color-surface-raised);color:var(--color-ink-soft);border-color:var(--color-border)}.btn--secondary:hover{background:var(--color-surface-hover);color:var(--color-ink)}.btn--ghost{color:var(--color-ink-soft);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--color-surface-hover);color:var(--color-ink)}.btn--danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn--danger:hover{opacity:.9}.btn--secondary.active{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn-group{gap:0;display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:10px 0 0 10px}.btn-group .btn:last-child{border-radius:0 10px 10px 0}.btn-group .btn+.btn{border-left:none}.btn--sm{font-size:var(--text-xs);padding:4px 10px}.btn--sm svg{width:14px;height:14px}.btn--icon{padding:6px}
.form-group{margin-bottom:var(--space-5)}.form-label{font-size:var(--text-sm);color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-weight:600;display:block}.form-input,.form-select,.form-textarea,.input,select.input,textarea.input{background:var(--color-surface-raised);border:1px solid var(--color-border);width:100%;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--transition-fast);border-radius:10px;padding:10px 14px;line-height:1.5}.form-input:focus,.form-select:focus,.form-textarea:focus,.input:focus,select.input:focus,textarea.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.form-input::placeholder,.form-textarea::placeholder,.input::placeholder{color:var(--color-ink-muted)}.form-select,select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.form-select option,select.input option{background:var(--color-surface);color:var(--color-ink)}.form-textarea,textarea.input{resize:vertical;min-height:80px}.form-help{font-size:var(--text-xs);color:var(--color-ink-muted);margin-top:var(--space-2);align-items:center;gap:6px;display:flex}.form-help svg{width:14px;height:14px;color:var(--color-primary)}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form .form__row{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.form .form__group{flex-direction:column;display:flex}.form .form__group label{font-size:var(--text-sm);color:var(--color-ink-muted);margin-bottom:6px;font-weight:600}.form .form__actions{gap:var(--space-3);margin-top:var(--space-4);display:flex}.card__body label{font-size:var(--text-sm);color:var(--color-ink-muted);margin-bottom:6px;font-weight:600;display:block}.form input[type=text],.form input[type=email],.form input[type=number],.form input[type=password],.form input[type=date],.form input[type=tel],.form input[type=url],.form select,.form textarea{background:var(--color-surface-raised);border:1px solid var(--color-border);width:100%;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--transition-fast);border-radius:10px;padding:10px 14px;line-height:1.5}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);text-align:center;cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast)}.dropzone:hover{border-color:var(--color-primary-soft);background:var(--color-primary-bg)}.dropzone__icon{width:40px;height:40px;margin:0 auto var(--space-3);color:var(--color-ink-muted)}.dropzone__icon svg{width:40px;height:40px}.dropzone__text{font-size:var(--text-sm);color:var(--color-ink-soft)}.dropzone__text strong{color:var(--color-primary)}.toggle{background:var(--color-border);cursor:pointer;border-radius:11px;align-items:center;width:40px;height:22px;padding:2px;transition:background .2s;display:flex}.toggle--active{background:var(--color-primary)}.toggle__switch{background:var(--color-ink);border-radius:50%;width:18px;height:18px;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.toggle--active .toggle__switch{background:var(--color-bg);transform:translate(18px)}
.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table thead th{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-surface-sunken);font-weight:600}.table tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-surface-hover)}.table--clickable tbody tr{cursor:pointer}.table tfoot td{padding:var(--space-3) var(--space-4);border-top:2px solid var(--color-border);font-weight:600}.cell-amount{text-align:right;font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.cell-actions{text-align:right;white-space:nowrap;width:1%}
.toast-container{bottom:var(--space-6);right:var(--space-6);z-index:2000;gap:var(--space-3);flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--color-ink);min-width:280px;animation:.3s slideInRight;display:flex}.toast--success{border-left:3px solid var(--color-success)}.toast--danger{border-left:3px solid var(--color-danger)}.toast--warning{border-left:3px solid var(--color-warning)}.toast--info{border-left:3px solid var(--color-info)}.toast__icon{flex-shrink:0;width:18px;height:18px}.toast--success .toast__icon{color:var(--color-success)}.toast--danger .toast__icon{color:var(--color-danger)}.toast--warning .toast__icon{color:var(--color-warning)}.toast--info .toast__icon{color:var(--color-info)}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (max-width:768px){.toast-container{bottom:var(--space-3);right:var(--space-3);left:var(--space-3)}.toast{width:100%;min-width:auto}}
:root{--font-body:var(--font-plex-sans), -apple-system, system-ui, sans-serif;--font-display:var(--font-dm-serif), serif;--font-mono:var(--font-plex-mono), "SF Mono", monospace}.icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dropzone--active{border-color:var(--color-primary);background:var(--color-primary-bg)}.dropzone--invalid{border-color:var(--color-danger);background:var(--color-danger-bg)}.file-card{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex}.file-card__icon{border-radius:var(--radius-md);background:var(--color-primary-bg);width:38px;height:38px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-card__icon svg{width:20px;height:20px}.file-card__info{flex:1;min-width:0}.file-card__name{font-size:var(--text-sm);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.file-card__meta{font-size:var(--text-xs);color:var(--color-ink-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.file-card__actions{gap:var(--space-2);flex-shrink:0;display:flex}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);border:1px solid #0000;display:flex}.alert svg{flex-shrink:0;width:16px;height:16px;margin-top:2px}.alert--danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#f8717140}.alert--warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:#fbbf2440}.alert--info{background:var(--color-info-bg);color:var(--color-info);border-color:#60a5fa40}.alert--success{background:var(--color-success-bg);color:var(--color-success);border-color:#34d39940}.alert__title{margin-bottom:2px;font-weight:600}.alert__list{padding-left:var(--space-4);margin:0}.progress{background:var(--color-surface-sunken);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress__bar{background:var(--color-primary);height:100%;transition:width var(--transition-base);border-radius:999px}.progress-stages{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.progress-stage{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-ink-muted);display:flex}.progress-stage--active{color:var(--color-ink)}.progress-stage--done{color:var(--color-ink-soft)}.progress-stage__marker{border:1px solid var(--color-border);width:18px;height:18px;color:var(--color-ink-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.progress-stage__marker svg{width:12px;height:12px}.progress-stage--done .progress-stage__marker{border-color:var(--color-success);color:var(--color-success)}.progress-stage--active .progress-stage__marker{border-color:var(--color-primary);color:var(--color-primary)}.review-split{gap:var(--space-6);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (max-width:900px){.review-split{gap:var(--space-4);grid-template-columns:1fr}}.pdf-pane{position:sticky;top:0}@media (max-width:900px){.pdf-pane{position:static}}.pdf-frame{width:100%;height:calc(100vh - var(--header-height) - 190px);background:var(--color-surface-sunken);border:none;min-height:380px;display:block}@media (max-width:900px){.pdf-frame{height:60vh;min-height:320px}}.pdf-empty{justify-content:center;align-items:center;gap:var(--space-3);height:380px;color:var(--color-ink-muted);font-size:var(--text-sm);text-align:center;padding:var(--space-6);flex-direction:column;display:flex}.pdf-empty svg{width:32px;height:32px}.xml-view{padding:var(--space-4) var(--space-5);background:var(--color-surface-sunken);color:var(--color-ink-soft);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre;max-height:60vh;margin:0;line-height:1.7;overflow-x:auto}.issue-list{flex-direction:column;display:flex}.issue{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-light);display:flex}.issue:last-child{border-bottom:none}.issue__body{min-width:0}.issue__message{font-size:var(--text-sm);color:var(--color-ink)}.issue__path{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-muted);margin-top:2px}.cell-input{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);padding:6px 8px;line-height:1.4}.cell-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.cell-input--amount{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.totals{gap:var(--space-2);flex-direction:column;display:flex}.totals__row{justify-content:space-between;align-items:baseline;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-ink-soft);display:flex}.totals__row--grand{border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-1);color:var(--color-ink);font-weight:600}.totals__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.totals__row--grand .totals__value{font-family:var(--font-display);font-size:var(--text-lg)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack--sm{gap:var(--space-2)}.form input.input--invalid,.form select.input--invalid,.form textarea.input--invalid,.cell-input.input--invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-bg)}.issue--action{text-align:left;border:none;border-bottom:1px solid var(--color-border-light);cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0}.issue--action:hover{background:var(--color-surface-raised)}.issue--action .issue__message,.issue--action .issue__path{display:block}.lines-table .cell-input{min-width:64px}.lines-table td:first-child .cell-input{min-width:240px}.lines-table td:nth-child(2) .cell-input,.lines-table td:nth-child(4) .cell-input{min-width:96px}.lines-table td:nth-child(3) .cell-input,.lines-table td:nth-child(5) .cell-input{min-width:84px}.lines-table td:nth-child(7){white-space:nowrap}.lang-switch{border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.lang-switch__option{background:var(--color-surface);color:var(--color-ink-soft);font:inherit;font-size:var(--text-xs);padding:2px var(--space-1);cursor:pointer;border:0;font-weight:600}.lang-switch__option+.lang-switch__option{border-left:1px solid var(--color-border)}.lang-switch__option:hover{background:var(--color-surface-hover)}.lang-switch__option--active{background:var(--color-primary-bg);color:var(--color-primary)}
