:root{color-scheme:light;font-family:var(--typography-font-family);font-synthesis:none;--spacing-none: 0px;--spacing-xxs: 4px;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--radius-none: 0px;--radius-standard: 12px;--radius-large: 18px;--radius-full: 999px;--icon-small: 16px;--icon-standard: 20px;--icon-large: 24px;--touch-minimum: 44px;--touch-preferred: 48px;--motion-instant: 0ms;--motion-press: 80ms;--motion-short: .16s;--motion-standard: .24s;--motion-long: .36s;--breakpoint-compact: 560px;--breakpoint-content: 900px;--breakpoint-wide: 1080px;--z-base: 0;--z-sticky: 10;--z-overlay: 100;--z-toast: 1000;--elevation-card: 0 10px 30px rgb(36 49 44 / 8%);--elevation-overlay: 0 18px 48px rgb(36 49 44 / 12%);--typography-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--typography-display-font-size: 32px;--typography-display-line-height: 38px;--typography-display-font-weight: 700;--typography-display-letter-spacing: -.4px;--typography-title-font-size: 22px;--typography-title-line-height: 28px;--typography-title-font-weight: 650;--typography-title-letter-spacing: -.1px;--typography-body-font-size: 17px;--typography-body-line-height: 25px;--typography-body-font-weight: 400;--typography-body-letter-spacing: 0px;--typography-label-font-size: 15px;--typography-label-line-height: 20px;--typography-label-font-weight: 600;--typography-label-letter-spacing: .1px;--typography-caption-font-size: 13px;--typography-caption-line-height: 18px;--typography-caption-font-weight: 500;--typography-caption-letter-spacing: .2px;--typography-compact-brand-font-size: 15px;--typography-compact-brand-line-height: 20px;--typography-compact-brand-font-weight: 700;--typography-compact-brand-letter-spacing: -.15px;--typography-compact-meta-font-size: 12px;--typography-compact-meta-line-height: 18px;--typography-compact-meta-font-weight: 400;--typography-compact-meta-letter-spacing: 0px;--typography-compact-eyebrow-font-size: 11px;--typography-compact-eyebrow-line-height: 16px;--typography-compact-eyebrow-font-weight: 650;--typography-compact-eyebrow-letter-spacing: .88px;--typography-compact-breadcrumb-font-size: 12px;--typography-compact-breadcrumb-line-height: 18px;--typography-compact-breadcrumb-font-weight: 560;--typography-compact-breadcrumb-letter-spacing: 0px;--typography-compact-support-font-size: 14px;--typography-compact-support-line-height: 21px;--typography-compact-support-font-weight: 400;--typography-compact-support-letter-spacing: 0px;--typography-compact-control-font-size: 13px;--typography-compact-control-line-height: 18px;--typography-compact-control-font-weight: 400;--typography-compact-control-letter-spacing: 0px;--typography-compact-control-label-font-size: 11px;--typography-compact-control-label-line-height: 16px;--typography-compact-control-label-font-weight: 650;--typography-compact-control-label-letter-spacing: 0px;--typography-compact-table-header-font-size: 11px;--typography-compact-table-header-line-height: 16px;--typography-compact-table-header-font-weight: 680;--typography-compact-table-header-letter-spacing: .22px;--typography-compact-navigation-emphasis-font-size: 15px;--typography-compact-navigation-emphasis-line-height: 20px;--typography-compact-navigation-emphasis-font-weight: 680;--typography-compact-navigation-emphasis-letter-spacing: .1px;--typography-compact-identity-strong-font-size: 13px;--typography-compact-identity-strong-line-height: 18px;--typography-compact-identity-strong-font-weight: 700;--typography-compact-identity-strong-letter-spacing: 0px;--typography-compact-panel-title-font-size: 17px;--typography-compact-panel-title-line-height: 23px;--typography-compact-panel-title-font-weight: 700;--typography-compact-panel-title-letter-spacing: -.17px;--typography-compact-badge-font-size: 12px;--typography-compact-badge-line-height: 18px;--typography-compact-badge-font-weight: 680;--typography-compact-badge-letter-spacing: 0px;--typography-compact-table-meta-font-size: 11px;--typography-compact-table-meta-line-height: 16px;--typography-compact-table-meta-font-weight: 400;--typography-compact-table-meta-letter-spacing: 0px;--typography-compact-metric-label-font-size: 13px;--typography-compact-metric-label-line-height: 18px;--typography-compact-metric-label-font-weight: 620;--typography-compact-metric-label-letter-spacing: 0px;--typography-compact-empty-title-font-size: 16px;--typography-compact-empty-title-line-height: 22px;--typography-compact-empty-title-font-weight: 700;--typography-compact-empty-title-letter-spacing: 0px;--typography-compact-field-label-font-size: 12px;--typography-compact-field-label-line-height: 18px;--typography-compact-field-label-font-weight: 650;--typography-compact-field-label-letter-spacing: 0px;--typography-compact-field-error-font-size: 12px;--typography-compact-field-error-line-height: 18px;--typography-compact-field-error-font-weight: 600;--typography-compact-field-error-letter-spacing: 0px;--typography-compact-option-font-size: 13px;--typography-compact-option-line-height: 20px;--typography-compact-option-font-weight: 550;--typography-compact-option-letter-spacing: 0px;--typography-compact-strong-label-font-size: 13px;--typography-compact-strong-label-line-height: 20px;--typography-compact-strong-label-font-weight: 650;--typography-compact-strong-label-letter-spacing: 0px;--typography-compact-compact-body-font-size: 13px;--typography-compact-compact-body-line-height: 20px;--typography-compact-compact-body-font-weight: 400;--typography-compact-compact-body-letter-spacing: 0px;--typography-compact-brand-mark-font-size: 20px;--typography-compact-brand-mark-line-height: 24px;--typography-compact-brand-mark-font-weight: 800;--typography-compact-brand-mark-letter-spacing: 0px;--typography-compact-dialog-title-font-size: 19px;--typography-compact-dialog-title-line-height: 24px;--typography-compact-dialog-title-font-weight: 700;--typography-compact-dialog-title-letter-spacing: -.38px;--typography-compact-card-title-font-size: 18px;--typography-compact-card-title-line-height: 24px;--typography-compact-card-title-font-weight: 700;--typography-compact-card-title-letter-spacing: -.45px;--typography-auth-title-font-size: clamp(28px, 6vw, 38px);--typography-auth-title-line-height: 1.15;--typography-auth-title-font-weight: 700;--typography-auth-title-letter-spacing: -.035em;--typography-auth-hero-title-font-size: clamp(38px, 5vw, 70px);--typography-auth-hero-title-line-height: 1.02;--typography-auth-hero-title-font-weight: 700;--typography-auth-hero-title-letter-spacing: -.055em;--typography-auth-hero-title-compact-font-size: clamp(36px, 12vw, 52px);--typography-auth-hero-title-compact-line-height: 1.02;--typography-auth-hero-title-compact-font-weight: 700;--typography-auth-hero-title-compact-letter-spacing: -.055em;--typography-auth-hero-body-font-size: 16px;--typography-auth-hero-body-line-height: 1.7;--typography-auth-hero-body-font-weight: 400;--typography-auth-hero-body-letter-spacing: 0;--typography-documentation-hero-title-font-size: clamp(30px, 4vw, 44px);--typography-documentation-hero-title-line-height: 1.08;--typography-documentation-hero-title-font-weight: 700;--typography-documentation-hero-title-letter-spacing: -.025em;--typography-documentation-hero-lead-font-size: 16px;--typography-documentation-hero-lead-line-height: 1.65;--typography-documentation-hero-lead-font-weight: 400;--typography-documentation-hero-lead-letter-spacing: 0;--radius: var(--radius-standard);--radius-lg: var(--radius-large);--shadow: var(--elevation-overlay);--background: #F5F7F6;--surface: #FFFFFF;--surface-raised: #E8ECEA;--surface-muted: #F0F3F2;--text-primary: #17201D;--text-secondary: #52605B;--focus-ring: #52605B;--border: #C7D0CC;--boundary: #52605B;--accent: #E85D2A;--accent-contrast: #17201D;--positive: #256847;--positive-soft: #E2F1E9;--warning: #7A4F00;--critical: #A23B35;--critical-soft: #F8E9E7;--critical-contrast: #FFFFFF;--scrim: #17201DB3;--scrim-opaque: #17201D;--sidebar: #17201D;--sidebar-muted: #ADBAB5;--sidebar-border: #33403B;--formal-review-canvas: #111814;--formal-review-candidate: #FFE047;--formal-review-overlay-contrast: #FFFFFF;color:var(--text-primary);background:var(--background)}.formal-review-loader{width:min(720px,calc(100% - var(--spacing-xxl)));margin:10vh auto;padding:var(--spacing-xl);border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface);color:var(--text-primary);box-shadow:var(--elevation-overlay)}.formal-review-loader h1{font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.formal-review-loader>p:not(.formal-review-kicker){font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.formal-review-loader label{display:grid;gap:var(--spacing-xs);margin-top:var(--spacing-lg);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.formal-review-loader input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border);border-radius:var(--radius-standard);background:var(--surface);font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.formal-review-file-picker{padding:var(--spacing-md);border:1px dashed var(--boundary);border-radius:var(--radius-large)}.formal-review-kicker{margin:0 0 var(--spacing-xs);color:var(--text-secondary);font-size:var(--typography-compact-eyebrow-font-size);line-height:var(--typography-compact-eyebrow-line-height);font-weight:var(--typography-compact-eyebrow-font-weight);letter-spacing:var(--typography-compact-eyebrow-letter-spacing)}.formal-review-shell{display:grid;grid-template-columns:290px minmax(520px,1fr) 300px;min-height:100dvh;background:var(--surface-raised);color:var(--text-primary)}.formal-review-sidebar,.formal-review-inspector{padding:var(--spacing-lg);background:var(--surface);overflow:auto}.formal-review-sidebar{border-right:1px solid var(--border)}.formal-review-inspector{border-left:1px solid var(--border)}.formal-review-sidebar header{display:grid;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.formal-review-sidebar h1,.formal-review-inspector h2{margin:0;font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.formal-review-sidebar header strong{font-size:30px;font-variant-numeric:tabular-nums}.formal-review-media-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.formal-review-media-tabs button,.formal-review-route-list button,.formal-review-inspector button{border:1px solid var(--border);border-radius:var(--radius-standard);background:var(--surface);color:inherit;cursor:pointer}.formal-review-media-tabs button{min-height:var(--touch-minimum);padding:var(--spacing-xs);font-size:var(--typography-compact-control-label-font-size);line-height:var(--typography-compact-control-label-line-height);font-weight:var(--typography-compact-control-label-font-weight);letter-spacing:var(--typography-compact-control-label-letter-spacing)}.formal-review-media-tabs button.is-active{border-color:var(--positive);box-shadow:0 0 0 2px color-mix(in srgb,var(--positive) 12%,transparent)}.formal-review-route-list{display:grid;gap:var(--spacing-xs)}.formal-review-route-list button{display:grid;grid-template-columns:var(--spacing-sm) 1fr auto;align-items:center;gap:var(--spacing-xs);min-height:var(--touch-minimum);padding:var(--spacing-sm);text-align:left;font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.formal-review-route-list button>span{width:var(--spacing-sm);height:var(--spacing-xl);border-radius:var(--radius-full)}.formal-review-route-list button>b{min-width:0;overflow-wrap:anywhere}.formal-review-route-list small{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.formal-review-route-list button.is-active{border-color:var(--formal-route-color);background:var(--positive-soft);box-shadow:inset 5px 0 var(--formal-route-color),0 0 0 2px color-mix(in srgb,var(--text-primary) 12%,transparent)}.formal-review-stage{display:grid;grid-template-rows:auto auto 1fr;min-width:0;padding:var(--spacing-lg)}.formal-review-stage-meta{display:flex;justify-content:space-between;padding:0 var(--spacing-xxs) var(--spacing-sm);color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.formal-review-current-route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--formal-route-color);border-radius:var(--radius-standard);background:var(--surface);box-shadow:inset 5px 0 var(--formal-route-color)}.formal-review-current-route-swatch{width:var(--icon-small);height:var(--icon-small);border-radius:var(--radius-full);background:var(--formal-route-color)}.formal-review-current-route>span:not(.formal-review-current-route-swatch){display:grid;gap:var(--spacing-xxs);min-width:0}.formal-review-current-route small{color:var(--text-secondary);font-size:var(--typography-compact-eyebrow-font-size);line-height:var(--typography-compact-eyebrow-line-height);font-weight:var(--typography-compact-eyebrow-font-weight);letter-spacing:var(--typography-compact-eyebrow-letter-spacing)}.formal-review-current-route strong{font-size:var(--typography-compact-empty-title-font-size);line-height:var(--typography-compact-empty-title-line-height);font-weight:var(--typography-compact-empty-title-font-weight);letter-spacing:var(--typography-compact-empty-title-letter-spacing);overflow-wrap:anywhere}.formal-review-current-route>b{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.formal-review-canvas{width:100%;height:calc(100dvh - 132px);border-radius:var(--radius-large);background:var(--formal-review-canvas);box-shadow:var(--elevation-overlay)}.formal-review-hold{fill:color-mix(in srgb,var(--formal-route-color) 34%,transparent);stroke:var(--formal-route-color);stroke-width:3;opacity:.68;vector-effect:non-scaling-stroke}.formal-review-hold.is-selected-route{stroke:var(--formal-review-overlay-contrast);stroke-width:5;opacity:1}.formal-review-hold.is-start{stroke-dasharray:12 5}.formal-review-hold.is-finish{stroke-linejoin:bevel}.formal-review-drawing{fill:color-mix(in srgb,var(--formal-review-overlay-contrast) 12%,transparent);stroke:var(--formal-review-candidate);stroke-width:4;stroke-dasharray:10 8;vector-effect:non-scaling-stroke}.formal-review-proposal{fill:color-mix(in srgb,var(--formal-review-candidate) 12%,transparent);stroke:var(--formal-review-candidate);stroke-width:3;stroke-dasharray:7 7;opacity:.88;vector-effect:non-scaling-stroke}.formal-review-proposal{cursor:pointer}.formal-review-proposal:focus-visible{outline:none}.formal-review-proposal-focus-ring{fill:none;opacity:0;pointer-events:none;vector-effect:non-scaling-stroke}.formal-review-proposal-focus-ring.outer{stroke:var(--formal-review-overlay-contrast);stroke-width:11}.formal-review-proposal-focus-ring.inner{stroke:var(--focus-ring);stroke-width:7}.formal-review-proposal-focus-group:focus-within .formal-review-proposal-focus-ring{opacity:1}.formal-review-proposal.is-selected{fill:color-mix(in srgb,var(--formal-review-candidate) 34%,transparent);stroke:var(--formal-review-overlay-contrast);stroke-width:5;opacity:1}.formal-review-inspector{display:flex;flex-direction:column;gap:var(--spacing-sm)}.formal-review-inspector>p{margin:0}.formal-review-inspector>p:not(.formal-review-kicker):not(.formal-review-warning){font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.formal-review-inspector button{min-height:var(--touch-minimum);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.formal-review-inspector button:disabled{cursor:not-allowed;opacity:.42}.formal-review-role-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs)}.formal-review-role-tools button{padding:var(--spacing-xs) var(--spacing-xxs);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.formal-review-drawing-tools{display:grid;gap:var(--spacing-xs);padding:var(--spacing-sm);border-radius:var(--radius-standard);background:var(--surface-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.formal-review-proposals{display:grid;gap:var(--spacing-xs);padding:var(--spacing-sm);border:1px dashed var(--warning);border-radius:var(--radius-standard);background:color-mix(in srgb,var(--warning) 12%,var(--surface))}.formal-review-proposals h3,.formal-review-proposals p{margin:0}.formal-review-proposals h3{font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.formal-review-proposals p{color:var(--warning);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.formal-review-proposal-row{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid color-mix(in srgb,var(--warning) 18%,transparent);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.formal-review-proposal-row>div{display:grid;grid-column:1 / -1;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs)}.formal-review-proposal-row button{padding:var(--spacing-xs) var(--spacing-xxs);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.formal-review-warning{padding:var(--spacing-sm);border-radius:var(--radius-standard);background:color-mix(in srgb,var(--warning) 16%,var(--surface));color:var(--warning);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.formal-review-floating-feedback{position:fixed;right:320px;bottom:var(--spacing-lg);z-index:var(--z-toast);display:grid;gap:var(--spacing-xs);width:min(420px,calc(100vw - (var(--spacing-lg) * 2)));max-height:calc(100dvh - var(--spacing-xxl));pointer-events:none}.formal-review-floating-feedback>*{min-width:0;pointer-events:auto}.formal-review-toast{max-width:100%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-standard);background:var(--formal-review-canvas);color:var(--formal-review-overlay-contrast);box-shadow:var(--elevation-overlay);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing);overflow-wrap:anywhere}.formal-review-candidate-picker{display:grid;gap:var(--spacing-xs);max-width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--warning);border-radius:var(--radius-standard);background:color-mix(in srgb,var(--warning) 12%,var(--surface));color:var(--warning);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing);box-shadow:var(--elevation-overlay);overflow-wrap:anywhere}.formal-review-candidate-picker input{width:100%;max-width:100%;min-width:0;font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}@media(max-width:1100px){.formal-review-shell{grid-template-columns:240px 1fr}.formal-review-inspector{grid-column:1 / -1;border:0;border-top:1px solid var(--border)}.formal-review-floating-feedback{right:var(--spacing-lg)}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:var(--background);font-family:var(--typography-font-family)}button,input,select{font:inherit}button{color:inherit}button,select,input[type=file]{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--boundary);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.42}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-shell{min-height:100dvh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden;color:var(--sidebar-muted);background:var(--sidebar)}.sidebar-brand{min-height:72px;display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--sidebar-border)}.brand-mark{width:40px;height:40px;display:grid;place-items:center;overflow:hidden;background:var(--surface-raised);border:1px solid var(--boundary);border-radius:var(--radius)}.brand-mark img{width:29px;height:29px;display:block}.sidebar-brand div,.operator div{min-width:0;display:flex;flex-direction:column}.sidebar-brand strong{font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.sidebar-brand span,.operator span{color:var(--sidebar-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.sidebar nav{flex:1;overflow:auto;padding:12px 10px}.nav-group{margin:20px 10px 7px;color:var(--sidebar-muted);font-size:var(--typography-compact-eyebrow-font-size);line-height:var(--typography-compact-eyebrow-line-height);font-weight:var(--typography-compact-eyebrow-font-weight);letter-spacing:var(--typography-compact-eyebrow-letter-spacing)}.sidebar nav .button.nav-item{width:100%;min-height:var(--touch-minimum);display:flex;align-items:center;gap:11px;padding:9px 11px;border:0;border-radius:var(--radius);color:var(--sidebar-muted);background:transparent;text-align:left;transition:transform var(--motion-press) ease-out,color var(--motion-short) ease,background-color var(--motion-short) ease}.sidebar nav .button.nav-item:hover{color:var(--sidebar-muted);background:var(--sidebar-border)}.sidebar nav .button.nav-item:focus-visible{outline-color:var(--sidebar-muted)}.sidebar nav .button.nav-item:active{transform:scale(.98)}.sidebar nav .button.nav-item[data-active=true]{color:var(--accent-contrast);background:var(--accent);font-size:var(--typography-compact-navigation-emphasis-font-size);line-height:var(--typography-compact-navigation-emphasis-line-height);font-weight:var(--typography-compact-navigation-emphasis-font-weight);letter-spacing:var(--typography-compact-navigation-emphasis-letter-spacing)}.sidebar nav .button.nav-item[data-priority=true]{margin-bottom:4px;border:1px solid color-mix(in srgb,var(--positive) 45%,var(--sidebar-muted));color:var(--sidebar-muted);background:color-mix(in srgb,var(--positive) 18%,transparent);font-size:var(--typography-compact-navigation-emphasis-font-size);line-height:var(--typography-compact-navigation-emphasis-line-height);font-weight:var(--typography-compact-navigation-emphasis-font-weight);letter-spacing:var(--typography-compact-navigation-emphasis-letter-spacing)}.sidebar nav .button.nav-item[data-priority=true]:hover{border-color:color-mix(in srgb,var(--positive) 65%,var(--sidebar-muted));background:color-mix(in srgb,var(--positive) 24%,transparent)}.sidebar nav .button.nav-item[data-priority=true][data-active=true]{border-color:var(--accent);color:var(--accent-contrast);background:var(--accent)}.sidebar-footer{padding:12px 10px;border-top:1px solid var(--sidebar-border)}.venue-switcher{margin:0 5px 10px}.venue-switcher .select-field{gap:6px}.venue-switcher .select-field>label{color:var(--sidebar-muted)}.venue-switcher .select-field select{width:100%;border-color:var(--sidebar-muted);color:var(--sidebar-muted);background:var(--sidebar-border);font:inherit}.venue-switcher .field-error{color:color-mix(in srgb,var(--critical) 55%,var(--sidebar-muted));font-size:var(--typography-compact-field-error-font-size);line-height:var(--typography-compact-field-error-line-height);font-weight:var(--typography-compact-field-error-font-weight);letter-spacing:var(--typography-compact-field-error-letter-spacing)}.operator{display:flex;align-items:center;gap:10px;margin:0 5px 10px;padding:8px}.operator-avatar{width:34px;height:34px;display:grid;place-items:center;flex:none;border:1px solid var(--sidebar-border);border-radius:50%;color:var(--sidebar-muted)!important;font-size:var(--typography-compact-identity-strong-font-size)!important;line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.operator strong{font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.admin-main{min-width:0;overflow:hidden}.page-frame{width:min(100%,1440px);min-height:100dvh;margin:0 auto;padding:32px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.breadcrumb{display:flex;align-items:center;gap:4px;margin-bottom:10px;color:var(--text-secondary);font-size:var(--typography-compact-breadcrumb-font-size);line-height:var(--typography-compact-breadcrumb-line-height);font-weight:var(--typography-compact-breadcrumb-font-weight);letter-spacing:var(--typography-compact-breadcrumb-letter-spacing)}.page-header h1{margin:0;font-size:clamp(26px,3vw,var(--typography-display-font-size));line-height:var(--typography-display-line-height);font-weight:var(--typography-display-font-weight);letter-spacing:var(--typography-display-letter-spacing)}.page-header p{max-width:58ch;margin:8px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-support-font-size);line-height:var(--typography-compact-support-line-height);font-weight:var(--typography-compact-support-font-weight);letter-spacing:var(--typography-compact-support-letter-spacing)}.page-actions{display:flex;gap:9px}.button,.icon-button{min-height:var(--touch-minimum);border:1px solid var(--boundary);border-radius:var(--radius);transition:transform var(--motion-press) ease-out,opacity var(--motion-short) ease,background-color var(--motion-short) ease}.button:active,.icon-button:active{transform:scale(.98)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:9px 15px;white-space:nowrap;font-size:var(--typography-label-font-size);line-height:var(--typography-label-line-height);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing)}.button.primary{color:var(--accent-contrast);background:var(--accent)}.button.secondary{color:var(--text-primary);background:var(--surface)}.button.secondary:hover,.icon-button:hover{background:var(--surface-raised)}.button.danger{color:var(--critical-contrast);border-color:var(--critical);background:var(--critical)}.icon-button{width:var(--touch-minimum);display:inline-grid;place-items:center;padding:0;color:var(--text-primary);background:var(--surface)}.icon-button.danger{color:var(--critical-contrast);border-color:var(--critical);background:var(--critical)}.icon-button.danger:hover{background:var(--critical);opacity:.88}.ui-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);margin-top:14px;padding:11px 13px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface-muted);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);font-weight:var(--typography-body-font-weight);letter-spacing:var(--typography-body-letter-spacing)}.ui-field{font-size:var(--typography-caption-font-size);line-height:var(--typography-caption-line-height);font-weight:var(--typography-caption-font-weight);letter-spacing:var(--typography-caption-letter-spacing)}.ui-banner.critical{color:var(--critical);border-color:var(--critical);background:var(--critical-soft)}.ui-banner.positive{color:var(--positive);border-color:var(--positive);background:var(--positive-soft)}.ui-banner.warning{color:var(--warning);border-color:var(--warning);background:var(--surface-raised)}.ui-banner.neutral{color:var(--text-secondary)}.ui-banner-message{flex:1 1 24ch;min-width:0;overflow-wrap:anywhere}.ui-banner-action{flex:0 1 auto;min-width:0;max-width:100%}.ui-banner-action .button{max-width:100%;white-space:normal}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.summary-card{min-height:128px;display:flex;flex-direction:column;justify-content:space-between;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.summary-card span{color:var(--text-secondary);font-size:var(--typography-compact-metric-label-font-size);line-height:var(--typography-compact-metric-label-line-height);font-weight:var(--typography-compact-metric-label-font-weight);letter-spacing:var(--typography-compact-metric-label-letter-spacing)}.summary-card strong{margin:10px 0 3px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:29px;line-height:34px;letter-spacing:-.04em}.summary-card small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.table-panel{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 20px 15px}.panel-heading h2{margin:0;font-size:var(--typography-compact-panel-title-font-size);line-height:var(--typography-compact-panel-title-line-height);font-weight:var(--typography-compact-panel-title-font-weight);letter-spacing:var(--typography-compact-panel-title-letter-spacing)}.panel-heading p{margin:3px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.status-badge,.grade{display:inline-flex;align-items:center;min-height:26px;border-radius:var(--radius);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.filters{display:grid;grid-template-columns:minmax(230px,1.6fr) auto repeat(3,minmax(130px,.8fr));align-items:end;gap:10px;padding:14px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted)}.search-field{min-height:var(--touch-minimum);display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface)}.search-field:focus-within{outline:3px solid var(--boundary);outline-offset:2px}.search-field input{min-width:0;width:100%;height:42px;border:0;outline:0;color:var(--text-primary);background:transparent;font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.search-field input::placeholder{color:var(--text-secondary);opacity:.82}.filter-icon{width:36px;height:var(--touch-minimum);display:grid;place-items:center;color:var(--text-secondary)}.select-field{display:flex;flex-direction:column;gap:5px}.select-field span,.select-field>label{color:var(--text-secondary);font-size:var(--typography-compact-control-label-font-size);line-height:var(--typography-compact-control-label-line-height);font-weight:var(--typography-compact-control-label-font-weight);letter-spacing:var(--typography-compact-control-label-letter-spacing)}.select-field select{width:100%;min-height:var(--touch-minimum);padding:0 34px 0 11px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface);font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.table-scroll{overflow-x:auto}table{width:100%;min-width:940px;border-collapse:collapse;font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}th,td{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:var(--text-secondary);background:var(--surface);font-size:var(--typography-compact-table-header-font-size);line-height:var(--typography-compact-table-header-line-height);font-weight:var(--typography-compact-table-header-font-weight);letter-spacing:var(--typography-compact-table-header-letter-spacing)}tbody tr{transition:background-color var(--motion-short) ease}tbody tr:hover{background:var(--surface-muted)}tbody tr:last-child td{border-bottom:0}td>strong,td>span{display:block}.route-name{display:flex;align-items:center;gap:10px}.route-name div{display:flex;flex-direction:column;gap:3px}.route-name span,.cell-secondary{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.route-swatch{width:12px;height:32px;flex:none;border:1px solid var(--boundary);border-radius:5px;background:var(--surface-raised)}.grade{justify-content:center;min-width:54px;padding:4px 8px;border:1px solid var(--border);color:var(--text-primary);background:var(--surface-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.status-badge{justify-content:center;padding:4px 9px;border:1px solid var(--border);color:var(--text-secondary);background:var(--surface-muted)}.status-badge.status-published{color:var(--positive);border-color:var(--positive);background:var(--positive-soft)}.status-badge.status-ready{color:var(--text-primary);border-color:var(--boundary)}.status-badge.status-withdrawn{color:var(--critical);border-color:var(--critical);background:var(--critical-soft)}.action-cell{width:58px;text-align:right}.action-cell .icon-button{min-height:44px;width:44px}.pagination{min-height:62px;display:flex;align-items:center;justify-content:space-between;padding:9px 20px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.pagination div{display:flex;gap:8px}.no-results,.centered-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.no-results{min-height:290px;padding:34px;color:var(--text-secondary)}.no-results h3{margin:13px 0 5px;color:var(--text-primary);font-size:var(--typography-compact-empty-title-font-size);line-height:var(--typography-compact-empty-title-line-height);font-weight:var(--typography-compact-empty-title-font-weight);letter-spacing:var(--typography-compact-empty-title-letter-spacing)}.no-results p{margin:0;font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.centered-state{min-height:min(660px,100dvh);padding:32px}.centered-state h1,.centered-state h2{margin:15px 0 7px}.centered-state h1{font-size:var(--typography-display-font-size);line-height:var(--typography-display-line-height);font-weight:var(--typography-display-font-weight);letter-spacing:var(--typography-display-letter-spacing)}.centered-state h2{font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.centered-state p{max-width:48ch;margin:0 0 20px;color:var(--text-secondary);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);font-weight:var(--typography-body-font-weight);letter-spacing:var(--typography-body-letter-spacing)}.empty-state{min-height:420px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.state-icon{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface-raised)}.state-icon.critical{color:var(--critical);border-color:var(--critical);background:var(--critical-soft)}.loading-state{padding-top:14px}.skeleton{border-radius:7px;background:linear-gradient(90deg,var(--surface-raised) 0%,var(--surface-muted) 50%,var(--surface-raised) 100%);background-size:200% 100%}.skeleton-title{width:260px;height:34px;margin-bottom:28px}.skeleton-label{width:45%;height:12px}.skeleton-value{width:35%;height:30px}.skeleton-filter{width:calc(100% - 40px);height:48px;margin:20px}.skeleton-row{height:56px;margin:0 20px 10px}.drawer-layer,.confirm-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.drawer-scrim,.confirm-scrim{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;border-radius:0;background:var(--scrim)}.drawer{position:absolute;inset:0 0 0 auto;width:min(620px,92vw);height:100dvh;display:flex;flex-direction:column;border-left:1px solid var(--border);color:var(--text-primary);background:var(--surface);box-shadow:var(--shadow);animation:drawer-in .24s cubic-bezier(.16,1,.3,1)}.drawer-header{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px;border-bottom:1px solid var(--border)}.drawer-kicker{margin:0 0 3px;color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.drawer-header h2{margin:0;font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.drawer-form{flex:1;display:flex;flex-direction:column;min-height:0;overflow:auto;padding:22px}.recognition-fullscreen-layer{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:3vh 2vw;background:var(--scrim)}.recognition-workbench{width:min(1500px,96vw);height:min(94dvh,940px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg, 18px);background:var(--surface);box-shadow:var(--shadow)}.recognition-workbench-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--border)}.recognition-workbench-header h2,.recognition-workbench-header p{margin:0}.recognition-workbench-header h2{font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.recognition-workbench-header p{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-workbench-grid{flex:1;min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr) 320px}.recognition-pane{min-width:0;overflow:auto;padding:18px}.recognition-source-pane{border-right:1px solid var(--border)}.recognition-review-pane{border-left:1px solid var(--border)}.recognition-pane h3{margin:0 0 12px;font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.recognition-photo-summary,.recognition-parameters{display:grid;gap:5px;margin-bottom:14px;padding:12px;border:1px solid var(--boundary);border-radius:var(--radius);background:var(--surface-muted)}.recognition-photo-summary strong,.recognition-parameters strong{font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.recognition-photo-summary span,.recognition-parameters span,.recognition-parameters small,.recognition-source-pane>small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-route-list{display:grid;gap:8px}.recognition-route-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;padding:10px;border:1px solid transparent;border-radius:var(--radius);color:var(--text-primary);background:transparent;text-align:left;font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.recognition-route-item:hover,.recognition-route-item.is-current{border-color:var(--accent);background:var(--surface-muted)}.recognition-route-item[aria-pressed=true]{box-shadow:inset 3px 0 0 var(--accent)}.recognition-route-item small{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.recognition-canvas-pane{display:flex;flex-direction:column;gap:12px;background:var(--surface-muted)}.recognition-canvas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.recognition-current-route{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0}.recognition-current-route>span{display:grid;min-width:0}.recognition-current-route small{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.recognition-current-route strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recognition-current-route b{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing);white-space:nowrap}.recognition-color-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--boundary));border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-mode-group{display:flex;flex-wrap:wrap;gap:6px}.recognition-mode-group [aria-pressed=true]{color:var(--accent-contrast);background:var(--accent)}.recognition-image-stage{position:relative;flex:1;min-height:260px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:#15191b}.recognition-image-frame{position:relative;width:100%;max-width:100%;max-height:100%;overflow:hidden}.recognition-real-image{display:block;width:100%;height:100%;object-fit:contain}.recognition-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.recognition-overlay{overflow:visible}.recognition-overlay polygon{cursor:pointer;fill:var(--candidate-fill, rgb(255 185 0 / 15%));stroke:var(--candidate-color, rgb(255 214 60 / 90%));stroke-width:1.5px;vector-effect:non-scaling-stroke;paint-order:stroke fill}.recognition-overlay polygon.is-selected{fill:var(--candidate-selected-fill, rgb(54 211 153 / 40%));stroke:#fff;stroke-width:3px;filter:drop-shadow(0 0 2px var(--candidate-color, #111))}.recognition-image-placeholder{color:var(--text-secondary)}.recognition-candidate-grid{display:grid;gap:6px;max-height:180px;overflow:auto}.recognition-candidate-row{display:flex;align-items:center;gap:8px;min-width:0;padding:7px;border:1px solid var(--boundary);border-radius:var(--radius);background:var(--surface)}.recognition-candidate-row>button:first-child{flex:1;display:flex;align-items:center;gap:8px;min-width:0;border:0;color:inherit;background:transparent;text-align:left}.recognition-candidate-row i{width:12px;height:12px;flex:0 0 auto;border-radius:50%}.recognition-candidate-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recognition-candidate-row em{margin-left:auto;color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing);font-style:normal}.recognition-candidate-row.is-selected{border-color:var(--accent)}.recognition-review-heading,.recognition-route-actions,.recognition-review-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.recognition-review-heading h3{margin:0}.recognition-metadata-fields{display:grid;gap:9px;margin-top:14px}.recognition-metadata-fields .field{gap:4px}.recognition-metadata-fields input{min-height:34px;padding:6px 8px}.recognition-instructions{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-review-actions{margin-top:16px}.wall-route-editor-entry{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;margin-bottom:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:var(--radius-lg, 18px);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.wall-route-editor-entry strong,.wall-route-editor-entry p{margin:0}.wall-route-editor-entry p{margin-top:3px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}@media(max-width:980px){.recognition-fullscreen-layer{padding:0}.recognition-workbench{width:100vw;height:100dvh;border:0;border-radius:0}.recognition-workbench-grid{grid-template-columns:1fr;overflow:auto}.recognition-pane{overflow:visible}.recognition-source-pane,.recognition-review-pane{border:0;border-bottom:1px solid var(--border)}.recognition-canvas-pane{min-height:480px}.recognition-canvas-toolbar{align-items:flex-start;flex-direction:column}.recognition-current-route{width:100%}}.field-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px;color:var(--text-secondary);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.field input{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface)}.field textarea{width:100%;min-height:100px;box-sizing:border-box;padding:9px 11px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface);font:inherit;resize:vertical}.field input:disabled{cursor:not-allowed;opacity:.72;background:var(--surface-muted)}.field-error{color:var(--critical);font-size:var(--typography-compact-field-error-font-size);line-height:var(--typography-compact-field-error-line-height);font-weight:var(--typography-compact-field-error-font-weight);letter-spacing:var(--typography-compact-field-error-letter-spacing)}.activity-route-options{display:grid;gap:8px;max-height:220px;overflow:auto;padding:10px;border:1px solid var(--boundary);border-radius:var(--radius);background:var(--surface-muted)}.activity-route-options label{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;min-height:44px;color:var(--text-primary);font-size:var(--typography-compact-option-font-size);line-height:var(--typography-compact-option-line-height);font-weight:var(--typography-compact-option-font-weight);letter-spacing:var(--typography-compact-option-letter-spacing)}.field .activity-route-options input[type=checkbox]{width:18px;min-height:18px;margin:1px 0 0;padding:0}.locked-notice{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.editor-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h3{margin:0;font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.section-heading p{margin:4px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.version-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}.version-facts div{padding:13px;border-radius:var(--radius);background:var(--surface-muted)}.version-facts dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.version-facts dd{margin:5px 0 0;font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.image-field{min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:16px;border:1px dashed var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface-muted);text-align:center;transition:transform 80ms ease-out,background-color .16s ease;cursor:pointer}.image-field:not([data-disabled=true]):hover{background:var(--surface-raised)}.image-field[data-disabled=true]{cursor:not-allowed;opacity:.68}.image-field:not([data-disabled=true]):active{transform:scale(.99)}.image-field small{color:var(--text-secondary)}.image-field input{position:absolute;width:1px;height:1px;opacity:0}.field-error{margin:7px 0 0;color:var(--critical);font-size:var(--typography-compact-field-error-font-size);line-height:var(--typography-compact-field-error-line-height);font-weight:var(--typography-compact-field-error-font-weight);letter-spacing:var(--typography-compact-field-error-letter-spacing)}.hold-preview{position:relative;height:180px;overflow:hidden;margin-top:12px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(115deg,transparent 0 44%,rgb(82 96 91 / 8%) 44% 47%,transparent 47%),linear-gradient(70deg,var(--surface-muted),var(--surface-raised))}.hold-preview>span{position:absolute;width:18px;height:13px;border:2px solid var(--boundary);border-radius:45% 55% 52% 48%;background:#3f74a8;transform:rotate(-18deg)}.hold-preview p{position:absolute;right:12px;bottom:8px;margin:0;color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.drawer-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:auto;padding-top:22px}.publish-action{display:flex;align-items:center;gap:9px}.publish-action small{max-width:170px;color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing);text-align:right}.confirm-layer{z-index:40;display:grid;place-items:center;padding:20px}.confirm-dialog{position:relative;width:min(420px,100%);padding:24px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);background:var(--surface);box-shadow:var(--shadow);animation:confirm-in .16s cubic-bezier(.16,1,.3,1)}.confirm-dialog h2{margin:16px 0 7px;font-size:var(--typography-compact-dialog-title-font-size);line-height:var(--typography-compact-dialog-title-line-height);font-weight:var(--typography-compact-dialog-title-font-weight);letter-spacing:var(--typography-compact-dialog-title-letter-spacing)}.confirm-dialog p{margin:0;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.confirm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.publish-confirm-dialog{width:min(680px,100%);max-height:min(820px,calc(100dvh - 40px));overflow:auto}.publish-preview-content{margin-top:12px}.publish-preview-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.publish-preview-section h3{margin:0 0 10px;font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.publish-preview-grid,.publish-impact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.publish-preview-grid article,.publish-impact-grid div{min-width:0;padding:12px;border-radius:var(--radius);background:var(--surface-muted)}.publish-preview-grid span,.publish-impact-grid dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.publish-preview-grid strong,.publish-preview-grid small{display:block;overflow-wrap:anywhere}.publish-preview-grid strong{margin-top:5px;font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.publish-preview-grid small{margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.publish-impact-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.publish-impact-grid dd{margin:5px 0 0;overflow-wrap:anywhere;font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.publish-check-ok{display:flex;align-items:center;gap:7px;color:var(--positive)!important;font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.publish-issue-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.publish-issue-list li{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.publish-issue-list li.error{border-color:var(--critical);color:var(--critical);background:var(--critical-soft)}.publish-issue-list li.warning{border-color:var(--warning);color:var(--warning);background:var(--surface-muted)}.publish-issue-list strong{display:block;font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.grade-distribution,.publish-impact-warning{margin-top:10px!important;overflow-wrap:anywhere}.publish-impact-warning{padding:9px 11px;border-radius:var(--radius);color:var(--warning)!important;background:var(--surface-muted)}.toast{position:fixed;right:24px;bottom:24px;z-index:50;min-height:0;pointer-events:none}.toast:not(:empty){min-height:48px;display:flex;align-items:center;gap:9px;padding:11px 15px;border:1px solid var(--positive);border-radius:var(--radius);color:var(--positive);background:var(--positive-soft);box-shadow:var(--shadow)}.toast.error-toast{color:var(--critical);border-color:var(--critical);background:var(--critical-soft)}.analysis-filters{grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(130px,.7fr))}.analysis-filters .ui-field{min-width:0;margin:0}.analysis-task{display:flex;align-items:center;gap:10px;min-width:220px}.analysis-task-icon{width:36px;height:36px;display:grid;place-items:center;flex:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface-muted)}.analysis-task div{min-width:0;display:flex;flex-direction:column;gap:3px}.analysis-task strong{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-task span,.analysis-stage{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.analysis-stage{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.analysis-status.status-succeeded{color:var(--positive);border-color:var(--positive);background:var(--positive-soft)}.analysis-status.status-failed{color:var(--critical);border-color:var(--critical);background:var(--critical-soft)}.analysis-status.status-running{color:var(--text-primary);border-color:var(--boundary);background:var(--surface-raised)}.analysis-status.status-queued,.analysis-status.status-cancelled{color:var(--text-secondary)}.analysis-detail-body{flex:1;min-height:0;overflow:auto;padding:4px 22px 28px}.analysis-detail-section{padding:20px 0;border-bottom:1px solid var(--border)}.analysis-detail-section:last-child{border-bottom:0}.analysis-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-facts dd{overflow-wrap:anywhere}.inline-empty,.feedback-panel{margin:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.feedback-panel strong{display:block;color:var(--text-primary);font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.feedback-panel p{margin:5px 0 8px}.feedback-panel small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}@keyframes drawer-in{0%{opacity:.8;transform:translate(36px)}to{opacity:1;transform:translate(0)}}@keyframes confirm-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--background: #111816;--surface: #18211E;--surface-raised: #26312D;--text-primary: #EDF2F0;--text-secondary: #ADBAB5;--selection-fill: #3B261F;--disabled: #78847F;--focus-ring: #ADBAB5;--border: #485550;--boundary: #ADBAB5;--accent: #E85D2A;--accent-contrast: #111816;--positive: #79C79E;--positive-contrast: #0C2418;--surface-muted: #202A27;--positive-soft: #193126;--warning: #F1C56F;--critical: #E28B83;--critical-soft: #321E1C;--critical-contrast: #32100D;--scrim: #060A09CC;--scrim-opaque: #060A09;--sidebar: #0D1311;--sidebar-border: #33403B;--elevation-overlay: 0 18px 48px rgb(0 0 0 / 28%);--shadow: var(--elevation-overlay)}.button.danger{color:var(--critical-contrast)}}.device-login-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,520px);align-items:stretch;overflow-x:hidden;overflow-y:auto;background:var(--background)}.login-split-panel{display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:clamp(32px,6vw,88px);color:var(--sidebar-muted);background:var(--sidebar)}.login-brand-block{display:flex;align-items:center;gap:12px}.login-brand-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--sidebar-border);border-radius:var(--radius);color:var(--sidebar);background:var(--accent);font-size:var(--typography-compact-brand-mark-font-size);line-height:var(--typography-compact-brand-mark-line-height);font-weight:var(--typography-compact-brand-mark-font-weight);letter-spacing:var(--typography-compact-brand-mark-letter-spacing)}.login-brand-name,.login-brand-role{margin:0}.login-brand-name{font-size:var(--typography-compact-empty-title-font-size);line-height:var(--typography-compact-empty-title-line-height);font-weight:var(--typography-compact-empty-title-font-weight);letter-spacing:var(--typography-compact-empty-title-letter-spacing)}.login-brand-role{margin-top:2px;color:var(--sidebar-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.login-intro{max-width:560px;padding-block:56px}.login-intro-kicker{margin:0 0 18px;color:var(--sidebar-muted);font-size:var(--typography-compact-eyebrow-font-size);line-height:var(--typography-compact-eyebrow-line-height);font-weight:var(--typography-compact-eyebrow-font-weight);letter-spacing:var(--typography-compact-eyebrow-letter-spacing);text-transform:uppercase}.login-intro h1{max-width:10ch;margin:0;color:var(--sidebar-muted);font-size:var(--typography-auth-hero-title-font-size);line-height:var(--typography-auth-hero-title-line-height);font-weight:var(--typography-auth-hero-title-font-weight);letter-spacing:var(--typography-auth-hero-title-letter-spacing)}.login-intro p:last-child{max-width:36ch;margin:24px 0 0;color:var(--sidebar-muted);font-size:var(--typography-auth-hero-body-font-size);line-height:var(--typography-auth-hero-body-line-height);font-weight:var(--typography-auth-hero-body-font-weight);letter-spacing:var(--typography-auth-hero-body-letter-spacing)}.login-domain-list{display:grid;gap:10px;max-width:500px}.login-domain-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-top:1px solid var(--sidebar-border);color:var(--sidebar-muted);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.login-domain-item strong{color:var(--sidebar-muted);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.login-domain-item-active{color:var(--sidebar-muted);font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.device-login-card{width:auto;max-width:none;display:flex;flex-direction:column;justify-content:center;margin:0;padding:clamp(32px,5vw,72px);overflow:hidden;border:0;border-left:1px solid var(--border);border-radius:0;background:var(--surface);box-shadow:none}.device-login-icon{width:56px;height:56px;display:grid;place-items:center;margin-bottom:22px;border:1px solid var(--boundary);border-radius:16px;color:var(--accent-contrast);background:var(--accent)}.device-login-eyebrow{margin:0 0 8px;color:var(--text-secondary);font-size:var(--typography-compact-eyebrow-font-size);line-height:var(--typography-compact-eyebrow-line-height);font-weight:var(--typography-compact-eyebrow-font-weight);letter-spacing:var(--typography-compact-eyebrow-letter-spacing)}.device-login-card h1,.device-login-card h2{margin:0;font-size:var(--typography-auth-title-font-size);line-height:var(--typography-auth-title-line-height);font-weight:var(--typography-auth-title-font-weight);letter-spacing:var(--typography-auth-title-letter-spacing)}.login-b2b-note{margin-top:16px;padding:12px 14px;border-left:3px solid var(--accent);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.device-login-copy{margin:14px 0 24px;color:var(--text-secondary);font-size:var(--typography-compact-support-font-size);line-height:var(--typography-compact-support-line-height);font-weight:var(--typography-compact-support-font-weight);letter-spacing:var(--typography-compact-support-letter-spacing)}.device-login-status,.device-code-panel,.device-login-error{width:100%;min-width:0;border-radius:var(--radius)}.device-login-status{padding:18px;color:var(--text-secondary);background:var(--surface-muted);text-align:center}.device-code-panel{display:grid;gap:10px;padding:20px;border:1px solid var(--border);background:var(--surface-muted);text-align:center}.device-code-panel span{color:var(--text-secondary);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.device-code-panel strong{max-width:100%;overflow-wrap:anywhere;color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(25px,8vw,34px);line-height:1.2;letter-spacing:.08em}.device-code-panel small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.device-login-error{display:grid;gap:16px;padding:18px;border:1px solid var(--critical);background:var(--critical-soft)}.device-login-error p{margin:0;color:var(--critical);font-size:var(--typography-compact-support-font-size);line-height:var(--typography-compact-support-line-height);font-weight:var(--typography-compact-support-font-weight);letter-spacing:var(--typography-compact-support-letter-spacing)}.device-login-error .button{width:100%}.password-login-form{display:grid;gap:14px}.password-login-form label{display:grid;gap:7px;color:var(--text-secondary);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.password-login-form input{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface-muted);font:inherit}.password-login-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.password-login-submit,.password-login-device{width:100%;justify-content:center}.password-login-device{margin-top:12px}.password-login-fallback{position:relative}.password-login-back{position:fixed;top:20px;left:20px;z-index:2}@media(max-width:1080px){.admin-shell{grid-template-columns:80px minmax(0,1fr)}.sidebar-brand{justify-content:center;padding-inline:10px}.sidebar-brand>div,.nav-item span,.nav-group,.operator div{display:none}.nav-item,.operator{justify-content:center}.filters,.analysis-filters{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(120px,.65fr))}.filter-icon{display:none}}@media(max-width:760px){.formal-review-shell{grid-template-columns:1fr}.formal-review-stage{padding:var(--spacing-sm)}.formal-review-current-route{grid-template-columns:auto minmax(0,1fr)}.formal-review-current-route>span:not(.formal-review-current-route-swatch){min-width:0}.formal-review-current-route strong{overflow-wrap:anywhere}.formal-review-current-route>b{grid-column:2}.device-login-shell{display:block;overflow:visible}.login-split-panel{min-height:auto;gap:44px;padding:28px 20px 32px}.login-intro{padding-block:0}.login-intro h1{max-width:12ch;font-size:var(--typography-auth-hero-title-compact-font-size);line-height:var(--typography-auth-hero-title-compact-line-height);font-weight:var(--typography-auth-hero-title-compact-font-weight);letter-spacing:var(--typography-auth-hero-title-compact-letter-spacing)}.login-domain-item{align-items:flex-start;flex-direction:column;gap:4px}.device-login-card{padding:32px 20px 40px;border-left:0;border-top:1px solid var(--border)}.device-code-panel{padding-inline:12px}.admin-shell{display:block}.sidebar{position:sticky;top:0;z-index:30;width:100%;height:auto;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;overflow:visible;border-bottom:1px solid var(--sidebar-border)}.sidebar-brand{min-height:62px;justify-content:flex-start;padding:10px 12px;border-bottom:0}.sidebar-brand>div,.sidebar-footer,.sidebar nav .nav-group{display:none}.sidebar nav{min-width:0;display:flex;gap:6px;overflow-x:auto;padding:8px 12px 8px 0}.sidebar nav .button.nav-item{width:auto;min-width:max-content;justify-content:center;padding-inline:12px}.sidebar nav .nav-item span{display:inline}.admin-main,.page-frame,.content-card,.table-scroll{min-width:0;max-width:100%}.page-frame{width:100%;padding:20px 16px;overflow-x:hidden}.table-scroll{width:100%;overflow:visible}.table-scroll table{display:block;width:100%;min-width:0}.table-scroll thead{display:none}.table-scroll tbody{width:100%;display:grid;gap:8px}.table-scroll tr{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.table-scroll td{display:none;min-width:0;padding:0;border:0}table[aria-label=分析任务列表] td:nth-child(1),table[aria-label=分析任务列表] td:nth-child(2),table[aria-label=分析任务列表] td:nth-child(7),table[aria-label=线路列表] td:nth-child(1),table[aria-label=线路列表] td:nth-child(5),table[aria-label=线路列表] td:nth-child(7){display:block}.table-scroll .action-cell{justify-self:end}.zone-table tr{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.zone-table td{display:grid;gap:3px;overflow-wrap:anywhere}.zone-table td:before{color:var(--text-secondary);font-size:var(--typography-compact-control-label-font-size);line-height:var(--typography-compact-control-label-line-height);font-weight:var(--typography-compact-control-label-font-weight);letter-spacing:var(--typography-compact-control-label-letter-spacing)}.zone-table td:first-child,.zone-table td:last-child{grid-column:1 / -1}.zone-table td:nth-child(2):before{content:"类型"}.zone-table td:nth-child(3):before{content:"项目"}.zone-table td:nth-child(4):before{content:"楼层"}.zone-table td:nth-child(5):before{content:"平面图位置"}.zone-table td:nth-child(6):before{content:"封面"}.zone-table td:nth-child(7):before{content:"排序"}.zone-table td:nth-child(8):before{content:"状态"}.zone-table td:nth-child(9):before{content:"线路数"}.zone-table td:nth-child(10):before{content:"二维码"}.zone-table .venue-member-actions{justify-content:flex-end;flex-wrap:wrap}.table-scroll .analysis-name,.table-scroll .route-name,.table-scroll .analysis-name>div,.table-scroll .route-name>div{min-width:0}.page-heading,.page-header{flex-direction:column}.page-actions{width:100%;flex-wrap:wrap}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters,.field-grid,.version-facts,.analysis-facts,.publish-preview-grid,.publish-impact-grid{grid-template-columns:1fr}.publish-confirm-dialog{max-height:calc(100dvh - 24px);padding:18px}.confirm-actions{flex-wrap:wrap}.confirm-actions .button{flex:1 1 140px}.drawer-actions{flex-wrap:wrap}.drawer-actions .button{flex:1 1 140px}.publish-action{width:100%;flex-wrap:wrap}.publish-action small{max-width:none;flex:1 1 100%;text-align:left}.publish-action .button{flex:1 1 100%}}@media(prefers-reduced-motion:no-preference){.skeleton{animation:skeleton-shift 1.4s ease-in-out infinite}@keyframes skeleton-shift{to{background-position:-200% 0}}}.operator-users-filters{grid-template-columns:minmax(240px,1.4fr) minmax(160px,.8fr) minmax(150px,.7fr) auto}.operator-users-panel{overflow:hidden}.operator-users-table{min-width:1060px}.operator-users-table td strong,.operator-users-table td small{display:block}.operator-users-table td small{margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.operator-users-table .status-badge{display:inline-flex}.operator-users-filters .ui-field{min-width:0}.status-badge.status-active{color:var(--positive);border-color:var(--positive);background:var(--positive-soft)}.status-badge.status-suspended{color:var(--warning);border-color:var(--warning);background:var(--surface-raised)}.status-badge.status-deleted{color:var(--text-secondary);border-color:var(--boundary);background:var(--surface-raised)}.operator-users-error{margin:14px 20px 0}.operator-users-note{margin:14px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}@media(max-width:900px){.operator-users-filters{grid-template-columns:1fr 1fr}.operator-users-filters .search-field{grid-column:1 / -1}}@media(max-width:560px){.operator-users-filters{grid-template-columns:1fr}.operator-users-filters .search-field{grid-column:auto}.operator-users-filters .button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:more){:root{--border: var(--boundary)}.summary-card,.table-panel,.drawer,.confirm-dialog{border-width:2px}}@media(prefers-reduced-transparency:reduce){:root{--scrim: var(--scrim-opaque)}}.documentation-center{display:grid;align-content:start;gap:24px;background:radial-gradient(circle at 88% 4%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 28rem),var(--background)}.documentation-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:8px 0 4px}.documentation-hero h1,.documentation-section h2,.documentation-manual-card h3{margin:0}.documentation-hero h1{font-size:var(--typography-documentation-hero-title-font-size);line-height:var(--typography-documentation-hero-title-line-height);font-weight:var(--typography-documentation-hero-title-font-weight);letter-spacing:var(--typography-documentation-hero-title-letter-spacing)}.documentation-hero p:not(.eyebrow){max-width:64ch;margin:10px 0 0;color:var(--text-secondary);font-size:var(--typography-documentation-hero-lead-font-size);line-height:var(--typography-documentation-hero-lead-line-height);font-weight:var(--typography-documentation-hero-lead-font-weight);letter-spacing:var(--typography-documentation-hero-lead-letter-spacing)}.documentation-hero-icon{width:58px;height:58px;display:grid;place-items:center;flex:none;border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface);box-shadow:var(--shadow)}.documentation-account-boundary{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid var(--positive);border-radius:var(--radius);background:var(--positive-soft);color:var(--text-primary)}.documentation-account-boundary svg{flex:none;margin-top:1px}.documentation-account-boundary strong{display:block;font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.documentation-account-boundary p{margin:4px 0 0;font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.documentation-section{display:grid;gap:16px}.documentation-section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.documentation-section-heading h2{font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.documentation-section-heading>span{color:var(--text-secondary);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.documentation-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.documentation-quick-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;box-shadow:var(--elevation-card);transition:transform var(--motion-short) ease,border-color var(--motion-short) ease,box-shadow var(--motion-short) ease}.documentation-quick-card:hover{transform:translateY(-2px);border-color:var(--boundary);box-shadow:var(--elevation-overlay)}.documentation-quick-card>span:not(.documentation-step){min-width:0;display:grid;gap:5px}.documentation-quick-card strong{font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.documentation-quick-card small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.documentation-step{color:var(--text-primary);font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing);font-variant-numeric:tabular-nums}.documentation-library-heading{align-items:center}.documentation-search{min-width:min(320px,100%);display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.documentation-search:focus-within{border-color:var(--boundary);box-shadow:var(--shadow)}.documentation-search .ui-field{min-width:0;flex:1;margin:0}.documentation-search input{width:100%;min-height:var(--touch-minimum);border:0;outline:0;background:transparent;color:var(--text-primary)}.documentation-manual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.documentation-manual-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface);box-shadow:var(--elevation-card)}.documentation-manual-card>img{width:100%;aspect-ratio:16 / 10;display:block;object-fit:cover;object-position:top;border-bottom:1px solid var(--border);background:var(--surface-muted)}.documentation-manual-copy{display:grid;gap:10px;padding:18px}.documentation-manual-copy>span{width:fit-content;padding:4px 8px;border-radius:999px;background:var(--surface-muted);color:var(--text-secondary);font-size:var(--typography-compact-table-header-font-size);line-height:var(--typography-compact-table-header-line-height);font-weight:var(--typography-compact-table-header-font-weight);letter-spacing:var(--typography-compact-table-header-letter-spacing)}.documentation-manual-card h3{font-size:var(--typography-compact-card-title-font-size);line-height:var(--typography-compact-card-title-line-height);font-weight:var(--typography-compact-card-title-font-weight);letter-spacing:var(--typography-compact-card-title-letter-spacing)}.documentation-manual-card p{min-height:4.5em;margin:0;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.documentation-manual-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.documentation-manual-actions a{text-decoration:none}.documentation-image-placeholder{width:100%;aspect-ratio:16 / 10;border-bottom:1px solid var(--border);background:linear-gradient(110deg,var(--surface-muted) 25%,var(--surface-raised) 40%,var(--surface-muted) 55%);background-size:240% 100%}.documentation-image-failure{min-height:var(--touch-minimum);aspect-ratio:16 / 10;display:grid;place-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--border);background:var(--surface-muted)}.documentation-walkthrough-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.documentation-walkthrough-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-large);background:var(--surface);box-shadow:var(--elevation-card)}.documentation-walkthrough-card>img{width:100%;aspect-ratio:16 / 10;display:block;object-fit:cover;object-position:top;border-bottom:1px solid var(--border);background:var(--surface-muted)}.documentation-walkthrough-copy{display:grid;gap:9px;padding:16px}.documentation-walkthrough-copy>span{color:var(--text-secondary);font-size:var(--typography-compact-table-header-font-size);line-height:var(--typography-compact-table-header-line-height);font-weight:var(--typography-compact-table-header-font-weight);letter-spacing:var(--typography-compact-table-header-letter-spacing)}.documentation-walkthrough-copy h3{margin:0;font-size:var(--typography-compact-panel-title-font-size);line-height:var(--typography-compact-panel-title-line-height);font-weight:var(--typography-compact-panel-title-font-weight);letter-spacing:var(--typography-compact-panel-title-letter-spacing)}.documentation-walkthrough-copy p{min-height:3em;margin:0;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.documentation-walkthrough-details{display:grid;gap:7px;margin:0}.documentation-walkthrough-details div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}.documentation-walkthrough-details dt{color:var(--text-primary);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.documentation-walkthrough-details dd{margin:0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.documentation-walkthrough-copy .documentation-walkthrough-mode{width:fit-content;padding:4px 8px;border-radius:999px;color:var(--text-primary);background:var(--surface-raised)}.documentation-walkthrough-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px}.documentation-walkthrough-copy .button{width:fit-content}.documentation-walkthrough-card.is-expanded{grid-column:1 / -1;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)}.documentation-walkthrough-card.is-expanded>img{height:100%;max-height:430px;aspect-ratio:auto;border-right:1px solid var(--border);border-bottom:0}.documentation-walkthrough-card.is-expanded .documentation-walkthrough-copy{align-content:center;padding:24px}.documentation-walkthrough-card.is-expanded .documentation-walkthrough-chevron{transform:rotate(180deg)}.documentation-walkthrough-gallery{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;border-top:1px solid var(--border);background:var(--surface-muted)}.documentation-walkthrough-frame{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-standard);background:var(--surface)}.documentation-walkthrough-frame>img{width:100%;aspect-ratio:16 / 10;display:block;object-fit:cover;object-position:top;border-bottom:1px solid var(--border);background:var(--surface-muted)}.documentation-walkthrough-frame>div{display:grid;gap:8px;padding:14px}.documentation-walkthrough-frame span{color:var(--text-primary);font-size:var(--typography-compact-table-header-font-size);line-height:var(--typography-compact-table-header-line-height);font-weight:var(--typography-compact-table-header-font-weight);letter-spacing:var(--typography-compact-table-header-letter-spacing)}.documentation-walkthrough-frame h4{margin:0;font-size:var(--typography-compact-empty-title-font-size);line-height:var(--typography-compact-empty-title-line-height);font-weight:var(--typography-compact-empty-title-font-weight);letter-spacing:var(--typography-compact-empty-title-letter-spacing)}.documentation-walkthrough-frame p{display:grid;grid-template-columns:38px minmax(0,1fr);gap:7px;margin:0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.documentation-walkthrough-frame p strong{color:var(--text-primary)}.documentation-walkthrough-frame small{width:fit-content;padding:4px 8px;border-radius:999px;color:var(--text-primary);background:var(--surface-raised);font-size:var(--typography-compact-table-header-font-size);line-height:var(--typography-compact-table-header-line-height);font-weight:var(--typography-compact-table-header-font-weight);letter-spacing:var(--typography-compact-table-header-letter-spacing)}@media(max-width:1080px){.documentation-quick-grid,.documentation-manual-grid,.documentation-walkthrough-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.documentation-center{padding:22px 16px 34px}.documentation-hero-icon{display:none}.documentation-section-heading,.documentation-library-heading{align-items:stretch;flex-direction:column}.documentation-search{min-width:0}.documentation-quick-grid,.documentation-manual-grid,.documentation-walkthrough-grid{grid-template-columns:1fr}.documentation-manual-card p{min-height:0}.documentation-walkthrough-card.is-expanded{grid-template-columns:1fr}.documentation-walkthrough-card.is-expanded>img{max-height:none;aspect-ratio:16 / 10;border-right:0;border-bottom:1px solid var(--border)}.documentation-walkthrough-gallery{grid-template-columns:1fr}}.beta-status-filter{min-width:160px}.beta-drawer{max-width:680px}.beta-video-preview{margin:22px 0;min-height:220px;display:grid;place-items:center;overflow:hidden;border-radius:var(--radius);color:var(--text-secondary);background:#111816}.beta-video-preview video{width:100%;max-height:420px;display:block;background:#000}.beta-drawer .drawer-form textarea{min-height:110px;resize:vertical}.beta-drawer .drawer-actions{display:flex;gap:10px;margin-top:20px}.beta-drawer .drawer-actions .button{flex:1}.report-summary-grid .summary-card strong{color:var(--text-primary)}.report-table-panel{overflow:hidden}.report-toolbar{gap:20px;flex-wrap:wrap}.toolbar-title,.report-filters,.report-action-row,.report-detail-heading{display:flex;align-items:center}.toolbar-title{gap:9px;color:var(--text-primary)}.toolbar-title span{color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.report-filters{gap:8px;margin-left:auto;flex-wrap:wrap}.report-filters select,.field-select,.field-textarea{min-height:44px;padding:8px 11px;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;font:inherit}.compact-button{min-height:44px;padding:8px 14px}.report-table-panel table td strong,.report-table-panel table td small{display:block}.report-table-panel table td small{max-width:220px;margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-label{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.risk-low{color:var(--positive);background:var(--positive-soft)}.risk-medium{color:var(--warning);background:var(--surface-muted)}.risk-high{color:var(--critical);background:var(--critical-soft)}.risk-critical{color:var(--critical-contrast);background:var(--critical)}.report-status.status-submitted{color:var(--warning);background:var(--surface-muted)}.report-status.status-in_review,.report-status.status-resolved{color:var(--positive);background:var(--positive-soft)}.report-status.status-dismissed{color:var(--text-secondary);background:var(--surface-muted)}.table-action-button{color:var(--critical);background:transparent;border:0;cursor:pointer;font:inherit;font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.table-empty{display:flex;align-items:center;justify-content:center;gap:10px;padding:44px 24px;color:var(--text-secondary)}.table-empty strong{color:var(--text-primary)}.report-list-error{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 0}.report-list-error .compact-button{flex:0 0 auto}.report-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:18px 0 2px;color:var(--text-secondary);font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.report-pagination .button{min-width:76px;justify-content:center}.state-help{color:var(--text-secondary);font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.report-drawer{max-width:620px}.report-detail-body{padding:24px;overflow-y:auto}.report-detail-section{padding-bottom:24px;border-bottom:1px solid var(--border)}.report-detail-section+.report-detail-section{padding-top:24px}.report-detail-heading{justify-content:space-between;gap:16px}.report-detail-heading h3,.report-detail-section h3{margin:0;color:var(--text-primary);font-size:var(--typography-compact-panel-title-font-size);line-height:var(--typography-compact-panel-title-line-height);font-weight:var(--typography-compact-panel-title-font-weight);letter-spacing:var(--typography-compact-panel-title-letter-spacing)}.report-detail-heading p,.report-detail-section .section-heading p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.report-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0 0}.report-facts dt,.report-facts dd{margin:0}.report-facts dt,.field-label{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.report-facts dd{margin-top:5px;color:var(--text-primary);font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing);overflow-wrap:anywhere}.report-detail-section .section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.report-details-copy{margin:18px 0 0;padding:14px;color:var(--text-secondary);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);font-weight:var(--typography-body-font-weight);letter-spacing:var(--typography-body-letter-spacing);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-raised);border-radius:10px}.report-action-section .field-label{display:block;margin-top:18px}.field-select,.field-textarea{width:100%;box-sizing:border-box;margin-top:8px}.field-textarea{min-height:100px;resize:vertical}.report-action-button{width:100%;margin-top:20px;justify-content:center}.report-action-row{gap:10px;margin-top:16px}.report-action-row .button{flex:1;justify-content:center}.inline-error{margin-top:14px;padding:11px 13px;color:var(--critical);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);font-weight:var(--typography-body-font-weight);letter-spacing:var(--typography-body-letter-spacing);background:var(--critical-soft);border:1px solid var(--critical);border-radius:8px}.resolution-readonly{margin-top:20px;padding:14px;background:var(--surface-raised);border-radius:10px}.resolution-readonly strong{color:var(--text-primary);font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing)}.resolution-readonly p{margin:8px 0 0;color:var(--text-secondary);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);font-weight:var(--typography-body-font-weight);letter-spacing:var(--typography-body-letter-spacing);overflow-wrap:anywhere}.route-candidate-panel{overflow:hidden}.route-candidate-toolbar{align-items:flex-end}.route-candidate-filters{display:flex;gap:9px;margin-left:auto}.route-candidate-filters .select-field{min-width:180px}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px}.candidate-card{display:flex;flex-direction:column;min-width:0;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.candidate-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--border)}.candidate-kicker{margin:0 0 5px;overflow:hidden;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);text-overflow:ellipsis;white-space:nowrap}.candidate-card h2{margin:0;overflow:hidden;font-size:var(--typography-compact-panel-title-font-size);line-height:var(--typography-compact-panel-title-line-height);font-weight:var(--typography-compact-panel-title-font-weight);letter-spacing:var(--typography-compact-panel-title-letter-spacing);text-overflow:ellipsis;white-space:nowrap}.candidate-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0 18px}.candidate-facts div{min-width:0;padding:10px;border-radius:9px;background:var(--surface-muted)}.candidate-facts dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.candidate-facts dd{margin:4px 0 0;overflow:hidden;font-size:var(--typography-compact-identity-strong-font-size);line-height:var(--typography-compact-identity-strong-line-height);font-weight:var(--typography-compact-identity-strong-font-weight);letter-spacing:var(--typography-compact-identity-strong-letter-spacing);text-overflow:ellipsis;white-space:nowrap}.candidate-action{width:100%;margin-top:auto}.route-candidate-drawer{max-width:700px}.route-candidate-summary .version-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.field-help{margin:9px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}@media(max-width:900px){.candidate-grid{grid-template-columns:1fr}.route-candidate-filters{width:100%;margin-left:0}.route-candidate-filters .select-field{width:100%}}@media(max-width:900px){.report-filters{width:100%;margin-left:0}.report-filters select,.report-filters .compact-button{flex:1 1 140px}}.qr-summary-grid .summary-card strong{color:var(--text-primary)}.qr-management-panel{overflow:hidden}.qr-panel-heading{align-items:flex-end;flex-wrap:wrap}.qr-download-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.qr-download-actions>span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.qr-filters{grid-template-columns:minmax(220px,280px) minmax(180px,240px)}.qr-table{min-width:1040px}.qr-table td strong,.qr-table td small{display:block}.qr-table td small{margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.qr-preview{width:64px;height:64px}.qr-preview svg{display:block;width:100%;height:100%}.qr-status{margin-bottom:2px;padding:4px 9px}.qr-status.current{color:var(--positive);background:var(--positive-soft)}.qr-status.historical{color:var(--warning);background:var(--surface-raised)}.qr-status.unavailable{color:var(--critical);background:var(--critical-soft)}.qr-checkbox-hit{display:inline-grid;min-width:44px;min-height:44px;place-items:center;cursor:pointer}.qr-checkbox-hit:has(input:disabled){cursor:not-allowed}.qr-checkbox-hit input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent)}@media(max-width:900px){.qr-filters{grid-template-columns:1fr}.qr-download-actions{width:100%;justify-content:flex-start}.qr-download-actions .button{flex:1 1 150px}}.venue-beta-summary .summary-card strong{color:var(--text-primary)}.venue-beta-panel{overflow:hidden}.venue-beta-filters{grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) repeat(3,minmax(140px,.8fr))}.venue-beta-table{min-width:1080px}.venue-beta-table td strong,.venue-beta-table td small{display:block}.venue-beta-table td small{margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.venue-beta-table select{min-height:44px;max-width:170px;padding:7px 9px;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;font:inherit}.venue-beta-table select:disabled{cursor:not-allowed;opacity:.68}.venue-beta-moderation{padding:4px 9px}.venue-beta-moderation.approved{color:var(--positive);background:var(--positive-soft)}.venue-beta-moderation.pending{color:var(--warning);background:var(--surface-raised)}.venue-beta-moderation.rejected{color:var(--critical);background:var(--critical-soft)}.venue-beta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.venue-beta-contact-drawer{max-width:620px}.venue-beta-contact-drawer textarea{min-height:130px;resize:vertical}.table-muted{color:var(--text-secondary)}@media(max-width:1100px){.venue-beta-filters{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media(max-width:900px){.venue-beta-filters{grid-template-columns:1fr}}.feedback-summary .summary-card strong{color:var(--text-primary)}.feedback-filter-panel{margin-bottom:20px;overflow:visible}.feedback-filters{grid-template-columns:repeat(2,minmax(180px,280px))}.feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.feedback-card{min-height:270px}.feedback-trend{display:grid;gap:12px;margin-top:20px}.trend-row{display:grid;grid-template-columns:42px minmax(80px,1fr) auto;align-items:center;gap:10px}.trend-row>span,.trend-row>strong{color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums}.trend-row>strong{min-width:30px;text-align:right;color:var(--text-primary);font-weight:650}.trend-track{height:8px;overflow:hidden;border-radius:999px;background:var(--surface-raised)}.trend-track i{display:block;height:100%;min-width:3px;border-radius:inherit;background:var(--accent)}.feedback-list{display:grid;gap:12px;margin-top:20px}.feedback-list>div{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised)}.feedback-list strong{color:var(--text-primary);font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.feedback-list small,.feedback-list span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}@media(max-width:900px){.feedback-filters,.feedback-grid{grid-template-columns:1fr}.feedback-card{min-height:0}}.venue-member-filter-panel{margin-bottom:20px;overflow:visible}.venue-member-filters{grid-template-columns:repeat(2,minmax(180px,280px))}.venue-member-table{min-width:1060px}.venue-member-table td strong,.venue-member-table td small{display:block}.venue-member-table td small{margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);overflow-wrap:anywhere}.venue-member-status{padding:4px 9px}.venue-member-status.invited{color:var(--warning);background:var(--surface-raised)}.venue-member-status.active{color:var(--positive);background:var(--positive-soft)}.venue-member-status.suspended{color:var(--critical);background:var(--critical-soft)}.member-token{display:inline-flex;max-width:180px;margin:2px 5px 2px 0;padding:4px 8px;overflow:hidden;border-radius:999px;color:var(--text-secondary);background:var(--surface-raised);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing);text-overflow:ellipsis;white-space:nowrap}.venue-member-actions{display:flex;align-items:center;gap:12px}.danger-action{color:var(--critical)}.zone-table{min-width:1320px}.zone-table td:nth-child(5),.zone-table td:nth-child(6){white-space:nowrap}.zone-drawer{max-width:660px}.zone-position-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.zone-position-preview{position:relative;min-height:150px;overflow:hidden;margin-top:14px;border:1px solid var(--boundary);border-radius:var(--radius);background-color:var(--surface-muted);background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:25% 25%}.zone-position-marker{position:absolute;left:clamp(9px,var(--zone-x),calc(100% - 9px));top:clamp(9px,var(--zone-y),calc(100% - 9px));width:18px;height:18px;border:3px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 42%,transparent);transform:translate(-50%,-50%)}.zone-position-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);text-align:center}.venue-member-audit{margin-top:20px}.audit-list{display:grid;gap:10px;margin-top:18px}.audit-list>div{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised)}.audit-list strong{color:var(--text-primary);font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.audit-list span,.audit-list small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);overflow-wrap:anywhere}.venue-member-drawer{max-width:620px}.checkbox-group{display:grid;gap:9px;margin:18px 0 0;padding:14px;border:1px solid var(--border);border-radius:10px}.checkbox-group legend{padding:0 5px;color:var(--text-secondary);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.checkbox-group label{min-height:44px;display:flex;align-items:center;gap:9px;color:var(--text-primary);font-size:var(--typography-compact-option-font-size);line-height:var(--typography-compact-option-line-height);font-weight:var(--typography-compact-option-font-weight);letter-spacing:var(--typography-compact-option-letter-spacing)}.checkbox-group input{width:17px;height:17px;accent-color:var(--accent)}@media(max-width:900px){.venue-member-filters{grid-template-columns:1fr}.venue-member-actions{flex-wrap:wrap}}.operator-summary .summary-card strong{color:var(--text-primary)}.operator-metric>span{display:flex;align-items:center;gap:8px}.operator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.operator-card{min-height:250px}.operator-alert-card{grid-column:1 / -1;min-height:0}.operator-card .panel-heading>svg{color:var(--text-secondary)}.operator-activity,.operator-queue{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.operator-queue{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-activity>div,.operator-queue>div{display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised)}.operator-activity span,.operator-queue span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.operator-activity strong,.operator-queue strong{color:var(--text-primary);font-size:25px;font-variant-numeric:tabular-nums}.operator-kpi{display:grid;gap:7px;margin-top:26px}.operator-kpi strong{color:var(--text-primary);font-size:clamp(34px,5vw,52px);line-height:1;font-variant-numeric:tabular-nums}.operator-kpi span,.operator-detail,.operator-generated{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.operator-config-panel{overflow:visible}.operator-config-editor,.operator-config-analysis{min-width:0;margin:0;padding:0;border:0}.operator-config-editor{display:grid;gap:24px}.operator-config-editor>section{display:grid;gap:12px;padding-top:20px;border-top:1px solid var(--border)}.operator-config-editor>section:first-of-type{padding-top:0;border-top:0}.operator-config-editor h3{margin:0;color:var(--text-primary);font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.operator-config-row{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr)) auto auto;align-items:end;gap:10px}.operator-config-row .ui-field{min-width:0;margin:0}.operator-config-row .ui-checkbox-field,.operator-config-row>.button{min-height:44px;align-self:end}.operator-config-checkboxes{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.operator-config-checkboxes>span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.operator-config-group{display:grid;gap:12px;min-width:0;margin:0;padding:16px;border:1px solid var(--boundary);border-radius:var(--radius)}.operator-config-group legend{padding:0 6px;color:var(--text-secondary);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.operator-config-analysis{display:grid;gap:14px}@media(max-width:900px){.operator-config-row{grid-template-columns:repeat(2,minmax(140px,1fr))}}@media(max-width:640px){.operator-config-row{grid-template-columns:1fr}.operator-config-row>.button{width:100%}}.route-correction-panel{overflow:hidden}.route-correction-filters{grid-template-columns:minmax(240px,1.5fr) repeat(2,minmax(150px,.8fr)) auto}.route-correction-search{position:relative}.route-correction-search>svg{position:absolute;z-index:1;left:12px;bottom:13px;color:var(--text-secondary);pointer-events:none}.route-correction-search input{padding-left:38px}.route-correction-panel table{min-width:1040px}.route-correction-panel td strong,.route-correction-panel td small{display:block}.route-correction-panel td small{margin-top:4px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-correction-status.pending{color:var(--warning);background:var(--surface-raised)}.route-correction-status.accepted{color:var(--positive);background:var(--positive-soft)}.route-correction-status.rejected{color:var(--critical);background:var(--critical-soft)}.route-correction-status.cancelled{color:var(--text-secondary)}.route-correction-drawer{max-width:650px}.route-correction-drawer textarea{min-height:120px;resize:vertical}.route-correction-apply{display:grid;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}.route-correction-apply>.button{justify-self:start}.route-correction-merge{display:grid;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}.route-correction-merge>.button{justify-self:start}.route-correction-migration-preview{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised)}.route-correction-migration-preview h4,.route-correction-merge-result h3{margin:0;color:var(--text-primary);font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.route-correction-migration-preview p,.route-correction-merge-result>p{margin:7px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-correction-migration-preview ul{display:flex;flex-wrap:wrap;gap:6px 14px;margin:12px 0 0;padding:0;list-style:none;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-correction-migration-preview li:before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 2px 0;border-radius:50%;background:var(--accent)}.route-correction-merge-result{display:grid;gap:12px;padding:16px;border:1px solid var(--positive);border-radius:var(--radius);background:var(--positive-soft)}.route-correction-merge-result dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0}.route-correction-merge-result dl div{display:flex;justify-content:space-between;gap:8px}.route-correction-merge-result dt{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-correction-merge-result dd{margin:0;color:var(--text-primary);font-variant-numeric:tabular-nums}.route-correction-facts{display:grid;gap:14px;margin:0}.route-correction-facts div{display:grid;gap:5px}.route-correction-facts dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.route-correction-facts dd{margin:0;color:var(--text-primary);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);font-weight:var(--typography-body-font-weight);letter-spacing:var(--typography-body-letter-spacing);white-space:pre-wrap;overflow-wrap:anywhere}.route-correction-id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.route-history-drawer{max-width:680px}.route-history-body{gap:18px}.compact-loading{min-height:220px;padding-top:16px}.compact-loading .skeleton-title{width:62%}.compact-loading .skeleton-row{width:100%;margin:0 0 12px}.route-history-timeline{display:grid;gap:14px}.route-history-entry{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px}.route-history-entry:not(:last-child):before{content:"";position:absolute;top:32px;bottom:-18px;left:15px;width:1px;background:var(--border)}.route-history-marker{position:relative;z-index:1;width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--boundary);border-radius:50%;color:var(--text-primary);background:var(--surface-raised);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing);font-variant-numeric:tabular-nums}.route-history-entry details{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised)}.route-history-entry summary{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;cursor:pointer;list-style:none}.route-history-entry summary::-webkit-details-marker{display:none}.route-history-entry summary div{display:grid;gap:4px}.route-history-entry summary strong{color:var(--text-primary)}.route-history-entry summary span:not(.status-badge){color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-history-content{display:grid;gap:16px;padding:0 14px 16px;border-top:1px solid var(--border)}.route-history-content h3{margin:0 0 8px;color:var(--text-secondary);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.route-history-publication{margin:16px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.route-history-publication strong{color:var(--text-primary);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.route-history-changes{display:flex;flex-wrap:wrap;gap:7px}.route-history-changes span{padding:4px 8px;border:1px solid var(--positive);border-radius:999px;color:var(--positive);background:var(--positive-soft);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.route-history-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0}.route-history-facts div{min-width:0;display:grid;gap:4px}.route-history-facts dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.route-history-facts dd{margin:0;color:var(--text-primary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing);overflow-wrap:anywhere}@media(max-width:920px){.route-correction-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}.route-correction-filters .route-correction-search{grid-column:1 / -1}}@media(max-width:620px){.route-correction-filters{grid-template-columns:1fr}.route-correction-filters .route-correction-search{grid-column:auto}.route-history-facts,.route-correction-merge-result dl{grid-template-columns:1fr}}.operator-detail{margin:18px 0 0}.operator-funnel{display:grid;gap:15px;margin-top:24px}.operator-funnel-row{display:grid;grid-template-columns:92px minmax(80px,1fr) 48px;align-items:center;gap:10px}.operator-funnel-row>span,.operator-funnel-row>strong{color:var(--text-secondary)}.operator-funnel-row>span{font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.operator-funnel-row>strong{color:var(--text-primary);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.operator-funnel-row>div{height:9px;overflow:hidden;border-radius:999px;background:var(--surface-raised)}.operator-funnel-row i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.operator-alerts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.operator-alerts>div{display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised)}.operator-alerts>div[data-alert=true]{border-color:var(--critical);background:var(--critical-soft)}.operator-alerts span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.operator-alerts strong{color:var(--text-primary);font-size:23px;font-variant-numeric:tabular-nums}.operator-alerts>div[data-alert=true] strong{color:var(--critical)}.operator-generated{margin:18px 0 0;text-align:right}@media(max-width:900px){.operator-grid{grid-template-columns:1fr}.operator-alert-card{grid-column:auto}.operator-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.operator-activity,.operator-queue,.operator-alerts{grid-template-columns:1fr}}.operator-venue-summary .summary-card>span{display:flex;align-items:center;gap:8px}.operator-venue-summary .summary-card strong{color:var(--text-primary)}.operator-venue-panel{overflow:hidden}.operator-venue-panel-heading{align-items:flex-end}.operator-venue-filters{grid-template-columns:minmax(260px,1fr) minmax(180px,240px)}.operator-venue-search{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:10px}.operator-venue-search>svg{margin-bottom:13px;color:var(--text-secondary)}.operator-venue-table{min-width:1180px}.operator-venue-table td strong,.operator-venue-table td small{display:block}.operator-venue-table td small{margin-top:4px}.operator-venue-name{display:block;min-height:44px;max-width:270px;padding:0;overflow:hidden;border:0;color:inherit;background:transparent;text-align:left}.operator-venue-name:hover strong{color:var(--text-primary);text-decoration:underline}.operator-venue-name strong,.operator-venue-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operator-venue-name small{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.operator-venue-stage{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.operator-venue-stage.pilot,.operator-venue-stage.active{color:var(--positive);background:var(--positive-soft)}.operator-venue-stage.onboarding,.operator-venue-stage.evaluating{color:var(--warning);background:var(--surface-raised)}.operator-venue-stage.paused{color:var(--critical);background:var(--critical-soft)}.operator-venue-stage.closed{color:var(--text-secondary);background:var(--surface-raised)}.operator-venue-inline-status{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.operator-venue-error{display:flex;align-items:center;justify-content:space-between;gap:16px}.operator-venue-notice{display:flex;align-items:center;gap:8px;margin:14px 0;padding:10px 12px;border:1px solid var(--positive);border-radius:8px;color:var(--positive);background:var(--positive-soft);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.operator-venue-drawer{max-width:720px}.operator-venue-detail-body{min-height:0;overflow:auto;padding:22px}.operator-venue-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.operator-venue-detail-heading p{margin:8px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.operator-venue-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.operator-venue-facts>div{min-width:0;padding:12px;border-radius:10px;background:var(--surface-raised)}.operator-venue-facts dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.operator-venue-facts dd{margin:5px 0 0;overflow-wrap:anywhere;font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.operator-venue-detail-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.operator-venue-detail-section .section-heading{padding:0}.operator-venue-detail-section .section-heading>svg{color:var(--text-secondary)}.operator-venue-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.operator-venue-metrics>div{display:grid;gap:6px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.operator-venue-metrics span,.operator-venue-metrics small{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.operator-venue-metrics strong{font-size:24px;font-variant-numeric:tabular-nums}.operator-venue-form{gap:0}.operator-venue-form-section{padding-bottom:22px}.operator-venue-form-section+.operator-venue-form-section{padding-top:20px;border-top:1px solid var(--border)}.operator-venue-form-section .section-heading{padding:0}.operator-venue-form .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-venue-form .field-wide{grid-column:1 / -1}.operator-venue-form .field select,.operator-venue-form .field textarea,.operator-venue-form .field input[type=date],.operator-venue-form .field input[type=url]{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface)}.operator-venue-form .field textarea{min-height:110px;resize:vertical}.operator-venue-follow-up-date{margin-top:12px}.operator-venue-follow-up-submit{width:100%;margin-top:14px}.operator-venue-follow-ups{display:grid;gap:10px;margin-top:16px}.operator-venue-follow-ups article{display:grid;gap:7px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.operator-venue-follow-ups article>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.operator-venue-follow-ups strong{font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.operator-venue-follow-ups small,.operator-venue-follow-ups span{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.operator-venue-follow-ups p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}@media(max-width:900px){.operator-venue-filters{grid-template-columns:1fr}.operator-venue-error{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.operator-venue-facts,.operator-venue-metrics,.operator-venue-form .field-grid{grid-template-columns:1fr}.operator-venue-form .field-wide{grid-column:auto}.operator-venue-detail-heading{align-items:stretch;flex-direction:column}.operator-venue-detail-heading .button{width:100%}.operator-venue-follow-ups article>div{align-items:flex-start;flex-direction:column;gap:3px}}.geometry-editor{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.geometry-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.geometry-editor-heading h3{margin:0;color:var(--text-primary);font-size:var(--typography-compact-panel-title-font-size);line-height:var(--typography-compact-panel-title-line-height);font-weight:var(--typography-compact-panel-title-font-weight);letter-spacing:var(--typography-compact-panel-title-letter-spacing)}.geometry-editor-heading p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.geometry-revision{flex:0 0 auto;padding:4px 9px;color:var(--text-secondary);background:var(--surface-raised);border-radius:999px;font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.geometry-loading{display:grid;min-height:240px;place-items:center;margin-top:16px;color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius)}.geometry-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}.segmented-control{display:inline-flex;overflow:hidden;border:1px solid var(--boundary);border-radius:var(--radius)}.segmented-control button{min-height:var(--touch-minimum);padding:7px 11px;border:0;border-right:1px solid var(--boundary);color:var(--text-secondary);background:var(--surface);cursor:pointer;font:inherit;font-size:var(--typography-compact-control-font-size);line-height:var(--typography-compact-control-line-height);font-weight:var(--typography-compact-control-font-weight);letter-spacing:var(--typography-compact-control-letter-spacing)}.segmented-control button:last-child{border-right:0}.segmented-control button[aria-pressed=true]{color:var(--text-primary);background:var(--surface-raised);box-shadow:inset 0 -2px 0 var(--accent)}.segmented-control button:disabled{cursor:not-allowed;opacity:.55}.geometry-zoom-value{min-width:42px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);text-align:center}.geometry-context-warning{display:flex;align-items:center;gap:7px;margin:10px 0 0;color:var(--warning);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.geometry-workspace{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-top:12px}.geometry-wall-viewport{min-width:0;overflow:auto;border:1px solid var(--boundary);border-radius:var(--radius);background:#18231f}.geometry-workspace.phone-preview .geometry-wall-viewport{width:min(100%,340px);margin-inline:auto}.geometry-wall-frame{min-width:75%;overflow:hidden;margin-inline:auto;background:#18231f}.geometry-wall{display:block;width:100%;aspect-ratio:5 / 7;min-height:360px;touch-action:none;color:#bdcdc6}.geometry-wall.tool-add{cursor:crosshair}.geometry-wall.tool-select{cursor:default}.geometry-wall-surface{fill:#26332e}.geometry-peer-path{fill:none;stroke-width:13;stroke-linecap:round;stroke-linejoin:round;opacity:.3;vector-effect:non-scaling-stroke}.geometry-current-path{fill:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.geometry-hold{cursor:grab;stroke:#e3f2ff;stroke-width:9;vector-effect:non-scaling-stroke}.geometry-hold.start{stroke:#9be39b}.geometry-hold.finish{stroke:#ffca8f}.geometry-hold.selected{stroke:#fff;stroke-width:14}.geometry-hold:active{cursor:grabbing}.geometry-hold-number{fill:#10221b;font-size:36px;font-weight:760;pointer-events:none;text-anchor:middle;dominant-baseline:middle}.geometry-vertex-visual{cursor:crosshair;fill:#fff;stroke:#10221b;stroke-width:5;vector-effect:non-scaling-stroke;pointer-events:none}.geometry-vertex-hit-target{cursor:crosshair;fill:transparent;stroke:transparent;stroke-width:44;vector-effect:non-scaling-stroke;pointer-events:all}.geometry-vertex:focus-visible{outline:none}.geometry-vertex-focus-ring{fill:none;opacity:0;pointer-events:none;vector-effect:non-scaling-stroke}.geometry-vertex-focus-group:focus-within .geometry-vertex-focus-ring.outer{opacity:1;stroke:#10221b;stroke-width:12}.geometry-vertex-focus-group:focus-within .geometry-vertex-focus-ring.inner{opacity:1;stroke:#fff;stroke-width:4}.geometry-sidebar{min-width:0;display:flex;flex-direction:column;gap:12px;padding:13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.geometry-sidebar-heading{display:grid;gap:3px}.geometry-sidebar-heading strong{color:var(--text-primary);font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.geometry-sidebar-heading span{min-width:0;overflow-wrap:anywhere;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.geometry-opacity{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 8px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.geometry-opacity input{grid-column:1 / -1;width:100%;min-height:var(--touch-minimum);accent-color:var(--accent)}.geometry-opacity output{font-variant-numeric:tabular-nums}.geometry-shape-list{display:grid;gap:6px;max-height:250px;overflow:auto;margin:0;padding:0;list-style:none}.geometry-shape-list li{min-width:0}.geometry-shape-list button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;min-height:var(--touch-minimum);padding:8px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);background:var(--surface);cursor:pointer;text-align:left}.geometry-shape-list button[aria-current=true]{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.geometry-shape-list button span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:var(--text-secondary);background:var(--surface-raised);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.geometry-shape-list button strong{font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.geometry-shape-list button small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);white-space:nowrap}.geometry-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}.geometry-toolbar>span{margin-left:auto;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.geometry-selected{display:grid;gap:9px;padding-top:10px;border-top:1px solid var(--border)}.geometry-selected>div{display:flex;align-items:center;gap:8px}.geometry-selected strong{color:var(--text-primary);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.geometry-role-tag{padding:3px 8px;border-radius:var(--radius-full);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.geometry-role-tag.start{color:var(--positive);background:var(--positive-soft)}.geometry-role-tag.finish{color:var(--warning);background:var(--surface-raised)}.geometry-selected .select-field{display:grid;gap:5px}.geometry-selected .select-field>label{color:var(--text-secondary);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.geometry-selected select{min-height:var(--touch-minimum);padding:7px 9px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font:inherit}.geometry-vertex-visual.selected{fill:var(--accent);stroke-width:8}.geometry-vertex-actions{display:grid!important;align-items:stretch!important;gap:7px!important}.geometry-vertex-actions>span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.geometry-quality-checklist{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:11px 12px;background:var(--surface-muted);border:1px solid var(--border);border-radius:10px}.geometry-quality-checklist strong{margin-right:4px;color:var(--text-primary);font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.geometry-quality-checklist span{padding:4px 7px;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.recognition-stage-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 16px 0}.recognition-stage-flow>div{display:grid;gap:3px;padding:9px 11px;color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);border-radius:10px}.recognition-stage-flow>div.is-current{color:var(--text-primary);border-color:var(--boundary)}.recognition-stage-flow strong{font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.recognition-stage-flow span,.recognition-stage-flow p{font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.recognition-stage-flow p{grid-column:1 / -1;margin:0;color:var(--text-secondary)}.geometry-order-actions{display:grid!important;grid-template-columns:1fr 1fr}.geometry-order-actions .button{justify-content:center}.geometry-save{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.geometry-save p{max-width:440px;margin:0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}@media(max-width:900px){.geometry-workspace{grid-template-columns:1fr}.geometry-sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.7fr)}.geometry-shape-list{grid-row:span 2}}@media(max-width:700px){.geometry-editor-heading,.geometry-save{align-items:flex-start;flex-direction:column}.geometry-tools{align-items:stretch}.geometry-tools .segmented-control{width:100%}.geometry-tools .segmented-control button{flex:1}.geometry-sidebar{display:flex}.geometry-toolbar>span{width:100%;margin-left:0}.geometry-wall{min-height:300px}}.dataset-annotation-editor{min-width:0;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.dataset-annotation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dataset-annotation-heading h3{margin:0;font-size:var(--typography-compact-panel-title-font-size);line-height:var(--typography-compact-panel-title-line-height);font-weight:var(--typography-compact-panel-title-font-weight);letter-spacing:var(--typography-compact-panel-title-letter-spacing)}.dataset-annotation-heading p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.dataset-annotation-empty{display:grid;min-height:96px;place-items:center;margin-top:14px;padding:16px;border:1px dashed var(--boundary);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing);text-align:center}.dataset-annotation-controls{display:grid;grid-template-columns:minmax(0,1fr) repeat(2,auto);align-items:end;gap:12px;margin-top:16px}.dataset-annotation-controls .ui-field{min-width:0}.dataset-annotation-editor .ui-field>label{font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.dataset-annotation-controls select{width:100%;min-height:var(--touch-minimum);padding:8px 10px;border:1px solid var(--boundary);border-radius:var(--radius);color:var(--text-primary);background:var(--surface);font:inherit}.dataset-annotation-editor .button{max-width:100%;white-space:normal;overflow-wrap:anywhere}.dataset-image-strip{display:flex;gap:8px;overflow-x:auto;margin-top:14px;padding-bottom:4px}.dataset-image-strip>span{min-width:0;max-width:100%;overflow-wrap:anywhere;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-image-button{min-width:150px;min-height:var(--touch-minimum);display:grid;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);background:var(--surface-muted);text-align:left;cursor:pointer}.dataset-image-button[aria-pressed=true]{border-color:var(--accent);background:var(--surface-raised);box-shadow:inset 3px 0 0 var(--accent)}.dataset-image-button strong{font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.dataset-image-button small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-annotation-workspace{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;margin-top:16px}.dataset-canvas-column{min-width:0}.dataset-canvas-column.mobile-preview{max-width:300px;margin-inline:auto}.dataset-canvas-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}.dataset-canvas-toolbar>span{margin-left:auto;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-canvas-frame{overflow:hidden;aspect-ratio:1 / 1;border:1px solid var(--boundary);border-radius:var(--radius);background:#17201d}.dataset-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.dataset-annotation-shape{fill:#48a6e040;stroke:#8fd3ff;stroke-width:4;vector-effect:non-scaling-stroke}.dataset-annotation-shape.approved{fill:#52be7e3d;stroke:#9be39b}.dataset-annotation-shape.rejected{fill:#dd555526;stroke:#e78484;stroke-dasharray:7 5}.dataset-annotation-shape.selected{stroke:#fff;stroke-width:6}.dataset-candidate-shape{fill:#edb44a26;stroke:#f0c56d;stroke-width:4;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.dataset-editing-line{fill:#ffffff14;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke}.dataset-editing-point-visual{fill:var(--accent);stroke:#fff;stroke-width:4;vector-effect:non-scaling-stroke;cursor:grab}.dataset-editing-point{outline:none;cursor:grab}.dataset-editing-point-hit{fill:transparent;stroke:transparent;stroke-width:44px;vector-effect:non-scaling-stroke;pointer-events:all}.dataset-editing-point-focus-ring,.dataset-editing-point-focus-inner{fill:none;opacity:0;vector-effect:non-scaling-stroke;pointer-events:none}.dataset-editing-point-focus-ring{stroke:#10221b;stroke-width:12px}.dataset-editing-point-focus-inner{stroke:#fff;stroke-width:4px}.dataset-editing-point:focus-visible .dataset-editing-point-focus-ring,.dataset-editing-point:focus-visible .dataset-editing-point-focus-inner{opacity:1}.dataset-drawing-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}.dataset-drawing-toolbar>span{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-annotation-sidebar{min-width:0;display:flex;flex-direction:column;gap:10px}.dataset-annotation-sidebar h4{margin:8px 0 0;font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.dataset-sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.dataset-sidebar-heading h4{margin:0}.dataset-sidebar-heading .ui-checkbox-field{min-height:var(--touch-minimum);display:flex;align-items:center;gap:5px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-sidebar-empty{margin:0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-candidate-list,.dataset-annotation-list{display:grid;gap:7px}.dataset-candidate-list article{display:grid;gap:8px;padding:9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.dataset-candidate-list article>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.dataset-candidate-list strong{min-width:0;overflow-wrap:anywhere;font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.dataset-candidate-list span{flex:0 0 auto;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-annotation-list button{width:100%;min-height:var(--touch-minimum);display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:9px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);background:var(--surface-muted);text-align:left;cursor:pointer}.dataset-annotation-list button.selected{border-color:var(--accent)}.dataset-annotation-list span{min-width:0;overflow-wrap:anywhere;font-size:var(--typography-compact-field-label-font-size);line-height:var(--typography-compact-field-label-line-height);font-weight:var(--typography-compact-field-label-font-weight);letter-spacing:var(--typography-compact-field-label-letter-spacing)}.dataset-annotation-list small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dataset-current-annotation{display:grid;gap:10px;margin-top:4px;padding-top:12px;border-top:1px solid var(--border)}.dataset-annotation-actions{display:flex;gap:7px;flex-wrap:wrap}.dataset-annotation-actions .button{flex:1 1 auto;min-width:0}@media(max-width:700px){.dataset-annotation-heading,.dataset-annotation-controls{grid-template-columns:1fr;align-items:stretch;flex-direction:column}.dataset-annotation-workspace{grid-template-columns:1fr}.dataset-canvas-column.mobile-preview{max-width:260px}.dataset-annotation-sidebar{padding-top:14px;border-top:1px solid var(--border)}}.route-reset-panel{min-height:280px}.route-reset-filters{margin-top:16px}.route-reset-status{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border-radius:999px;color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-badge-font-size);line-height:var(--typography-compact-badge-line-height);font-weight:var(--typography-compact-badge-font-weight);letter-spacing:var(--typography-compact-badge-letter-spacing)}.route-reset-status.draft{color:var(--warning);background:var(--surface-muted)}.route-reset-status.published{color:var(--positive);background:var(--positive-soft)}.route-reset-status.archived{color:var(--text-secondary);background:var(--surface-muted)}.route-reset-unavailable{margin:14px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-reset-drawer{max-width:560px}.route-reset-wall-photo{display:grid;gap:12px;margin:18px 0;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.route-reset-wall-photo-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.route-reset-wall-photo-heading h3{margin:0;font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.route-reset-wall-photo-heading p{margin:4px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.route-reset-wall-photo-state{min-height:88px;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border:1px dashed var(--boundary);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface-muted);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);text-align:center}.route-reset-wall-photo-preview{width:100%;aspect-ratio:16 / 9;margin:0;overflow:hidden;border:1px solid var(--boundary);border-radius:var(--radius);background:#101214}.route-reset-wall-photo-preview img{width:100%;height:100%;display:block;object-fit:contain}@media(max-width:540px){.route-reset-wall-photo-heading{align-items:stretch;flex-direction:column}.route-reset-wall-photo-heading .button{width:100%}}.reset-workspace{margin:18px 0;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.reset-workspace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.reset-workspace-header h2{margin:4px 0 0;font-size:var(--typography-compact-card-title-font-size);line-height:var(--typography-compact-card-title-line-height);font-weight:var(--typography-compact-card-title-font-weight);letter-spacing:var(--typography-compact-card-title-letter-spacing)}.reset-workspace-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0}.reset-workspace-grid>div{min-width:0}.reset-workspace-grid dt{margin-bottom:7px;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.reset-workspace-grid dd{margin:0;color:var(--text-primary);font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing);overflow-wrap:anywhere}.reset-workspace-grid>div>span,.reset-grade-list span{display:block;margin-top:5px;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.reset-grade-list{display:flex;flex-wrap:wrap;gap:5px 12px}.reset-grade-list span{margin-top:0}.reset-workspace-actions{display:flex;align-items:center;gap:14px;margin-top:18px}.reset-workspace-actions output{color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing);overflow-wrap:anywhere}@media(max-width:900px){.reset-workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.reset-workspace-header{align-items:center}.reset-workspace-grid{grid-template-columns:1fr;gap:14px}.reset-workspace-actions{align-items:stretch;flex-direction:column}}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:14px 0}.metric-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.metric-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--surface-raised);color:var(--text-primary)}.metric-card strong{display:block;font-size:22px;line-height:1.1}.metric-card small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.dashboard-org-line{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing);margin-bottom:-4px}.dashboard-period{margin-top:14px}.dashboard-period-list{display:flex;flex-wrap:wrap;gap:20px;padding:0 16px 16px}.dashboard-period-list span{display:flex;flex-direction:column;gap:2px;font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.dashboard-period-list small{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.table-link{color:var(--text-primary);text-decoration:underline;text-underline-offset:2px;font-size:var(--typography-compact-strong-label-font-size);line-height:var(--typography-compact-strong-label-line-height);font-weight:var(--typography-compact-strong-label-font-weight);letter-spacing:var(--typography-compact-strong-label-letter-spacing)}.table-link:hover{color:var(--boundary)}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;color:var(--text-primary);margin:0 0 28px}.page-heading h1{margin:0;font-size:var(--typography-title-font-size);line-height:var(--typography-title-line-height);font-weight:var(--typography-title-font-weight);letter-spacing:var(--typography-title-letter-spacing)}.page-heading>div>p:not(.eyebrow){margin:4px 0 0;color:var(--text-secondary);font-size:var(--typography-compact-support-font-size);line-height:var(--typography-compact-support-line-height);font-weight:var(--typography-compact-support-font-weight);letter-spacing:var(--typography-compact-support-letter-spacing)}.eyebrow{color:var(--text-secondary);font-size:var(--typography-compact-eyebrow-font-size);line-height:var(--typography-compact-eyebrow-line-height);font-weight:var(--typography-compact-eyebrow-font-weight);letter-spacing:var(--typography-compact-eyebrow-letter-spacing);text-transform:uppercase;margin:0 0 4px}.operator-overview{padding:24px;max-width:960px}.operator-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.operator-metric{background:var(--surface);border-radius:var(--radius);padding:16px;border:1px solid var(--border)}.operator-metric .metric-value{font-size:28px;font-weight:700;color:var(--text-primary)}.operator-users-page,.operator-venues-page{padding:24px;max-width:960px}.operator-users-pagination{display:flex;justify-content:center;gap:8px;padding:16px 0}.operator-venue-summary{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:16px;border:1px solid var(--border)}.beta-moderation-panel{padding:24px;max-width:720px}.password-login-card{background:var(--surface);border-radius:var(--radius);padding:32px;max-width:400px;margin:48px auto;border:1px solid var(--border)}.qr-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.report-detail-summary,.report-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.report-action-section{background:var(--surface);border-radius:var(--radius);padding:20px;border:1px solid var(--border);margin-top:16px}.route-candidate-summary,.route-candidate-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;flex-wrap:wrap}.route-correction-page{padding:24px;max-width:720px}.route-correction-context{background:var(--surface-muted);border-radius:var(--radius);padding:16px;margin-bottom:16px;color:var(--text-secondary);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.route-correction-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.inline-notice{padding:12px 16px;border-radius:var(--radius);margin:12px 0;background:var(--surface-muted);border-left:3px solid var(--accent);font-size:var(--typography-compact-compact-body-font-size);line-height:var(--typography-compact-compact-body-line-height);font-weight:var(--typography-compact-compact-body-font-weight);letter-spacing:var(--typography-compact-compact-body-letter-spacing)}.filter-submit{margin-top:12px}.feedback-summary,.venue-beta-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.field-group{margin-bottom:16px}.route-recognition-workbench{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.6fr) minmax(220px,.8fr);gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.recognition-column{min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.recognition-source,.recognition-review{display:flex;flex-direction:column;gap:12px}.recognition-heading{display:grid;gap:4px}.recognition-heading h3{margin:0;font-size:var(--typography-compact-empty-title-font-size);line-height:var(--typography-compact-empty-title-line-height);font-weight:var(--typography-compact-empty-title-font-weight);letter-spacing:var(--typography-compact-empty-title-letter-spacing)}.recognition-heading p,.recognition-job small,.recognition-candidates small{margin:0;color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-upload{display:grid;gap:5px;padding:14px;border:1px dashed var(--border);border-radius:10px;cursor:pointer}.recognition-upload small{color:var(--text-secondary);font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);overflow-wrap:anywhere}.recognition-upload input{width:100%;font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-job,.recognition-candidates{display:grid;gap:8px;padding:12px;border-radius:10px;background:var(--surface)}.candidate-row{display:grid;grid-template-columns:auto 12px minmax(0,1fr) auto;gap:7px;align-items:center;font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.candidate-row i{width:12px;height:12px;border-radius:50%;border:1px solid var(--border)}.recognition-canvas{display:grid;grid-template-rows:auto minmax(260px,1fr) auto;gap:10px;overflow:hidden}.recognition-canvas-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing)}.recognition-canvas-toolbar strong{margin-right:auto;font-size:var(--typography-compact-brand-font-size);line-height:var(--typography-compact-brand-line-height);font-weight:var(--typography-compact-brand-font-weight);letter-spacing:var(--typography-compact-brand-letter-spacing)}.recognition-image-stage{min-height:300px;display:grid;place-items:center;transform-origin:center;transition:transform .15s ease;overflow:hidden}.recognition-image-placeholder{position:relative;display:grid;width:min(100%,560px);aspect-ratio:4 / 3;place-items:center;color:var(--text-secondary);background:#dce3df;border:1px solid var(--border);border-radius:10px;overflow:hidden}.recognition-image-placeholder svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.recognition-image-placeholder polygon{fill:#e85d2a33;stroke:var(--accent);stroke-width:1.4;vector-effect:non-scaling-stroke}.recognition-image-placeholder polygon.is-selected{fill:#25684752;stroke:var(--positive);stroke-width:2.5}.recognition-legend{display:flex;flex-wrap:wrap;gap:8px;color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.recognition-meta{display:grid;gap:9px;margin:0}.recognition-meta div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px}.recognition-meta dt{color:var(--text-secondary);font-size:var(--typography-compact-table-meta-font-size);line-height:var(--typography-compact-table-meta-line-height);font-weight:var(--typography-compact-table-meta-font-weight);letter-spacing:var(--typography-compact-table-meta-letter-spacing)}.recognition-meta dd{margin:0;font-size:var(--typography-compact-meta-font-size);line-height:var(--typography-compact-meta-line-height);font-weight:var(--typography-compact-meta-font-weight);letter-spacing:var(--typography-compact-meta-letter-spacing);overflow-wrap:anywhere}.recognition-review-actions{display:flex;flex-wrap:wrap;gap:7px}.recognition-warning{margin:auto 0 0;padding:10px;color:var(--critical);background:var(--critical-soft);border-radius:8px;font-size:var(--typography-compact-field-error-font-size);line-height:var(--typography-compact-field-error-line-height);font-weight:var(--typography-compact-field-error-font-weight);letter-spacing:var(--typography-compact-field-error-letter-spacing)}@media(max-width:980px){.route-recognition-workbench{grid-template-columns:1fr 1fr}.recognition-canvas-toolbar{align-items:flex-start;flex-direction:column}.recognition-canvas{grid-column:1 / -1;grid-row:1}}@media(max-width:640px){.route-recognition-workbench{grid-template-columns:1fr}.recognition-canvas{grid-column:auto;grid-row:auto}.recognition-image-stage{min-height:240px}}.checkbox-field{display:flex;align-items:center;gap:8px;margin:8px 0}.bulk-actions{display:flex;align-items:center;gap:8px;padding:12px 0;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
