.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);max-width:100%;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-full);font-weight:600;cursor:pointer}.btn>.line{min-width:0}.btn-sm{height:var(--control-sm);font-size:var(--type-label-size)}.btn-md{height:var(--control)}.btn-lg{height:var(--control-lg);font-size:15px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-pressed)}.btn-primary:disabled{background:var(--color-primary-disabled)}.btn-secondary{background:var(--color-panel);border-color:var(--color-divider);color:var(--color-ink-700)}.btn-secondary:hover:not(:disabled){background:var(--color-field)}.btn:disabled{cursor:not-allowed}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-divider);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spinner-turn .8s linear infinite}@keyframes spinner-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:var(--radius-full);color:#fff;font-weight:600}.avatar-md{width:32px;height:32px;font-size:var(--type-caption-size)}.avatar-lg{width:44px;height:44px;font-size:15px}.avatar-muted{background:var(--color-ink-400)}.user-cell{display:flex;align-items:center;gap:10px;min-width:0}.user-cell .cell-stack{flex:1 1 0}.overview-page{height:100%;padding-top:var(--header-height);padding-left:var(--rail-left);overflow:auto}.overview-main{display:flex;flex-direction:column;gap:var(--space-5);min-width:0;padding:var(--space-6)}.overview-heading{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.overview-h1{margin:0;color:var(--color-ink-900);font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.overview-sub{color:var(--color-ink-500)}.todo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.todo-card{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-panel);color:inherit;text-decoration:none;box-shadow:inset 0 0 0 2px var(--todo-ring, var(--color-hairline))}.todo-primary{--todo-ring: var(--color-primary);--todo-ink: var(--color-primary-pressed)}.todo-warn{--todo-ring: #f5d9a8;--todo-ink: var(--color-warn-strong)}.todo-danger{--todo-ring: #f3c3cc;--todo-ink: var(--color-danger-strong)}.todo-neutral{--todo-ring: var(--color-hairline);--todo-ink: var(--color-ink-600)}.todo-tag{color:var(--todo-ink);font-size:var(--type-caption-size);font-weight:600}.todo-count{color:var(--color-ink-900);font-size:28px;line-height:36px;font-weight:600}.todo-title{color:var(--color-ink-800)}.todo-cta{color:var(--color-primary-pressed);font-size:var(--type-label-size);font-weight:600}.overview-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.overview-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:var(--radius-md);background:var(--color-panel)}.overview-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);height:48px;padding:0 var(--space-4);border-bottom:1px solid var(--color-hairline)}.overview-card-title{color:var(--color-ink-900);font-size:15px;font-weight:600}.overview-link{flex:none;color:var(--color-primary-pressed);font-size:var(--type-label-size);text-decoration:none}.overview-row{display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-panel-muted);color:inherit;text-decoration:none}a.overview-row:hover{background:var(--color-panel-muted)}.overview-row-main{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-1);min-width:0}.overview-row-name{color:var(--color-ink-900);font-weight:600}.overview-person .overview-row-name{font-weight:400}.overview-row-sub,.overview-row-note{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.overview-row-note{flex:none;width:160px;text-align:right}.overview-cases{flex:none;color:var(--color-ink-900);font-size:var(--type-label-size)}.batch-bar{display:block;height:6px;overflow:hidden;border-radius:var(--radius-full);background:#e1e1e1}.batch-bar-fill{display:block;height:100%}.batch-bar-busy{background:var(--color-signal-blue)}.batch-bar-waiting{background:var(--color-warn)}.person-dot{flex:none;width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-primary)}.person-dot-warn{background:var(--color-warn)}.overview-empty{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin:0;padding:var(--space-6);color:var(--color-ink-500)}.overview-more{color:var(--color-primary-pressed);font-size:var(--type-label-size);font-weight:600;border-bottom:0}.data-table-scroll{min-width:0;overflow:auto;border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-float)}.data-table{width:100%;border-collapse:collapse;table-layout:fixed}.data-table th{position:sticky;top:0;z-index:1;height:40px;padding:0 10px;background:var(--color-panel);border-bottom:1px solid var(--color-divider);color:var(--color-ink-500);font-size:var(--type-caption-size);font-weight:600;text-align:left}.data-table td{height:64px;padding:0 10px;border-bottom:1px solid var(--color-hairline);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr[tabindex]{cursor:pointer}.data-table tbody tr[tabindex]:hover{background:var(--color-panel-muted)}.data-table .row-selected,.data-table .row-selected:hover{background:var(--color-primary-tint);box-shadow:inset 3px 0 0 var(--color-primary)}.data-table .cell-end{text-align:right}.cell-stack{display:flex;flex-direction:column;min-width:0}.cell-top{color:var(--color-ink-900);font-weight:600}.cell-bottom{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.data-table-empty{margin:0;padding:var(--space-5);color:var(--color-ink-500);text-align:center}.data-table-compact th,.data-table-compact td{height:32px}.stats-page{height:100%;padding-top:var(--header-height);padding-left:var(--rail-left);overflow:auto}.stats-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;padding:var(--space-6)}.stats-back{align-self:flex-start;color:var(--color-primary-pressed);font-size:var(--type-label-size);font-weight:600;text-decoration:none}.stats-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);min-width:0}.stats-h1{flex:1 1 240px;margin:0;color:var(--color-ink-900);font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.range-group{display:flex;padding:3px;border-radius:var(--radius-full);background:var(--color-field)}.range-group button{height:var(--control-sm);padding:0 14px;border:0;border-radius:var(--radius-full);background:transparent;color:var(--color-ink-600);font-size:var(--type-label-size);cursor:pointer}.range-group button[aria-pressed=true]{background:var(--color-panel);color:var(--color-primary-pressed);font-weight:600;box-shadow:0 1px 2px #0000001f}.stats-custom{display:flex;gap:var(--space-2)}.stats-date{height:var(--control);padding:0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-full);background:var(--color-panel);font:inherit}.stats-select{display:flex;align-items:center;gap:var(--space-2);height:var(--control);padding:0 6px 0 14px;border:1px solid var(--color-divider);border-radius:var(--radius-full);background:var(--color-panel);color:var(--color-ink-500);font-size:var(--type-label-size)}.stats-select select{max-width:200px;height:var(--control-sm);border:0;background:transparent;color:var(--color-ink-900);font:inherit;font-weight:600}.stats-scope{color:var(--color-ink-500);font-size:var(--type-label-size)}.stats-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.stats-kpi{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:14px var(--space-4);border-radius:var(--radius-md);background:var(--color-panel)}.stats-kpi-label,.stats-kpi-note{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.stats-kpi-value{color:var(--color-ink-900);font-size:22px;line-height:30px;font-weight:600}.stats-table .data-table{min-width:1120px}.stats-bar-cell{display:flex;align-items:center;gap:var(--space-2);min-width:0}.stats-bar{flex:1 1 0;min-width:24px;max-width:120px;height:8px;overflow:hidden;border-radius:var(--radius-full);background:var(--color-field)}.stats-bar-fill{display:block;height:100%;border-radius:var(--radius-full);background:var(--color-primary)}.returned-high{color:var(--color-danger-strong);font-weight:600}.stats-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8)}.stats-foot{margin:0;color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.chip{display:inline-flex;align-items:center;max-width:100%;height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-full);font-size:var(--type-label-size);font-weight:600}.chip>.line{min-width:0}.chip-neutral{background:var(--color-field);color:var(--color-ink-700)}.chip-selected{background:var(--color-primary-tint);color:var(--color-primary-pressed)}.chip-danger{background:var(--color-danger-tint);color:var(--color-danger-strong)}.chip-warn{background:var(--color-warn-tint);color:var(--color-warn-strong)}.chip-dark{background:var(--color-ink-900);color:#fff}.filter-chips{display:flex;align-items:center;gap:var(--space-2);min-width:0}.filter-chips-label{flex:none;color:var(--color-ink-500);font-size:var(--type-label-size);font-weight:600}.filter-chip{flex:0 1 auto;min-width:0;max-width:200px;height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-full);background:var(--color-panel);color:var(--color-ink-700);font-size:var(--type-label-size);cursor:pointer}.filter-chip:hover{background:var(--color-field)}.filter-chip[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-tint);color:var(--color-primary-pressed);font-weight:600}.dialog{max-width:calc(100vw - 2 * var(--space-4));max-height:calc(100vh - 2 * var(--space-4));padding:0;border:0;border-radius:var(--radius-lg);background:var(--color-panel);color:var(--color-ink-800);box-shadow:var(--shadow-dialog);overflow:auto}.dialog::backdrop{background:#00000052}.dialog-head{display:flex;flex-direction:column;gap:6px;min-width:0;padding:var(--space-5) var(--space-5) 0}.dialog-eyebrow{color:var(--color-ink-500);font-size:var(--type-caption-size);font-weight:600}.dialog-title{margin:0;color:var(--color-ink-900);font-size:var(--type-headline-size);line-height:var(--type-headline-line);font-weight:var(--type-headline-weight)}.dialog-lead{color:var(--color-ink-600)}.dialog-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-4) var(--space-5)}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-5)}.dialog-error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-tint);color:var(--color-danger-strong)}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field-label{color:var(--color-ink-600);font-size:var(--type-label-size);line-height:var(--type-label-line);font-weight:var(--type-label-weight)}.field-input{height:var(--control);min-width:0;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-field);color:var(--color-ink-900);font:inherit;text-overflow:ellipsis}.field-input:focus{border-color:var(--color-primary);background:var(--color-panel);outline:none}.field-input::placeholder{color:var(--color-ink-500)}.users-page{display:flex;height:100%;padding-top:var(--header-height);padding-left:var(--rail-left)}.users-main{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-4);min-width:0;padding:var(--space-6);overflow:auto}.users-title-row{display:flex;align-items:center;gap:var(--space-3);min-width:0}.users-h1{flex:1 1 120px;margin:0;color:var(--color-ink-900);font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.users-search{display:flex;align-items:center;flex:0 1 260px;gap:var(--space-2);min-width:120px;height:var(--control);padding:0 14px;border-radius:var(--radius-full);background:var(--color-field);color:var(--color-ink-500)}.users-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--color-ink-900);font:inherit;outline:none}.users-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8)}.cell-plain{display:block;color:var(--color-ink-600);font-size:var(--type-label-size)}.user-drawer{display:flex;flex-direction:column;flex:none;width:400px;min-height:0;border-left:1px solid var(--color-divider);background:var(--color-panel)}.user-drawer-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-6);color:var(--color-ink-500)}.drawer-head{display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-4);border-bottom:1px solid var(--color-hairline)}.drawer-head-text{display:flex;flex-direction:column;min-width:0}.drawer-name{color:var(--color-ink-900);font-size:var(--type-heading-size);line-height:var(--type-heading-line);font-weight:600}.drawer-email{color:var(--color-ink-500);font-size:var(--type-label-size)}.drawer-body{display:flex;flex-direction:column;flex:1 1 0;gap:18px;min-height:0;padding:var(--space-4);overflow:auto}.drawer-section{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.drawer-label{color:var(--color-ink-600);font-size:var(--type-label-size);font-weight:600}.role-card{display:flex;align-items:flex-start;gap:10px;padding:var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-panel);cursor:pointer}.role-card input{margin:2px 0 0;accent-color:var(--color-primary)}.role-card-on{border:2px solid var(--color-primary);padding:11px;background:var(--color-primary-tint)}.role-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.role-card-name{color:var(--color-ink-900);font-weight:600}.role-card-desc{color:var(--color-ink-600);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.grant-row{display:flex;align-items:center;gap:10px;min-height:40px;min-width:0}.grant-row input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--color-primary)}.grant-name{flex:1 1 0;min-width:0}.grant-note{flex:none;max-width:90px;color:var(--color-ink-500);font-size:var(--type-caption-size)}.grant-radius{display:flex;align-items:center;flex:none;gap:4px;color:var(--color-ink-500);font-size:var(--type-caption-size)}.grant-radius input{width:64px;height:30px;padding:0 var(--space-2);border:1px solid var(--color-divider);border-radius:var(--radius-sm);font:inherit;text-align:right}.expiry-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-ink-600);font-size:var(--type-label-size)}.expiry-row input{height:var(--control);padding:0 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);font:inherit}.perm-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--type-label-size)}.perm-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:var(--type-badge-size);font-weight:700}.perm-no .perm-mark{background:var(--color-divider)}.perm-no{color:var(--color-ink-400)}.perm-text{flex:1 1 0;min-width:0}.drawer-foot{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider)}.drawer-foot .btn{flex:1}.btn-lock{color:var(--color-danger-strong)}.drawer-note{color:var(--color-ink-500);font-size:var(--type-label-size)}.invite-link{width:100%;height:var(--control);padding:0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-panel-muted);color:var(--color-ink-800);font-family:var(--font-mono);font-size:var(--type-caption-size);text-overflow:ellipsis}.gs-header-logo{display:block;flex:none}.gs-lockup{position:relative;display:block;flex:none}.gs-lockup img{position:absolute;display:block;max-width:none}.gs-lockup-wide{width:243px;height:28px}.gs-lockup-wide .gs-art{left:0;top:0;width:243px;height:28px}.gs-lockup-wide .gs-wordmark{left:36.5px;top:4px;width:98.04px;height:20px}.gs-lockup-type{display:none;width:207px;height:20px}.gs-lockup-type .gs-art{left:0;top:0;width:207px;height:20px}.gs-lockup-type .gs-wordmark{left:0;top:0;width:98.04px;height:20px}.gs-compact{display:none;width:32px;height:32px}@media (max-width: 1439px){.gs-lockup-wide{display:none}.gs-lockup-type{display:block}}@media (max-width: 1199px){.gs-lockup-type{display:none}.gs-compact{display:block}}.gs-login-mark{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.gs-login-mark .gs-icon{display:block;width:48px;height:48px}.gs-lockup-login{width:330px;height:32px}.gs-lockup-login .gs-art{left:0;top:0;width:330px;height:32px}.gs-lockup-login .gs-wordmark{left:0;top:0;width:156.86px;height:32px}.auth-page{position:relative;display:flex;align-items:center;justify-content:center;height:100%;padding:var(--space-4);overflow:hidden;background:var(--color-map-land)}.auth-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.auth-card{position:relative;display:flex;flex-direction:column;gap:var(--space-5);width:400px;max-width:100%;padding:var(--space-8);border-radius:var(--radius-lg);background:var(--color-panel);box-shadow:var(--shadow-dialog)}.auth-brand{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.auth-tagline{color:var(--color-ink-500);font-size:var(--type-label-size);line-height:var(--type-label-line)}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.auth-card .field{gap:6px}.auth-card .field-label{color:var(--color-ink-600);font-size:var(--type-body-size);font-weight:400}.auth-card .field-input{height:48px;padding:0 14px;border-color:var(--color-divider);background:var(--color-panel);font-size:16px}.auth-card .field-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.auth-card .btn{width:100%;height:48px;font-size:17px}.auth-message{margin:0;font-size:var(--type-label-size);line-height:var(--type-label-line)}.auth-message-error{color:var(--color-danger-strong)}.auth-message-ok{color:var(--color-primary-pressed)}.auth-footer{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--color-hairline);color:var(--color-ink-500);font-size:var(--type-label-size);line-height:var(--type-label-line)}.auth-footer>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-remember{display:flex;align-items:center;gap:var(--space-2);color:var(--color-ink-600)}.auth-remember input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--color-primary)}.auth-footer a{color:var(--color-primary-pressed)}.state-block{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-8) var(--space-5);text-align:center}.state-title{max-width:100%;color:var(--color-ink-900);font-size:var(--type-body-strong-size);line-height:var(--type-body-strong-line);font-weight:600}.state-text{max-width:100%;color:var(--color-ink-600);font-size:var(--type-label-size);line-height:var(--type-label-line)}.state-request{max-width:100%;padding:2px var(--space-2);border-radius:var(--radius-xs);background:var(--color-field);color:var(--color-ink-600);font-family:var(--font-mono);font-size:var(--type-caption-size)}.page-frame{display:flex;justify-content:center;height:100%;padding:calc(var(--header-height) + 40px) var(--space-4) 40px calc(var(--rail-left) + var(--space-4));overflow:auto}.page-content{display:flex;flex-direction:column;gap:var(--space-5);width:100%;max-width:760px;min-width:0}.page-title{margin:0;color:var(--color-ink-900);font-size:22px;line-height:30px;font-weight:600}.page-empty{margin:0;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-panel);color:var(--color-ink-500)}.ctv-heading{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ctv-subtitle{color:var(--color-ink-500)}.ctv-batches{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ctv-section-label{color:var(--color-ink-600);font-size:var(--type-label-size);font-weight:600}.ctv-cards{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.ctv-card{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-panel)}.ctv-card[data-state=working]{box-shadow:inset 0 0 0 2px var(--color-primary)}.ctv-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-width:0}.ctv-card-name{min-width:0;color:var(--color-ink-900);font-size:var(--type-heading-size);line-height:var(--type-heading-line);font-weight:600}.ctv-progress{display:flex;align-items:center;gap:var(--space-3)}.ctv-bar{flex:1;height:8px;border-radius:var(--radius-full);background:var(--color-field);overflow:hidden}.ctv-bar-fill{display:block;height:100%;background:var(--color-primary)}.ctv-progress-text{flex-shrink:0;color:var(--color-ink-900);font-size:var(--type-label-size);font-weight:600;font-variant-numeric:tabular-nums}.ctv-card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-width:0}.ctv-left{min-width:0;color:var(--color-ink-600);font-size:var(--type-label-size)}.ctv-stats-link{align-self:flex-start;color:var(--color-primary-pressed);font-size:var(--type-label-size);font-weight:600;text-decoration:none}.ctv-notice{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-panel);color:var(--color-ink-900);font-weight:600}.checks{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.side-heading{margin:0;color:var(--color-ink-700);font-size:var(--type-label-size);font-weight:600}.checks-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.check{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px var(--space-3);border-radius:var(--radius-md);background:var(--color-panel-muted)}.check-warn{background:var(--color-warn-tint);color:var(--color-warn-strong)}.check-fail{background:var(--color-danger-tint);color:var(--color-danger-strong)}.check-main{display:flex;align-items:center;gap:10px;min-width:0}.check-mark{display:flex;flex:none;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:11px;font-weight:700}.check-warn .check-mark{background:var(--color-warn)}.check-fail .check-mark{background:var(--color-danger)}.check-text{flex:1 1 0;min-width:0;font-size:var(--type-label-size)}.check-ok .check-text{color:var(--color-ink-800)}.check-detail{display:flex;flex-direction:column;min-width:0;padding-left:30px;font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.check-finding{font-family:var(--font-mono)}.draft-table{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.draft-table .num{display:block;font-variant-numeric:tabular-nums}.reject-btn{max-width:100%;height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-full);background:var(--color-panel);color:var(--color-danger-strong);font-size:var(--type-label-size);cursor:pointer}.reject-btn:hover:not(:disabled){background:var(--color-danger-tint)}.reject-btn:disabled{color:var(--color-ink-400);cursor:not-allowed}.row-actions{display:inline-flex;align-items:center;gap:var(--space-2);max-width:100%}.view-link{display:inline-flex;align-items:center;height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--color-primary);border-radius:var(--radius-full);background:var(--color-primary-tint);color:var(--color-primary-pressed);font-size:var(--type-label-size);font-weight:600;text-decoration:none}.view-link:hover{background:var(--color-primary-tint)}.downloads{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-1) var(--space-4);min-width:0}.download{display:flex;flex-direction:column;min-width:0;max-width:100%}.download-link{max-width:100%;padding:0;border:0;background:none;color:var(--color-primary-pressed);font-size:var(--type-label-size);font-weight:600;text-align:left;cursor:pointer}.download-link:hover:not(:disabled){text-decoration:underline}.download-link:disabled{color:var(--color-ink-500);cursor:progress}.download-status{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.download-status-failed{color:var(--color-danger-strong)}.history{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.history-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.history-row{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px 0;border-bottom:1px solid var(--color-hairline)}.history-row:last-child{border-bottom:0}.history-head{display:flex;align-items:center;gap:var(--space-2);min-width:0}.history-id{flex:none;color:var(--color-ink-900);font-family:var(--font-mono)}.history-head>.chip{flex:none}.history-line{flex:1 1 0;min-width:0;color:var(--color-ink-600);font-size:var(--type-label-size)}.history-note{color:var(--color-ink-500);font-size:var(--type-caption-size)}.history-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);min-width:0}.history-actions>.downloads{flex:1 1 0}.history-actions>.btn{flex:none}.history-empty{display:flex;align-items:center;gap:var(--space-3);min-width:0;color:var(--color-ink-500)}.publish-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);min-width:0}.publish-kpi{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px var(--space-4);border-radius:var(--radius-md);background:var(--color-panel)}.publish-kpi-label,.publish-kpi-note{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.publish-kpi-value{color:var(--color-ink-900);font-size:22px;line-height:28px;font-weight:600;font-variant-numeric:tabular-nums}.impact-row{display:flex;justify-content:space-between;gap:var(--space-3);min-width:0;padding:10px var(--space-3);border-radius:var(--radius-md);background:var(--color-panel-muted);color:var(--color-ink-800)}.impact-row>span{min-width:0}.impact-row>strong{flex:none;max-width:50%}.impact-row-danger{background:var(--color-danger-tint);color:var(--color-danger-strong)}.impact-note{color:var(--color-ink-600);font-size:var(--type-label-size)}.impact-warning{color:var(--color-danger-strong);font-size:var(--type-label-size)}.choice{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.choice-option{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0;padding:var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);cursor:pointer}.choice-option:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-tint)}.choice-text{display:flex;flex-direction:column;min-width:0}.choice-text>span{min-width:0}.choice-hint{color:var(--color-ink-600);font-size:var(--type-label-size)}.run-bar{width:100%;height:8px;accent-color:var(--color-primary)}.run-elapsed{color:var(--color-ink-600);font-size:var(--type-label-size)}.run-sha{color:var(--color-ink-500);font-family:var(--font-mono);font-size:var(--type-caption-size)}.run-message{display:flex;flex-direction:column;min-width:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-tint);color:var(--color-danger-strong)}.publish-page{display:flex;height:100%;padding-top:var(--header-height);padding-left:var(--rail-left)}.publish-main{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-4);min-width:0;padding:var(--space-6);overflow:auto}.publish-title-row{display:flex;align-items:flex-end;gap:var(--space-3);min-width:0}.publish-title{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-1);min-width:0}.publish-h1{margin:0;color:var(--color-ink-900);font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.publish-sub,.publish-last{color:var(--color-ink-500)}.publish-last{flex:0 1 auto;min-width:0;font-size:var(--type-label-size)}.publish-review-all{display:inline-flex;flex:0 0 auto;align-items:center;height:var(--control);padding:0 var(--space-5);border-radius:var(--radius-full);background:var(--color-primary-tint);color:var(--color-primary-pressed);font-weight:600;text-decoration:none}.publish-review-all:hover{background:var(--color-primary-tint)}.publish-skeleton{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-panel)}.publish-skeleton-row{height:14px;border-radius:var(--radius-xs);background:var(--color-field)}.publish-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-width:0;padding:var(--space-8) var(--space-6);border-radius:var(--radius-md);background:var(--color-panel);color:var(--color-ink-600);text-align:center}.publish-state>.line{max-width:100%}.publish-state-title{color:var(--color-ink-900);font-size:var(--type-headline-size);line-height:var(--type-headline-line)}.publish-state-code{color:var(--color-ink-500);font-family:var(--font-mono);font-size:var(--type-caption-size)}.publish-side{display:flex;flex-direction:column;flex:0 0 380px;min-width:0;border-left:1px solid var(--color-divider);background:var(--color-panel)}.publish-side-head{display:flex;flex-direction:column;gap:4px;min-width:0;padding:var(--space-4);border-bottom:1px solid var(--color-hairline)}.publish-side-title{color:var(--color-ink-900);font-size:var(--type-headline-size);line-height:var(--type-headline-line);font-weight:var(--type-headline-weight)}.publish-side-sub{color:var(--color-ink-500);font-size:var(--type-label-size)}.publish-side-body{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-4);min-height:0;padding:var(--space-4);overflow:auto}.publish-foot{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider)}.publish-foot>.btn{height:48px;font-size:16px}.publish-hint{display:flex;flex-direction:column;min-width:0;color:var(--color-ink-500);font-size:var(--type-caption-size);text-align:center}.publish-hint-blocked{color:var(--color-danger-strong)}:root{--rail-left: 0px;--panel-edge: calc(var(--rail-left) + var(--panel-width))}:root[data-rail]{--rail-left: var(--nav-rail-width)}.nav-rail{position:fixed;top:var(--header-height);left:0;bottom:0;z-index:5;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);width:var(--nav-rail-width);padding:var(--space-2) 6px;border-right:1px solid var(--color-divider);background:var(--color-panel);overflow-x:hidden;overflow-y:auto}.nav-rail-link{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:var(--space-2) 2px;border-radius:var(--radius-sm);color:var(--color-ink-600);font-size:11px;line-height:16px;text-decoration:none}.nav-rail-link:hover{background:var(--color-field)}.nav-rail-link.active{background:var(--color-primary-tint);color:var(--color-primary-pressed);font-weight:600}.nav-rail-glyph{position:relative;display:flex;flex:none}.nav-rail-label{max-width:100%;min-height:1lh;padding:0 1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-rail-badge{position:absolute;top:-6px;left:12px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:10px;font-weight:600;line-height:18px;text-align:center}.health{display:flex;flex:none;align-items:center}.health-dot{flex:none;width:10px;height:10px;border-radius:var(--radius-full);background:var(--color-sync-busy)}.health[data-state=ok] .health-dot{background:var(--color-sync-ok)}.health[data-state=down] .health-dot{background:var(--color-sync-error)}.avatar-menu{position:relative;flex:none}.avatar{width:var(--control);height:var(--control);padding:0;border:0;border-radius:var(--radius-full);color:#fff;font-size:var(--type-label-size);font-weight:600;cursor:pointer}.avatar-admin{background:var(--color-ink-700)}.avatar-editor{background:var(--color-primary-pressed)}.avatar-ctv{background:var(--color-warn-strong)}.avatar-popup{position:absolute;top:calc(100% + var(--space-2));right:0;display:flex;flex-direction:column;gap:var(--space-1);width:240px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-float)}.avatar-name{color:var(--color-ink-900);font-weight:600}.avatar-email{color:var(--color-ink-500);font-size:var(--type-caption-size)}.avatar-role{display:inline-flex;align-self:flex-start;max-width:100%;height:24px;align-items:center;margin:var(--space-1) 0;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:var(--type-caption-size);font-weight:600}.avatar-role>.line{min-width:0}.avatar-role-admin{background:var(--color-ink-900);color:#fff}.avatar-role-editor{background:var(--color-primary-tint);color:var(--color-primary-pressed)}.avatar-role-ctv{background:var(--color-warn-tint);color:var(--color-warn-strong)}.avatar-build{margin-bottom:var(--space-2);color:var(--color-ink-500);font-size:var(--type-caption-size)}.avatar-logout{height:var(--control);border:1px solid var(--color-divider);border-radius:var(--radius-full);background:var(--color-panel);color:var(--color-ink-700);font-weight:600;cursor:pointer}.avatar-logout:hover{background:var(--color-field)}.data-chip{position:relative;display:flex;flex:0 1 auto;min-width:0}@media (min-width: 1280px){.data-chip{flex-shrink:0}}.data-chip-button{display:flex;align-items:center;gap:6px;max-width:100%;height:var(--control);padding:0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:var(--color-panel);font-size:var(--type-label-size);white-space:nowrap;cursor:pointer}.data-chip-button:hover,.data-chip-button[aria-expanded=true]{background:var(--color-panel-muted)}.data-chip-release{flex:none;font-weight:600;color:var(--color-primary-pressed)}.data-chip-plus{flex:none;color:var(--color-ink-500)}.data-chip-staging{min-width:0;font-weight:600;color:var(--color-warn-strong)}.data-popover{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;display:flex;flex-direction:column;gap:var(--space-3);box-sizing:border-box;width:340px;max-width:calc(100vw - 2 * var(--space-4));padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-dialog)}.data-popover-title{color:var(--color-ink-900);font-size:var(--type-body-strong-size);font-weight:600}.data-steps{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.data-step{position:relative;display:flex;gap:10px}.data-step:not(:last-child):after{content:"";position:absolute;top:20px;bottom:calc(-1 * var(--space-3) + 2px);left:5px;width:2px;background:var(--color-divider)}.data-step-dot{flex:none;box-sizing:border-box;width:12px;height:12px;margin-top:4px;border-radius:var(--radius-full)}.data-step[data-kind=device] .data-step-dot{border:2px dashed var(--color-warn-strong)}.data-step[data-kind=staging] .data-step-dot{background:var(--color-warn)}.data-step[data-kind=production] .data-step-dot{background:var(--color-primary)}.data-step-text{display:flex;flex-direction:column;min-width:0}.data-step-title{color:var(--color-ink-900);font-weight:600}.data-step-detail{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.top-bar{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:var(--space-3);height:var(--header-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-divider);background:var(--color-panel)}@media (max-width: 1439px){.top-bar{gap:var(--space-2)}.top-bar .kbd{display:none}}.top-bar-slot{display:flex;align-items:center;gap:var(--space-3);min-width:0}.top-bar-slot:empty{display:none}.top-bar-fixed{flex:none}.top-bar-center{flex:1 1 320px;min-width:150px;max-width:680px;container:top-bar-center / inline-size}@media (min-width: 1280px){.top-bar-center{min-width:240px}.top-bar-center:has(.recent-edits){min-width:344px}.top-bar-center:has(.layer-toggle){min-width:412px}}.top-bar-actions{flex:0 1 auto}.top-bar-spacer{flex:1;min-width:0}.session-loading{display:flex;align-items:center;justify-content:center;height:100%}.kpi-tile{display:flex;flex-direction:column;flex:1 1 0;min-width:0;padding:10px var(--space-3);border-radius:var(--radius-md);background:var(--color-panel-muted)}.kpi-value{color:var(--color-ink-900);font-size:var(--type-heading-size);line-height:var(--type-heading-line)}.kpi-label{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.status-chip{display:inline-flex;align-items:center;align-self:flex-start;max-width:100%;height:24px;padding:0 10px;border-radius:var(--radius-full);font-size:var(--type-caption-size);font-weight:600}.status-chip>.line{min-width:0}.status-chip-processing{background:#e6eefc;color:#1d4ed8}.status-chip-waiting{background:var(--color-field);color:var(--color-ink-700)}.status-chip-reviewing{background:var(--color-warn-tint);color:var(--color-warn-strong)}.status-chip-done{background:var(--color-primary-tint);color:var(--color-primary-pressed)}.status-chip-rejected{background:var(--color-panel-muted);color:var(--color-ink-500)}.status-chip-invalid{background:var(--color-danger-tint);color:var(--color-danger-strong)}.batch-detail{display:flex;flex-direction:column;flex:none;width:var(--panel-width);min-height:0;border-left:1px solid var(--color-divider);background:var(--color-panel)}.detail-head{display:flex;flex-direction:column;gap:6px;min-width:0;padding:var(--space-4);border-bottom:1px solid var(--color-divider)}.detail-name{color:var(--color-ink-900);font-size:var(--type-headline-size);line-height:var(--type-headline-line);font-weight:var(--type-headline-weight)}.detail-status{display:flex;align-items:center;gap:var(--space-2);min-width:0}.detail-cases{min-width:0;color:var(--color-ink-600)}.detail-scroll{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-5);min-height:0;padding:var(--space-4);overflow-y:auto}.detail-section{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.detail-section-title{margin:0;color:var(--color-ink-600);font-size:var(--type-label-size);line-height:var(--type-label-line);font-weight:600}.kpi-row{display:flex;gap:var(--space-2);min-width:0}.detail-facts{display:flex;flex-direction:column;gap:2px;margin:0}.detail-facts>div{display:flex;justify-content:space-between;gap:var(--space-3);min-width:0}.detail-facts dt{flex:none;color:var(--color-ink-500)}.detail-facts dd{min-width:0;margin:0;color:var(--color-ink-800)}.pack-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.pack-mark{display:flex;flex:none;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-full);color:#fff;font-size:11px;font-weight:700}.pack-row-ok .pack-mark{background:var(--color-primary)}.pack-row-bad .pack-mark{background:var(--color-danger)}.pack-row>.line{min-width:0}.pack-row-detail{flex:1 1 0;color:var(--color-ink-500);font-size:var(--type-caption-size);text-align:right}.detail-dropped,.detail-invalid{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--type-label-size)}.detail-dropped{background:var(--color-warn-tint);color:var(--color-warn-strong)}.detail-invalid{background:var(--color-danger-tint);color:var(--color-danger-strong)}.log-row{display:flex;gap:var(--space-2);min-width:0;font-size:var(--type-label-size)}.log-at{flex:none;color:var(--color-ink-500)}.log-row>.line{min-width:0}.detail-actions{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--color-divider)}.detail-link{display:block;color:var(--color-primary-pressed);font-weight:600;text-decoration:none}.detail-buttons{display:flex;gap:var(--space-2);min-width:0}.detail-buttons>.btn:first-child{flex:1 1 0;min-width:0}.detail-empty{margin:0;padding:var(--space-5);color:var(--color-ink-500)}.detail-loading{display:flex;justify-content:center;padding:var(--space-8)}.detail-missing{display:flex;flex-direction:column;gap:4px;color:var(--color-ink-600)}.job{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;padding:var(--space-5)}.job-head{display:flex;flex-direction:column;gap:6px;min-width:0}.job-eyebrow{color:var(--color-ink-500);font-size:var(--type-caption-size);font-weight:600}.job-title{margin:0;color:var(--color-ink-900);font-size:var(--type-headline-size);line-height:var(--type-headline-line);font-weight:var(--type-headline-weight)}.job-sub{color:var(--color-ink-600)}.job-bar{display:flex;align-items:center;gap:var(--space-3)}.job-percent{flex:none;min-width:40px;color:var(--color-ink-800);font-weight:600;text-align:right}.progress-bar{display:block;flex:1 1 0;height:8px;min-width:0;border-radius:var(--radius-full);background:var(--color-field);overflow:hidden}.progress-fill{display:block;height:100%;border-radius:var(--radius-full);background:var(--color-primary);transition:width .4s linear}.job-steps{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.job-step{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0}.step-mark{display:flex;flex:none;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid var(--color-divider);border-radius:var(--radius-full);color:var(--color-ink-400);font-size:var(--type-caption-size);font-weight:700}.step-mark-done{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.step-mark-active{border:3px solid var(--color-signal-blue)}.step-mark-failed{border-color:var(--color-danger);background:var(--color-danger);color:#fff}.job-step-body{display:flex;flex-direction:column;flex:1 1 0;gap:2px;min-width:0}.job-step-name{color:var(--color-ink-900);font-weight:600}.job-step-todo .job-step-name{color:var(--color-ink-500)}.job-step-detail{color:var(--color-ink-600);font-size:var(--type-label-size)}.job-dropped{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-warn-tint);color:var(--color-warn-strong);font-size:var(--type-label-size)}.job-log{display:flex;flex-direction:column;min-width:0;min-height:72px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-panel-muted);color:var(--color-ink-600);font-family:var(--font-mono);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.job-foot{display:flex;align-items:center;gap:var(--space-2);min-width:0}.job-foot-note{flex:1 1 0;min-width:0;color:var(--color-ink-600);font-size:var(--type-label-size)}.job-error .job-title{color:var(--color-danger-strong)}.job-error-text{color:var(--color-ink-700)}.pack-chips{display:flex;flex-wrap:nowrap;gap:3px;min-width:0}.pack-chip{display:inline-flex;align-items:center;flex:none;height:22px;padding:0 6px;border-radius:var(--radius-xs);font-size:var(--type-badge-size);font-weight:600}.pack-chip-ok{background:var(--color-primary-tint);color:var(--color-primary-pressed)}.pack-chip-bad{background:var(--color-danger-tint);color:var(--color-danger-strong);text-decoration:line-through}.pack-chip-wait{background:var(--color-panel-muted);color:var(--color-ink-400)}.adapter-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.adapter-name{max-width:100%;padding:0 7px;border-radius:var(--radius-xs);background:var(--color-field);color:var(--color-ink-700);font-size:var(--type-caption-size);line-height:22px}.adapter-cell-unknown .adapter-name{background:var(--color-danger-tint);color:var(--color-danger-strong)}.adapter-tier{max-width:100%;color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.status-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.status-cell>.progress-bar{flex:none;height:4px}.status-note{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.row-action{display:inline-block;max-width:100%;padding:0;border:0;background:transparent;color:var(--color-primary-pressed);font-weight:600;text-decoration:none;cursor:pointer}.row-action:hover{color:var(--color-primary)}.row-action-danger{color:var(--color-danger-strong)}.dropzone-group{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.dropzone-label{color:var(--color-ink-600);font-size:var(--type-label-size);font-weight:600}.dropzone{display:flex;align-items:center;justify-content:center;gap:var(--space-2);height:72px;border:1.5px dashed var(--color-divider);border-radius:var(--radius-md);background:var(--color-panel-muted);color:var(--color-ink-600);cursor:pointer}.dropzone>.line{min-width:0}.dropzone:hover,.dropzone-over{border-color:var(--color-primary);background:var(--color-primary-tint);color:var(--color-primary-pressed)}.dropzone-disabled{cursor:not-allowed;opacity:.6}.dropzone-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.dropzone-file{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:6px var(--space-3);border-radius:var(--radius-sm);background:var(--color-field)}.dropzone-file>code{flex:1 1 0;min-width:0}.dropzone-size{flex:none;color:var(--color-ink-500);font-size:var(--type-caption-size)}.dropzone-remove{flex:none;width:24px;height:24px;padding:0;border:0;border-radius:var(--radius-full);background:transparent;color:var(--color-ink-500);cursor:pointer}.dropzone-remove:hover:not(:disabled){background:var(--color-divider)}.dropzone-hint{color:var(--color-ink-500);font-size:var(--type-caption-size)}.upload-form{gap:var(--space-4)}.upload-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);min-width:0}.upload-select{height:var(--control);min-width:0;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-field);color:var(--color-ink-900);font:inherit}.upload-select:focus{border-color:var(--color-primary);outline:none}.sources-page{display:flex;height:100%;padding-top:var(--header-height);padding-left:var(--rail-left)}.sources-main{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-4);min-width:0;padding:var(--space-6);overflow:auto}.sources-title-row{display:flex;align-items:flex-end;gap:var(--space-3);min-width:0}.sources-title{display:flex;flex-direction:column;flex:1 1 0;gap:var(--space-1);min-width:0}.sources-h1{margin:0;color:var(--color-ink-900);font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.sources-sub{color:var(--color-ink-500)}.pinned{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);min-width:0}.pinned-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-panel)}.pinned-text{display:flex;flex-direction:column;min-width:0}.pinned-eyebrow{color:var(--color-ink-500);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.pinned-name{color:var(--color-ink-900);font-weight:600}.pinned-tier{flex:none;max-width:40%;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-field);color:var(--color-ink-700);font-size:var(--type-caption-size);line-height:22px}.sources-filters{display:flex;align-items:center;gap:var(--space-5);min-width:0;overflow-x:auto}.sources-filters>.filter-chips{flex:none}.sources-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8)}:root{--color-primary: #008b52;--color-primary-pressed: #006f42;--color-primary-tint: #d2e7dd;--color-primary-disabled: #7cc1a4;--color-app-bg: #f7f7f7;--color-panel: #ffffff;--color-panel-muted: #f2f2f2;--color-field: #eceeef;--color-divider: #dcdddd;--color-hairline: #eceeef;--color-ink-900: #191c1d;--color-ink-800: #212529;--color-ink-700: #343a40;--color-ink-600: #444748;--color-ink-500: #65696e;--color-ink-400: #8c8e90;--color-danger: #c5334c;--color-danger-tint: #fbe9ec;--color-danger-strong: #a32640;--color-warn: #d97706;--color-warn-tint: #fdf0dc;--color-warn-strong: #8a4b06;--color-edit-tint: #fff8ec;--color-priority-p0: var(--color-danger);--color-priority-p1: var(--color-warn);--color-priority-p2: var(--color-ink-500);--color-sync-ok: var(--color-primary);--color-sync-pending: var(--color-warn);--color-sync-busy: var(--color-ink-500);--color-sync-error: var(--color-danger);--color-speed-30: #ae475d;--color-speed-40: #e9a679;--color-speed-50: #adb1b6;--color-speed-60: #c7a841;--color-speed-70: #5d9e67;--color-speed-80: #64b5b0;--color-speed-90: #5192c8;--color-speed-100: #675793;--color-speed-120: #59354a;--color-map-land: #eceee6;--color-map-block: #e2e5dc;--color-map-park: #dfe8d6;--color-map-water: #c9dcef;--color-map-road: #ffffff;--color-ref-line: #5b6170;--color-signal-red: #f43f5e;--color-signal-blue: #3b82f6;--color-signal-lane: #3e68c1;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", Roboto, "Segoe UI", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--type-title-size: 20px;--type-title-line: 28px;--type-title-weight: 600;--type-heading-size: 18px;--type-heading-line: 24px;--type-heading-weight: 600;--type-headline-size: 17px;--type-headline-line: 24px;--type-headline-weight: 600;--type-body-size: 14px;--type-body-line: 20px;--type-body-weight: 400;--type-body-strong-size: 14px;--type-body-strong-line: 20px;--type-body-strong-weight: 600;--type-label-size: 13px;--type-label-line: 18px;--type-label-weight: 600;--type-caption-size: 12px;--type-caption-line: 16px;--type-caption-weight: 400;--type-badge-size: 11px;--type-badge-line: 14px;--type-badge-weight: 700;--type-id-size: 12px;--type-id-line: 16px;--type-id-weight: 400;--type-kbd-size: 11px;--type-kbd-line: 14px;--type-kbd-weight: 500;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 999px;--shadow-float: 0 2px 8px rgba(0,0,0,.12);--shadow-dialog: 0 8px 24px rgba(0,0,0,.16);--control-sm: 30px;--control: 36px;--control-lg: 44px;--header-height: 56px;--nav-rail-width: 84px;--rail-width: 64px;--panel-width: 380px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-app-bg);color:var(--color-ink-800);font-family:var(--font-sans);font-size:var(--type-body-size);line-height:var(--type-body-line);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}button,a,label,th,td,kbd,code,select,option,.line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line{min-height:1lh}button{font:inherit}kbd,code{font-family:var(--font-mono)}.wrap{white-space:normal;overflow:visible;text-overflow:clip}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
