:root{--text: #3a3a3a;--text-muted: #6b6375;--bg: #fff;--border: #e5e4e7;--accent: #2f6fed;--danger-bg: #fdecea;--danger-text: #8a1c14;--warning-bg: #fdf3e3;--warning-text: #7a4a00;--ok: #1f9254;font:15px/1.45 system-ui,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);color-scheme:light}@media (prefers-color-scheme: dark){:root{--text: #e5e5e5;--text-muted: #9ca3af;--bg: #16171d;--border: #2e303a;--accent: #7aa2ff;--danger-bg: #3a1c1c;--danger-text: #f3b4ac;--warning-bg: #3a2e18;--warning-text: #f0c98a;--ok: #3fce85;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden}#root{display:flex;flex-direction:column;min-height:0}.muted{color:var(--text-muted)}button{font:inherit;cursor:pointer}.link-button{background:none;border:none;color:var(--accent);padding:0}button.primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:10px 18px}button.secondary{padding:8px 14px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);transition:background-color .12s ease,border-color .12s ease}button.secondary:hover:not(:disabled),button.secondary:focus-visible:not(:disabled){border-color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 8%,var(--bg))}button.secondary:disabled{opacity:.5;cursor:default}.app-header{display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--border)}.app-header .spacer{flex:1}.app-header .brand{font-weight:600;color:inherit;text-decoration:none}.app-header .brand:hover{text-decoration:underline}.header-link{color:var(--text-muted);text-decoration:none;white-space:nowrap}.header-link:hover,.header-link:focus-visible{color:var(--accent)}.connection-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;min-height:18px}.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}.connection-chip.saving .connection-dot{background:var(--accent);animation:connection-pulse 1s ease-in-out infinite}.connection-chip.degraded .connection-dot{background:var(--warning-text);animation:connection-pulse 1.6s ease-in-out infinite}.connection-chip.offline .connection-dot{background:var(--danger-text)}.connection-chip.saving .connection-label{color:var(--text-muted)}.connection-chip.degraded .connection-label{color:var(--warning-text)}.connection-chip.offline .connection-label{color:var(--danger-text);font-weight:600}@keyframes connection-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.connection-chip .connection-dot{animation:none}}.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}.pending-queue-overlay{z-index:60}.pending-queue-modal{max-width:720px;width:100%}.pending-queue-intro{margin:0 0 16px;color:var(--text-muted)}.pending-queue-list{list-style:none;margin:0 0 16px;padding:0;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.pending-queue-list li{display:flex;align-items:baseline;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border)}.pending-queue-list li:last-child{border-bottom:none}.pending-queue-list.muted li{color:var(--text-muted)}.pending-when{flex:none;font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-muted);min-width:108px}.pending-what{flex:1;overflow-wrap:anywhere}.pending-actions{flex:none;display:flex;gap:8px}.pending-queue-buttons{display:flex;align-items:center;gap:16px;margin-bottom:16px}.pending-queue-expired{margin-top:8px;padding-top:16px;border-top:1px solid var(--border)}.pending-queue-expired h3{margin:0 0 4px;font-size:14px}.pending-queue-expired p{margin:0 0 12px;color:var(--text-muted);font-size:13px}.pending-queue-export{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.pending-queue-note{margin:4px 0 0;font-size:12px;color:var(--text-muted)}.page-message{padding:48px 24px;text-align:center;color:var(--text-muted)}.login-page{padding:80px max(24px,calc((100% - 420px)/2));text-align:center}.login-page h1{font-size:28px;margin-bottom:24px}.login-form{display:flex;flex-direction:column;gap:6px;text-align:left;padding:20px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.login-form label{font-size:13px;color:var(--text-muted)}.login-form input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;outline:none}.login-form input:focus{border-color:var(--accent)}.login-form button{margin-top:6px;width:100%;padding:9px 16px;border-radius:6px}.login-form button:disabled{opacity:.55;cursor:not-allowed}.login-page>.muted{margin-top:12px;font-size:13px}.login-page .banner.info{flex-direction:column;align-items:flex-start;gap:6px}.login-page .banner.info p{margin:0}.banner{padding:12px 16px;border-radius:6px;margin:16px 0;text-align:left}.banner.error{background:var(--danger-bg);color:var(--danger-text)}.banner.info{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid var(--accent)}.banner.floating{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;max-width:560px;display:flex;align-items:center;gap:12px;margin:0;pointer-events:none;box-shadow:0 4px 14px #0000002e;border:1px solid var(--danger-text)}.banner.floating .link-button{color:var(--danger-text);text-decoration:underline;flex-shrink:0;pointer-events:auto}.banner.warning{background:var(--warning-bg);color:var(--warning-text)}.banner.floating.live-offline{border-color:color-mix(in srgb,var(--warning-text) 45%,transparent)}.toast-region{position:fixed;bottom:76px;left:50%;transform:translate(-50%);z-index:300;pointer-events:none;display:flex;justify-content:center;width:max-content;max-width:min(560px,90vw)}.toast{padding:10px 16px;border-radius:6px;background:var(--text);color:var(--bg);font-size:13px;box-shadow:0 4px 14px #00000038;overflow-wrap:anywhere;animation:toast-in .12s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.dev-login{margin-top:32px;padding-top:24px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.dev-login input{padding:8px;border:1px solid var(--border);border-radius:4px;font:inherit}.workspace-page{display:flex;flex-direction:column;flex:1;min-height:0;padding:12px 0 0 24px}.workspace-page>*:not(.grouped-scroll):not(.flat-scroll){margin-right:24px}.page,.audit-page,.deleted-tags-page,.diff-page,.import-page,.projects-page,.review-queue-page,.status-admin-page,.login-page{flex:1;min-height:0;overflow-y:auto}.page{padding:16px 24px 48px}.workspace-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar-where{gap:12px}.toolbar-data{margin-left:auto}.toolbar-where .area-name{font-weight:600;font-size:16px}.toolbar-back{color:var(--text-muted);text-decoration:none;white-space:nowrap}.toolbar-back:hover{color:var(--accent)}.toolbar-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text);font:inherit;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.toolbar-link:hover,.toolbar-link:focus-visible{background:color-mix(in srgb,var(--text-muted) 12%,transparent);border-color:color-mix(in srgb,var(--text-muted) 25%,transparent)}.toolbar-badge{min-width:20px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 22%,transparent);color:var(--text);font-size:12px;font-weight:600;text-align:center}.toolbar-badge-open{background:var(--danger-text);color:var(--bg)}.toolbar-link-slim{padding:3px 8px;font-size:13px}.search-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font:inherit}.view-toggle{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.view-toggle button{background:none;border:none;padding:6px 14px;color:var(--text-muted);font:inherit;cursor:pointer;transition:background-color .12s ease,color .12s ease}.view-toggle button:hover:not(.active){background:color-mix(in srgb,var(--text-muted) 12%,transparent);color:var(--text)}.view-toggle button.active{background:var(--accent);color:#fff}.old-tag-add,.status-add,.drawing-add-new{display:flex;gap:8px;margin:12px 0}.workspace-count-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 8px;min-height:32px}.workspace-count-row .old-tag-add{margin:0;align-items:center}.workspace-count-row .old-tag-add input{max-width:240px;padding:5px 10px}.old-tag-add input,.status-add input,.drawing-add-new input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;flex:1;max-width:320px;outline:none}.old-tag-add input:focus,.status-add input:focus,.drawing-add-new input:focus{border-color:var(--text-muted)}.add-and-mark{align-self:center;white-space:nowrap;font-size:13px}.add-and-mark:disabled{opacity:.45;cursor:default}.old-tag-list{display:flex;flex-direction:column;gap:8px}.grouped-scroll{flex:1;min-height:0;margin-bottom:16px;overflow-y:auto;contain:paint}.workspace-page>.banner,.workspace-page>.workspace-filters,.workspace-page>.workspace-count-row,.workspace-page>.bulk-bar,.workspace-page>p{flex:none}.grouped-inner{position:relative;width:100%}.grouped-row{position:absolute;top:0;left:0;width:100%;padding-bottom:3px}.old-tag-group{border:1px solid var(--border);border-radius:8px;overflow:hidden}.old-tag-group{--group-stripe-width: 6px;--group-stripe-radius: 7px}.old-tag-group.pending{height:32px;display:flex;align-items:center;padding:0 12px}.old-tag-pending-bar{display:block;width:180px;height:9px;border-radius:999px;background:var(--border)}.old-tag-header-row{display:flex;align-items:center}.old-tag-header{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:5px 12px;background:none;border:none;text-align:left;font:inherit;color:var(--text)}.old-tag-delete-actions{display:flex;align-items:center;gap:6px;padding-right:14px;white-space:nowrap}.old-tag-delete-actions .link-button{opacity:0;font-size:13px}.old-tag-group:hover .old-tag-delete-actions .link-button,.old-tag-group:has(:focus-visible) .old-tag-delete-actions .link-button{opacity:1}.not-a-tag-button,.no-replacement-button,.admin-remove-button{padding:3px 9px;border-radius:999px;border:1px solid transparent;line-height:1.4;transition:background-color .12s ease,border-color .12s ease}.not-a-tag-button,.no-replacement-button{color:var(--text);background:color-mix(in srgb,var(--text-muted) 10%,transparent)}.not-a-tag-button:hover,.no-replacement-button:hover,.not-a-tag-button:focus-visible,.no-replacement-button:focus-visible{background:color-mix(in srgb,var(--text-muted) 20%,transparent);border-color:color-mix(in srgb,var(--text-muted) 35%,transparent)}.admin-remove-button{font-weight:600;letter-spacing:.01em;background:color-mix(in srgb,var(--danger-text) 10%,transparent)}.admin-remove-button:hover,.admin-remove-button:focus-visible{background:color-mix(in srgb,var(--danger-text) 18%,transparent);border-color:color-mix(in srgb,var(--danger-text) 40%,transparent)}.old-tag-group.focused{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.old-tag-group.cursored{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.batch-tint-0{--batch-colour: var(--accent)}.batch-tint-1{--batch-colour: #b07cd6}.batch-tint-2{--batch-colour: #4ea88a}.batch-tint-3{--batch-colour: #d69a4e}.batch-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;background:color-mix(in srgb,var(--batch-colour, var(--accent)) 12%,var(--bg));border-radius:4px 4px 0 0}.batch-title{font-weight:600}.batch-header .batch-undo{margin-left:auto}.audit-page .row-undo,.batch-header .batch-undo{height:26px;padding:0 10px;font-size:.85rem;line-height:1}.hotkey-hint{margin-left:auto}.archived-toggle{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--muted);font-size:.9rem;cursor:pointer}.line-card-wrap.archived .line-card{opacity:.62;border-style:dashed}.hotkey-hint kbd,.hotkey-help kbd{font-family:inherit;font-size:.85em;padding:1px 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--bg)}.hotkey-help{max-width:620px}.hotkey-group h3{margin:18px 0 6px;font-size:.95rem}.hotkey-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.hotkey-list li{display:grid;grid-template-columns:5.5em 1fr auto;align-items:baseline;gap:10px}.hotkey-list kbd.capturing{border-color:var(--accent);color:var(--accent)}.hotkey-label{min-width:0}.focus-banner{display:flex;align-items:center;gap:16px;margin:12px 0;padding:10px 14px;border:1px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,transparent)}.old-tag-value{font-weight:600;position:relative}.old-tag-value .copy-ripple{top:-3px;right:-6px;bottom:-3px;left:-6px;border-radius:6px}.old-tag-body{border-top:1px solid var(--border);padding:8px 14px 14px}.old-tag-actions{display:flex;gap:16px;margin-top:8px}.mapping-row{border:1px solid transparent;border-radius:6px;padding:8px;margin-top:6px}.mapping-row.drop-target{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.mapping-col-headers,.mapping-row-main{display:grid;grid-template-columns:1.5em minmax(140px,260px) 210px 124px minmax(160px,460px) auto;align-items:center;gap:10px}.mapping-col-headers{padding:4px 8px;color:var(--text-muted);font-size:13px;font-weight:600;border-bottom:1px solid var(--border)}.expand-toggle{background:none;border:none;color:var(--text-muted);width:1.2em;padding:0}.replacement-tag-input{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font:inherit;background:var(--bg);color:var(--text)}.status-select{padding:6px 8px;border:1px solid var(--border);border-radius:4px;font:inherit;background:var(--bg);color:var(--text)}.danger-text{color:var(--danger-text)}.comment-input{width:100%;min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font:inherit;background:var(--bg);color:var(--text)}.status-cell{display:flex;align-items:center;gap:6px;min-width:0}.status-cell .status-select{flex:1;min-width:0}.status-origin-chip{font-size:11px;padding:1px 5px;letter-spacing:.02em}.status-origin-chip.auto{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.status-origin-chip.manual{background:color-mix(in srgb,var(--text-muted) 16%,transparent);color:var(--text-muted)}.drawing-count{display:flex;align-items:center;gap:6px;white-space:nowrap}.check-all-box{margin:0;cursor:pointer}.checked-count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:13px}.checked-count.all{color:var(--ok);font-weight:600}.new-chip{background:color-mix(in srgb,var(--import-new) 18%,transparent);color:var(--import-new);font-size:11px;padding:1px 6px}.mapping-row-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;white-space:nowrap;font-size:13px}.mapping-row-actions .link-button{opacity:0}.mapping-row:hover .mapping-row-actions .link-button,.mapping-row:has(:focus-visible) .mapping-row-actions .link-button{opacity:1}.drawing-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-left:30px}.drawing-pill{display:inline-flex;align-items:center;gap:2px;padding:4px 10px;border-radius:999px;background:var(--border);font-size:13px;-webkit-user-select:none;user-select:none;position:relative}.drawing-pill-label{cursor:grab}.drawing-pill.removable{padding-right:4px}.drawing-pill-remove{width:18px;height:18px;padding:0;border:none;border-radius:999px;background:none;color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;opacity:0}.drawing-pill:hover .drawing-pill-remove,.drawing-pill:has(:focus-visible) .drawing-pill-remove{opacity:1}.drawing-pill-remove:hover{background:var(--danger-bg);color:var(--danger-text)}.drawing-pill-delete{width:18px;height:18px;padding:0;border:none;border-radius:999px;background:none;color:var(--danger-text);font-size:11px;line-height:1;cursor:pointer;opacity:0}.drawing-pill:hover .drawing-pill-delete,.drawing-pill:has(:focus-visible) .drawing-pill-delete{opacity:.75}.drawing-pill-delete:hover{background:var(--danger-bg);opacity:1}.drawing-pill.dragging{opacity:.5}.drawing-pill.missing{background:var(--danger-bg);color:var(--danger-text);outline:1px dashed var(--danger-text);outline-offset:-1px}.drawing-pill-check{width:18px;height:18px;margin:0 2px 0 0;padding:0;border:none;border-radius:999px;background:none;color:var(--text-muted);font-size:12px;line-height:1;cursor:pointer;flex:none;opacity:0;transition:opacity 90ms ease-in}.drawing-pill:hover .drawing-pill-check,.drawing-pill:has(:focus-visible) .drawing-pill-check,.drawing-pill.checked .drawing-pill-check,.drawing-pill.selected .drawing-pill-check{opacity:1}.drawing-pill.checked .drawing-pill-check{color:color-mix(in srgb,var(--ok) 75%,var(--text))}.drawing-pill-check:hover{background:var(--border);color:var(--text)}.drawing-pill:not(.checked) .drawing-pill-check:disabled{display:none}.drawing-pill.selected{outline:2px solid var(--accent);outline-offset:1px}.drawing-pill-ripple{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;animation:pill-copied-ripple .6s ease-out}@keyframes pill-copied-ripple{0%{box-shadow:0 0 color-mix(in srgb,var(--ok) 55%,transparent);background:color-mix(in srgb,var(--ok) 28%,transparent)}to{box-shadow:0 0 0 10px transparent;background:transparent}}@keyframes pill-copied-flash{0%{background:color-mix(in srgb,var(--ok) 28%,transparent)}to{background:transparent}}@media (prefers-reduced-motion: reduce){.drawing-pill-ripple{animation:pill-copied-flash .6s ease-out}}.copy-tag-button{flex:none;padding:2px 8px;font-size:14px;line-height:1;color:var(--text-muted);opacity:0;transition:opacity .12s ease}.old-tag-header-row:hover .copy-tag-button,.copy-tag-button:focus-visible{opacity:1}.copy-tag-button:hover{color:var(--text)}.copy-ripple{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;pointer-events:none;animation:pill-copied-ripple .6s ease-out}@media (prefers-reduced-motion: reduce){.copy-ripple{animation:pill-copied-flash .6s ease-out}}.pill-selection-note{display:inline-flex;align-items:center;gap:8px;margin-right:4px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text-muted);font-size:12px;white-space:nowrap}.drawing-pill.checked{background:color-mix(in srgb,var(--ok) 16%,transparent);color:color-mix(in srgb,var(--ok) 75%,var(--text))}.drawing-pill.import-new{background:color-mix(in srgb,var(--import-new) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--import-new) 45%,transparent)}.drawing-pill.import-new.checked{background:color-mix(in srgb,var(--ok) 16%,transparent);box-shadow:none}.drawing-pill-new{width:6px;height:6px;border-radius:999px;background:var(--import-new);flex:none;margin-left:2px}.drawing-pill.checked .drawing-pill-new{display:none}.drawing-pill.user-added{border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent)}.drawing-pill-added{font-size:10px;line-height:1;color:color-mix(in srgb,var(--accent) 80%,var(--text));flex:none;margin-left:2px;cursor:default}.import-new-chip{background:color-mix(in srgb,var(--import-new) 18%,transparent);color:color-mix(in srgb,var(--import-new) 85%,var(--text));cursor:help}.filter-import{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.import-select{max-width:260px}.standard-value-button:disabled{opacity:.45;cursor:default}.standard-value-button.draggable-value{cursor:grab;touch-action:none}.standard-value-button.draggable-value:active{cursor:grabbing}.standard-value-button.dragging{opacity:.5}.replacement-tag-input.standard-value:disabled{color:var(--text);background:color-mix(in srgb,var(--border) 45%,transparent);font-weight:600;letter-spacing:.02em;cursor:default}.add-drawing-open{font-size:12px;opacity:0;transition:opacity 90ms ease-in}.mapping-row:hover .add-drawing-open,.mapping-row:has(:focus-visible) .add-drawing-open{opacity:1}.add-drawing{position:relative;display:inline-block}.add-drawing-input{width:240px;font-size:13px}.add-drawing-results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;width:340px;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);box-shadow:0 6px 20px #0000002e}.add-drawing-hit{display:flex;align-items:center;gap:6px;width:100%;padding:5px 7px;border:none;border-radius:4px;background:none;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.add-drawing-hit:hover:not(:disabled){background:var(--border)}.add-drawing-hit:disabled{cursor:default;opacity:.55}.add-drawing-hit-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-drawing-create{margin-top:4px;padding-top:6px;border-top:1px solid var(--border);font-size:12px}.add-drawing-collision{margin-top:4px;padding:8px;border:1px dashed color-mix(in srgb,var(--warn) 55%,transparent);border-radius:4px;font-size:13px}.add-drawing-collision p{margin:4px 0 8px}.add-drawing-collision-actions{display:flex;align-items:center;gap:8px}.drawing-pill.user-added.checked{border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.drawing-pill.user-added.checked .drawing-pill-added{color:color-mix(in srgb,var(--ok) 60%,var(--text))}.flat-scroll{flex:1;min-height:0;margin-top:12px;margin-bottom:16px;overflow-y:auto;overflow-x:auto;border:1px solid var(--border);border-radius:6px;contain:paint}.flat-table{width:100%;border-collapse:collapse}:root{--flat-row-height: 33px}.flat-table th,.flat-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border)}.flat-table tbody tr{height:var(--flat-row-height)}.flat-table tbody td{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flat-table tbody tr.flat-spacer{height:auto}.flat-table tbody tr.flat-spacer td,.flat-table tbody tr.flat-spacer{padding:0;border:none}.flat-table th{position:sticky;top:0;z-index:5;color:var(--text-muted);font-weight:600;background:var(--bg)}.flat-table tbody td{background:var(--bg)}.audit-table thead th{position:sticky;top:var(--audit-head-offset);z-index:10;background:var(--bg);box-shadow:0 -16px 0 var(--bg),0 1px 0 var(--border)}.audit-table thead th:first-child{box-shadow:-24px -16px 0 var(--bg),0 -16px 0 var(--bg),0 1px 0 var(--border)}.audit-table thead th:last-child{box-shadow:24px -16px 0 var(--bg),0 -16px 0 var(--bg),0 1px 0 var(--border)}.flat-table .batch-header-row>td{padding:0;border-bottom:none;background:var(--bg)}.audit-table{--audit-head-offset: -16px}.flat-table .batch-header-row.batch-tint-0>td,.flat-table .batch-header-row.batch-tint-1>td,.flat-table .batch-header-row.batch-tint-2>td,.flat-table .batch-header-row.batch-tint-3>td{border-top:2px solid var(--batch-colour);border-left:2px solid var(--batch-colour);border-right:2px solid var(--batch-colour);border-radius:6px 6px 0 0}.audit-table .batch-last>td:first-child{border-bottom-left-radius:6px}.audit-table .batch-last>td:last-child{border-bottom-right-radius:6px}.audit-table .batch-group>.batch-header-row>td{border-top-width:2px}.audit-table tbody:has(+.batch-group)>tr:last-child>td{padding-bottom:20px}.audit-table .batch-group+tbody>tr:first-child>td{padding-top:20px}.flat-table .batch-member>td:first-child{border-left:2px solid var(--batch-colour, var(--accent))}.flat-table .batch-member>td:last-child{border-right:2px solid var(--batch-colour, var(--accent))}.flat-table .batch-last>td{border-bottom:2px solid var(--batch-colour, var(--accent))}.flat-table .select-col{width:34px;padding-right:0;-webkit-user-select:none;user-select:none}.flat-table tbody tr.selected{background:color-mix(in srgb,var(--accent) 8%,transparent)}.flat-old-tag{display:inline-flex;align-items:center;gap:8px}.bulk-action-bar{box-sizing:border-box;height:32px;display:flex;align-items:center;gap:10px;min-width:0;padding:0 10px;border:1px solid var(--accent);border-radius:6px;background:var(--bg)}.bulk-notice-inline{box-sizing:border-box;height:32px;display:flex;align-items:center;gap:10px;min-width:0;padding:0 10px;border:1px solid var(--accent);border-radius:6px;font-size:.85rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bulk-notice-inline .link-button{flex:none;height:24px;padding:0 8px;font-size:.85rem;line-height:1}.bulk-action-bar select,.bulk-action-bar button{height:24px;padding:0 8px;font-size:.85rem;line-height:1}.bulk-action-bar>span{white-space:nowrap;font-size:.85rem}.danger-button{padding:6px 12px;border:1px solid var(--danger-text);border-radius:6px;background:var(--danger-bg);color:var(--danger-text);font:inherit;font-weight:600;cursor:pointer}.danger-button:disabled{opacity:.6;cursor:default}.mapping-row.empty{border-style:dashed;border-color:var(--border);background:color-mix(in srgb,var(--text-muted) 5%,transparent)}.drawing-count.empty-note{color:var(--text-muted);font-style:italic}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:20px;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-header h2{margin:0;font-size:18px}.modal-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:12px;align-items:center}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field input{padding:8px;border:1px solid var(--border);border-radius:4px;font:inherit;background:var(--bg);color:var(--text)}.drawing-picker{max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:4px}.drawing-picker-row{display:flex;align-items:center;gap:8px}.comment-history-entry{padding:8px 0;border-bottom:1px solid var(--border)}.comment-history-entry:last-child{border-bottom:none}.status-admin-page{padding:16px max(24px,calc((100% - 640px)/2)) 64px}.audit-page,.review-queue-page,.deleted-tags-page{padding:16px 24px 64px}.review-queue-page,.deleted-tags-page{padding-left:max(24px,calc((100% - 860px)/2));padding-right:max(24px,calc((100% - 860px)/2))}.page-nav{display:flex;gap:20px;margin-bottom:8px}.audit-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin:16px 0}.audit-filters label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted)}.audit-filters select,.audit-filters input{padding:6px 8px;border:1px solid var(--border);border-radius:4px;font:inherit;background:var(--bg);color:var(--text)}.audit-table{font-size:14px;border-collapse:separate;border-spacing:0}.audit-values{max-width:420px;word-break:break-word;font-size:13px}.audit-event{font-size:13px;line-height:1.5}.audit-change{border-collapse:collapse;font-size:12px;line-height:1.45;table-layout:fixed;width:100%;max-width:460px}.audit-change th{width:34%}.audit-change .was,.audit-change .now{width:29%}.audit-change .arrow{width:8%}.audit-change th,.audit-change td{padding:1px 0;vertical-align:baseline;text-align:left;font-weight:400}.audit-change th{color:var(--muted);padding-right:10px;white-space:nowrap}.audit-change .was{color:var(--muted)}.audit-change .arrow{color:var(--muted);text-align:center}.audit-change .now{color:var(--text);font-variant-numeric:tabular-nums}.undone-row>td{color:var(--text-muted)}.undone-row>td .tag-chip{color:var(--text-muted)}.undo-blocked{cursor:help}.tag-chip{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;border:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.queue-toggle{display:flex;align-items:center;gap:8px;margin:16px 0;color:var(--text-muted);font-size:14px}.queue-empty{padding:32px;text-align:center;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted)}.review-item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.review-item{border:1px solid var(--border);border-left-width:4px;border-radius:8px;padding:12px 14px}.review-item.blocking{border-left-color:var(--danger-text)}.review-item.review_required{border-left-color:var(--accent)}.review-item.informational{border-left-color:var(--border)}.review-item.resolved{opacity:.6}.review-item-head{display:flex;align-items:center;gap:10px}.review-item-title{font-weight:600}.category-chip{padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;cursor:help}.category-chip.blocking{background:var(--danger-bg);color:var(--danger-text)}.category-chip.review_required{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.category-chip.informational{background:var(--border);color:var(--text-muted)}.review-item-detail{margin:8px 0 4px;line-height:1.5}.review-item-table{margin:4px 0 8px}.review-item-table>summary{cursor:pointer;font-size:13px;color:var(--accent);padding:2px 0;-webkit-user-select:none;user-select:none}.review-item-table-scroll{max-height:260px;overflow:auto;margin-top:6px;border:1px solid var(--border);border-radius:6px}.review-item-table table{width:100%;border-collapse:collapse;font-size:13px}.review-item-table th,.review-item-table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.review-item-table th{position:sticky;top:0;background:var(--bg);font-weight:600}.review-item-table tbody tr:last-child td{border-bottom:none}.review-item-meta{margin:0;font-size:13px}:root{--ok: #1f9254;--warn: #b8860b;--unresolved: #d98324;--unresolved-bg: #fdf4e7;--neutral-fill: #b6b3bd;--status-neutral: #8b8794;--status-violet: #7c5cd6;--status-red: #c0392b;--status-green-light: #1f9254;--status-green: #1a732c;--status-blue: #2f6fed;--status-teal: #10868a;--status-amber: #b8860b;--import-new: #0e7490}@media (prefers-color-scheme: dark){:root{--ok: #4ade80;--warn: #fbbf24;--unresolved: #f0a04b;--unresolved-bg: #33261a;--neutral-fill: #5b5f6e;--status-neutral: #9d99a8;--status-violet: #a78bfa;--status-red: #f87171;--status-green-light: #4ade80;--status-green: #22c55e;--status-blue: #7aa2ff;--status-teal: #2dd4bf;--status-amber: #fbbf24;--import-new: #22d3ee}}.projects-page{padding:20px max(20px,calc((100% - 1800px)/2))}.area-summary{padding:12px 18px;margin-bottom:16px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--text-muted) 7%,transparent)}.area-summary-compact{padding:0;margin:10px 0 0;border:none;background:none}.area-summary-caption{margin:6px 0 0;font-size:13px}.area-summary-compact .project-legend{margin:6px 0 0;gap:3px 12px;font-size:12px}.line-summary-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px;font-size:13px}.line-summary-title{font-weight:600;font-size:14px}.line-summary-review{color:var(--danger-text)}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px;margin:14px 0}.project-card{border:1px solid var(--border);border-radius:10px;padding:14px 18px}.line-card{display:block;padding:14px 18px;border:1px solid var(--border);border-radius:10px;color:inherit;text-decoration:none;transition:border-color .12s ease}.line-card:hover,.line-card:focus-visible{border-color:var(--accent)}.line-card h2{margin:0 0 4px;font-size:18px}.line-card p{margin:4px 0 0}.line-card-detail{font-size:13px}.line-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.line-heading h1{margin:0}.line-crumb{margin-bottom:8px;font-size:13px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:40vh;color:var(--text-muted)}.loading-inline{min-height:0;padding:24px 0}.loading-ring{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:loading-spin .7s linear infinite}.loading-label{font-size:13px}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.loading-ring{animation:none;border-top-color:var(--border)}}.field{display:block;margin-bottom:14px}.field>span{display:block;margin-bottom:4px;font-size:13px;font-weight:600}.field input,.field textarea,.field select{width:100%;font:inherit;font-size:14px}.field textarea{resize:vertical}.field-hint{display:block;margin-top:4px;font-size:12px;font-weight:400;line-height:1.4}.properties-stats{font-size:13px;margin:0 0 14px}.properties-danger{display:flex;gap:16px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.link-button.danger{color:var(--danger-text)}.delete-area{display:flex;flex-direction:column;gap:18px}.delete-area-counts{margin:0;line-height:1.5}.delete-area-warning{margin:0;padding:10px 12px;border-radius:6px;background:var(--danger-bg);color:var(--danger-text);font-weight:600}.delete-area-step{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.delete-area-step h3{margin:0;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.delete-area-step p{margin:0;line-height:1.5}.delete-area-step input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;max-width:340px}.delete-area-actions{display:flex;gap:10px;flex-wrap:wrap}.delete-area-noted{font-size:13px;color:var(--text-muted)}.delete-area-noted-warn{color:var(--danger-text)}.delete-area-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:14px;border-top:1px solid var(--border)}button.danger:not(.link-button){padding:8px 14px;border:1px solid transparent;border-radius:6px;background:var(--danger-text);color:var(--bg);font-weight:600}button.danger:not(.link-button):disabled{opacity:.4;cursor:default}button.danger:not(.link-button):hover:not(:disabled),button.danger:not(.link-button):focus-visible:not(:disabled){filter:brightness(1.08)}.properties-button{font-size:15px;line-height:1}.unfiled-card{border-style:dashed}.line-card-wrap,.project-card{position:relative}.line-card-gear,.card-gear{position:absolute;top:12px;right:12px}.project-card-head{padding-right:24px}.line-create{display:flex;gap:8px;align-items:center;margin:16px 0;max-width:460px}.unfiled-areas{margin-top:32px;padding-top:16px;border-top:1px solid var(--border)}.unfiled-areas h2{font-size:16px;margin:0 0 4px}.unfiled-list{margin:12px 0 0;padding-left:18px}.unfiled-list li{margin-bottom:4px}.project-card.archived{opacity:.72;background:color-mix(in srgb,var(--text-muted) 5%,transparent)}.project-card.archived:hover,.project-card.archived:focus-within{opacity:1}.archived-chip{background:color-mix(in srgb,var(--text-muted) 16%,transparent);color:var(--text-muted)}.archived-areas{margin-top:24px;border-top:1px solid var(--border);padding-top:12px}.archived-toggle{font-size:13px;color:var(--text-muted);margin-bottom:12px}.project-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.project-name{font-size:18px;font-weight:600;color:var(--text);text-decoration:none}.project-name:hover{text-decoration:underline}.project-name-input{font-size:18px;font-weight:600;padding:2px 6px}.progress-bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--border)}.progress-segment{height:100%;min-width:2px}.progress-segment.ruled-out{background-image:repeating-linear-gradient(-45deg,var(--text-muted) 0,var(--text-muted) 1px,transparent 1px,transparent 4px);background-color:transparent;border-left:1px solid var(--border);opacity:.55}.legend-swatch.ruled-out{background-image:repeating-linear-gradient(-45deg,var(--text-muted) 0,var(--text-muted) 1px,transparent 1px,transparent 4px);background-color:transparent;box-shadow:inset 0 0 0 1px var(--border);opacity:.7}.progress-empty{width:100%;background:var(--border)}.progress-caption{margin:8px 0 4px;font-size:13px}.project-legend{list-style:none;padding:0;margin:6px 0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px}.project-legend li{display:flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.legend-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.project-totals{font-size:13px;margin:8px 0}.project-card-actions{display:flex;gap:12px}.empty-state{border:1px dashed var(--border);border-radius:10px;padding:24px;text-align:center}.chip{padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.unresolved-chip{background:var(--unresolved-bg);color:var(--unresolved)}.review-chip{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);text-decoration:none}.score-chip{font-variant-numeric:tabular-nums;cursor:help}.score-chip.high{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}.score-chip.medium{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.score-chip.low{background:var(--border);color:var(--text-muted)}.marker-chip{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);cursor:help}.similar-tag-badge{display:inline-flex;align-items:center;gap:6px;min-width:0;cursor:help}.old-tag-similar-actions{display:flex;align-items:center;gap:6px;padding-right:6px;white-space:nowrap}.similar-tag-show{opacity:0;font-size:13px;padding:3px 9px;border-radius:999px;border:1px solid transparent;line-height:1.4;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);transition:background-color .12s ease,border-color .12s ease}.old-tag-group:hover .similar-tag-show,.old-tag-group:has(:focus-visible) .similar-tag-show{opacity:1}.similar-tag-show:hover,.similar-tag-show:focus-visible{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.similar-chip{background:var(--border);color:var(--text-muted);font-weight:500}.similar-tag-answer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34ch;font-size:12px;color:var(--text-muted)}.similar-tag-answer strong{color:var(--text);font-weight:600}.user-added-chip{background:transparent;color:color-mix(in srgb,var(--accent) 80%,var(--text));border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);cursor:help}.status-chip.completed{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}.status-chip.running,.status-chip.pending{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.status-chip.failed{background:var(--danger-bg);color:var(--danger-text)}.mapping-row.unresolved{box-shadow:inset 3px 0 0 var(--unresolved);background:color-mix(in srgb,var(--unresolved-bg) 45%,transparent)}.replacement-tag-input.unresolved{border-color:var(--unresolved)}.replacement-tag-input.unresolved::placeholder{color:var(--unresolved);opacity:.85}.mapping-row.status-tinted{box-shadow:inset 3px 0 0 var(--status-tint);background:color-mix(in srgb,var(--status-tint) 8%,transparent)}.flat-table tr.status-tinted{background:color-mix(in srgb,var(--status-tint) 8%,transparent)}.flat-table tr.status-tinted td:first-child{box-shadow:inset 3px 0 0 var(--status-tint)}.flat-table tr.unresolved{background:color-mix(in srgb,var(--unresolved-bg) 55%,transparent)}.flat-table tr.unresolved td:first-child{box-shadow:inset 3px 0 0 var(--unresolved)}.flat-table tr.empty td:first-child{box-shadow:inset 3px 0 0 var(--neutral-fill)}.status-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:8px;background:var(--status-tint)}.status-color-cell{display:flex;align-items:center;gap:8px}.old-tag-group.has-unresolved .old-tag-header-row{position:relative}.old-tag-group.has-unresolved .old-tag-header-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--group-stripe-width);background:var(--unresolved);border-radius:var(--group-stripe-radius) 0 0 var(--group-stripe-radius)}The stripe hangs on the header *row* rather than on the header button. The button is a flex child sized to its own content,so a stripe on it stopped short of the row's full height and left a notch at the cap. The row is the
full-height box,and it is also what the group's rounded corners clip, so
the stripe reaches corner to corner. */ .old-tag-group.resolved .old-tag-header-row{position:relative}.old-tag-group.resolved.has-status-stripe .old-tag-header-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--group-stripe-width);background:var(--group-stripe);border-radius:var(--group-stripe-radius) 0 0 var(--group-stripe-radius)}.old-tag-group.resolved.has-status-stripe.expanded .old-tag-header-row:before,.old-tag-group.has-unresolved.expanded .old-tag-header-row:before{border-bottom-left-radius:0}.old-tag-group.resolved.has-status-stripe.expanded .old-tag-header-row:before{background:var(--group-wash)}.old-tag-group.resolved.has-status-stripe.expanded .old-tag-header-row{background-color:color-mix(in srgb,var(--group-wash) 14%,transparent)}.old-tag-group.resolved.has-status-stripe.expanded .old-tag-body{position:relative;padding-left:var(--group-stripe-width)}.old-tag-group.resolved.has-status-stripe.expanded .old-tag-body:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--group-stripe-width);background:var(--group-stripe);border-radius:0 0 0 var(--group-stripe-radius)}.old-tag-group.has-unresolved.resolved.has-status-stripe .old-tag-header-row:before{background:var(--unresolved)}.workspace-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px}.workspace-filters .search-field{display:flex;align-items:center;gap:6px;flex:1 1 320px;position:relative}.workspace-filters .search-box{display:flex;align-items:center;flex:1 1 auto;min-width:0;gap:4px;padding:0 6px 0 0;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.workspace-filters .search-box:focus-within{border-color:var(--text-muted)}.workspace-filters .search-box .search-input{flex:1 1 auto;min-width:0;border:none;background:none;outline:none}.workspace-filters .search-box .search-scope{border:none;border-left:1px solid var(--border);border-radius:0;background:var(--bg)}.workspace-filters .search-box .search-scope:hover{border-left-color:color-mix(in srgb,var(--text-muted) 45%,transparent)}.search-scope{flex:0 0 11.5em;width:11.5em}.search-help,.export-menu{position:relative;display:inline-flex}.export-menu-popover{position:fixed;z-index:40;width:max-content;max-width:min(320px,calc(100vw - 32px));padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--bg);box-shadow:0 6px 20px #0000002e}.export-menu-item{display:block;width:100%;padding:8px 10px;border:0;border-radius:6px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.export-menu-item:hover,.export-menu-item:focus-visible{background:var(--border)}.export-menu-label{display:block;font-weight:600;font-size:13px}.export-menu-detail{display:block;margin-top:2px;color:var(--text-muted);font-size:12px;line-height:1.35}.search-help-button{width:20px;height:20px;padding:0;border:1px solid var(--border);border-radius:999px;background:none;color:var(--text-muted);font-size:12px;line-height:1;cursor:pointer}.search-help-button:hover,.search-help-button[aria-expanded=true]{color:var(--text);border-color:var(--text-muted)}.search-help-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:max-content;max-width:340px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);box-shadow:0 6px 20px #0000002e;font-size:13px}.search-help-lead{margin:0 0 8px}.search-help-table{border-collapse:collapse}.search-help-table td{padding:3px 0;vertical-align:baseline}.search-help-table td:first-child{padding-right:12px;white-space:nowrap}.search-help-table code,.search-help-foot code{padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--text-muted) 14%,transparent);font-size:12px}.search-help-foot{margin:8px 0 0;font-size:12px}.deleted-tag-count{margin-top:12px;font-size:13px}.filter-check,.filter-score{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}.score-value{font-variant-numeric:tabular-nums;min-width:3ch}.score-direction,.import-select,.search-scope{padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;font-size:13px}.score-direction:hover,.import-select:hover,.search-scope:hover{border-color:color-mix(in srgb,var(--text-muted) 45%,transparent)}.area-name{font-weight:600}.import-page{padding:24px max(24px,calc((100% - 1100px)/2))}.import-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 4px}.field-inline{display:flex;align-items:center;gap:6px}.import-hint{font-size:13px;margin:0 0 16px}.import-summary{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px;font-size:14px}.summary-value{font-weight:600;font-variant-numeric:tabular-nums}.import-detail-row td{background:color-mix(in srgb,var(--border) 25%,transparent);border-left:3px solid var(--accent, var(--border))}.import-table tbody:has(.import-detail-row) .import-row td{background:color-mix(in srgb,var(--border) 12%,transparent)}.import-conflicts{margin:8px 0;font-size:14px}.confirm-button{margin-top:6px}.review-item-actions{display:flex;align-items:center;gap:16px;margin-top:6px}.review-item-link{font-weight:600}.deleted-tag-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.deleted-tag{border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:8px;padding:10px 14px}.deleted-tag.removed{border-left-color:var(--danger-text)}.deleted-tag-head{display:flex;align-items:center;gap:12px}.category-chip.delete-kind{background:var(--border);color:var(--text-muted)}.category-chip.delete-kind.removed{background:var(--danger-bg);color:var(--danger-text)}.category-chip.delete-kind.no_replacement_required{background:color-mix(in srgb,var(--ok) 18%,transparent);color:color-mix(in srgb,var(--ok) 75%,var(--text))}.deleted-tag-meta{margin:4px 0 0;font-size:13px}.deleted-tag-mappings{list-style:none;margin:8px 0 0;padding:0;font-size:13px}.deleted-tag-mappings li{display:flex;gap:10px;padding:2px 0}.deleted-mapping-tag{min-width:180px;font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.94em}.snapshot-publish{display:flex;gap:10px;align-items:center;margin:16px 0}.snapshot-publish input{flex:1;max-width:420px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit}.snapshot-compare{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:18px 0 8px;padding:12px 14px;border:1px solid var(--border);border-radius:8px}.snapshot-compare label{display:flex;flex-direction:column;gap:4px;font-size:13px}.snapshot-compare select{padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;max-width:320px}.snapshot-arrow{padding-bottom:8px;color:var(--text-muted)}.snapshot-direction{margin:4px 0 12px;font-size:13px}.snapshot-list-heading{margin:28px 0 8px;font-size:15px}.snapshot-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--border)}.snapshot-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 4px;border-bottom:1px solid var(--border)}.snapshot-stamp{font-weight:600}.snapshot-note{margin-top:2px}.snapshot-meta{margin-top:3px;font-size:13px}.snapshot-actions{display:flex;gap:12px;white-space:nowrap}.diff-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.diff-chip{padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 12%,transparent);font-size:13px}.diff-chip-add{background:color-mix(in srgb,#3fa45b 18%,transparent)}.diff-chip-remove{background:color-mix(in srgb,var(--danger-text) 16%,transparent)}.diff-empty{margin:12px 0}.diff-section{margin:18px 0}.diff-section h4{margin:0 0 8px;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.diff-tags{list-style:none;padding:0;margin:0}.diff-tag{padding:8px 0 8px 12px;border-left:2px solid var(--border);margin-bottom:6px}.diff-tag-name{font-weight:600}.diff-mappings{list-style:none;padding:0;margin:4px 0 0}.diff-mappings li,.diff-line{margin:2px 0;font-size:13px;line-height:1.5}.diff-add{color:#3fa45b;font-weight:700}.diff-remove{color:var(--danger-text);font-weight:700}.diff-ruled-out{margin:4px 0;font-size:13px;color:var(--danger-text)}.line-diff-range{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:16px 0;padding:12px 14px;border:1px solid var(--border);border-radius:8px}.line-diff-range label{display:flex;flex-direction:column;gap:4px;font-size:13px}.line-diff-range input{padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit}.line-diff-area{margin:14px 0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.line-diff-area-head{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:none;background:color-mix(in srgb,var(--text-muted) 7%,transparent);color:var(--text);font:inherit;text-align:left;cursor:pointer}.line-diff-area-head:hover{background:color-mix(in srgb,var(--text-muted) 12%,transparent)}.line-diff-area-name{font-weight:600;flex:1}.line-diff-area>.diff-report{padding:0 14px 12px}.line-diff-quiet{margin:14px 0;font-size:13px}.line-diff-missing{margin:18px 0;padding:12px 14px;border:1px dashed var(--border);border-radius:8px}.line-diff-missing h4{margin:0 0 6px;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.line-diff-missing ul{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.import-kind{font-size:11px;white-space:nowrap}.import-kind.neutral{color:var(--text-muted);border:1px solid var(--border)}.import-kind.restore{background:var(--warning-bg);color:var(--warning-text)}.import-kind.backup{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.import-kind.diff{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--text)}.import-restore-warning{margin:12px 0 0;max-width:780px}.import-preview{margin:12px 0 0;padding:12px 16px;border:1px solid var(--border);border-radius:6px;max-width:900px}.import-preview.suspect{background:var(--warning-bg);border-color:var(--warning-text)}.import-preview-head{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.import-preview-head .link-button{margin-left:auto}.import-preview-verdict{margin:0 0 8px}.import-preview-verdict.bad{color:var(--warning-text)}.import-preview-sample{margin:0 0 8px;font-size:13px;color:var(--text-muted);overflow-wrap:anywhere}.import-preview-note{margin:8px 0 0;font-size:12px}.import-notice{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--text);max-width:900px;margin:12px 0 0}.import-status-stack{display:inline-flex;flex-direction:column}.import-status-stack progress{display:block;width:100%;height:6px;margin-top:4px}.import-row-actions{display:flex;justify-content:flex-end;gap:14px;white-space:nowrap;text-align:right}.import-row-actions .link-button:hover{text-decoration:underline}.diff-page{padding:24px max(24px,(100% - 1100px) / 2) 48px}.diff-page h1{margin:0 0 8px}.diff-form{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:6px}.field-block{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted)}.diff-summary{margin:16px 0}.diff-section{margin:24px 0}.diff-section h2{font-size:15px;margin:0 0 4px}.diff-open-reviews{margin:16px 0;padding:12px 16px;border:1px solid var(--border);border-radius:6px}.diff-open-reviews h2{font-size:14px;margin:0 0 8px}.diff-open-reviews ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}.diff-search{display:flex;align-items:center;gap:12px;margin:16px 0 8px}.diff-search input{flex:1;max-width:420px}.diff-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.diff-list{list-style:none;margin:8px 0 0;padding:0;border:1px solid var(--border);border-radius:6px;max-height:22rem;overflow-y:auto;overscroll-behavior:contain}.diff-row{display:flex;align-items:baseline;gap:8px;padding:2px 10px;border-bottom:1px solid var(--border);font-size:12px;line-height:1.6}.diff-row:last-child{border-bottom:none}.diff-no-check{display:inline-block;width:13px;flex:none}.diff-kind{flex:none;font-size:10px;padding:0 6px;min-width:132px}.diff-kind.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--text)}.diff-kind.warn{background:var(--warning-bg);color:var(--warning-text)}.diff-kind.neutral{border:1px solid var(--border);color:var(--text-muted)}.diff-tag{flex:none;font-weight:600;width:190px;overflow-wrap:anywhere}.diff-detail{flex:0 1 auto;min-width:0;overflow-wrap:anywhere}.diff-drawings{flex:none;margin-left:auto;padding-left:16px;color:var(--text-muted);font-size:11px;white-space:nowrap}.diff-drawings+.diff-rownum{margin-left:12px;padding-left:0}.diff-rownum{flex:none;margin-left:auto;padding-left:16px;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.diff-ruleout{flex:none;display:inline-flex;gap:12px;padding-left:16px;white-space:nowrap}.diff-ruleout label{display:inline-flex;align-items:center;gap:4px;color:var(--text);font-size:11px;cursor:pointer}.diff-ruleout input{margin:0}.diff-row>.diff-ruleout:last-child:not(.diff-rownum+.diff-ruleout){margin-left:auto}.diff-apply{display:flex;align-items:center;gap:16px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.presence-stack{display:inline-flex;align-items:center;gap:8px}.presence-avatars{display:inline-flex;align-items:center}.presence-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:.68rem;font-weight:700;letter-spacing:.02em;background:var(--person-colour, var(--accent));color:#fff;border:2px solid var(--bg);margin-left:-6px;flex:none}.presence-avatar:first-child{margin-left:0}.presence-avatar-overflow{background:var(--text-muted)}.presence-names{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.toolbar-presence{display:inline-flex;align-items:center;margin-left:4px}.old-tag-group.watched{position:relative;z-index:2;border-color:transparent;overflow:visible}.old-tag-group.watched:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:1;border:3px solid transparent;background-image:var(--watcher-ring);background-origin:border-box;background-clip:border-box;-webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude}.old-tag-group.watched:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:0;animation:watcher-pulse 2s ease-out infinite}@keyframes watcher-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--watcher-colour, var(--accent)) 60%,transparent)}40%{box-shadow:0 0 0 6px color-mix(in srgb,var(--watcher-colour, var(--accent)) 28%,transparent)}to{box-shadow:0 0 0 12px color-mix(in srgb,var(--watcher-colour, var(--accent)) 0%,transparent)}}@media (prefers-reduced-motion: reduce){.old-tag-group.watched:after{animation:none;opacity:0}}.old-tag-watchers{display:inline-flex;align-items:center;margin-right:4px;flex:none;padding-right:4px}.old-tag-watchers .presence-stack,.old-tag-watchers .presence-avatars{flex:none}.profile-form{display:flex;flex-direction:column;gap:14px}.profile-intro{margin:0;font-size:.85rem}.profile-preview{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2, transparent)}.profile-preview-avatar{width:34px;height:34px;font-size:.95rem}.profile-preview-name{font-weight:600}.profile-colours{border:none;padding:0;margin:0}.profile-colours legend{padding:0;font-size:.85rem;color:var(--text-muted);margin-bottom:6px}.profile-swatches{display:flex;flex-wrap:wrap;gap:8px}.profile-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;background:var(--person-colour);color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.profile-swatch.selected{outline:2px solid var(--text);outline-offset:2px}.profile-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-card-presence{margin-bottom:6px}.user-chip-button{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:none;font:inherit;color:inherit;cursor:pointer;border-radius:999px;padding:2px 8px 2px 3px}.user-chip-button:hover{border-color:var(--border)}.user-chip-button .presence-avatar{width:20px;height:20px;font-size:.62rem}.line-card-presence{margin-top:10px}.card-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit}.project-card a:not(.card-open-overlay),.project-card button:not(.card-gear),.project-card input,.project-card select{position:relative;z-index:1}.project-card .card-gear{z-index:1}.project-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}:root{--band: rgba(17, 24, 39, .035)}@media (prefers-color-scheme: dark){:root{--band: rgba(255, 255, 255, .045)}}.grouped-row.banded .old-tag-group:not(.status-tinted):not(.watched){background:var(--band)}.status-admin-page .admin-row-actions,.status-admin-page .flat-table td{white-space:normal;overflow:visible}.status-admin-page .flat-table tbody tr{height:auto}.admin-tabs{display:flex;gap:4px;margin:16px 0 8px;border-bottom:1px solid var(--border)}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:8px 14px;margin-bottom:-1px}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.status-admin-page td.admin-row-actions{white-space:nowrap;width:1%}.admin-row-actions-inner{display:flex;gap:14px;align-items:center}.status-admin-page .flat-table th{white-space:nowrap}.row-inactive td{opacity:.55}.status-admin-page .flat-table tbody tr.row-flagged td{background:var(--warning-bg)!important}.admin-add{margin-top:24px}.admin-add h2{font-size:1rem;margin-bottom:4px}.admin-add .status-add{align-items:center;flex-wrap:wrap}.admin-add .status-add select,.admin-add .status-add button{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;white-space:nowrap}.admin-add .status-add button{cursor:pointer}.admin-add>.muted{margin-top:6px}.dev-login-chip{margin-left:12px;padding:3px 8px;border-radius:4px;background:var(--danger-bg);color:var(--danger-text);border:1px solid currentColor;font-size:11px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.dev-role-switcher{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:2px 6px 2px 8px;border-radius:4px;background:var(--danger-bg);color:var(--danger-text);border:1px solid currentColor;font-size:11px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.dev-role-switcher-label{opacity:.8}.dev-role-switcher select{background:transparent;color:inherit;border:none;font:inherit;font-weight:700;padding:1px 2px;cursor:pointer}.dev-role-switcher option{background:var(--bg);color:var(--text);font-weight:500}.dev-role-switcher select:disabled{cursor:progress;opacity:.6}.admin-role-note{font-size:11px;margin-top:2px}.admin-log-when{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-muted)}
