@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-normal-CMLFr1mH.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-400-normal-CB9mjlcG.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-italic-DfhPNO7U.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-400-italic-CUUJz_ob.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-Mu8CBhr8.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-BhWpCnbP.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-CjrsHTK6.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-normal-CSsFCx3j.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-italic-CpHvpfHf.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-italic-DxlkqUlJ.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-o3gjl2h6.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-BqP-dZFg.woff) format("woff")}:root{color-scheme:light;--font-sans: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Source Serif 4", "Times New Roman", Georgia, serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--space: 4px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-base: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--control-sm: 32px;--control-md: 38px;--control-lg: 46px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--dur-fast: .12s;--dur-med: .2s;--dur-slow: .28s;--z-sticky: 10;--z-nav: 20;--z-overlay: 40;--z-popover: 60;--z-toast: 80;--color-bg: #eceff3;--color-surface: #ffffff;--color-surface-muted: #f3f5f8;--color-surface-sunken: #e6eaef;--color-surface-raised: #ffffff;--color-hover: rgba(26, 34, 51, .045);--color-pressed: rgba(26, 34, 51, .08);--color-border: #dce1e8;--color-border-strong: #c3cbd6;--color-scrim: rgba(16, 22, 36, .5);--color-text: #1a2233;--color-text-secondary: #4a5568;--color-text-tertiary: #5d687a;--color-text-disabled: #98a2b3;--kind-git: #c2410c;--kind-git-soft: #fdeee6;--kind-docker: #1a5fd6;--kind-docker-soft: #e7effd;--kind-nginx: #0b7a35;--kind-nginx-soft: #e3f4ea;--color-primary: #1d3f8f;--color-primary-hover: #183577;--color-primary-pressed: #132b62;--color-on-primary: #ffffff;--color-primary-soft: #e8eefb;--color-primary-soft-text: #1d3f8f;--color-link: #1f4fbf;--color-focus: #2563eb;--color-paper: #ffffff;--paper-ink: #1a2233;--paper-ink-2: #4a5568;--paper-rule: #dce1e8;--paper-ok: #15803d;--paper-miss: #b42318;--paper-excel: #1d6f42;--color-brand: #c8102e;--color-brand-soft: #fdecee;--color-brand-text: #b00e28;--color-success: #15803d;--color-success-soft: #e9f8ef;--color-success-border: #b6e6c8;--color-warning: #b45309;--color-warning-soft: #fff6e6;--color-warning-border: #f6d9a6;--color-error: #b42318;--color-error-soft: #fef1f0;--color-error-border: #f6c7c2;--color-info: #175cd3;--color-info-soft: #eef5ff;--color-info-border: #c3d9fb;--color-danger: #c4271c;--color-danger-hover: #a51f16;--tag-gray-bg: #e3e8ee;--tag-gray-fg: #3a4557;--diff-easy-bg: #d8f1f5;--diff-easy-fg: #0a6577;--diff-medium-bg: #fbedc8;--diff-medium-fg: #7c4f00;--diff-hard-bg: #fce4ea;--diff-hard-fg: #a8123e;--tag-blue-bg: #e7efff;--tag-blue-fg: #1d4ab8;--tag-green-bg: #e5f6ec;--tag-green-fg: #17713a;--tag-teal-bg: #e1f5f3;--tag-teal-fg: #0f6b63;--tag-yellow-bg: #fdf3d6;--tag-yellow-fg: #855c06;--tag-orange-bg: #fdeddf;--tag-orange-fg: #a3470d;--tag-red-bg: #fdeaea;--tag-red-fg: #b2211b;--tag-pink-bg: #fbe8f2;--tag-pink-fg: #a3215f;--tag-purple-bg: #f0eafd;--tag-purple-fg: #5b3bb5;--tag-cyan-bg: #e1f3fa;--tag-cyan-fg: #0b6585;--chart-blue: #2f6fde;--chart-green: #1f9d57;--chart-orange: #e8772e;--chart-teal: #14a39a;--chart-purple: #7a5af0;--chart-red: #d8433b;--chart-grid: #e6e9ef;--chart-axis: #64748b;--chart-ramp-1: #e3ecfd;--chart-ramp-2: #b9cffa;--chart-ramp-3: #7ea6f2;--chart-ramp-4: #3f74e0;--chart-ramp-5: #1d48a8;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px -2px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 16px 40px -8px rgba(15, 23, 42, .2), 0 4px 12px -4px rgba(15, 23, 42, .08);--shadow-page: 0 0 0 1px rgba(26, 34, 51, .06), 0 1px 2px rgba(26, 34, 51, .08), 0 8px 24px -12px rgba(26, 34, 51, .22)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}:root[data-theme=dark],:root[data-mode=dark]{color-scheme:dark;--color-bg: #0a101c;--color-surface: #111a2a;--color-surface-muted: #162135;--color-surface-sunken: #0c1422;--color-surface-raised: #172236;--color-hover: rgba(226, 232, 240, .06);--color-pressed: rgba(226, 232, 240, .1);--color-border: #222f45;--color-border-strong: #33435e;--color-scrim: rgba(2, 6, 14, .7);--color-text: #e7ecf3;--color-text-secondary: #a7b3c5;--color-text-tertiary: #8794a8;--color-text-disabled: #5c6a80;--color-primary: #7ea6ff;--color-primary-hover: #98b8ff;--color-primary-pressed: #b0c8ff;--color-on-primary: #0a1222;--color-primary-soft: #1a2a4a;--color-primary-soft-text: #a9c3ff;--color-link: #8fb2ff;--color-focus: #8fb2ff;--color-brand: #f0566a;--color-brand-soft: #3a1520;--color-brand-text: #ff8b99;--color-success: #4ad08a;--color-success-soft: #0f2a1d;--color-success-border: #1d5a3b;--color-warning: #f5b453;--color-warning-soft: #2e2210;--color-warning-border: #634815;--color-error: #ff8a80;--color-error-soft: #33161a;--color-error-border: #6b2a2c;--color-info: #8fb8ff;--color-info-soft: #13233f;--color-info-border: #26467a;--color-danger: #f0645a;--color-danger-hover: #ff7d74;--tag-gray-bg: #1d2738;--tag-gray-fg: #b7c2d3;--diff-easy-bg: #0d2a33;--diff-easy-fg: #6dd3e6;--diff-medium-bg: #30250c;--diff-medium-fg: #f1c76a;--diff-hard-bg: #3a1320;--diff-hard-fg: #ff94ad;--tag-blue-bg: #172a4d;--tag-blue-fg: #9dbcff;--tag-green-bg: #10301f;--tag-green-fg: #7bdba5;--tag-teal-bg: #0e2f2d;--tag-teal-fg: #6fd6cb;--tag-yellow-bg: #30260c;--tag-yellow-fg: #f1c869;--tag-orange-bg: #34200f;--tag-orange-fg: #f6a76a;--tag-red-bg: #3a1618;--tag-red-fg: #ff9a93;--tag-pink-bg: #36152a;--tag-pink-fg: #f59cc8;--tag-purple-bg: #251c45;--tag-purple-fg: #bca8ff;--tag-cyan-bg: #0e2a36;--tag-cyan-fg: #7fd0ee;--chart-blue: #6f9cff;--chart-green: #45c47e;--chart-orange: #f39a5b;--chart-teal: #3cc7bc;--chart-purple: #a28bff;--chart-red: #f27066;--chart-grid: #1f2a3d;--chart-axis: #8794a8;--chart-ramp-1: #15233d;--chart-ramp-2: #1d3766;--chart-ramp-3: #2c5299;--chart-ramp-4: #4f7fd6;--chart-ramp-5: #8db0f5;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 6px 16px -4px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 48px -12px rgba(0, 0, 0, .65);--shadow-page: 0 0 0 1px rgba(226, 232, 240, .07), 0 10px 28px -14px rgba(0, 0, 0, .8);--kind-git: #ff9b73;--kind-git-soft: #3a1a0e;--kind-docker: #86b3ff;--kind-docker-soft: #13254a;--kind-nginx: #74d79c;--kind-nginx-soft: #0e2f1d}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ol,ul{margin:0}ol,ul{padding:0}img,svg,video{display:block;max-width:100%}img{height:auto}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}a{color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}.ui-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-skip-link{position:fixed;left:var(--spacing-3);top:var(--spacing-3);z-index:var(--z-toast);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);font-weight:600;text-decoration:none;transform:translateY(-200%)}.ui-skip-link:focus{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.ui-stack{display:flex;min-width:0}.ui-stack--v{flex-direction:column}.ui-stack--h{flex-direction:row}.ui-stack-item--fill{flex:1 1 0;min-width:0;min-height:0}.ui-stack-item--scroll{overflow:auto}.ui-grid{display:grid;min-width:0}.ui-grid>*{min-width:0}.ui-center{display:flex;align-items:center;justify-content:center}.ui-card{position:relative;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.ui-card--muted{background:var(--color-surface-muted);box-shadow:none}.ui-card--elev-low{box-shadow:var(--shadow-sm)}.ui-card--elev-med{box-shadow:var(--shadow-md)}.ui-card--clickable{display:block;width:100%;text-align:start;font:inherit;color:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-out)}.ui-card--clickable:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.ui-card--clickable:active{transform:scale(.995)}.ui-divider{border:0;border-top:1px solid var(--color-border);margin:0;width:100%}.ui-divider-label{display:flex;align-items:center;gap:var(--spacing-3);color:var(--color-text-tertiary);font-size:var(--text-sm)}.ui-divider-label:before,.ui-divider-label:after{content:"";flex:1;border-top:1px solid var(--color-border)}.ui-text{min-width:0;overflow-wrap:anywhere}.ui-text--supporting{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.45}.ui-text--code{font-family:var(--font-mono);font-size:.92em;padding:.1em .35em;border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.ui-text--display-3{font-size:var(--text-3xl);font-weight:700;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ui-text--lg{font-size:var(--text-lg)}.ui-text--c-secondary{color:var(--color-text-secondary)}.ui-text--c-disabled{color:var(--color-text-tertiary)}.ui-text--c-accent{color:var(--color-brand-text)}.ui-text--c-inherit{color:inherit}.ui-text--c-success{color:var(--color-success)}.ui-text--c-error{color:var(--color-error)}.ui-text--c-warning{color:var(--color-warning)}.ui-text--w-medium{font-weight:500}.ui-text--w-semibold{font-weight:600}.ui-text--w-bold{font-weight:700}.ui-text--w-normal{font-weight:400}.ui-tabular{font-variant-numeric:tabular-nums}.ui-clamp{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.ui-balance{text-wrap:balance}.ui-heading{color:var(--color-text);font-weight:650;letter-spacing:-.012em;min-width:0;overflow-wrap:anywhere}.ui-heading--1{font-size:var(--text-2xl);line-height:1.25;font-weight:700;letter-spacing:-.02em}.ui-heading--2{font-size:var(--text-lg);line-height:1.35}.ui-heading--3{font-size:var(--text-base);line-height:1.4}@media(min-width:768px){.ui-heading--1{font-size:26px}}.ui-link{color:var(--color-link);text-decoration:none;font-weight:500;border-radius:2px;text-underline-offset:3px;cursor:pointer}.ui-link:hover{text-decoration:underline}.ui-link--sm{font-size:var(--text-sm)}.ui-link--inherit{color:inherit}.ui-md{font-size:var(--text-base);line-height:1.7;color:var(--color-text);overflow-wrap:anywhere;max-width:72ch}.ui-md--full{max-width:none}.ui-md>*+*{margin-top:.75em}.ui-md h1,.ui-md h2,.ui-md h3,.ui-md h4,.ui-md h5,.ui-md h6{font-weight:650;line-height:1.35;margin-top:1.4em;letter-spacing:-.01em}.ui-md>:first-child{margin-top:0}.ui-md h1,.ui-md h2{font-size:var(--text-lg)}.ui-md h3{font-size:var(--text-base)}.ui-md h4,.ui-md h5,.ui-md h6{font-size:var(--text-md)}.ui-md ul,.ui-md ol{padding-inline-start:1.4em}.ui-md li+li{margin-top:.3em}.ui-md li::marker{color:var(--color-text-tertiary)}.ui-md a{color:var(--color-link)}.ui-md code{font-family:var(--font-mono);font-size:.9em;padding:.12em .38em;border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.ui-md pre{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);background:var(--color-surface-sunken);overflow:auto}.ui-md pre code{padding:0;background:none}.ui-md blockquote{border-inline-start:3px solid var(--color-border-strong);padding-inline-start:var(--spacing-4);color:var(--color-text-secondary)}.ui-md hr{border:0;border-top:1px solid var(--color-border)}.ui-md img{border-radius:var(--radius-md);border:1px solid var(--color-border)}.ui-md table{border-collapse:collapse;font-size:var(--text-md);display:block;overflow-x:auto;max-width:100%}.ui-md th,.ui-md td{border:1px solid var(--color-border);padding:6px 10px;text-align:start;vertical-align:top}.ui-md th{background:var(--color-surface-muted);font-weight:600;white-space:nowrap}.ui-md td{min-width:3em}.ui-md--compact{font-size:var(--text-md);line-height:1.6}.ui-md--compact>*+*{margin-top:.5em}.ui-codeblock{margin:0;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-sunken);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6;overflow:auto;max-height:420px}.ui-icon{flex:none;display:inline-block;vertical-align:middle}.ui-icon--sm{width:16px;height:16px}.ui-icon--md{width:20px;height:20px}.ui-icon--lg{width:28px;height:28px}.ui-icon--c-secondary{color:var(--color-text-tertiary)}.ui-icon--c-success{color:var(--color-success)}.ui-icon--c-error{color:var(--color-error)}.ui-icon--c-warning{color:var(--color-warning)}.ui-icon--c-accent{color:var(--color-brand)}.ui-icon--c-primary{color:var(--color-primary)}.ui-btn{--btn-h: var(--control-md);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);min-height:var(--btn-h);padding:0 14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-md);font-weight:600;line-height:1.45;white-space:nowrap;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-xs);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.ui-btn:hover{background:var(--color-surface-muted)}.ui-btn:active{transform:translateY(.5px);background:var(--color-surface-sunken)}.ui-btn--sm{--btn-h: var(--control-sm);padding:0 10px;font-size:var(--text-sm);gap:6px}.ui-btn--lg{--btn-h: var(--control-lg);padding:0 20px;font-size:var(--text-base);border-radius:var(--radius-md)}.ui-btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-sm)}.ui-btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.ui-btn--primary:active{background:var(--color-primary-pressed)}.ui-btn--destructive{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.ui-btn--destructive:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}:root[data-mode=dark] .ui-btn--destructive{color:#1a0605}.ui-btn--ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--color-text-secondary)}.ui-btn--ghost:hover{background:var(--color-hover);color:var(--color-text)}.ui-btn--ghost:active{background:var(--color-pressed)}.ui-btn[aria-disabled=true],.ui-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.ui-btn[aria-disabled=true]:hover,.ui-btn:disabled:hover{background:revert-layer}.ui-btn--primary[aria-disabled=true]:hover{background:var(--color-primary)}.ui-btn--ghost[aria-disabled=true]:hover{background:transparent}.ui-btn--default[aria-disabled=true]:hover{background:var(--color-surface)}.ui-btn--destructive[aria-disabled=true]:hover{background:var(--color-danger)}.ui-btn__label{overflow:hidden;text-overflow:ellipsis}.ui-btn--loading .ui-btn__content{visibility:hidden}.ui-btn__content{display:inline-flex;align-items:center;gap:inherit;min-width:0}.ui-btn__spinner{position:absolute;inset:0;display:grid;place-items:center}.ui-btn__start{display:inline-flex;flex:none}.ui-btn__start img{width:18px;height:18px}.ui-icon-btn{padding:0;width:var(--btn-h)}@media(pointer:coarse){.ui-btn--sm{--btn-h: 36px}}.ui-spinner{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-inline-end-color:transparent;animation:ui-spin .7s linear infinite;opacity:.8}.ui-spinner--sm{width:14px;height:14px}.ui-spinner--lg{width:28px;height:28px;border-width:3px;color:var(--color-primary)}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:22px;padding:1px 8px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;line-height:1.5;white-space:nowrap;vertical-align:middle;background:var(--tag-bg, var(--tag-gray-bg));color:var(--tag-fg, var(--tag-gray-fg))}.ui-tag>span{overflow:hidden;text-overflow:ellipsis;padding-block:4px;margin-block:-4px}.ui-tag--md{min-height:26px;padding:0 10px;font-size:var(--text-sm)}.ui-tag .ui-icon{width:13px;height:13px}.ui-tag .diff-bars{flex:none;fill:currentColor}.ui-tag--gray{--tag-bg: var(--tag-gray-bg);--tag-fg: var(--tag-gray-fg)}.ui-tag--easy{--tag-bg: var(--diff-easy-bg);--tag-fg: var(--diff-easy-fg)}.ui-tag--medium{--tag-bg: var(--diff-medium-bg);--tag-fg: var(--diff-medium-fg)}.ui-tag--hard{--tag-bg: var(--diff-hard-bg);--tag-fg: var(--diff-hard-fg)}.ui-tag--blue{--tag-bg: var(--tag-blue-bg);--tag-fg: var(--tag-blue-fg)}.ui-tag--green{--tag-bg: var(--tag-green-bg);--tag-fg: var(--tag-green-fg)}.ui-tag--teal{--tag-bg: var(--tag-teal-bg);--tag-fg: var(--tag-teal-fg)}.ui-tag--yellow{--tag-bg: var(--tag-yellow-bg);--tag-fg: var(--tag-yellow-fg)}.ui-tag--orange{--tag-bg: var(--tag-orange-bg);--tag-fg: var(--tag-orange-fg)}.ui-tag--red{--tag-bg: var(--tag-red-bg);--tag-fg: var(--tag-red-fg)}.ui-tag--pink{--tag-bg: var(--tag-pink-bg);--tag-fg: var(--tag-pink-fg)}.ui-tag--purple{--tag-bg: var(--tag-purple-bg);--tag-fg: var(--tag-purple-fg)}.ui-tag--git{--tag-bg: var(--kind-git-soft);--tag-fg: var(--kind-git)}.ui-tag--docker{--tag-bg: var(--kind-docker-soft);--tag-fg: var(--kind-docker)}.ui-tag--nginx{--tag-bg: var(--kind-nginx-soft);--tag-fg: var(--kind-nginx)}.ui-tag--cyan{--tag-bg: var(--tag-cyan-bg);--tag-fg: var(--tag-cyan-fg)}.ui-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:700;font-variant-numeric:tabular-nums}.ui-badge--warning{background:var(--color-warning-soft);color:var(--color-warning);box-shadow:inset 0 0 0 1px var(--color-warning-border)}.ui-dot{position:relative;flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--dot, var(--color-text-tertiary))}.ui-dot--success{--dot: var(--color-success)}.ui-dot--warning{--dot: var(--color-warning)}.ui-dot--error{--dot: var(--color-error)}.ui-dot--info{--dot: var(--color-info)}.ui-dot--neutral{--dot: var(--color-text-tertiary)}.ui-dot--pulse:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--dot);animation:ui-pulse 1.8s var(--ease-out) infinite}@keyframes ui-pulse{0%{transform:scale(1);opacity:.6}to{transform:scale(2.6);opacity:0}}.ui-banner{display:flex;gap:var(--spacing-3);align-items:flex-start;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);border:1px solid var(--banner-border);background:var(--banner-bg);color:var(--color-text);font-size:var(--text-md)}.ui-banner__icon{color:var(--banner-fg);margin-top:1px}.ui-banner__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ui-banner__title{font-weight:600;overflow-wrap:anywhere}.ui-banner__desc{color:var(--color-text-secondary);overflow-wrap:anywhere}.ui-banner__close{margin:-6px -8px -6px 0}.ui-banner--info{--banner-bg: var(--color-info-soft);--banner-border: var(--color-info-border);--banner-fg: var(--color-info)}.ui-banner--success{--banner-bg: var(--color-success-soft);--banner-border: var(--color-success-border);--banner-fg: var(--color-success)}.ui-banner--warning{--banner-bg: var(--color-warning-soft);--banner-border: var(--color-warning-border);--banner-fg: var(--color-warning)}.ui-banner--error{--banner-bg: var(--color-error-soft);--banner-border: var(--color-error-border);--banner-fg: var(--color-error)}.ui-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-2);padding:var(--spacing-10) var(--spacing-6);max-width:460px;margin-inline:auto}.ui-empty--compact{padding:var(--spacing-6) var(--spacing-4)}.ui-empty__icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:var(--spacing-2);border-radius:var(--radius-lg);background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text-tertiary)}.ui-empty__title{font-size:var(--text-lg);font-weight:650;text-wrap:balance}.ui-empty--compact .ui-empty__title{font-size:var(--text-base)}.ui-empty__desc{color:var(--color-text-secondary);font-size:var(--text-md);text-wrap:pretty}.ui-empty__actions{display:flex;flex-wrap:wrap;gap:var(--spacing-2);justify-content:center;margin-top:var(--spacing-3)}.ui-progress{position:relative;width:100%;min-width:48px;height:6px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-text) 9%,transparent);overflow:hidden}.ui-progress__bar{height:100%;border-radius:inherit;background:var(--bar, var(--color-primary));transition:width var(--dur-slow) var(--ease-out)}.ui-progress--success{--bar: var(--color-success)}.ui-progress--warning{--bar: var(--color-warning)}.ui-progress--error{--bar: var(--color-error)}.ui-progress--neutral{--bar: var(--color-text-tertiary)}.ui-progress--accent{--bar: var(--color-primary)}.ui-tooltip{z-index:var(--z-toast);max-width:320px;padding:6px 10px;border-radius:var(--radius-sm);background:#0f172a;color:#f1f5f9;font-size:var(--text-sm);line-height:1.45;box-shadow:var(--shadow-md);animation:ui-fade-in var(--dur-fast) var(--ease-out)}:root[data-mode=dark] .ui-tooltip{background:#e7ecf3;color:#0a101c}.ui-toasts{position:fixed;inset-inline-end:var(--spacing-4);bottom:var(--spacing-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--spacing-2);width:min(380px,calc(100vw - 2 * var(--spacing-4)));pointer-events:none}.ui-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);background:var(--color-surface-raised);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);font-size:var(--text-md);animation:ui-toast-in var(--dur-slow) var(--ease-out)}.ui-toast__msg{flex:1;min-width:0;padding-top:2px;overflow-wrap:anywhere}.ui-toast .ui-icon{margin-top:3px}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes ui-fade-in{0%{opacity:0}}.ui-field{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%}.ui-field__label{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;font-size:var(--text-md);font-weight:600;color:var(--color-text)}.ui-field__req{color:var(--color-brand)}.ui-field__opt{font-weight:400;font-size:var(--text-sm);color:var(--color-text-tertiary)}.ui-field__desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.45}.ui-field__msg{display:flex;gap:6px;align-items:flex-start;font-size:var(--text-sm);font-weight:500}.ui-field__msg--error{color:var(--color-error)}.ui-field__msg--warning{color:var(--color-warning)}.ui-field__msg--success{color:var(--color-success)}.ui-field__msg .ui-icon{margin-top:2px}.ui-control{--ctl-h: var(--control-md);position:relative;display:flex;align-items:center;min-height:var(--ctl-h);width:100%;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.ui-control:hover{border-color:color-mix(in srgb,var(--color-border-strong) 60%,var(--color-text-tertiary))}.ui-control:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 22%,transparent)}.ui-control--sm{--ctl-h: var(--control-sm)}.ui-control--lg{--ctl-h: var(--control-lg)}.ui-control--error{border-color:var(--color-error)}.ui-control--warning{border-color:var(--color-warning)}.ui-control--disabled{background:var(--color-surface-muted);opacity:.7;cursor:not-allowed}.ui-control input,.ui-control select,.ui-control textarea{flex:1;min-width:0;width:100%;height:calc(var(--ctl-h) - 2px);padding:0 12px;border:0;outline:0;background:transparent;font-size:var(--text-md)}.ui-control--lg input{font-size:var(--text-base);padding:0 14px}.ui-control--sm input,.ui-control--sm select{font-size:var(--text-sm);padding:0 10px}.ui-control textarea{height:auto;padding:10px 12px;line-height:1.55;resize:vertical}.ui-control--mono textarea{font-family:var(--font-mono);font-size:var(--text-sm)}.ui-control input::placeholder,.ui-control textarea::placeholder{color:var(--color-text-tertiary)}.ui-control input:disabled,.ui-control select:disabled,.ui-control textarea:disabled{cursor:not-allowed}.ui-control select{appearance:none;padding-inline-end:34px;cursor:pointer;text-overflow:ellipsis}.ui-control select option{background:var(--color-surface);color:var(--color-text)}.ui-control__chev{position:absolute;inset-inline-end:10px;pointer-events:none;color:var(--color-text-tertiary)}.ui-control__adorn{display:flex;align-items:center;padding:0 10px;color:var(--color-text-tertiary);font-size:var(--text-sm);white-space:nowrap}.ui-control__adorn--start{padding-inline-end:0}.ui-control__clear{display:grid;place-items:center;width:28px;height:28px;margin-inline-end:4px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary)}.ui-control__clear:hover{background:var(--color-hover);color:var(--color-text)}.ui-control--placeholder select{color:var(--color-text-tertiary)}.ui-control input[type=number]{font-variant-numeric:tabular-nums}@media(max-width:640px){.ui-control input,.ui-control select,.ui-control textarea{font-size:16px!important}}.ui-control__trigger{flex:1;min-width:0;display:flex;align-items:center;height:calc(var(--ctl-h) - 2px);padding:0 34px 0 12px;border:0;border-radius:inherit;background:transparent;text-align:start;font-size:var(--text-md)}.ui-control__trigger:focus-visible{outline:0}.ui-control__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-control__value--placeholder{color:var(--color-text-tertiary)}.ui-control__trigger+.ui-control__clear{position:absolute;inset-inline-end:4px}.ui-dt{align-items:stretch}.ui-dt__date{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;height:calc(var(--ctl-h) - 2px);padding:0 12px;border:0;border-radius:var(--radius-md) 0 0 var(--radius-md);background:transparent;text-align:start;font-size:var(--text-md);font-variant-numeric:tabular-nums}.ui-dt__date:hover,.ui-dt__date[data-state=open]{background:var(--color-hover)}.ui-dt__date:focus-visible,.ui-dt__time input:focus-visible{outline:0}.ui-dt__icon{flex:none;color:var(--color-text-tertiary)}.ui-dt__sep{flex:none;width:1px;margin-block:7px;background:var(--color-border)}.ui-dt__time{flex:none;display:flex;align-items:center;gap:6px;padding-inline-start:10px;cursor:text}.ui-control.ui-dt .ui-dt__time input{width:6ch;padding:0 10px 0 0;font-variant-numeric:tabular-nums;font-weight:500}.ui-dt>.ui-control__clear{align-self:center}.ui-cal{padding:var(--spacing-3)}.ui-cal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.ui-cal__title{font-weight:650;font-size:var(--text-md)}.ui-cal__nav{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary)}.ui-cal__nav:hover{background:var(--color-hover);color:var(--color-text)}.ui-cal__grid{display:grid;grid-template-columns:repeat(7,38px);gap:2px}.ui-cal__row{display:contents}.ui-cal__dow{display:grid;place-items:center;height:28px;font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary)}.ui-cal__day{width:38px;height:36px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-size:var(--text-md);font-variant-numeric:tabular-nums}.ui-cal__day:hover{background:var(--color-hover)}.ui-cal__day:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.ui-cal__sun{color:var(--color-brand-text)}.ui-cal__day--out{color:var(--color-text-disabled)}.ui-cal__day--today{box-shadow:inset 0 0 0 1px var(--color-border-strong);font-weight:650}.ui-cal__day--on,.ui-cal__day--on:hover{background:var(--color-primary);color:var(--color-on-primary);font-weight:650}.ui-cal__foot{display:flex;align-items:center;gap:6px;margin-top:var(--spacing-2);padding-top:var(--spacing-2);border-top:1px solid var(--color-border)}.ui-cal__quick{min-height:30px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500}.ui-cal__quick:hover{border-color:var(--color-border-strong);color:var(--color-text)}.ui-cal__quick--end{margin-inline-start:auto}.ui-stepper{--ctl-h: var(--control-md);display:inline-flex;align-items:stretch;height:var(--ctl-h);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.ui-stepper--sm{--ctl-h: var(--control-sm)}.ui-stepper:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 22%,transparent)}.ui-stepper button{display:grid;place-items:center;width:var(--ctl-h);border:0;background:transparent;color:var(--color-text-secondary)}.ui-stepper button:hover:not(:disabled){background:var(--color-hover);color:var(--color-text)}.ui-stepper button:disabled{opacity:.35;cursor:not-allowed}.ui-stepper input{width:2.6em;border:0;border-inline:1px solid var(--color-border);outline:0;background:transparent;text-align:center;font-weight:650;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}.ui-stepper input::-webkit-outer-spin-button,.ui-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ui-check{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--text-md);min-width:0}.ui-check__box{position:relative;flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:2px}.ui-check__box input{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);margin:0;opacity:0;cursor:pointer}.ui-check__mark{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--color-border-strong);background:var(--color-surface);color:transparent;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.ui-check__mark svg{width:12px;height:12px}.ui-check__box input:checked+.ui-check__mark,.ui-check__box input:indeterminate+.ui-check__mark{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.ui-check__box input:focus-visible+.ui-check__mark{outline:2px solid var(--color-focus);outline-offset:2px}.ui-check__box input:disabled+.ui-check__mark{opacity:.5}.ui-check__text{display:flex;flex-direction:column;gap:2px;min-width:0}.ui-check__label{font-weight:500}.ui-switch{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer;min-width:0}.ui-switch__track{position:relative;flex:none;width:36px;height:20px;margin-top:1px;border-radius:var(--radius-full);background:var(--color-border-strong);transition:background-color var(--dur-med) var(--ease-out)}.ui-switch__track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--color-paper);box-shadow:0 1px 2px #00000040;transition:transform var(--dur-med) var(--ease-out)}.ui-switch input{position:absolute;opacity:0;width:1px;height:1px}.ui-switch input:checked+.ui-switch__track{background:var(--color-primary)}.ui-switch input:checked+.ui-switch__track:after{transform:translate(16px)}:root[data-mode=dark] .ui-switch input:checked+.ui-switch__track:after{background:var(--color-on-primary)}.ui-switch input:focus-visible+.ui-switch__track{outline:2px solid var(--color-focus);outline-offset:2px}.ui-switch--sm .ui-switch__track{width:30px;height:18px}.ui-switch--sm .ui-switch__track:after{width:14px;height:14px}.ui-switch--sm input:checked+.ui-switch__track:after{transform:translate(12px)}.ui-switch__text{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:var(--text-md)}.ui-switch__label{font-weight:500}.ui-seg{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:100%}.ui-seg__item{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-md);font-weight:500;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.ui-seg__item:hover{border-color:var(--color-border-strong);color:var(--color-text)}.ui-seg__item[aria-checked=true]{background:var(--color-primary-soft);border-color:color-mix(in srgb,var(--color-primary) 45%,transparent);color:var(--color-primary-soft-text);font-weight:600}.ui-seg--sm .ui-seg__item{min-height:28px;padding:0 10px;font-size:var(--text-sm)}@media(pointer:coarse){.ui-seg__item{min-height:36px}}.ui-drop{position:relative;display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-muted);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.ui-drop:hover,.ui-drop--over{border-color:var(--color-primary);background:var(--color-primary-soft)}.ui-drop:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.ui-drop--filled{border-style:solid;background:var(--color-surface)}.ui-drop--error{border-color:var(--color-error)}.ui-drop--disabled{opacity:.55;cursor:not-allowed}.ui-drop input{position:absolute;inset:0;opacity:0;cursor:inherit;width:100%}.ui-drop__icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-primary)}.ui-drop__text{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:var(--text-md)}.ui-drop__name{font-weight:600;overflow-wrap:anywhere}.ui-drop__remove{position:relative;z-index:1;margin-inline-start:auto}.ui-options{display:flex;flex-direction:column;max-height:300px;overflow:auto;padding:4px}.ui-option{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;text-align:start;font-size:var(--text-md);cursor:pointer}.ui-option:hover,.ui-option[data-active=true]{background:var(--color-hover)}.ui-option[aria-selected=true]{font-weight:600}.ui-option__check{flex:none;width:16px;height:16px;color:var(--color-primary)}.ui-option__desc{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:400}.ui-option--all{font-weight:600}.ui-options__sep{flex:none;height:1px;margin:4px 6px;background:var(--color-border)}.ui-options__empty{padding:12px;color:var(--color-text-secondary);font-size:var(--text-md)}.ui-options__search{padding:8px 8px 4px;border-bottom:1px solid var(--color-border)}.ui-chips{display:flex;flex-wrap:wrap;gap:6px;padding:5px 6px;min-height:var(--control-md);align-items:center}.ui-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;height:26px;padding:0 4px 0 10px;border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary-soft-text);font-size:var(--text-sm);font-weight:600}.ui-chip button{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:inherit}.ui-chip button:hover{background:color-mix(in srgb,currentColor 15%,transparent)}.ui-chips input{flex:1;min-width:140px;height:28px;padding:0 6px}.ui-scrim{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--color-scrim);animation:ui-fade-in var(--dur-med) var(--ease-out)}.ui-dialog{position:fixed;z-index:var(--z-overlay);left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;width:min(var(--dialog-w, 560px),calc(100vw - 32px));max-height:min(86dvh,900px);border-radius:var(--radius-xl);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);outline:none;animation:ui-dialog-in var(--dur-slow) var(--ease-out)}@keyframes ui-dialog-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 10px)) scale(.98)}}@media(max-width:640px){.ui-dialog{top:auto;bottom:0;transform:translate(-50%);width:100vw;max-height:92dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation-name:ui-sheet-in}@keyframes ui-sheet-in{0%{transform:translate(-50%,24px);opacity:0}}}.ui-dialog__header{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-5) var(--spacing-5) var(--spacing-4) var(--spacing-6);border-bottom:1px solid var(--color-border)}.ui-dialog__titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:4px}.ui-dialog__title{font-size:var(--text-lg);font-weight:650;line-height:1.35;letter-spacing:-.01em;overflow-wrap:anywhere}.ui-dialog__subtitle{font-size:var(--text-md);color:var(--color-text-secondary)}.ui-dialog__body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--spacing-5) var(--spacing-6)}.ui-dialog__footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--spacing-2);padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.ui-dialog--alert{--dialog-w: 440px}.ui-dialog--alert .ui-dialog__body{display:flex;flex-direction:column;gap:var(--spacing-2);padding-top:var(--spacing-6)}.ui-popover{z-index:var(--z-popover);min-width:200px;max-width:min(420px,calc(100vw - 24px));border-radius:var(--radius-lg);background:var(--color-surface-raised);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);outline:none;animation:ui-pop-in var(--dur-med) var(--ease-out);transform-origin:var(--radix-popover-content-transform-origin, var(--radix-dropdown-menu-content-transform-origin))}@keyframes ui-pop-in{0%{opacity:0;transform:scale(.97)}}.ui-menu{padding:4px;min-width:220px}.ui-menu__item{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 10px;border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:500;color:var(--color-text);cursor:pointer;outline:none;-webkit-user-select:none;user-select:none}.ui-menu__item .ui-icon{color:var(--color-text-tertiary)}.ui-menu__item[data-highlighted]{background:var(--color-hover)}.ui-menu__item--destructive{color:var(--color-error)}.ui-menu__item--destructive .ui-icon{color:currentColor}.ui-menu__sep{height:1px;margin:4px 6px;background:var(--color-border)}.ui-menu__head{display:flex;flex-direction:column;padding:8px 10px}.ui-hover-trigger{display:inline-flex;max-width:100%;padding:0;border:0;border-radius:var(--radius-full);background:none;font:inherit;color:inherit;cursor:pointer}.ui-hover-trigger:hover .ui-tag,.ui-hover-trigger[data-state=open] .ui-tag{box-shadow:inset 0 0 0 1px currentColor}.ui-hover-card{width:max-content;max-width:min(380px,calc(100vw - 24px));padding:var(--spacing-3) 0 var(--spacing-1)}.ui-hover-card__title{padding:0 var(--spacing-4) var(--spacing-2);font-size:var(--text-sm);font-weight:650;color:var(--color-text-secondary)}.ui-hover-card__list{list-style:none;max-height:320px;overflow-y:auto}.ui-hover-card__list>li{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-2) var(--spacing-4);border-top:1px solid var(--color-border);font-size:var(--text-md)}.ui-lightbox{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;flex-direction:column;outline:none;animation:ui-fade-in var(--dur-med) var(--ease-out)}.ui-lightbox__bar{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);color:#f1f5f9}.ui-lightbox__bar .ui-btn--ghost{color:#e2e8f0}.ui-lightbox__bar .ui-btn--ghost:hover{background:#ffffff1f;color:#fff}.ui-lightbox__caption{flex:1;min-width:0;font-size:var(--text-md);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-lightbox__stage{flex:1;min-height:0;overflow:auto;display:grid;place-items:center;padding:var(--spacing-4)}.ui-lightbox__stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md);cursor:zoom-in;transition:transform var(--dur-med) var(--ease-out)}.ui-lightbox--zoomed .ui-lightbox__stage{place-items:start}.ui-lightbox--zoomed .ui-lightbox__stage img{max-width:none;max-height:none;cursor:zoom-out}.ui-lightbox-scrim{background:#02060ee0}.ui-tabs{display:flex;gap:var(--spacing-1);overflow-x:auto;scrollbar-width:none}.ui-tabs--divider{border-bottom:1px solid var(--color-border)}.ui-tab{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:0;background:transparent;color:var(--color-text-secondary);font-size:var(--text-md);font-weight:500;white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--dur-fast) var(--ease-out)}.ui-tab:hover{color:var(--color-text);background:var(--color-hover)}.ui-tab[aria-selected=true]{color:var(--color-text);font-weight:600}.ui-tab[aria-selected=true]:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--color-brand)}.ui-tab:focus-visible{outline-offset:-2px}.ui-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--color-text-tertiary)}.ui-crumbs a{color:var(--color-text-secondary);text-decoration:none;font-weight:500;border-radius:2px}.ui-crumbs a:hover{color:var(--color-text);text-decoration:underline;text-underline-offset:3px}.ui-crumbs__sep{width:14px;height:14px;color:var(--color-text-disabled)}.ui-crumbs [aria-current=page]{color:var(--color-text);font-weight:500}.ui-list{display:flex;flex-direction:column;list-style:none}.ui-list--dividers>li+li{border-top:1px solid var(--color-border)}.ui-list__item{display:flex;gap:var(--spacing-3);align-items:flex-start;padding:var(--spacing-3) 0;min-width:0}.ui-list--compact .ui-list__item{padding:var(--spacing-2) 0}.ui-list__start{flex:none;margin-top:2px}.ui-list__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--text-md)}.ui-list__label{font-weight:500;overflow-wrap:anywhere}.ui-list__desc{color:var(--color-text-secondary);font-size:var(--text-sm)}.ui-list--decimal{counter-reset:ui-list}.ui-list--decimal>li{counter-increment:ui-list}.ui-list--decimal>li .ui-list__start--num:before{content:counter(ui-list)}.ui-list__start--num{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:700;margin-top:0}.ui-meta{display:grid;gap:var(--spacing-3) var(--spacing-6);margin:0}.ui-meta--multi{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ui-meta__item{display:grid;grid-template-columns:var(--meta-label-w, 140px) minmax(0,1fr);gap:var(--spacing-3);align-items:baseline;min-width:0;font-size:var(--text-md)}.ui-meta--stacked .ui-meta__item{grid-template-columns:minmax(0,1fr);gap:2px}.ui-meta dt{color:var(--color-text-secondary)}.ui-meta dd{margin:0;min-width:0;overflow-wrap:anywhere;font-weight:500}@media(max-width:480px){.ui-meta__item{grid-template-columns:minmax(0,1fr);gap:2px}}.ui-collapsible{border-radius:var(--radius-md)}.ui-collapsible-group{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.ui-collapsible-group>.ui-collapsible+.ui-collapsible{border-top:1px solid var(--color-border)}.ui-collapsible-group>.ui-collapsible{border-radius:0}.ui-collapsible__trigger{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);cursor:pointer;list-style:none;border-radius:inherit}.ui-collapsible__trigger::-webkit-details-marker{display:none}.ui-collapsible__trigger:hover{background:var(--color-hover)}.ui-collapsible__chev{flex:none;width:16px;height:16px;color:var(--color-text-tertiary);transition:transform var(--dur-med) var(--ease-out)}.ui-collapsible[open]>.ui-collapsible__trigger .ui-collapsible__chev{transform:rotate(90deg)}.ui-collapsible__body{padding:0 var(--spacing-4) var(--spacing-4) calc(var(--spacing-4) + 24px)}.ui-collapsible--standalone>.ui-collapsible__trigger{padding-inline:var(--spacing-2);margin-inline:calc(-1 * var(--spacing-2))}.ui-collapsible--standalone>.ui-collapsible__body{padding:var(--spacing-2) 0 0}.ui-table-wrap{width:100%;min-width:0;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.ui-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:var(--text-md)}.ui-table--content{table-layout:auto}.ui-table--content .ui-col-fit{width:1%}.ui-table--content td.ui-col-fit{white-space:nowrap;overflow-wrap:normal}.ui-table--content td.ui-col-fit .ui-stack--h{flex-wrap:nowrap!important}.ui-table--content th.ui-col-fit{white-space:nowrap}.ui-col-flex__in{min-width:0}.ui-table th{position:sticky;top:0;z-index:1;height:38px;padding:0 var(--spacing-3);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;text-align:start;line-height:1.3;padding-block:8px}.ui-table th+th{box-shadow:inset 1px 0 0 var(--color-border)}.ui-table td{padding:10px var(--spacing-3);border-bottom:1px solid var(--color-border);vertical-align:middle;overflow-wrap:anywhere}.ui-table--compact td{padding-block:7px}.ui-table .ui-nowrap{white-space:nowrap;overflow-wrap:normal}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table--hover tbody tr{transition:background-color var(--dur-fast) var(--ease-out)}.ui-table--hover tbody tr:hover td{background:var(--color-hover)}.ui-table th:first-child,.ui-table td:first-child{padding-inline-start:var(--spacing-4)}.ui-table th:last-child,.ui-table td:last-child{padding-inline-end:var(--spacing-4)}.ui-table .ui-align-end{text-align:end;font-variant-numeric:tabular-nums}.ui-table .ui-align-center{text-align:center}.ui-table__empty td{padding:var(--spacing-8) var(--spacing-4);text-align:center;color:var(--color-text-secondary)}.ui-pager{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-4);padding-top:var(--spacing-3);font-size:var(--text-sm);color:var(--color-text-secondary)}.ui-pager__pages{display:flex;align-items:center;gap:2px}.ui-pager__btn{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;font-variant-numeric:tabular-nums}.ui-pager__btn:hover:not(:disabled){background:var(--color-hover);color:var(--color-text)}.ui-pager__btn[aria-current=page]{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-weight:700;box-shadow:var(--shadow-xs)}.ui-pager__btn:disabled{opacity:.4;cursor:not-allowed}.ui-pager__size{display:flex;align-items:center;gap:var(--spacing-2)}.ui-pager__size .ui-control{width:76px}.ui-pager__size select{padding-inline-end:26px}.ui-pager__size .ui-control__chev{inset-inline-end:6px}.ui-avatar{--av: 36px;position:relative;flex:none;display:inline-grid;place-items:center;width:var(--av);height:var(--av);border-radius:50%;overflow:hidden;background:var(--av-bg, var(--tag-blue-bg));color:var(--av-fg, var(--tag-blue-fg));font-size:calc(var(--av) * .38);font-weight:650;letter-spacing:.01em;border:0;padding:0;-webkit-user-select:none;user-select:none}.ui-avatar img{width:100%;height:100%;object-fit:cover}.ui-avatar--xs{--av: 24px}.ui-avatar--sm{--av: 30px}.ui-avatar--md{--av: 36px}.ui-avatar--lg{--av: 48px}.ui-avatar--xl{--av: 88px}button.ui-avatar{cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease-out)}button.ui-avatar:hover{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-border-strong)}:root{--nav-bg: #0f2147;--nav-bg-raised: #172c58;--nav-border: #213766;--nav-text: #c7d1e5;--nav-text-strong: #ffffff;--nav-text-muted: #8a9bbd;--nav-hover: rgba(255, 255, 255, .07);--nav-active: rgba(255, 255, 255, .13);--nav-mark: #ff4d63}:root[data-mode=dark]{--nav-bg: #0b1426;--nav-bg-raised: #131f38;--nav-border: #1c2a46;--nav-text: #b9c4d8;--nav-text-muted: #7b8aa6}.app{--nav-w: 248px;display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);min-height:100dvh}.app--collapsed{--nav-w: 68px}.app-nav{position:sticky;top:0;z-index:var(--z-nav);display:flex;flex-direction:column;height:100dvh;background:var(--nav-bg);color:var(--nav-text);border-inline-end:1px solid var(--nav-border)}.app-nav :focus-visible{outline-color:#9ec0ff}.app-nav__head{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-2) var(--spacing-3) var(--spacing-3);min-height:64px}.app-nav__brand{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:4px;border-radius:var(--radius-md);color:inherit;text-decoration:none}.app-nav__logo{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--color-paper);box-shadow:0 1px 2px #00000040}.app-nav__logo img{height:24px!important;width:auto}.app-nav__brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.45}.app-nav__brand-name{color:var(--nav-text-strong);font-weight:700;font-size:var(--text-md);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-nav__brand-sub{font-size:var(--text-xs);color:var(--nav-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-nav .ui-btn--ghost{color:var(--nav-text-muted)}.app-nav .ui-btn--ghost:hover{background:var(--nav-hover);color:var(--nav-text-strong)}.app-nav__body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-1) var(--spacing-3) var(--spacing-4);scrollbar-width:thin;scrollbar-color:var(--nav-border) transparent}.app-nav__section+.app-nav__section{margin-top:var(--spacing-5)}.app-nav__section-title{padding:0 10px 6px;font-size:var(--text-xs);font-weight:600;color:var(--nav-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-nav__item{position:relative;display:flex;align-items:center;gap:12px;min-height:38px;padding:0 10px;border-radius:var(--radius-md);color:var(--nav-text);font-size:var(--text-md);font-weight:500;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.app-nav__item+.app-nav__item{margin-top:2px}.app-nav__item .ui-icon{width:20px;height:20px;color:var(--nav-text-muted);transition:color var(--dur-fast) var(--ease-out)}.app-nav__item:hover{background:var(--nav-hover);color:var(--nav-text-strong)}.app-nav__item:hover .ui-icon{color:var(--nav-text)}.app-nav__item[aria-current=page]{background:var(--nav-active);color:var(--nav-text-strong);font-weight:600}.app-nav__item[aria-current=page] .ui-icon{color:var(--nav-text-strong)}.app-nav__item[aria-current=page]:before{content:"";position:absolute;inset-inline-start:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--nav-mark)}.app-nav__label{overflow:hidden;text-overflow:ellipsis}.app-nav__foot{padding:var(--spacing-2) var(--spacing-3) var(--spacing-3);border-top:1px solid var(--nav-border)}.app-account{width:100%;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--nav-text);text-align:start}.app-account:hover,.app-account[data-state=open]{background:var(--nav-hover)}.app-account[data-current]{background:var(--nav-active)}.app-account__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:0;line-height:1.45}.app-account__name{color:var(--nav-text-strong);font-weight:600;font-size:var(--text-md);overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.app-account__sub{font-size:var(--text-xs);color:var(--nav-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-account__chev{flex:none;width:16px;height:16px;color:var(--nav-text-muted)}.app--collapsed .app-nav__head{flex-direction:column;padding:var(--spacing-3) 0 var(--spacing-2);gap:var(--spacing-2)}.app--collapsed .app-nav__brand{flex:none}.app--collapsed .app-nav__brand-text,.app--collapsed .app-nav__label,.app--collapsed .app-account__text,.app--collapsed .app-account__chev{display:none}.app--collapsed .app-nav__body{padding-inline:var(--spacing-2)}.app--collapsed .app-nav__section+.app-nav__section{margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--nav-border)}.app--collapsed .app-nav__section-title{display:none}.app--collapsed .app-nav__item{justify-content:center;padding:0;min-height:42px}.app--collapsed .app-nav__foot{padding-inline:var(--spacing-2)}.app--collapsed .app-account{justify-content:center;padding:6px 0}.app-main{min-width:0;display:flex;flex-direction:column}.app-content{flex:1;width:100%;max-width:1400px;margin-inline:auto;padding:var(--spacing-6) var(--spacing-8) var(--spacing-10)}.app-content--pad-4{padding:var(--spacing-4)}.app-content--pad-0{padding:0;max-width:none}.app-topbar{display:none}@media(max-width:960px){.app,.app--collapsed{display:block}.app-nav{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-out);z-index:var(--z-overlay)}.app--drawer .app-nav{transform:none;box-shadow:var(--shadow-lg)}.app-drawer-scrim{position:fixed;inset:0;z-index:calc(var(--z-overlay) - 1);background:var(--color-scrim);animation:ui-fade-in var(--dur-med) var(--ease-out)}.app-topbar{position:sticky;top:0;z-index:var(--z-nav);display:flex;align-items:center;gap:var(--spacing-1);height:56px;padding:0 var(--spacing-2);padding-top:env(safe-area-inset-top);background:var(--nav-bg);color:var(--nav-text)}.app-topbar .ui-btn--ghost{color:var(--nav-text)}.app-topbar .ui-btn--ghost:hover{background:var(--nav-hover);color:var(--nav-text-strong)}.app-topbar__brand{flex:1;min-width:0;display:flex;align-items:center;gap:var(--spacing-2);color:var(--nav-text-strong);font-weight:700;font-size:var(--text-md);text-decoration:none}.app-topbar__brand .app-nav__logo{width:32px;height:32px;border-radius:8px}.app-topbar__brand .app-nav__logo img{height:20px!important}.app-topbar__brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar .app-account{width:auto;padding:4px}.app-content{padding:var(--spacing-4) var(--spacing-4) var(--spacing-10)}}@media(min-width:961px){.app-drawer-scrim,.app-nav__close{display:none}}.page{display:flex;flex-direction:column;gap:var(--spacing-5);min-width:0}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--spacing-3) var(--spacing-4)}.page-header__titles{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 360px}.page-header__desc{color:var(--color-text-secondary);font-size:var(--text-md);max-width:80ch}.page-header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-2)}.split{display:grid;grid-template-columns:minmax(0,1fr) var(--split-side, 380px);gap:var(--spacing-5);align-items:start}.split--side-left{grid-template-columns:var(--split-side, 380px) minmax(0,1fr)}.split__side{display:flex;flex-direction:column;gap:var(--spacing-4);min-width:0}.split__side--sticky{position:sticky;top:var(--spacing-5)}.split__main{display:flex;flex-direction:column;gap:var(--spacing-5);min-width:0}@media(max-width:1100px){.split,.split--side-left{grid-template-columns:minmax(0,1fr)}.split__side--sticky{position:static}}.ui-panel{display:flex;flex-direction:column;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ui-panel__head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-3);padding:12px var(--spacing-4);min-height:52px}.ui-panel__titles{flex:1 1 140px;min-width:0;display:flex;flex-direction:column;gap:2px}.ui-panel__title{display:flex;align-items:center;gap:8px;font-size:var(--text-base);font-weight:650;letter-spacing:-.01em;line-height:1.35}.ui-panel__desc{font-size:var(--text-sm);color:var(--color-text-secondary)}.ui-panel__actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2)}.ui-panel__toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-3);padding:10px var(--spacing-4);border-top:1px solid var(--color-border);background:var(--color-surface)}.ui-panel__toolbar+.ui-panel__toolbar:not(.ui-panel__toolbar--selection){padding-top:0;border-top:0}.ui-panel__body{min-width:0}.ui-panel__head+.ui-panel__body,.ui-panel__toolbar+.ui-panel__body{border-top:1px solid var(--color-border)}.ui-panel__body--padded{padding:var(--spacing-4)}.ui-panel__foot{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2);padding:10px var(--spacing-4);border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-secondary)}.ui-panel .ui-table-wrap{border:0;border-radius:0;background:transparent}.ui-panel>.ui-panel__body:first-child .ui-table-wrap{border-radius:var(--radius-md) var(--radius-md) 0 0}.ui-panel>.ui-panel__body:last-child .ui-table-wrap{border-end-start-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.ui-panel .ui-pager{padding:8px var(--spacing-4);border-top:1px solid var(--color-border)}.ui-panel .ui-table th:first-child,.ui-panel .ui-table td:first-child{padding-inline-start:var(--spacing-4)}.ui-panel__body>.ui-empty{padding-block:var(--spacing-8)}.ui-panel--paper{border:0;border-radius:var(--radius-sm);box-shadow:var(--shadow-page)}.ui-panel--paper>.ui-panel__head{min-height:0;margin-inline:var(--spacing-10);padding:var(--spacing-5) 0 var(--spacing-2);border-bottom:1px solid var(--color-border)}.ui-panel--paper .ui-panel__title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);letter-spacing:0}.ui-panel--paper>.ui-panel__head+.ui-panel__body{border-top:0}.ui-panel--paper>.ui-panel__body--padded{padding:var(--spacing-6) var(--spacing-10) var(--spacing-10)}.ui-panel--paper .ui-md{font-family:var(--font-serif);font-size:17px;line-height:1.7;max-width:68ch}.ui-panel--paper .ui-md h1,.ui-panel--paper .ui-md h2,.ui-panel--paper .ui-md h3,.ui-panel--paper .ui-md h4{font-family:var(--font-sans);font-size:var(--text-base);font-weight:650;margin-top:1.6em}.ui-panel--paper .ui-md strong{font-weight:600}.ui-panel--paper .ui-md code{font-size:.82em;padding:.1em .35em;border-radius:3px;background:var(--color-surface-muted);box-shadow:inset 0 0 0 1px var(--color-border)}.ui-panel--paper .ui-md table{font-size:15px}.ui-panel--paper .ui-md th,.ui-panel--paper .ui-md td{border-color:var(--color-border-strong)}.ui-panel--paper .ui-md th{font-family:var(--font-sans);font-size:var(--text-sm);background:var(--color-surface-muted)}.ui-panel--paper .ui-md blockquote{border-inline-start-width:2px;font-style:italic}.ui-panel--paper .ui-md blockquote strong,.ui-panel--paper .ui-md blockquote code{font-style:normal}@media(max-width:640px){.ui-panel--paper>.ui-panel__head{margin-inline:var(--spacing-4);padding-top:var(--spacing-4)}.ui-panel--paper>.ui-panel__body--padded{padding:var(--spacing-4) var(--spacing-4) var(--spacing-6)}.ui-panel--paper .ui-md{font-size:16px}}.ui-toolbar-spacer{flex:1 1 auto}@media(max-width:640px){.ui-panel__toolbar>.ui-field{flex:1 1 140px;width:auto!important}.ui-toolbar-spacer{display:none}.ui-panel__head,.ui-panel__toolbar,.ui-panel__foot{padding-inline:var(--spacing-3)}.ui-panel .ui-table th:first-child,.ui-panel .ui-table td:first-child{padding-inline-start:var(--spacing-3)}}.ui-toolbar-note{font-size:var(--text-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.ui-panel__toolbar--selection{background:var(--color-primary-soft);color:var(--color-primary-soft-text);font-weight:600;font-size:var(--text-md)}.ui-rows{display:flex;flex-direction:column;list-style:none}.ui-rows>li+li{border-top:1px solid var(--color-border)}.ui-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-3);padding:10px var(--spacing-4);min-width:0;color:inherit;text-decoration:none}a.ui-row:hover,button.ui-row:hover{background:var(--color-hover)}button.ui-row{width:100%;border:0;background:transparent;text-align:start;font:inherit}.ui-row__icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text-secondary)}.ui-row__main{flex:1 1 150px;min-width:0;display:flex;flex-direction:column;gap:1px}.ui-row__title{font-weight:600;font-size:var(--text-md);overflow-wrap:anywhere}.ui-row__sub{font-size:var(--text-sm);color:var(--color-text-secondary);overflow-wrap:anywhere}.ui-row__end{flex:none;max-width:100%;flex-wrap:wrap;display:flex;align-items:center;gap:var(--spacing-2)}.ui-row__chev{width:16px;height:16px;color:var(--color-text-tertiary)}.stat{display:flex;flex-direction:column;gap:4px;padding:14px var(--spacing-4);min-width:0}.stat--card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.stat__label{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.stat__label .ui-icon{width:16px;height:16px;color:var(--color-text-tertiary)}.stat__value{font-size:26px;font-weight:700;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat__value small{font-size:var(--text-md);font-weight:500;color:var(--color-text-tertiary);letter-spacing:0;margin-inline-start:4px}.stat__hint{font-size:var(--text-sm);color:var(--color-text-tertiary)}.stat-group{display:flex;flex-wrap:wrap;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.stat-group>.stat{flex:1 1 var(--stat-min, 170px);box-shadow:-1px 0 0 var(--color-border),0 -1px 0 var(--color-border)}.ui-table td:has(.kind-mark--git){box-shadow:inset 3px 0 0 var(--kind-git)}.ui-table td:has(.kind-mark--docker){box-shadow:inset 3px 0 0 var(--kind-docker)}.ui-table td:has(.kind-mark--nginx){box-shadow:inset 3px 0 0 var(--kind-nginx)}.countdown{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.guide-public{max-width:1040px;margin-inline:auto;padding:var(--spacing-8) var(--spacing-6) var(--spacing-12)}@media(max-width:640px){.guide-public{padding:var(--spacing-5) var(--spacing-4) var(--spacing-10)}}.ui-panel__toolbar:has(>.al-selection){background:var(--color-primary-soft);color:var(--color-primary-soft-text)}.al-selection{display:contents}.class-delete{color:var(--color-error)}.class-delete:hover{background:var(--color-error-soft);color:var(--color-error)}.class-teachers-dialog{min-height:320px}.profile-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-4)}.profile-head__titles{flex:1 1 320px;min-width:0}.profile-head__actions{align-self:center}.profile-tabs>.ui-panel__toolbar:first-child{padding-block:0;border-top:0}.profile-tabs>.ui-panel__toolbar:first-child .ui-tabs{margin-inline:calc(-1 * var(--spacing-2))}.profile-tabs>.ui-panel__toolbar+.ui-panel__toolbar{padding-top:10px;border-top:1px solid var(--color-border)}.ui-row__icon:has(>.sb-medal){background:transparent;border:0}.sb-medal{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:36px;height:36px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums;background:var(--tag-gray-bg);color:var(--tag-gray-fg)}.sb-medal .ui-icon{width:13px;height:13px}.sb-medal--1{background:var(--tag-yellow-bg);color:var(--tag-yellow-fg)}.sb-medal--3{background:var(--tag-orange-bg);color:var(--tag-orange-fg)}.sb-problems__bar{display:block;width:88px}.sb-empty{display:block;padding:var(--spacing-6) var(--spacing-4);text-align:center}@media(max-width:640px){.sb-problems__bar{width:48px}.sb-legend{width:100%}}.integrity-people>*+*:before{content:"·";margin-inline-end:var(--spacing-1);color:var(--color-text-tertiary)}.integrity-device{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--spacing-2)}.integrity-ok{padding:var(--spacing-4)}.import-issues{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto;margin:4px 0 6px;padding-inline-start:18px}.class-teams{display:flex;flex-direction:column;gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.class-teams__head{display:flex;flex-direction:column;gap:2px}.class-teams__title{font-weight:650}.class-teams__plan{list-style:none;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-md)}.class-teams__plan li{display:grid;grid-template-columns:56px 64px 104px minmax(0,1fr);gap:var(--spacing-2);align-items:baseline;padding:7px 12px;font-variant-numeric:tabular-nums}.class-teams__plan li+li{border-top:1px solid var(--color-border)}.class-teams__range,.class-teams__names{color:var(--color-text-secondary);font-size:var(--text-sm)}.class-teams__names--wide{grid-column:3 / -1}.class-teams__names{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.class-teams__plan li{grid-template-columns:52px 60px minmax(0,1fr)}.class-teams__names{grid-column:1 / -1}}@media(min-width:1101px){.editor .split__side--sticky{max-height:calc(100dvh - var(--spacing-5) - var(--editor-bar-room, 0px));overflow-y:auto;padding:3px;margin:-3px;scrollbar-width:thin}}.editor{--editor-bar-room: 104px}html:has(.editor-bar){scroll-padding-bottom:var(--editor-bar-room, 104px)}.editor-fields{display:flex;flex-direction:column;gap:var(--spacing-4)}.editor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:var(--spacing-3) var(--spacing-4);align-items:start}.editor-switches{display:flex;flex-direction:column;gap:var(--spacing-3);padding-top:var(--spacing-1)}.editor-note{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5}.editor-note .ui-icon{flex:none;margin-top:1px;color:var(--color-text-tertiary)}.editor-note strong{color:var(--color-text);font-weight:600}.editor-picks{list-style:none;display:flex;flex-direction:column}.editor-pick{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:10px var(--spacing-4)}.editor-pick+.editor-pick{border-top:1px solid var(--color-border)}.editor-pick--git{box-shadow:inset 3px 0 0 var(--kind-git)}.editor-pick--docker{box-shadow:inset 3px 0 0 var(--kind-docker)}.editor-pick--nginx{box-shadow:inset 3px 0 0 var(--kind-nginx)}.editor-pick__label{flex:none;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--color-border-strong);border-radius:3px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-weight:600;font-size:var(--text-md)}.editor-pick__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.editor-pick__title{font-weight:600;font-size:var(--text-md);line-height:1.4;overflow-wrap:anywhere}.editor-pick__meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.editor-pick__actions{flex:none;display:flex;gap:0;margin:-2px -6px 0 0}.ui-panel__toolbar:has(>.editor-tabs-row){padding-block:0}.editor-tabs-row{margin-bottom:-1px}.draw{display:flex;flex-direction:column}.draw__row{display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-4)}.draw__row+.draw__row{border-top:1px solid var(--color-border)}.draw__label{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px var(--spacing-3);font-size:var(--text-md);font-weight:650}.draw__label small{font-size:var(--text-md);font-weight:500;color:var(--color-text-secondary)}.draw__value{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-3);min-width:0}.draw__value>.ui-banner,.draw__value>.draw-rules{align-self:stretch}.draw-rules{list-style:none;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md)}.draw-rule{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"num count pick del" ". . avail .";align-items:center;gap:4px var(--spacing-3);padding:8px 6px 8px 12px}.draw-rule+.draw-rule{border-top:1px solid var(--color-border)}.draw-rule__num{grid-area:num;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:700}.draw-rule__count{grid-area:count;display:inline-flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-md);color:var(--color-text-secondary)}.draw-rule__pick{grid-area:pick;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-2);min-width:0}.draw-rule>.ui-btn{grid-area:del}.draw-rule__avail{grid-area:avail;font-size:var(--text-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.draw-rule__avail--short{color:var(--color-error);font-weight:600}.draw-rule__in-exam{color:var(--color-text-tertiary);font-weight:400}.draw__add{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-2);font-size:var(--text-sm);color:var(--color-text-secondary)}@media(max-width:640px){.draw__row{padding:var(--spacing-3)}.draw-rule{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"num count del" "pick pick pick" "avail avail avail";gap:var(--spacing-2)}.draw-rule__pick{grid-template-columns:repeat(2,minmax(0,1fr))}}.draw-note{display:flex;align-items:center;gap:var(--spacing-2);margin:var(--spacing-3) var(--spacing-4) 0;padding:6px 6px 6px 12px;border-radius:var(--radius-md);border:1px solid var(--color-success-border);background:var(--color-success-soft);font-size:var(--text-sm)}.draw-note>.ui-icon{color:var(--color-success)}.draw-note--warning{border-color:var(--color-warning-border);background:var(--color-warning-soft)}.draw-note--warning>.ui-icon{color:var(--color-warning)}.draw-note__text{flex:1;min-width:0;overflow-wrap:anywhere}.editor-bar{position:sticky;bottom:var(--spacing-4);z-index:var(--z-sticky);display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-4);padding:10px 12px 10px var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-surface-raised) 94%,transparent);-webkit-backdrop-filter:saturate(1.3) blur(8px);backdrop-filter:saturate(1.3) blur(8px);box-shadow:var(--shadow-lg)}.editor-bar__summary{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm);color:var(--color-text-secondary)}.editor-bar__summary strong{color:var(--color-text);font-size:var(--text-md);font-weight:600}.editor-bar__error{display:flex;align-items:flex-start;gap:6px;color:var(--color-error);font-weight:500}.editor-bar__error .ui-icon{margin-top:2px}.editor-bar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-2);margin-inline-start:auto}.editor-danger.ui-btn--ghost{color:var(--color-error)}.editor-danger.ui-btn--ghost:hover{background:var(--color-error-soft);color:var(--color-error)}@media(max-width:640px){.editor{--editor-bar-room: 76px}.editor-bar{bottom:var(--spacing-2);flex-wrap:nowrap;gap:var(--spacing-2);padding:8px 8px 8px 12px}.editor-bar__summary{flex:1 1 auto}.editor-bar__summary>span:not(.editor-bar__error){display:none}.editor-bar__summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-bar__actions{flex-wrap:nowrap}}.editor-statement textarea{min-height:360px}.editor-preview{min-height:360px;padding:var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.editor-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--spacing-4)}.editor-checks textarea{min-height:300px}.editor-collapsibles{display:flex;flex-direction:column;gap:2px;margin-top:var(--spacing-1)}.editor-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.problem-dialog__checks{padding:4px var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.editor-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-3) var(--spacing-4);align-items:start}.editor-time__length{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--spacing-2) var(--spacing-3)}.editor-time__quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:var(--control-md);font-size:var(--text-sm);color:var(--color-text-secondary)}.editor-time__quick .ui-seg__item{min-height:28px;padding:0 10px;font-size:var(--text-sm)}.editor-time__quick .ui-seg__item[aria-pressed=true]{background:var(--color-primary-soft);border-color:color-mix(in srgb,var(--color-primary) 45%,transparent);color:var(--color-primary-soft-text);font-weight:600}.editor-time__quick .ui-seg__item:disabled{opacity:.5;cursor:not-allowed}.editor-time__span{margin-inline-start:4px;font-variant-numeric:tabular-nums}@media(max-width:720px){.editor-time{grid-template-columns:minmax(0,1fr)}}.countdown-box{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.countdown-box--end{align-items:flex-end;text-align:end}.countdown-box__label{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.countdown-box__label .ui-icon{color:var(--color-text-tertiary)}.countdown-box__value{font-size:var(--text-3xl);line-height:1.1;color:var(--color-text)}.countdown-box--lg .countdown-box__value{font-size:40px;color:var(--color-primary)}.countdown-box--urgent .countdown-box__value,.countdown-box--urgent .countdown-box__label,.countdown-box--urgent .countdown-box__label .ui-icon{color:var(--color-error)}.countdown-box--over .countdown-box__value{color:var(--color-text-tertiary)}@media(max-width:640px){.countdown-box--lg .countdown-box__value{font-size:32px}}.contest-hero{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-4) var(--spacing-6);padding:var(--spacing-5) var(--spacing-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.contest-hero:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--color-border-strong)}.contest-hero--running:before{background:var(--color-success)}.contest-hero--upcoming:before{background:var(--color-primary)}.contest-hero__titles{display:flex;flex-direction:column;gap:var(--spacing-2);min-width:0;flex:1 1 360px}.contest-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-1) var(--spacing-4)}.contest-hero__clock{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-3) var(--spacing-5)}@media(max-width:640px){.contest-hero{padding:var(--spacing-4)}.contest-hero__clock{width:100%;justify-content:space-between}}.contest-label{display:grid;place-items:center;width:100%;height:100%;font-weight:600;font-size:var(--text-base);color:var(--color-text-secondary)}.ui-row:has(.contest-label){padding-inline-start:0}.ui-row__icon:has(.contest-label){align-self:stretch;width:52px;height:auto;min-height:36px;margin-block:-10px;border:0;border-inline-end:1px solid var(--color-border);border-radius:0;background:var(--color-surface-muted)}.ui-rows>li:last-child .ui-row__icon:has(.contest-label){border-end-start-radius:calc(var(--radius-md) - 1px)}a.ui-row:hover .contest-label,button.ui-row:hover .contest-label{color:var(--color-text)}.problem-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--spacing-3) var(--spacing-5)}.problem-head__titles{display:flex;flex-direction:column;gap:var(--spacing-2);min-width:0;flex:1 1 420px}.problem-head__best{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.problem-head__score{font-size:var(--text-3xl);font-weight:700;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.problem-head__score--full{color:var(--color-success)}@media(max-width:640px){.problem-head__best{align-items:flex-start}}@media(min-width:1101px){.work-split .split__side--sticky{max-height:calc(100dvh - 2 * var(--spacing-5));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px;margin:-2px}}.work-step{display:flex;gap:var(--spacing-3);align-items:flex-start;padding-bottom:var(--spacing-4);border-bottom:1px dashed var(--color-border)}.work-step__n{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-soft-text);font-size:var(--text-sm);font-weight:700}.work-step__body{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.work-step__body .ui-btn{margin-top:4px}.student-narrow{max-width:760px}.retype{display:flex;flex-direction:column;gap:var(--spacing-3);margin:0;padding:var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.retype__head{display:flex;flex-direction:column;gap:2px}.retype img{border:1px solid var(--color-border);background:var(--color-paper)}.result-score{--mark: var(--color-text-secondary);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3)}.result-score--success{--mark: var(--color-success)}.result-score--warning{--mark: var(--color-warning)}.result-score--error{--mark: var(--color-error)}.result-score__passed{display:flex;flex-direction:column;gap:2px;font-size:var(--text-md);font-weight:600;color:var(--color-text-secondary)}.result-score__passed strong{color:var(--color-success)}.result-score__box{flex:none;display:flex;flex-direction:column;align-items:center;min-width:76px;padding:2px 12px 6px;border:1px solid color-mix(in srgb,var(--mark) 55%,transparent);border-radius:2px}.result-score__box small{font-size:var(--text-xs);font-weight:500;line-height:1.6;color:var(--color-text-secondary)}.result-score__value{font-family:var(--font-serif);font-size:34px;font-weight:600;line-height:1.05;color:var(--mark);font-variant-numeric:tabular-nums}.split__side .result-paper>.ui-panel__head{margin-inline:var(--spacing-5)}.split__side .result-paper>.ui-panel__body--padded{padding:var(--spacing-4) var(--spacing-5) var(--spacing-5)}.result-checks{display:flex;flex-direction:column;list-style:none}.result-check{display:flex;gap:var(--spacing-3);align-items:flex-start;padding:var(--spacing-2) 0;font-size:var(--text-md)}.result-check__desc{font-family:var(--font-serif);font-size:15px;line-height:1.5}.result-check+.result-check{border-top:1px solid var(--color-border)}.result-check>.ui-icon{margin-top:2px}.result-check__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.result-check__desc{overflow-wrap:anywhere}.result-check--failed .result-check__desc{font-weight:600}.result-check__body>.ui-text{font-family:var(--font-sans)}.result-check__hint{display:flex;gap:6px;align-items:flex-start;padding:6px 10px;border-radius:var(--radius-sm);background:var(--color-warning-soft);font-size:var(--text-sm);line-height:1.5}.result-check__hint .ui-icon{margin-top:2px}.kind-progress-list{display:flex;flex-direction:column}.kind-progress{display:flex;flex-direction:column;gap:6px;padding:var(--spacing-3) var(--spacing-4)}.kind-progress+.kind-progress{border-top:1px solid var(--color-border)}.kind-progress:first-child{background:var(--color-surface-muted)}.kind-progress--git .ui-progress__bar{background:var(--kind-git)}.kind-progress--docker .ui-progress__bar{background:var(--kind-docker)}.kind-progress--nginx .ui-progress__bar{background:var(--kind-nginx)}.kind-progress__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-2)}.account-hero{display:flex;align-items:center;gap:var(--spacing-5);padding:var(--spacing-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.account-hero__text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-2);min-width:0}.account-section{display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-5)}.avatar-edit{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3);border-radius:var(--radius-md);background:var(--color-surface-muted)}@media(max-width:640px){.contest-rows .ui-row{flex-wrap:wrap;row-gap:var(--spacing-2)}.contest-rows .ui-row__main{flex:1 1 calc(100% - 48px)}.contest-rows .ui-row__end{flex:1 1 100%;justify-content:space-between;padding-inline-start:48px}}.stats-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--spacing-2) var(--spacing-3)}@media(max-width:640px){.stats-filters{justify-content:flex-start}.stats-filters>.ui-field{flex:1 1 180px;width:auto!important}}.meter-cell{display:flex;align-items:center;gap:var(--spacing-3);min-width:0}.meter-cell__bar{flex:1 1 auto;min-width:48px}.meter-cell__bar .ui-progress{height:8px}.meter-cell__value{flex:none;min-width:4.5ch;font-size:var(--text-md);font-weight:600;font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.rank-badge{font-size:var(--text-md);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.rank-badge--top{color:var(--color-brand-text)}.ui-row__icon:has(.rank-badge--top){background:var(--color-brand-soft);border-color:color-mix(in srgb,var(--color-brand) 25%,transparent)}.top-score{display:flex;align-items:baseline;gap:4px;font-size:var(--text-base);font-weight:700;font-variant-numeric:tabular-nums}.top-score small{font-size:var(--text-xs);font-weight:500;color:var(--color-text-tertiary)}.doc{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.doc-section{display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-6) var(--spacing-8);scroll-margin-top:var(--spacing-6)}.doc-section+.doc-section{border-top:1px solid var(--color-border)}.doc-section__title{font-size:var(--text-xl);font-weight:700;letter-spacing:-.015em;line-height:1.3}.doc .ui-md table{display:table;width:100%}.doc-callout{padding:var(--spacing-4) var(--spacing-5);border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border)}.doc-steps{scroll-margin-top:var(--spacing-6)}.doc-step-num{font-size:var(--text-base);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-brand-text)}.doc-steps .ui-row__icon{background:var(--color-brand-soft);border-color:color-mix(in srgb,var(--color-brand) 25%,transparent)}.doc-steps .ui-row{align-items:flex-start;padding-block:12px}.doc-toc__title{padding:0 10px 8px;font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary)}.doc-toc__list{display:flex;flex-direction:column;gap:1px;list-style:none;border-inline-start:1px solid var(--color-border)}.doc-toc__link{display:block;margin-inline-start:-1px;padding:6px 10px;border-inline-start:2px solid transparent;color:var(--color-text-secondary);font-size:var(--text-md);line-height:1.4;text-decoration:none;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.doc-toc__link:hover{color:var(--color-text)}.doc-toc__link[aria-current=location]{color:var(--color-brand-text);border-inline-start-color:var(--color-brand);font-weight:600}.doc-toc--side{padding-top:var(--spacing-1)}.doc-toc--inline{display:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.doc-toc--inline>summary{padding:var(--spacing-3) var(--spacing-4);font-weight:600;cursor:pointer}.doc-toc--inline>.doc-toc__list{margin:0 var(--spacing-4) var(--spacing-3)}@media(max-width:1100px){.doc-toc--side{display:none}.doc-toc--inline{display:block}}@media(max-width:640px){.doc-section{padding:var(--spacing-5) var(--spacing-4)}.doc-section__title{font-size:var(--text-lg)}.doc .ui-md table{display:block}}.guide-public-page{min-height:100dvh;background:var(--color-bg)}.guide-public-bar{position:sticky;top:0;z-index:var(--z-nav);background:var(--nav-bg);color:var(--nav-text-strong)}.guide-public-bar__inner{display:flex;align-items:center;gap:var(--spacing-3);max-width:1200px;margin-inline:auto;padding:var(--spacing-2) var(--spacing-6);min-height:60px}.guide-public-bar__logos{display:inline-flex;padding:4px 8px;border-radius:var(--radius-md);background:var(--color-paper)}.guide-public-bar__logos img{height:28px!important}.guide-public-bar__name{flex:1;min-width:0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guide-public-page .guide-public{max-width:1200px;padding-top:var(--spacing-6)}.guide-public-page .doc-section{scroll-margin-top:80px}@media(max-width:640px){.guide-public-bar__inner{padding-inline:var(--spacing-3)}.guide-public-bar__name{display:none}.guide-public-bar__inner{justify-content:space-between}}.auth{display:grid;grid-template-columns:minmax(380px,5fr) 7fr;min-height:100dvh;background:var(--color-bg)}.auth__brand{position:relative;overflow:hidden;display:flex;background:radial-gradient(120% 80% at 0% 0%,var(--nav-bg-raised) 0%,transparent 60%),radial-gradient(80% 60% at 100% 100%,color-mix(in srgb,var(--nav-mark) 16%,transparent) 0%,transparent 70%),var(--nav-bg);color:var(--nav-text)}.auth__brand:after{content:"";position:absolute;inset-block:0;inset-inline-end:0;width:4px;background:var(--nav-mark)}.auth__brand-inner{display:flex;flex-direction:column;gap:var(--spacing-8);width:100%;max-width:520px;margin-inline:auto;padding:var(--spacing-12) var(--spacing-10)}.auth__logos{align-self:flex-start;display:inline-flex;padding:8px 12px;border-radius:var(--radius-lg);background:var(--color-paper);box-shadow:0 2px 8px #00000040}.auth__titles{display:flex;flex-direction:column;gap:var(--spacing-3);margin-top:auto}.auth__org{font-size:var(--text-sm);font-weight:600;letter-spacing:.02em;color:var(--nav-text-muted)}.auth__course{color:var(--nav-text-strong);font-size:34px;font-weight:700;line-height:1.2;letter-spacing:-.025em;text-wrap:balance}.auth__app{font-size:var(--text-base);color:var(--nav-text)}.auth__show{display:flex;flex-direction:column;gap:var(--spacing-4)}.auth__show-text{max-width:44ch;font-size:var(--text-md);line-height:1.6;color:var(--nav-text)}.auth-sample{margin:0;max-width:400px;padding:var(--spacing-4) var(--spacing-5) var(--spacing-4);border-radius:var(--radius-sm);border-top:3px solid var(--paper-excel);background:var(--color-paper);color:var(--paper-ink);box-shadow:0 22px 44px -20px #000000b3}.auth-sample__file{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-3);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--paper-rule);font-size:var(--text-sm);font-weight:600}.auth-sample__kind{font-size:var(--text-xs);color:var(--paper-excel)}.auth-sample__checks{display:flex;flex-direction:column;gap:6px;padding:var(--spacing-3) 0;list-style:none;font-family:var(--font-serif);font-size:15px;line-height:1.45}.auth-sample__checks li{display:flex;gap:var(--spacing-2);align-items:flex-start}.auth-sample__checks .ui-icon{flex:none;margin-top:3px;color:var(--paper-ok)}.auth-sample__miss .ui-icon{color:var(--paper-miss)}.auth-sample__checks small{display:block;margin-top:2px;font-family:var(--font-sans);font-size:var(--text-xs);color:var(--paper-ink-2)}.auth-sample__total{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--paper-rule);font-size:var(--text-sm);color:var(--paper-ink-2)}.auth-sample__score{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:2px 10px 4px;border:1px solid var(--paper-ink-2);font-family:var(--font-serif);font-size:28px;font-weight:600;line-height:1.1;color:var(--paper-ink);font-variant-numeric:tabular-nums}.auth-sample__score small{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;line-height:1.6;color:var(--paper-ink-2)}.auth__foot{margin-top:auto;font-size:var(--text-xs);color:var(--nav-text-muted)}.auth__main{display:flex;align-items:center;justify-content:center;padding:var(--spacing-10) var(--spacing-6)}.auth__form{width:100%;max-width:440px;padding:var(--spacing-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}@media(max-width:960px){.auth{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.auth__brand:after{inset-inline:0;inset-block:auto 0;width:auto;height:3px}.auth__brand-inner{max-width:520px;gap:var(--spacing-4);padding:var(--spacing-6) var(--spacing-5) var(--spacing-6)}.auth__titles{margin-top:0;gap:var(--spacing-1)}.auth__course{font-size:var(--text-2xl)}.auth__show,.auth__foot{display:none}.auth__main{align-items:flex-start;padding:var(--spacing-6) var(--spacing-5) var(--spacing-10)}.auth__form{max-width:520px;padding:0;background:none;border:0;box-shadow:none}}.class-measures{display:flex;flex-direction:column;gap:6px;margin-top:2px}.class-measures__item{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:var(--spacing-2);color:var(--color-text-secondary)}.class-measures__item .meter-cell__value{color:var(--color-text)}:root{--code-bg: #f6f8fb;--code-fg: #1a2233;--code-gutter-bg: #eef1f6;--code-gutter: #7a8597;--code-active: rgba(29, 63, 143, .06);--code-selection: rgba(37, 99, 235, .22);--code-keyword: #7c3aed;--code-string: #0f7a43;--code-number: #b45309;--code-comment: #6b7385;--code-variable: #0369a1;--code-property: #1d4ed8;--code-type: #b42318;--code-meta: #92400e;--code-punct: #475569;--term-bg: #0f1623;--term-fg: #e2e8f0;--term-dim: #8a97ab;--term-prompt: #7ee2a8}:root[data-mode=dark]{--code-bg: #0b1320;--code-fg: #dbe4f0;--code-gutter-bg: #0e1828;--code-gutter: #6b7a90;--code-active: rgba(226, 232, 240, .05);--code-selection: rgba(96, 165, 250, .3);--code-keyword: #c4a7ff;--code-string: #8ee3a8;--code-number: #f8b26a;--code-comment: #7f8ea3;--code-variable: #7dd3fc;--code-property: #9bb8ff;--code-type: #ff9f9f;--code-meta: #f2d27a;--code-punct: #a3b1c6;--term-bg: #060b14}.code-editor{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.code-editor .cm-editor{border-radius:var(--radius-md)}.terminal{background:var(--term-bg);color:var(--term-fg);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:13px;line-height:1.55;padding:var(--spacing-3) var(--spacing-4);overflow-x:auto;white-space:pre;margin:0}.terminal__prompt{color:var(--term-prompt);-webkit-user-select:none;user-select:none}.terminal__cmd{color:#fff;font-weight:600}.terminal__out{color:var(--term-fg)}.code-lines{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--code-bg);font-family:var(--font-mono);font-size:13.5px;overflow-x:auto;padding:var(--spacing-2) 0}.code-lines__row{display:grid;grid-template-columns:44px 1fr;align-items:stretch;width:100%;text-align:start;border:0;background:transparent;color:var(--code-fg);font:inherit;padding:0;cursor:default}.code-lines__no{color:var(--code-gutter);text-align:end;padding-inline-end:var(--spacing-3);-webkit-user-select:none;user-select:none}.code-lines__text{white-space:pre;padding-inline-end:var(--spacing-4);min-height:1.55em;line-height:1.55}button.code-lines__row{cursor:pointer}button.code-lines__row:hover{background:var(--code-active)}button.code-lines__row:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.code-lines__row--picked{background:var(--color-warning-soft)!important;box-shadow:inset 3px 0 0 var(--color-warning)}.code-lines__row--right{background:var(--color-success-soft)!important;box-shadow:inset 3px 0 0 var(--color-success)}.code-lines__row--wrong{background:var(--color-error-soft)!important;box-shadow:inset 3px 0 0 var(--color-error)}.lab-files{display:flex;flex-wrap:wrap;gap:var(--spacing-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-3)}.lab-file-tab{display:inline-flex;align-items:center;gap:var(--spacing-2);border:1px solid transparent;border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;color:var(--color-text-secondary);font:500 var(--text-sm) / 1 var(--font-mono);padding:var(--spacing-2) var(--spacing-3);cursor:pointer;margin-bottom:-1px}.lab-file-tab:hover{color:var(--color-text);background:var(--color-hover)}.lab-file-tab[aria-selected=true]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.lab-file-tab__dot{width:7px;height:7px;border-radius:50%;background:var(--color-primary)}.lab-file-tab__ro{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-tertiary)}.lab-wide{min-width:0}.lab-owner-code{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;letter-spacing:.04em;padding:var(--spacing-2) var(--spacing-3);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-muted);display:inline-block}.grading-wait{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);border:1px solid var(--color-info-border);background:var(--color-info-soft);border-radius:var(--radius-md)}.ai-box{border:1px solid var(--color-border);border-left:3px solid var(--chart-purple);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--spacing-4)}.ai-box__head{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.quiz-card{scroll-margin-top:80px}.quiz-stem{font-size:var(--text-base)}.quiz-options{display:grid;gap:var(--spacing-2)}.quiz-option{display:grid;grid-template-columns:24px 1fr;gap:var(--spacing-3);align-items:start;width:100%;text-align:start;font:inherit;color:var(--color-text);padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.quiz-option:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-muted)}.quiz-option:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.quiz-option:disabled{cursor:default}.quiz-option[aria-checked=true]{border-color:var(--color-primary);background:var(--color-primary-soft)}.quiz-option--right{border-color:var(--color-success)!important;background:var(--color-success-soft)!important}.quiz-option--wrong{border-color:var(--color-error)!important;background:var(--color-error-soft)!important}.quiz-option__mark{width:20px;height:20px;margin-top:1px;border:2px solid var(--color-border-strong);border-radius:50%;display:grid;place-items:center;color:var(--color-on-primary);font-size:12px}.quiz-option__mark--box{border-radius:5px}.quiz-option[aria-checked=true] .quiz-option__mark{background:var(--color-primary);border-color:var(--color-primary)}.quiz-option__text>*:first-child{margin-top:0}.quiz-option__text>*:last-child{margin-bottom:0}.quiz-option__text p{margin:0}.quiz-order{display:grid;gap:var(--spacing-2);list-style:none;margin:0;padding:0}.quiz-order__item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);touch-action:none}.quiz-order__item--dragging{box-shadow:var(--shadow-lg);border-color:var(--color-primary);z-index:2;position:relative}.quiz-order__no{width:24px;height:24px;border-radius:50%;background:var(--color-surface-sunken);display:grid;place-items:center;font-size:var(--text-xs);font-weight:600;cursor:grab}.quiz-order__item p{margin:0}.quiz-match{display:grid;gap:var(--spacing-2)}.quiz-match__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--spacing-3);align-items:center;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.quiz-match__row p{margin:0}@media(max-width:640px){.quiz-match__row{grid-template-columns:1fr}}.quiz-fill{font-family:var(--font-mono);font-size:13.5px;line-height:2.1;white-space:pre-wrap;background:var(--code-bg);color:var(--code-fg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-4);overflow-x:auto}.quiz-fill__input{font:inherit;min-width:6ch;padding:1px 6px;border:1px solid var(--color-border-strong);border-radius:4px;background:var(--color-surface);color:var(--color-text)}.quiz-fill__input:focus{outline:2px solid var(--color-focus);outline-offset:0}.quiz-fill__input--right{border-color:var(--color-success);background:var(--color-success-soft)}.quiz-fill__input--wrong{border-color:var(--color-error);background:var(--color-error-soft)}.quiz-command{display:flex;align-items:center;gap:var(--spacing-2);background:var(--term-bg);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-3)}.quiz-command__prompt{color:var(--term-prompt);font-family:var(--font-mono);font-weight:700}.quiz-command input{flex:1;min-width:0;background:transparent;border:0;color:#fff;font:600 14px/1.6 var(--font-mono);outline:none}.quiz-command:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.quiz-feedback{border-radius:var(--radius-md);padding:var(--spacing-4);border:1px solid var(--color-border);background:var(--color-surface-muted)}.quiz-feedback--right{border-color:var(--color-success-border);background:var(--color-success-soft)}.quiz-feedback--wrong{border-color:var(--color-error-border);background:var(--color-error-soft)}.quiz-feedback--partial{border-color:var(--color-warning-border);background:var(--color-warning-soft)}.quiz-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:var(--spacing-2)}.quiz-nav__item{height:38px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:600 var(--text-sm) / 1 var(--font-sans);cursor:pointer;font-variant-numeric:tabular-nums}.quiz-nav__item:hover{border-color:var(--color-border-strong)}.quiz-nav__item--done{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary-soft-text)}.quiz-nav__item--right{background:var(--color-success-soft);border-color:var(--color-success)}.quiz-nav__item--wrong{background:var(--color-error-soft);border-color:var(--color-error)}.quiz-nav__item--partial{background:var(--color-warning-soft);border-color:var(--color-warning)}.quiz-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-3)}.quiz-topic{border:1px solid var(--color-border);border-top:3px solid var(--kind-color, var(--color-primary));border-radius:var(--radius-md);background:var(--color-surface);padding:var(--spacing-4);display:grid;gap:var(--spacing-2)}.quiz-topic--git{--kind-color: var(--kind-git)}.quiz-topic--docker{--kind-color: var(--kind-docker)}.quiz-topic--nginx{--kind-color: var(--kind-nginx)}.quiz-topic .ui-progress__bar{background:var(--kind-color)}.timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-xl)}.timer--low{color:var(--color-error)}.lab-split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--spacing-5);align-items:start}.lab-split__side{display:grid;gap:var(--spacing-5);min-width:0}@media(max-width:1100px){.lab-split{grid-template-columns:minmax(0,1fr)}}
