.pub{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--text-lg);flex-direction:column;line-height:1.6;display:flex}.pub-container{width:100%;max-width:960px;padding:0 var(--space-5);margin:0 auto}.pub-skip{left:var(--space-3);z-index:10;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-text);font-weight:var(--weight-bold);position:absolute;top:-60px}.pub-skip:focus{top:var(--space-3)}.pub-header{z-index:5;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0}.pub-header__inner{align-items:center;gap:var(--space-4);min-height:64px;display:flex}.pub-header__brand{margin-right:auto}.pub-nav{gap:var(--space-1);display:flex}.pub-nav__link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-md);font-weight:var(--weight-bold);text-decoration:none}.pub-nav__link:hover{background:var(--bg-subtle);color:var(--text)}.pub-nav__link.active{background:var(--primary-soft);color:var(--link)}.pub-main{width:100%;max-width:960px;padding:var(--space-10) var(--space-5) var(--space-12);outline:none;flex:1;margin:0 auto}.pub-main:focus-visible{box-shadow:none}.pub-section{margin-top:var(--space-10)}.pub-section>h2{margin-bottom:var(--space-4);font-size:var(--text-2xl)}.pub-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.pub-card{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);color:inherit;transition:border-color var(--duration) var(--ease), transform var(--duration) var(--ease);text-decoration:none;display:flex}.pub-card:hover{border-color:var(--primary);transform:translateY(-1px)}.pub-card__icon{border-radius:var(--radius-md);background:var(--primary-soft);width:44px;height:44px;color:var(--link);flex-shrink:0;place-items:center;display:grid}.pub-card__title{margin-bottom:var(--space-1);font-weight:var(--weight-extrabold);line-height:1.3;display:block}.pub-card__text{color:var(--text-muted);font-size:var(--text-md);line-height:1.45;display:block}.pub-faq{gap:var(--space-3);flex-direction:column;display:flex}.pub-faq details{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.pub-faq summary{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-weight:var(--weight-extrabold);cursor:pointer;list-style:none;display:flex}.pub-faq summary::-webkit-details-marker{display:none}.pub-faq summary svg{color:var(--text-muted);transition:transform var(--duration) var(--ease);flex-shrink:0}.pub-faq details[open] summary svg{transform:rotate(180deg)}.pub-faq__answer{padding:0 var(--space-5) var(--space-5);color:var(--text-muted)}.pub-faq__answer p+p{margin-top:var(--space-3)}.pub-prose{max-width:720px}.pub-prose h2{margin:var(--space-10) 0 var(--space-3);font-size:var(--text-2xl)}.pub-prose h3{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-xl)}.pub-prose p,.pub-prose ul,.pub-prose table{margin:0 0 var(--space-4)}.pub-prose ul{padding-left:var(--space-6)}.pub-prose li+li{margin-top:var(--space-2)}.pub-prose code{background:var(--bg-subtle);border-radius:6px;padding:1px 6px;font-size:.85em}.pub-prose table{border-collapse:collapse;width:100%;font-size:var(--text-md)}.pub-prose th,.pub-prose td{padding:var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.pub-prose th{color:var(--text-muted);font-size:var(--text-sm)}.pub-summary{padding:var(--space-5) var(--space-6);border:1px solid var(--success-border);border-radius:var(--radius-md);background:var(--success-soft);color:var(--success-fg)}.pub-summary ul{margin:0}.pub-updated{color:var(--text-muted);font-size:var(--text-md)}.pub-form-card{max-width:640px;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);font-size:var(--text-md)}.pub-form{gap:var(--space-5);flex-direction:column;display:flex}.pub-form__row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.pub-form .ui-input,.pub-form .ui-select{height:44px;font-size:var(--text-lg)}.pub-form textarea.ui-input{min-height:150px}.pub-counter{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;align-self:flex-end;margin-top:-2px}.pub-counter--over{color:var(--danger-fg);font-weight:var(--weight-bold)}.pub-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.pub-form__footer{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.pub-form__fine{color:var(--text-muted);font-size:var(--text-sm)}.pub-success{align-items:center;gap:var(--space-3);padding:var(--space-6) 0;text-align:center;flex-direction:column;display:flex}.pub-success__icon{background:var(--success-soft);width:60px;height:60px;color:var(--success-fg);border-radius:50%;place-items:center;display:grid}.pub-success h2{font-size:var(--text-2xl)}.pub-footer{border-top:1px solid var(--border);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-md)}.pub-footer__inner{justify-content:space-between;gap:var(--space-8);padding-top:var(--space-8);padding-bottom:var(--space-6);display:flex}.pub-footer__about{gap:var(--space-2);flex-direction:column;max-width:420px;display:flex}.pub-footer__name{color:var(--text);font-weight:var(--weight-extrabold)}.pub-footer__mail{align-items:center;gap:var(--space-2);font-weight:var(--weight-bold);display:inline-flex}.pub-footer__links{gap:var(--space-2) var(--space-8);grid-template-columns:repeat(2,auto);margin:0;padding:0;list-style:none;display:grid}.pub-footer__links a{color:var(--text);text-decoration:none}.pub-footer__links a:hover{color:var(--link);text-decoration:underline}.pub-footer__legal{padding-top:var(--space-4);padding-bottom:var(--space-6);border-top:1px solid var(--border);font-size:var(--text-sm)}@media (width<=760px){.pub-header__inner{padding-top:var(--space-2);padding-bottom:var(--space-2);flex-wrap:wrap}.pub-nav{width:100%;margin:0 calc(-1 * var(--space-3));order:3;overflow-x:auto}.pub-nav__link{white-space:nowrap}.pub-main{padding-top:var(--space-6)}.pub-form-card{padding:var(--space-5)}.pub-form__row{grid-template-columns:1fr}.pub-footer__inner{flex-direction:column}}:root,[data-theme=light]{--brand-green:#435f36;--brand-terracotta:#d04f31;--brand-cream:#f7f0df;--font-sans:"Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "Cascadia Code", Consolas, monospace;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-display:clamp(28px, 4vw, 38px);--weight-regular:400;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.6;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--control-height:36px;--control-height-sm:30px;--control-height-lg:44px;--touch-target:44px;--control-thumb:#fff;--sidebar-width:256px;--topbar-height:64px;--content-max:1280px;--public-max:960px;--ease:cubic-bezier(.2, .7, .2, 1);--duration:.16s;--transition:var(--duration) var(--ease);--z-sticky:5;--z-drawer:50;--z-toast:1000;--bg:#f7f0df;--bg-subtle:#efe6d0;--surface:#fffcf5;--surface-raised:#fff;--surface-sunken:#f3ead6;--surface-glass:#fffcf5eb;--border:#e2d6bc;--border-strong:#cbbd9c;--text:#1f2a1b;--text-muted:#5c6b57;--text-inverse:#fff;--primary:#435f36;--primary-hover:#374f2c;--primary-soft:#e3ead9;--primary-text:#fff;--link:#3a5530;--accent:#d04f31;--accent-soft:#f9e1d9;--accent-fg:#9c3a24;--danger:#b4432a;--danger-hover:#983722;--danger-soft:#f9e1d9;--danger-text:#fff;--danger-fg:#9c3a24;--warning:#b07a10;--warning-soft:#fbeccb;--warning-fg:#7a5000;--warning-border:#e9c77c;--success:#4f7a3c;--success-soft:#dfeccf;--success-fg:#2f5122;--success-border:#a9c793;--info:#2f6fa3;--info-soft:#dde8f1;--info-fg:#234d70;--info-border:#a6c2d9;--neutral:#8a917f;--neutral-soft:#ece4d1;--neutral-fg:#4d5a48;--focus-ring:0 0 0 3px #435f3673;--shadow-sm:0 1px 2px #3028140f, 0 1px 1px #3028140a;--shadow-md:0 4px 12px #30281414, 0 1px 3px #3028140f;--shadow-lg:0 16px 40px #30281429, 0 2px 6px #30281414;--overlay:#1f2a1b73;--map-bus:#2f6fa3;--map-walk:#b2702a;--map-stop:#435f36;--map-poi:#7a62b8;--map-origin:#435f36;--map-destination:#d04f31;--map-marker-stroke:#fff;--route-1:#2f6fa3;--route-2:#c2185b;--route-3:#b8860b;--route-4:#7b4fc9;--route-5:#d9622b;--route-6:#138a7e;--route-7:#3d5afe;--route-8:#8d8a12;--route-9:#e0457b;--route-10:#4e8c1f;--route-11:#8b5a2b;--route-12:#5f6b78;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark],[data-theme=dark]{--bg:#111a13;--bg-subtle:#16211a;--surface:#18241b;--surface-raised:#1e2c21;--surface-sunken:#131d15;--surface-glass:#18241beb;--border:#2b3b2e;--border-strong:#3d5141;--text:#e9efe4;--text-muted:#a3b39c;--text-inverse:#10180f;--primary:#8db87a;--primary-hover:#a2c891;--primary-soft:#25371f;--primary-text:#10180f;--link:#a2c891;--accent:#e8775c;--accent-soft:#3a211b;--accent-fg:#f09a84;--danger:#e8775c;--danger-hover:#f08d75;--danger-soft:#3a211b;--danger-text:#1a0d09;--danger-fg:#f09a84;--warning:#e0b54f;--warning-soft:#352a12;--warning-fg:#f0c869;--warning-border:#6b5420;--success:#8db87a;--success-soft:#1f3319;--success-fg:#a8d38f;--success-border:#3c5e30;--info:#5fa8d0;--info-soft:#172a3a;--info-fg:#9cc6ea;--info-border:#2e5170;--neutral:#7d8a76;--neutral-soft:#223026;--neutral-fg:#c1cdb9;--focus-ring:0 0 0 3px #8db87a8c;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 16px 40px #00000080;--overlay:#040a06a6;--map-bus:#5fa8d0;--map-walk:#d6a25a;--map-stop:#8db87a;--map-poi:#b7a6ec;--map-origin:#8db87a;--map-destination:#e8775c;--map-marker-stroke:#111a13;--route-1:#5fa8d0;--route-2:#f06292;--route-3:#f2c94c;--route-4:#b07cf0;--route-5:#ff8a5c;--route-6:#4fd1c5;--route-7:#7c9cff;--route-8:#e8e35f;--route-9:#ff7eb0;--route-10:#8fd14f;--route-11:#d09a6a;--route-12:#9aa5b1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{line-height:var(--leading-tight);font-weight:var(--weight-extrabold);color:var(--text);margin:0}p{margin:0}a{color:var(--link);text-underline-offset:2px}code,pre{font-family:var(--font-mono)}img{max-width:100%}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}::selection{background:var(--primary-soft);color:var(--text)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-muted{color:var(--text-muted)}.tabular{font-variant-numeric:tabular-nums}@keyframes ui-spin{to{transform:rotate(360deg)}}@keyframes ui-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes ui-pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.ui-btn{--btn-bg:var(--surface-raised);--btn-fg:var(--text);--btn-border:var(--border-strong);--btn-bg-hover:var(--bg-subtle);justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-size:var(--text-md);font-weight:var(--weight-bold);white-space:nowrap;cursor:pointer;transition:background var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);line-height:1;display:inline-flex}.ui-btn:hover:not(:disabled){background:var(--btn-bg-hover)}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn svg{flex-shrink:0}.ui-btn--primary{--btn-bg:var(--primary);--btn-fg:var(--primary-text);--btn-border:var(--primary);--btn-bg-hover:var(--primary-hover)}.ui-btn--danger{--btn-bg:var(--danger);--btn-fg:var(--danger-text);--btn-border:var(--danger);--btn-bg-hover:var(--danger-hover)}.ui-btn--ghost{--btn-bg:transparent;--btn-border:transparent;--btn-bg-hover:var(--bg-subtle)}.ui-btn--danger-ghost{--btn-bg:transparent;--btn-fg:var(--danger-fg);--btn-border:transparent;--btn-bg-hover:var(--danger-soft)}.ui-btn--sm{height:var(--control-height-sm);padding:0 var(--space-3);font-size:var(--text-sm)}.ui-btn--lg{height:var(--control-height-lg);padding:0 var(--space-5);font-size:var(--text-lg)}.ui-btn--icon{width:36px;padding:0}.ui-btn--icon.ui-btn--sm{width:30px}.ui-btn--block{width:100%}.ui-spinner{animation:.8s linear infinite ui-spin}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.ui-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex}.ui-card__header--plain{border-bottom:0;padding-bottom:0}.ui-card__title{font-size:var(--text-lg);font-weight:var(--weight-extrabold)}.ui-card__description{color:var(--text-muted);font-size:var(--text-sm);margin-top:2px}.ui-card__actions{gap:var(--space-2);flex-shrink:0;display:flex}.ui-card__body{padding:var(--space-5)}.ui-card__body--flush{padding:0}.ui-badge{align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-bold);white-space:nowrap;background:var(--neutral-soft);color:var(--neutral-fg);border:1px solid #0000;line-height:1;display:inline-flex}.ui-badge svg{width:12px;height:12px}.ui-badge--success{background:var(--success-soft);color:var(--success-fg);border-color:var(--success-border)}.ui-badge--warning{background:var(--warning-soft);color:var(--warning-fg);border-color:var(--warning-border)}.ui-badge--danger{background:var(--danger-soft);color:var(--danger-fg);border-color:var(--danger-soft)}.ui-badge--info{background:var(--info-soft);color:var(--info-fg);border-color:var(--info-border)}.ui-badge--brand{background:var(--primary-soft);color:var(--link)}.ui-badge__dot{background:var(--dot);border-radius:50%;width:8px;height:8px}.ui-field{flex-direction:column;gap:6px;min-width:0;display:flex}.ui-field__label{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--text)}.ui-field__hint{font-size:var(--text-xs);color:var(--text-muted)}.ui-field__error{align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--danger-fg);display:flex}.ui-input,.ui-select{width:100%;height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font:inherit;font-size:var(--text-md);transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease)}.ui-input::placeholder{color:var(--text-muted);opacity:.85}.ui-input:focus,.ui-select:focus{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true]{border-color:var(--danger)}.ui-input:disabled,.ui-select:disabled{opacity:.6;cursor:not-allowed}.ui-input--sm,.ui-select--sm{height:var(--control-height-sm);font-size:var(--text-sm);padding:0 var(--space-2)}.ui-select{appearance:none;padding-right:var(--space-8);background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}.ui-input-wrap{align-items:center;display:flex;position:relative}.ui-input-wrap>svg{color:var(--text-muted);pointer-events:none;position:absolute;left:10px}.ui-input-wrap>.ui-input{padding-left:34px}textarea.ui-input{height:auto;min-height:72px;padding:var(--space-2) var(--space-3);resize:vertical}.ui-switch{align-items:center;gap:var(--space-2);color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.ui-switch__track{border-radius:var(--radius-full);background:var(--border-strong);width:36px;height:20px;transition:background var(--duration) var(--ease);flex-shrink:0;position:relative}.ui-switch__thumb{background:var(--control-thumb);width:16px;height:16px;box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.ui-switch[aria-checked=true] .ui-switch__track{background:var(--primary)}.ui-switch[aria-checked=true] .ui-switch__thumb{transform:translate(16px)}.ui-switch:disabled{opacity:.55;cursor:not-allowed}.ui-check{align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;display:inline-flex}.ui-check input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;margin:0}.ui-tabs{gap:var(--space-1);border-bottom:1px solid var(--border);display:flex}.ui-tab{align-items:center;gap:var(--space-2);height:40px;padding:0 var(--space-3);color:var(--text-muted);font:inherit;font-weight:var(--weight-bold);cursor:pointer;background:0 0;border:0;display:inline-flex;position:relative}.ui-tab:hover{color:var(--text)}.ui-tab[aria-selected=true]{color:var(--link)}.ui-tab[aria-selected=true]:after{content:"";left:var(--space-2);right:var(--space-2);background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px}.ui-tab__count{border-radius:var(--radius-full);background:var(--neutral-soft);min-width:20px;color:var(--neutral-fg);font-size:var(--text-xs);padding:0 6px;line-height:18px}.ui-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);position:relative;overflow:auto}.ui-table-wrap--flush{border:0;border-radius:0}.ui-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-md)}.ui-table th{z-index:1;height:40px;padding:0 var(--space-3);background:var(--surface-sunken);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-extrabold);letter-spacing:.04em;text-transform:uppercase;text-align:left;white-space:nowrap;position:sticky;top:0}.ui-table th[aria-sort]{padding:0}.ui-table__sort{align-items:center;gap:var(--space-1);width:100%;height:40px;padding:0 var(--space-3);color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;display:inline-flex}.ui-table__sort:hover{color:var(--text)}.ui-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);vertical-align:middle;height:44px}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table tbody tr{transition:background var(--duration) var(--ease)}.ui-table tbody tr:hover{background:var(--bg-subtle)}.ui-table tbody tr[data-selected=true]{background:var(--primary-soft)}.ui-table .is-right{text-align:right}.ui-table .is-center{text-align:center}.ui-table .is-actions{white-space:nowrap;text-align:right;width:1%}.ui-table .is-num{font-variant-numeric:tabular-nums;text-align:right}.ui-table--compact td{height:36px;padding-top:var(--space-1);padding-bottom:var(--space-1)}.ui-table-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-1) 0;color:var(--text-muted);font-size:var(--text-sm);display:flex}.ui-pagination{align-items:center;gap:var(--space-2);display:flex}.ui-banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--neutral-soft);border-radius:var(--radius-sm);background:var(--neutral-soft);color:var(--neutral-fg);font-size:var(--text-md);border-left-width:4px;display:flex}.ui-banner>svg{flex-shrink:0;margin-top:2px}.ui-banner__body{flex:1;min-width:0}.ui-banner__title{font-weight:var(--weight-extrabold)}.ui-banner__title+.ui-banner__text{margin-top:2px}.ui-banner__text{color:inherit}.ui-banner__action{flex-shrink:0;align-self:center}.ui-banner--info{background:var(--info-soft);border-color:var(--info-border);color:var(--info-fg)}.ui-banner--success{background:var(--success-soft);border-color:var(--success-border);color:var(--success-fg)}.ui-banner--warning{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning-fg)}.ui-banner--danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger-fg)}.ui-empty{align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);text-align:center;flex-direction:column;display:flex}.ui-empty__icon{width:52px;height:52px;margin-bottom:var(--space-2);background:var(--primary-soft);color:var(--link);border-radius:50%;place-items:center;display:grid}.ui-empty--error .ui-empty__icon{background:var(--danger-soft);color:var(--danger-fg)}.ui-empty__title{font-size:var(--text-lg);font-weight:var(--weight-extrabold)}.ui-empty__text{max-width:440px;color:var(--text-muted)}.ui-empty__action{margin-top:var(--space-3)}.ui-skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--border) 0px, var(--bg-subtle) 160px, var(--border) 320px);background-size:800px 100%;animation:1.4s linear infinite ui-shimmer;display:block}.ui-skeleton-rows{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.ui-modal{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);width:min(480px,100vw - 32px);max-height:calc(100vh - 64px);color:var(--text);box-shadow:var(--shadow-lg);padding:0}.ui-modal--wide{width:min(720px,100vw - 32px)}.ui-modal[open]{animation:ui-pop-in .18s var(--ease)}.ui-modal::backdrop{background:var(--overlay)}.ui-modal__inner{max-height:inherit;flex-direction:column;display:flex}.ui-modal__header{align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) 0;display:flex}.ui-modal__icon{background:var(--primary-soft);width:40px;height:40px;color:var(--link);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.ui-modal__icon--danger{background:var(--danger-soft);color:var(--danger-fg)}.ui-modal__icon--warning{background:var(--warning-soft);color:var(--warning-fg)}.ui-modal__title{font-size:var(--text-xl);padding-top:6px}.ui-modal__close{margin-left:auto}.ui-modal__body{padding:var(--space-3) var(--space-5) var(--space-5);color:var(--text-muted);overflow:auto}.ui-modal__body strong{color:var(--text)}.ui-modal__footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);background:var(--surface-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}.ui-toasts{right:var(--space-5);bottom:var(--space-5);z-index:1000;gap:var(--space-2);pointer-events:none;flex-direction:column;width:min(380px,100vw - 40px);display:flex;position:fixed}.ui-toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1px solid var(--border);border-left:4px solid var(--info-fg);border-radius:var(--radius-md);background:var(--surface-raised);box-shadow:var(--shadow-lg);pointer-events:auto;animation:ui-pop-in .2s var(--ease);display:flex}.ui-toast>svg{color:var(--info-fg);flex-shrink:0;margin-top:2px}.ui-toast--success{border-left-color:var(--primary)}.ui-toast--success>svg{color:var(--success-fg)}.ui-toast--error{border-left-color:var(--danger)}.ui-toast--error>svg{color:var(--danger-fg)}.ui-toast__body{min-width:0;font-size:var(--text-md);flex:1}.ui-toast__title{font-weight:var(--weight-extrabold)}.ui-toast__text{color:var(--text-muted);font-size:var(--text-sm)}.ui-stat{gap:var(--space-1);padding:var(--space-4) var(--space-5);flex-direction:column;display:flex}.ui-stat__label{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-bold);display:flex}.ui-stat__value{font-size:var(--text-3xl);font-weight:var(--weight-extrabold);font-variant-numeric:tabular-nums;line-height:1.1}.ui-stat__meta{color:var(--text-muted);font-size:var(--text-sm)}.ui-stack{gap:var(--space-4);flex-direction:column;display:flex}.ui-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-kbd{border:1px solid var(--border-strong);background:var(--surface-raised);height:20px;color:var(--text-muted);font-family:var(--font-sans);font-size:11px;font-weight:var(--weight-bold);border-bottom-width:2px;border-radius:5px;align-items:center;padding:0 6px;display:inline-flex}.ui-brand{align-items:center;gap:var(--space-3);color:inherit;text-decoration:none;display:flex}.ui-brand__text{flex-direction:column;line-height:1.15;display:flex}.ui-brand__name{font-size:var(--text-lg);font-weight:var(--weight-extrabold);color:var(--link)}.ui-brand__tagline{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--accent-fg)}.ui-brand--lg{gap:var(--space-4)}.ui-brand--lg .ui-brand__name{font-size:var(--text-2xl)}.ui-brand--lg .ui-brand__tagline{font-size:var(--text-lg)}.ui-page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.ui-page-header__text{min-width:0;max-width:720px}.ui-page-header__eyebrow{margin-bottom:var(--space-2);color:var(--accent-fg);font-size:var(--text-sm);font-weight:var(--weight-extrabold);letter-spacing:.06em;text-transform:uppercase}.ui-page-header__title{font-size:var(--text-3xl)}.ui-page-header__description{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-lg)}.ui-page-header__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-page-header--lg{margin-bottom:var(--space-8);display:block}.ui-page-header--lg .ui-page-header__title{font-size:var(--text-display)}.ui-page-header--lg .ui-page-header__description{max-width:680px;margin-top:var(--space-3);font-size:18px}.ui-spinner-block{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-6);color:var(--text-muted);display:flex}.ui-modal--drawer{border-width:0 0 0 1px;border-radius:0;width:min(480px,100vw);max-width:100vw;height:100vh;max-height:100vh;margin:0 0 0 auto}.ui-modal--drawer[open]{animation:ui-slide-in .2s var(--ease)}.ui-modal--drawer .ui-modal__inner{height:100%}.ui-modal--drawer .ui-modal__body{flex:1}.ui-modal--drawer .ui-modal__footer{border-radius:0}@keyframes ui-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.ui-steps{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ui-step{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-bold);display:flex}.ui-step__marker{background:var(--neutral-soft);width:26px;height:26px;color:var(--neutral-fg);font-size:var(--text-xs);font-weight:var(--weight-extrabold);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.ui-step[data-state=current]{border-color:var(--primary);color:var(--text)}.ui-step[data-state=current] .ui-step__marker{background:var(--primary);color:var(--primary-text)}.ui-step[data-state=done]{color:var(--success-fg)}.ui-step[data-state=done] .ui-step__marker{background:var(--success-soft);color:var(--success-fg)}.ui-dropzone{align-items:center;gap:var(--space-2);padding:var(--space-6);border:2px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-muted);text-align:center;transition:border-color var(--transition), background var(--transition);flex-direction:column;display:flex;position:relative}.ui-dropzone:hover,.ui-dropzone[data-dragging=true]{border-color:var(--primary);background:var(--primary-soft)}.ui-dropzone:focus-within{box-shadow:var(--focus-ring)}.ui-dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.ui-dropzone__icon{background:var(--primary-soft);width:44px;height:44px;color:var(--link);border-radius:50%;place-items:center;display:grid}.ui-dropzone__title{color:var(--text);font-weight:var(--weight-extrabold)}.ui-dropzone__file{align-items:center;gap:var(--space-2);color:var(--text);font-weight:var(--weight-bold);word-break:break-all;display:inline-flex}.ui-details{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.ui-details+.ui-details{margin-top:var(--space-2)}.ui-details>summary{align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2) var(--space-3);font-weight:var(--weight-bold);cursor:pointer;list-style:none;display:flex}.ui-details>summary::-webkit-details-marker{display:none}.ui-details__chevron{color:var(--text-muted);transition:transform var(--transition);flex-shrink:0;margin-left:auto}.ui-details[open]>summary>.ui-details__chevron{transform:rotate(180deg)}.ui-details__body{padding:0 var(--space-3) var(--space-3)}.ui-details--danger{border-color:var(--danger)}.ui-details--danger>summary{color:var(--danger-fg)}.ui-list{padding-left:var(--space-5);color:var(--text);margin:0}.ui-list li+li{margin-top:2px}.ui-list--scroll{max-height:260px;overflow:auto}.ui-log{max-height:240px;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;margin:0;line-height:1.6;overflow:auto}.ui-progress{border-radius:var(--radius-full);background:var(--neutral-soft);height:6px;position:relative;overflow:hidden}.ui-progress:after{content:"";border-radius:inherit;background:var(--primary);width:40%;animation:ui-indeterminate 1.2s var(--ease) infinite;position:absolute;top:0;bottom:0;left:-40%}@keyframes ui-indeterminate{to{left:100%}}.ui-legend{align-items:center;gap:var(--space-2) var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.ui-legend__item{align-items:center;gap:var(--space-2);display:inline-flex}.ui-swatch{background:var(--swatch);width:12px;height:12px;box-shadow:0 0 0 1px var(--border-strong);border-radius:50%;flex-shrink:0;display:inline-block}.ui-swatch--line{width:18px;height:4px;box-shadow:none;border-radius:2px}.ui-grid{gap:var(--space-4);display:grid}.ui-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.ui-form-row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.ui-form-row>.ui-field{flex:200px}.ui-divider{height:1px;margin:var(--space-5) 0;background:var(--border);border:0}a.ui-btn{text-decoration:none}.ui-inline-code{background:var(--bg-subtle);font-family:var(--font-mono);border-radius:6px;padding:1px 6px;font-size:.85em}@media (width<=960px){.ui-grid--3,.ui-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.ui-grid--2,.ui-grid--3,.ui-grid--4{grid-template-columns:minmax(0,1fr)}.ui-page-header__title{font-size:var(--text-2xl)}.ui-card__header{flex-wrap:wrap}}@media (pointer:coarse){.ui-btn,.ui-input,.ui-select{min-height:var(--touch-target)}.ui-btn--icon{min-width:var(--touch-target)}.ui-switch,.ui-check,.ui-tab,.ui-details>summary{min-height:var(--touch-target)}}
