:root{color:#ccc;background:#1e1e1e;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;line-height:1.4;--bg: #1e1e1e;--panel: #252526;--panel-raised: #2d2d30;--line: #3c3c3c;--ring: #007acc;--ink: #cccccc;--muted: #858585;--accent: #2fbe9a;--accent-soft: rgba(47, 190, 154, .15);--warning: #e8bc66;--danger: #ff6b6b;--note: #f3c96b;--rect: #ff845e;--highlight: #f6e066}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:var(--bg)}#root{height:100vh}button{font:inherit;border:none;background:none;color:inherit;cursor:pointer;padding:0}input,textarea{font:inherit}.auth-shell{display:flex;align-items:center;justify-content:center;height:100vh;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;padding:24px;background:radial-gradient(circle at top,rgba(47,190,154,.16),transparent 42%),linear-gradient(180deg,#1f232a,#171a20)}.auth-card,.session-picker-card,.shell-card{width:min(100%,480px);padding:24px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#1a1f26f5;box-shadow:0 24px 48px #00000059}.session-picker-card{width:min(100%,640px)}.shell-card{width:min(100%,720px)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.auth-title{margin:10px 0 8px;font-size:28px;line-height:1.1;color:#f3f5f8}.auth-copy{margin:0 0 8px;color:#aab3bf;font-size:14px;line-height:1.5}.shell-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border-radius:8px;font-size:13px}.shell-banner-error{background:#ff6b6b1f;border:1px solid rgba(255,107,107,.2);color:#ffb5b5}.shell-inline-button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:999px;background:#ffffff14;color:#f3f5f8;font-size:12px;font-weight:600}.shell-inline-button:hover{background:#ffffff1f}.shell-page-actions{display:flex;justify-content:flex-start;margin-bottom:4px}.auth-submit{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:8px;background:linear-gradient(180deg,#39c7a2,#239d7d);color:#0f1715;font-weight:700}.auth-submit:disabled{opacity:.6;cursor:default}.session-picker-section{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.session-picker-section:first-of-type{margin-top:6px}.session-picker-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.session-picker-section-header h2{margin:0;font-size:15px;color:#f3f5f8}.session-picker-section-header span{font-size:12px;color:#95a0af}.session-picker-empty{padding:14px;border-radius:10px;background:#ffffff0a;color:#95a0af;font-size:13px}.session-picker-list{display:flex;flex-direction:column;gap:8px;max-height:min(42vh,420px);overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.session-picker-item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--ink);text-align:left}.session-picker-item:hover:not(:disabled){border-color:#2fbe9a5c;background:#2fbe9a14}.session-picker-item:disabled{opacity:.7;cursor:default}.session-picker-item-main{display:flex;flex-direction:column;gap:4px;min-width:0}.session-picker-item-main strong{color:#f3f5f8;font-size:14px}.session-picker-item-main span{color:#95a0af;font-size:12px}.session-picker-subtle{color:#7f8b98!important}.session-picker-item-action{color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap}.session-picker-field,.auth-field{display:flex;flex-direction:column;gap:6px}.session-picker-field span,.auth-field span{font-size:12px;color:#aab3bf}.session-picker-input,.auth-field input{height:40px;padding:0 12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#090d1299;color:#f3f5f8}.session-picker-input:focus,.auth-field input:focus{outline:none;border-color:var(--accent)}.publish-form{display:flex;flex-direction:column;gap:18px;margin-top:6px}.publish-form-group{display:flex;flex-direction:column;gap:8px}.publish-form-label{font-size:13px;font-weight:600;color:#d0d8e4;letter-spacing:.01em}.publish-sheet-preview{display:flex;flex-direction:column;min-height:140px;max-height:320px;overflow-y:auto;margin-top:2px;padding:8px 10px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);gap:1px}.publish-sheet-item{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:12.5px;line-height:1.4}.publish-sheet-number{color:var(--accent);font-variant-numeric:tabular-nums;min-width:52px;flex-shrink:0;font-weight:600}.publish-sheet-name{color:#c8d2de}.shell-card-wide{width:min(100%,980px)}.shell-header-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.shell-nav-button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:6px;background:transparent;color:#aab3bf;font-size:12px;font-weight:500;border:none}.shell-nav-button:hover:not(:disabled){background:#ffffff0f;color:#f3f5f8}.shell-header-action{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 14px;border-radius:8px;background:#2fbe9a1f;border:1px solid rgba(47,190,154,.26);color:#aef0dd;font-size:12px;font-weight:600}.shell-header-action:hover:not(:disabled){background:#2fbe9a33;border-color:#2fbe9a66}.shell-header-action:disabled{opacity:.6;cursor:default}.shell-page-title{margin-bottom:8px}.shell-context-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:4px;color:#aab3bf;font-size:12px}.shell-context-item{display:inline-flex;align-items:baseline;gap:6px}.shell-context-label{text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:#6d7683;font-weight:700}.shell-context-value{color:#f3f5f8;font-size:13px;font-weight:600}.shell-context-user{margin-left:auto;color:#95a0af}.shell-banner-info,.shell-banner-warn{margin-top:12px}.shell-banner-info{background:#6cb5ff1f;border:1px solid rgba(108,181,255,.18);color:#b7d5ff}.shell-banner-warn{background:#e8bc661f;border:1px solid rgba(232,188,102,.18);color:#f0d59c}.shell-banner-confirm{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#6cb5ff1f;border:1px solid rgba(108,181,255,.22);color:#d7e6fb;padding:14px 16px;border-radius:8px}.shell-banner-body{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.shell-banner-body strong{color:#fff}.shell-banner-error-text{color:#f2a0a0;font-size:12px}.shell-banner-primary{flex-shrink:0;background:#2d7fff;border:1px solid #2d7fff;color:#fff;padding:8px 14px;border-radius:6px;font-weight:600;cursor:pointer}.shell-banner-primary:disabled{opacity:.6;cursor:not-allowed}.shell-banner-primary:not(:disabled):hover{background:#4490ff;border-color:#4490ff}.publish-progress{margin-top:14px;display:flex;flex-direction:column;gap:8px}.publish-progress-track{position:relative;height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.publish-progress-bar{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#2d7fff,#7bb0ff);border-radius:999px;transition:width .18s ease-out}.publish-progress-label{font-size:12px;color:#b7c6dc}.list-section{margin-top:22px}.manage-linked-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.list-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.list-section-header h2{margin:0;font-size:14px;color:#f3f5f8;font-weight:600}.list-section-header span{font-size:12px;color:#95a0af}.list-card,.list-card-linked{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#ffffff09}.list-card-linked{background:linear-gradient(180deg,#2fbe9a1a,#2fbe9a0a),#ffffff08;border-color:#2fbe9a42}.list-card-clickable{width:100%;text-align:left;cursor:pointer}.list-card-clickable:hover:not(:disabled){border-color:#2fbe9a5c;background:#2fbe9a14}.list-card-clickable:disabled{opacity:.7;cursor:default}.list-card-main{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1 auto}.list-card-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.list-card-title-row strong{color:#f3f5f8;font-size:15px}.list-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;color:#aab3bf;font-size:12px}.list-stat{display:inline-flex;align-items:baseline;gap:5px}.list-stat-label{text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:#6d7683;font-weight:700}.list-stat-value{color:#d2dae5;font-size:12px;font-weight:500}.list-meta-spacer{flex:1 1 auto}.list-count-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.list-count-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em}.list-count-chip-open{background:#f09e5a29;color:#f5c19a}.list-count-chip-addressed{background:#2fbe9a29;color:#aef0dd}.list-count-chip-ignored{background:#ffffff0f;color:#95a0af}.list-count-empty{display:inline-flex;align-items:center;padding:0 9px;min-height:22px;border-radius:999px;font-size:11px;font-weight:500;background:#ffffff0a;color:#6d7683;font-style:italic}.list-card-list{display:flex;flex-direction:column;gap:10px;max-height:min(48vh,520px);overflow-y:auto;padding-right:4px}.list-action-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex-shrink:0}.list-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.list-badge-linked-here{background:#2fbe9a2e;color:#aef0dd}.list-badge-not-in-revit{background:#ffffff0f;color:#95a0af}.list-badge-linked-other-model{background:#e8bc6624;color:#f0d59c}.list-status-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em}.list-status-chip-draft{background:#ffffff0f;color:#95a0af}.list-status-chip-open{background:#f09e5a24;color:#f5c19a}.list-status-chip-in_progress{background:#6cb5ff24;color:#b7d5ff}.list-status-chip-pending_closeout{background:#f0d59c24;color:#f0d59c}.list-status-chip-closed{background:#ffffff0a;color:#6d7683}.shell-primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 14px;border-radius:999px;background:linear-gradient(180deg,#39c7a2,#239d7d);color:#0f1715;font-size:12px;font-weight:700;border:none}.shell-primary-button:hover:not(:disabled){filter:brightness(1.08)}.shell-primary-button:disabled{opacity:.5;cursor:default}.shell-primary-button-danger{background:linear-gradient(180deg,#ff7a7a,#d94a4a);color:#1a0a0a}.shell-danger-button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 14px;border-radius:999px;background:#ff6b6b1f;color:#ffb5b5;font-size:12px;font-weight:700;border:1px solid rgba(255,107,107,.28);cursor:pointer}.shell-danger-button:hover:not(:disabled){background:#ff6b6b2e;border-color:#ff6b6b66}.shell-danger-button:disabled{opacity:.5;cursor:default}.list-filter-row{display:inline-flex;align-items:center;gap:4px;padding:3px;margin-bottom:10px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);flex-wrap:wrap}.list-filter-button{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:7px;background:transparent;color:#aab3bf;font-size:12px;font-weight:600;border:none}.list-filter-button:hover:not(.list-filter-button-active){color:#f3f5f8;background:#ffffff0a}.list-filter-button-active{background:#ffffff17;color:#f3f5f8}.list-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ffffff14;color:#d2dae5;font-size:10px;font-weight:700}.list-filter-button-active .list-filter-count{background:#2fbe9a40;color:#aef0dd}.shell-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06090eb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.shell-confirm-card{width:min(100%,440px);background:#171c24;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px 22px;box-shadow:0 20px 48px #00000073;display:flex;flex-direction:column;gap:12px}.shell-confirm-title{margin:0;font-size:15px;font-weight:700;color:#f3f5f8}.shell-confirm-message{margin:0;font-size:13px;line-height:1.45;color:#aab3bf}.shell-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@media(max-width:840px){.list-card-linked,.list-card,.shell-header-bar{flex-direction:column;align-items:stretch}.list-action-row{justify-content:flex-start}.shell-header-action,.shell-nav-button{width:100%}.shell-context-user{margin-left:0}.list-meta-spacer{display:none}}.app-shell{display:grid;grid-template-rows:auto auto auto auto 1fr auto;height:100vh;overflow:hidden;color:var(--ink)}.app-main{display:flex;flex-direction:row;min-height:0;overflow:hidden}.app-main-resizing-vertical,.app-main-resizing-vertical *{cursor:row-resize!important;-webkit-user-select:none;user-select:none}.app-content{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.app-shell-resizing,.app-shell-resizing *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.app-shell-resizing-vertical,.app-shell-resizing-vertical *{cursor:row-resize!important;-webkit-user-select:none;user-select:none}.app-topbar{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 12px;background:#3c3c3c;border-bottom:1px solid #2b2b2b;-webkit-user-select:none;user-select:none}.topbar-brand{display:flex;align-items:center;gap:8px}.brand-mark{width:18px;height:18px;border-radius:3px;background:linear-gradient(135deg,#2fbe9a,#507cdf);color:#fff;font-size:8px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.brand-name{font-size:12px;font-weight:600;color:#e0e0e0;letter-spacing:-.01em}.topbar-status{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.topbar-chip{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;background:#2fbe9a24;color:#b6f1de;font-size:11px;font-weight:600}.topbar-chip:hover{background:#2fbe9a38}.topbar-user{color:#d7dee8}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot-ok{background:#2fbe9a}.status-dot-warn{background:#e8bc66}.status-dot-err{background:#ff6b6b}.app-menubar{display:flex;align-items:stretch;min-height:28px;padding:0 8px;background:linear-gradient(180deg,#303034,#28282c);border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none}.app-menubar-inner{display:flex;align-items:stretch;gap:2px}.app-menu{position:relative;display:flex;align-items:stretch}.app-menu-trigger{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:0 10px;color:var(--ink);font-size:12px;border-radius:4px 4px 0 0;transition:background 90ms ease,color 90ms ease}.app-menu-trigger:hover,.app-menu-trigger-open{background:#ffffff14}.app-menu-popover{position:absolute;top:calc(100% - 1px);left:0;z-index:80;min-width:238px;padding:6px;background:#242428;border:1px solid var(--line);border-radius:0 8px 8px;box-shadow:0 20px 36px #0006;display:flex;flex-direction:column;gap:2px}.app-menu-item{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:28px;padding:0 10px 0 8px;border-radius:6px;color:var(--ink);text-align:left;transition:background 90ms ease,color 90ms ease}.app-menu-item:hover:not(:disabled),.app-menu-item-checked{background:#ffffff14}.app-menu-item:disabled{color:var(--muted);cursor:default}.app-menu-item-check{display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}.app-menu-item-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-menu-item-shortcut{color:var(--muted);font-size:11px;letter-spacing:.01em;white-space:nowrap}.app-menu-separator{height:1px;margin:4px 6px;background:#ffffff14}.app-toolbar{display:flex;align-items:center;height:34px;padding:0 4px;gap:1px;background:var(--panel);border-bottom:1px solid var(--line)}.toolbar-group{display:flex;align-items:center;gap:1px}.toolbar-group-right{margin-left:auto}.toolbar-sep{width:1px;height:18px;margin:0 5px;background:var(--line)}.tb-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;border-radius:3px;color:var(--muted);transition:background 80ms,color 80ms}.tb-btn:hover{background:#ffffff12;color:var(--ink)}.tb-btn:disabled{opacity:.4;pointer-events:none}.tb-btn-active{background:var(--accent-soft);color:var(--accent)}.tb-btn-text{width:auto;padding:0 6px;font-size:11px;font-weight:600}.zoom-readout{min-width:40px;height:26px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);-webkit-user-select:none;user-select:none}.scale-selector{display:inline-flex;align-items:center;gap:8px;min-width:0}.scale-selector-label{max-width:180px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-selector-input{height:28px;min-width:164px;padding:0 10px;border:1px solid rgba(255,255,255,.16);border-radius:4px;background:linear-gradient(180deg,#36363a,#2c2c2f);color:var(--ink);font-size:12px}.scale-selector-input:focus{outline:none;border-color:var(--ring)}.app-body{display:flex;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden}.access-bar{display:flex;flex-direction:column;width:34px;flex-shrink:0;background:#333337;border-right:1px solid var(--line);padding:4px 0;gap:1px;align-items:center}.ab-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:3px;color:var(--muted);transition:background 80ms,color 80ms}.ab-btn:hover{background:#ffffff14;color:var(--ink)}.ab-btn-active{color:var(--accent);background:var(--accent-soft)}.side-panel{display:flex;flex-direction:column;flex-shrink:0;background:var(--panel);overflow:visible;width:220px;container-name:side-panel;container-type:inline-size}.panel-left{border-right:1px solid var(--line);position:relative;z-index:2}.panel-resize-handle{position:absolute;top:0;right:-7px;width:14px;height:100%;cursor:col-resize;z-index:20;display:flex;align-items:center;justify-content:center;touch-action:none}.panel-resize-handle:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);background:#ffffff1f;transition:background .12s,box-shadow .12s}.panel-resize-handle:hover:before,.panel-resize-handle-active:before{background:var(--accent);box-shadow:0 0 0 1px #2fbe9a38}.panel-right{border-left:1px solid var(--line)}.panel-header{display:flex;align-items:center;justify-content:space-between;height:26px;padding:0 6px 0 10px;background:var(--panel-raised);border-bottom:1px solid var(--line);flex-shrink:0}.panel-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.panel-close{width:18px;height:18px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--muted)}.panel-close:hover{background:#ffffff1a;color:var(--ink)}.panel-body{flex:1;overflow-y:auto;padding:4px}.panel-empty{padding:16px 8px;text-align:center;font-size:12px;color:var(--muted)}.thumb-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}@container side-panel (min-width: 300px){.thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.thumb-card{display:flex;flex-direction:column;width:100%;min-width:0;padding:5px;border-radius:3px;border:1px solid transparent;text-align:center;transition:background 80ms,border-color 80ms}.thumb-card:hover{background:#ffffff0a;border-color:var(--line)}.thumb-card-active{background:var(--accent-soft);border-color:#2fbe9a66}.thumb-preview{aspect-ratio:4 / 3;background:#1a1a1c;border:1px solid var(--line);border-radius:2px;display:flex;align-items:center;justify-content:center;margin-bottom:4px;overflow:hidden}.thumb-image{display:block;width:100%;height:100%;object-fit:contain;background:#fff}.thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ffffff05,#ffffff03),#1a1a1c}.thumb-placeholder-loading{background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08),#1a1a1c;background-size:200% 100%;animation:thumb-shimmer 1.4s linear infinite}.thumb-placeholder-error{background:linear-gradient(180deg,#ff6b6b14,#ff6b6b05),#1a1a1c}.thumb-number{font-size:9px;color:var(--muted);font-weight:600}.thumb-label{font-size:10px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.thumb-meta{font-size:9px;color:var(--muted);margin-top:1px}@keyframes thumb-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.canvas-viewport{flex:1;min-width:0;overflow:auto;background:#565656}.viewport-grab,.viewport-grab .page-surface,.viewport-grab .pdf-canvas,.viewport-grab .markup-layer,.viewport-grab .markup-item,.viewport-grab .markup-item-selected,.viewport-grab .markup-item *,.viewport-grab .markup-item-selected *{cursor:grab}.viewport-grabbing,.viewport-grabbing .page-surface,.viewport-grabbing .pdf-canvas,.viewport-grabbing .markup-layer,.viewport-grabbing .markup-item,.viewport-grabbing .markup-item-selected,.viewport-grabbing .markup-item *,.viewport-grabbing .markup-item-selected *{cursor:grabbing}.viewport-move,.viewport-move .page-surface,.viewport-move .pdf-canvas,.viewport-move .markup-layer,.viewport-move .markup-item,.viewport-move .markup-item-selected,.viewport-move .markup-item *,.viewport-move .markup-item-selected *{cursor:move}.viewport-crosshair,.viewport-crosshair .page-surface,.viewport-crosshair .pdf-canvas,.viewport-crosshair .markup-layer,.viewport-crosshair .markup-item,.viewport-crosshair .markup-item-selected{cursor:crosshair}.viewport-textbox,.viewport-textbox .page-surface,.viewport-textbox .pdf-canvas,.viewport-textbox .markup-layer,.viewport-textbox .markup-item,.viewport-textbox .markup-item-selected{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v6M12 15v6M3 12h6M15 12h6' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3Crect x='11.5' y='11.5' width='1' height='1' fill='%23000'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' fill='%23fff' stroke='%23000' stroke-width='1.1'/%3E%3Ctext x='17' y='19' font-family='Segoe UI,Arial,sans-serif' font-size='6.5' text-anchor='middle' fill='%23000'%3EA%3C/text%3E%3C/svg%3E") 12 12,crosshair}.canvas-stage{display:flex;justify-content:center;align-items:center;min-width:fit-content;min-height:fit-content}.page-surface{position:relative;flex:none;background:#fff;box-shadow:0 1px 6px #00000059,0 0 0 1px #00000026}.pdf-canvas{display:block;width:100%;height:100%}.markup-layer{position:absolute;top:0;right:0;bottom:0;left:0}.measure-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.snap-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible;z-index:50}.markup-item{position:absolute;border:none;padding:0;cursor:default;background:transparent;-webkit-user-select:none;user-select:none}.markup-item-selected{cursor:move;outline:none}.markup-item-hovered{z-index:2}.markup-item-hovered.markup-item-rectangle,.markup-item-hovered.markup-item-highlight,.markup-item-hovered.markup-item-note,.markup-item-hovered.markup-item-text{box-shadow:0 0 0 1.5px #3b9eff}.markup-item-hovered .markup-line-svg,.markup-item-hovered .markup-dimension-svg,.markup-item-hovered .markup-path-svg,.markup-item-hovered .markup-callout-leader{filter:drop-shadow(0 0 .9px #3b9eff) drop-shadow(0 0 4px rgba(59,158,255,.35))}.markup-item-hovered .markup-callout-box,.markup-item-multi-selected.markup-item-rectangle,.markup-item-multi-selected.markup-item-highlight,.markup-item-multi-selected.markup-item-note,.markup-item-multi-selected.markup-item-text{box-shadow:0 0 0 1.5px #3b9eff}.markup-item-multi-selected .markup-line-svg,.markup-item-multi-selected .markup-dimension-svg,.markup-item-multi-selected .markup-path-svg,.markup-item-multi-selected .markup-callout-leader{filter:drop-shadow(0 0 .9px #3b9eff) drop-shadow(0 0 4px rgba(59,158,255,.35))}.markup-item-multi-selected .markup-callout-box{box-shadow:0 0 0 1.5px #3b9eff}.markup-item-draft{pointer-events:none;opacity:.7}.markup-item-command-preview{pointer-events:none;opacity:.58;filter:saturate(.9)}.markup-item-line,.markup-item-dimension{overflow:visible}.markup-line-svg,.markup-dimension-svg{display:block;width:100%;height:100%;overflow:visible}.selection-frame{position:absolute;pointer-events:none;z-index:3}.selection-frame-group{z-index:4}.selection-frame-group-editing{z-index:2}.selection-frame-group-editing .selection-border{border-color:#2ecc71;border-style:solid}.selection-marquee{position:absolute;pointer-events:none}.selection-marquee-window{border:1.5px solid #6c7cff;background:#6c7cff1f}.selection-marquee-crossing{border:1.5px dashed #38c27a;background:#38c27a24}.selection-border{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1.5px dashed #3b9eff}.selection-handle{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:4}.selection-handle-corner{width:10px;height:10px;border-radius:50%;background:#c8a530;border:1.5px solid #8c7220;transform:translate(-50%,-50%)}.selection-handle-edge{width:8px;height:8px;background:#c8a530;border:1.5px solid #8c7220;transform:translate(-50%,-50%)}.selection-handle-rotate{width:12px;height:12px;border-radius:50%;background:#3b9eff;border:1.5px solid #1a6fcc;transform:translate(-50%,-50%);cursor:grab}.selection-handle-rotate-stem{position:absolute;left:50%;width:1.5px;background:#3b9eff;transform:translate(-50%)}.selection-handle-line{width:12px;height:12px;border-radius:50%;background:#3b9eff;border:1.5px solid #1a6fcc;transform:translate(-50%,-50%);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M4 1.5l8 5.5-4.5 1-1.5 5z' fill='%23000'/%3E%3C/svg%3E") 4 2,default;transition:transform .12s ease,background-color .12s ease,border-color .12s ease,box-shadow .12s ease}.selection-handle-line:hover{background:#78c4ff;border-color:#f2f8ff;transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 2px #3b9eff47,0 0 10px #3b9eff59}.selection-handle-line:active{transform:translate(-50%,-50%) scale(1.04)}.selection-handle-callout-move{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#fff;border:1.5px solid #3b9eff;color:#256fe0;transform:translate(-50%,-50%);cursor:move;box-shadow:0 1px 3px #0000002e}.selection-handle-callout-move svg{width:12px;height:12px;display:block}.selection-frame-path .selection-border{border-color:#3b9eff}.selection-handle-path-transform{width:10px;height:10px;background:#3b9eff;border:1.5px solid #1a6fcc;transform:translate(-50%,-50%)}.selection-handle-path-point{width:10px;height:10px;border-radius:50%;background:#e0c34c;border:1.5px solid #8c7220;transform:translate(-50%,-50%);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M4 1.5l8 5.5-4.5 1-1.5 5z' fill='%23000'/%3E%3C/svg%3E") 4 2,default}.selection-handle-nw{cursor:nwse-resize}.selection-handle-ne,.selection-handle-sw{cursor:nesw-resize}.selection-handle-se{cursor:nwse-resize}.selection-handle-n,.selection-handle-s{cursor:ns-resize}.selection-handle-e,.selection-handle-w{cursor:ew-resize}.markup-item-rectangle{border:var(--markup-stroke-width, 2px) solid var(--markup-color, var(--rect));background:var(--markup-fill-background, color-mix(in srgb, var(--markup-color, var(--rect)) 12%, transparent))}.markup-item-highlight{border:1px solid rgba(0,0,0,.05);background:var(--markup-fill-background, color-mix(in srgb, var(--markup-color, var(--highlight)) 38%, transparent))}.markup-item-note{display:grid;grid-template-rows:3px 1fr;border-radius:3px;overflow:hidden;border:1px solid rgba(0,0,0,.12);background:#fffbe8;color:#2e2304;box-shadow:0 2px 6px #0000002e}.markup-note-cap{background:var(--markup-color, var(--note))}.markup-note-text{padding:3px 5px;font-size:10px;text-align:left;overflow:hidden}.markup-item-text{display:block;box-sizing:border-box;padding:0;color:var(--markup-color, #202020);background:#fff3;overflow:hidden}.markup-item-text-draft{border:1px dashed #202020;background:#ffffff8c}.markup-text-content{display:flex;align-items:var(--markup-vertical-align, flex-start);justify-content:var(--markup-horizontal-align, flex-start);width:100%;height:100%;min-width:0;box-sizing:border-box;padding:var(--markup-text-padding, 2px) calc(var(--markup-text-padding, 2px) * 2);font-size:var(--markup-font-size, 10px);font-family:var(--markup-font-family, Arial);font-style:var(--markup-font-style, normal);font-weight:var(--markup-font-weight, 400);text-decoration:var(--markup-text-decoration, none);color:var(--markup-color, #202020);text-align:var(--markup-text-align, left);line-height:1.2;white-space:pre-wrap;overflow-wrap:anywhere}.markup-text-editor{position:absolute;margin:0;border:1px solid #1a6fcc;outline:none;resize:none;overflow:hidden;font-size:var(--markup-font-size, 10px);line-height:1.2;color:var(--markup-color, #202020);background:#fffffff5;padding:var(--markup-text-padding, 2px) calc(var(--markup-text-padding, 2px) * 2);font-family:var(--markup-font-family, Arial);font-style:var(--markup-font-style, normal);font-weight:var(--markup-font-weight, 400);text-decoration:var(--markup-text-decoration, none);text-align:var(--markup-text-align, left);z-index:3}.viewport-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-size:13px}.inspector-section{padding:10px;border-bottom:1px solid var(--line)}.inspector-section:last-child{border-bottom:none}.inspector-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}.inspector-row{display:flex;justify-content:space-between;align-items:baseline;padding:2px 0;font-size:12px}.inspector-label{color:var(--muted)}.inspector-value{color:var(--ink)}.inspector-field{display:flex;flex-direction:column;gap:4px;margin-top:8px}.inspector-field span{font-size:11px;color:var(--muted)}.inspector-field input,.inspector-field select,.inspector-field textarea{width:100%;padding:4px 8px;border:1px solid var(--line);border-radius:3px;background:#1e1e1e;color:var(--ink);font-size:12px}.inspector-field input:focus,.inspector-field select:focus,.inspector-field textarea:focus{outline:none;border-color:var(--ring)}.inspector-field input[type=color]{height:26px;padding:2px}.inspector-field textarea{resize:vertical;min-height:56px}.selection-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tool-tag{display:inline-flex;padding:2px 8px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.tool-tag-note{background:#f3c96b2e;color:#f3c96b}.tool-tag-rectangle{background:#ff845e2e;color:#ff9c7d}.tool-tag-highlight{background:#f6df772e;color:#f6df77}.tool-tag-line,.tool-tag-dimension{background:#3b9eff2e;color:#6cb5ff}.tool-tag-text{background:#2020202e;color:#d9d9d9}.delete-btn{padding:2px 8px;border-radius:3px;font-size:11px;color:var(--danger);border:1px solid rgba(255,107,107,.3)}.delete-btn:hover{background:#ff6b6b1a}.app-statusbar{display:flex;align-items:center;justify-content:space-between;height:22px;padding:0 10px;background:#2d2d30;border-top:1px solid var(--line);font-size:11px;color:var(--muted);-webkit-user-select:none;user-select:none}.status-left,.status-right{display:flex;align-items:center;gap:14px}.sync-readout{max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-readout{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--warning)}.sync-readout-success{color:var(--accent)}.sync-readout-error{color:var(--danger)}.sync-readout-loading{color:var(--warning)}.auth-shell::-webkit-scrollbar,.session-picker-list::-webkit-scrollbar,.list-card-list::-webkit-scrollbar,.panel-body::-webkit-scrollbar,.bottom-panel-body::-webkit-scrollbar,.canvas-viewport::-webkit-scrollbar{width:10px;height:10px}.auth-shell::-webkit-scrollbar-track,.session-picker-list::-webkit-scrollbar-track,.list-card-list::-webkit-scrollbar-track,.panel-body::-webkit-scrollbar-track,.bottom-panel-body::-webkit-scrollbar-track,.canvas-viewport::-webkit-scrollbar-track{background:transparent}.canvas-viewport::-webkit-scrollbar-corner{background:#565656}.auth-shell::-webkit-scrollbar-thumb,.session-picker-list::-webkit-scrollbar-thumb,.list-card-list::-webkit-scrollbar-thumb,.panel-body::-webkit-scrollbar-thumb,.bottom-panel-body::-webkit-scrollbar-thumb,.canvas-viewport::-webkit-scrollbar-thumb{background:#ffffff1f;border:2px solid transparent;border-radius:5px;background-clip:padding-box}.auth-shell::-webkit-scrollbar-thumb:hover,.session-picker-list::-webkit-scrollbar-thumb:hover,.list-card-list::-webkit-scrollbar-thumb:hover,.panel-body::-webkit-scrollbar-thumb:hover,.bottom-panel-body::-webkit-scrollbar-thumb:hover,.canvas-viewport::-webkit-scrollbar-thumb:hover{background:#ffffff38;background-clip:padding-box}.tb-btn-stub{opacity:.3;cursor:not-allowed}.properties-bar{display:flex;align-items:center;height:32px;padding:0 8px;gap:2px;background:#2a2a2d;border-bottom:1px solid var(--line);font-size:11px;-webkit-user-select:none;user-select:none}.pb-section{display:flex;align-items:center;gap:4px;flex-shrink:0}.pb-section-meta{min-width:0;gap:6px}.pb-section-text{flex:1;min-width:0}.pb-section-right{margin-left:auto}.pb-divider{width:1px;height:16px;margin:0 6px;background:var(--line);flex-shrink:0}.pb-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-right:2px}.pb-meta-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.pb-meta-value{min-width:0;color:var(--ink);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.properties-bar-idle .pb-section-meta:first-child{flex:1}.pb-type-tag{display:inline-flex;padding:1px 7px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.pb-type-note{background:#f3c96b2e;color:#f3c96b}.pb-type-rectangle{background:#ff845e2e;color:#ff9c7d}.pb-type-highlight{background:#f6df772e;color:#f6df77}.pb-type-line,.pb-type-dimension{background:#3b9eff2e;color:#6cb5ff}.pb-type-text{background:#cccccc1f;color:#d9d9d9}.pb-type-callout{background:#ff845e2e;color:#ff9c7d}.pb-type-polyline{background:#3b9eff2e;color:#6cb5ff}.pb-type-polygon{background:#8e44ad2e;color:#bb86fc}.pb-type-pen{background:#2ecc712e;color:#2ecc71}.color-picker{position:relative;display:inline-flex;flex-shrink:0}.color-picker-full{display:flex;width:100%}.color-picker-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;min-width:30px;height:22px;padding:0 5px 0 3px;border:1px solid rgba(255,255,255,.18);border-radius:4px;background:linear-gradient(180deg,#3a3a3d,#2e2e31);color:var(--ink)}.color-picker-trigger:hover{border-color:#ffffff47;background:linear-gradient(180deg,#444448,#323236)}.color-picker-trigger-main{display:inline-flex;align-items:center;gap:6px;min-width:0}.color-picker-trigger-frame{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:2px}.color-picker-trigger-swatch{width:14px;height:14px;border-radius:1px;display:block}.color-picker-trigger-value{min-width:0;font-size:12px;letter-spacing:.03em;white-space:nowrap}.color-picker-trigger-arrow{color:var(--muted);font-size:10px;line-height:1}.color-picker-full .color-picker-trigger{width:100%;justify-content:space-between;padding-right:8px}.color-picker-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:fit-content;min-width:188px;padding:8px;border:1px solid #55585d;border-radius:4px;background:#2f2f31;box-shadow:0 14px 30px #00000061}.color-picker-popover-expanded{width:220px}.color-picker-preview{display:flex;align-items:center;gap:8px;margin-bottom:8px}.color-picker-preview-swatch{display:block;width:18px;height:18px;border-radius:2px;border:1px solid rgba(255,255,255,.28);flex-shrink:0}.color-picker-preview-meta{display:flex;flex-direction:column;gap:1px;min-width:0}.color-picker-preview-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.color-picker-preview-value{font-size:12px;color:var(--ink);letter-spacing:.04em}.color-picker-grid,.color-picker-recents{display:grid;gap:4px}.color-picker-grid{display:flex;flex-direction:column;align-items:flex-start}.color-picker-row,.color-picker-recents{display:grid;grid-template-columns:repeat(8,18px);gap:4px;justify-content:flex-start}.color-picker-recents{margin-top:8px}.color-picker-cell,.color-picker-recent{width:18px;height:18px;border:1px solid rgba(255,255,255,.28);border-radius:1px;background:transparent;padding:0}.color-picker-cell:hover,.color-picker-recent-filled:hover{border-color:#fff}.color-picker-cell-active{box-shadow:inset 0 0 0 1px #ffffffeb}.color-picker-cell-empty{display:inline-flex;align-items:center;justify-content:center;background:#fffffff5}.color-picker-recent-empty{border-style:solid;border-color:#ffffff38;background:#ffffff08}.color-picker-empty-swatch{display:block;border-radius:1px;background:linear-gradient(135deg,transparent 0 41%,#ff3b30 41% 59%,transparent 59% 100%),#fff}.color-picker-cell-empty .color-picker-empty-swatch{width:100%;height:100%}.color-picker-custom{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:10px}.color-picker-slider-group{display:flex;flex-direction:column;gap:4px}.color-picker-slider-group span,.color-picker-input-label{font-size:11px;color:var(--muted)}.color-picker-slider-group input[type=range]{width:100%;height:12px;margin:0;border:1px solid rgba(255,255,255,.18);border-radius:2px;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none}.color-picker-slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:16px;border:1px solid rgba(255,255,255,.6);border-radius:2px;background:#f7f7f7;box-shadow:0 1px 4px #00000059}.color-picker-slider-group input[type=range]::-moz-range-thumb{width:10px;height:16px;border:1px solid rgba(255,255,255,.6);border-radius:2px;background:#f7f7f7;box-shadow:0 1px 4px #00000059}.color-picker-slider-group input[type=range]::-moz-range-track{height:12px;border:none;background:transparent}.color-picker-input-block{display:flex;align-items:center;gap:8px}.color-picker-rgb-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex:1}.color-picker-channel-input,.color-picker-hex-input{width:100%;height:30px;padding:0 8px;border:1px solid rgba(255,255,255,.18);border-radius:4px;background:#262629;color:#fff;font-size:12px}.color-picker-channel-input{text-align:center}.color-picker-channel-input:focus,.color-picker-hex-input:focus{outline:none;border-color:var(--ring)}.color-picker-hex-block{display:grid;grid-template-columns:auto minmax(0,1fr) 32px}.color-picker-add-btn{width:32px;height:30px;border-radius:4px;border:1px solid rgba(255,255,255,.18);background:#262629;color:#fff;font-size:22px;line-height:1}.color-picker-add-btn:hover{border-color:#ffffff57;background:#2e2e31}.color-picker-toggle{display:flex;align-items:center;justify-content:center;width:100%;height:18px;margin-top:6px;color:var(--muted);font-size:12px}.color-picker-toggle:hover{color:var(--ink)}.pb-input{height:22px;padding:0 4px;border:1px solid var(--line);border-radius:3px;background:#1e1e1e;color:var(--ink);font-size:11px}.pb-input:focus{outline:none;border-color:var(--ring)}.pb-input-sm{width:48px;text-align:center}.pb-input-text{flex:1;min-width:80px;max-width:260px}.pb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid var(--line);border-radius:4px;background:#1e1e1e;color:var(--muted);flex-shrink:0}.pb-icon-btn:hover,.pb-alignment-trigger:hover{border-color:#ffffff47;color:var(--ink);background:#252529}.pb-icon-btn-active,.pb-alignment-trigger.pb-icon-btn-active{border-color:#3b9eff94;color:#8bc5ff;background:#3b9eff1f}.pb-alignment-dropdown{position:relative;display:inline-flex;flex-shrink:0}.pb-alignment-trigger{width:auto;min-width:30px;gap:4px;padding:0 5px}.pb-alignment-trigger-icon,.pb-alignment-option{display:inline-flex;align-items:center;justify-content:center}.pb-alignment-trigger-caret{display:inline-flex;align-items:center;color:var(--muted)}.pb-alignment-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;display:flex;gap:4px;padding:6px;border:1px solid #55585d;border-radius:4px;background:#2f2f31;box-shadow:0 14px 30px #00000061}.pb-alignment-option{width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--muted)}.pb-alignment-option:hover{border-color:#ffffff2e;background:#ffffff0f;color:var(--ink)}.pb-alignment-option-active{border-color:#3b9eff94;background:#3b9eff1f;color:#8bc5ff}.numeric-stepper{position:relative;display:inline-flex;align-items:stretch;height:22px;border:1px solid var(--line);border-radius:4px;overflow:visible;background:#1e1e1e}.numeric-stepper-btn{width:22px;min-width:22px;border:none;background:#ffffff0a;color:var(--muted);font-size:14px;line-height:1}.numeric-stepper-btn:hover:not(:disabled){background:#ffffff14;color:var(--ink)}.numeric-stepper-btn:disabled{opacity:.35;cursor:default}.numeric-stepper-value-wrap{position:relative;display:inline-flex}.numeric-stepper-value-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:48px;padding:0 8px;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);background:transparent;color:var(--ink);font:inherit}.numeric-stepper-value-btn:hover{background:#ffffff0f}.numeric-stepper-value-btn-active{background:#3b9eff1f;color:#8bc5ff}.numeric-stepper-value-text{white-space:nowrap}.numeric-stepper-value-caret{display:inline-flex;color:var(--muted)}.numeric-stepper-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;display:flex;flex-direction:column;width:max-content;min-width:100%;max-height:240px;overflow-y:auto;padding:4px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#141922fa;box-shadow:0 12px 28px #0000003d}.numeric-stepper-option{display:grid;grid-template-columns:12px auto;align-items:center;gap:6px;min-height:24px;padding:4px 8px;border:none;border-radius:4px;background:transparent;color:var(--ink);text-align:left;font:inherit}.numeric-stepper-option:hover{background:#3b9eff1f}.numeric-stepper-option-active{color:#8bc5ff}.numeric-stepper-option-check{display:inline-flex;align-items:center;justify-content:center;min-width:12px;color:currentColor}.numeric-stepper-input{width:40px;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:center;padding:0 4px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.numeric-stepper-input::-webkit-outer-spin-button,.numeric-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.numeric-stepper-input:focus{outline:none;background:#ffffff08}.pb-unit{font-size:10px;color:var(--muted);margin-left:-2px}.pb-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:3px;color:var(--danger)}.pb-delete-btn:hover{background:#ff6b6b1f}.markup-item-polyline,.markup-item-polygon,.markup-item-pen{overflow:visible}.markup-path-svg{display:block;width:100%;height:100%;overflow:visible}.markup-item-callout{overflow:visible}.markup-callout-leader{pointer-events:none}.markup-callout-box{pointer-events:auto;display:block;box-sizing:border-box;color:var(--markup-color, #202020);overflow:hidden}.tool-tag-callout{background:#ff845e2e;color:#ff9c7d}.tool-tag-polyline{background:#3b9eff2e;color:#6cb5ff}.tool-tag-polygon{background:#8e44ad2e;color:#bb86fc}.tool-tag-pen{background:#2ecc712e;color:#2ecc71}.context-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.context-menu{position:fixed;z-index:41;min-width:184px;padding:4px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#141922f5;box-shadow:0 12px 28px #0000003d;display:flex;flex-direction:column;gap:1px}.context-menu-item{width:100%;border:0;border-radius:5px;background:transparent;color:var(--ink-main);text-align:left;padding:6px 8px;font:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;line-height:1.15}.context-menu-item:hover:not(:disabled){background:#6cb5ff29}.context-menu-item:disabled{color:var(--muted);cursor:default}.context-menu-shortcut{color:var(--muted);font-size:10px;white-space:nowrap}.context-menu-separator{height:1px;margin:3px 2px;background:#ffffff14}.remote-cursors-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:50}.remote-cursor{position:absolute;top:0;left:0;will-change:transform;transition:transform 80ms linear;pointer-events:none}.remote-cursor-arrow{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.remote-cursor-label{position:absolute;top:16px;left:10px;padding:1px 5px 2px;border-radius:3px;color:#fff;font-size:10px;font-weight:600;line-height:1.3;white-space:nowrap;box-shadow:0 1px 3px #0000004d}.bottom-panel{position:relative;display:flex;flex:0 0 auto;flex-direction:column;min-height:0;max-height:100%;background:var(--panel);overflow:hidden}.bottom-panel-handle{position:relative;width:100%;height:8px;flex-shrink:0;cursor:row-resize;touch-action:none;background:transparent;z-index:20}.bottom-panel-handle:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);background:#ffffff1f;transition:background .12s,box-shadow .12s,height .12s}.bottom-panel-handle:hover:before,.bottom-panel-handle-active:before{background:var(--accent);box-shadow:0 0 0 1px #2fbe9a38;height:3px}.bottom-panel-handle-expanded{border-bottom:1px solid var(--line)}.app-body-resizing-vertical,.app-body-resizing-vertical *{cursor:row-resize!important;-webkit-user-select:none;user-select:none}.bottom-panel-header-left{display:flex;align-items:center;gap:10px;flex-shrink:0}.bottom-panel-header-right{display:flex;align-items:center;gap:6px;flex:1;min-width:0;justify-content:flex-end}.bottom-panel-scope{display:inline-flex;border:1px solid var(--line);border-radius:3px;overflow:hidden}.bottom-panel-scope-btn{padding:2px 8px;font-size:11px;background:transparent;color:var(--muted);border:none;cursor:pointer}.bottom-panel-scope-btn:hover{background:#ffffff0f;color:var(--ink)}.bottom-panel-scope-btn-active,.bottom-panel-scope-btn-active:hover{background:var(--accent-soft);color:var(--accent)}.page-navigation-bar{display:flex;align-items:center;justify-content:center;min-height:34px;padding:4px 12px;background:linear-gradient(180deg,#2f2f33,#28282c);border-top:1px solid var(--line);border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0}.page-navigation-cluster{display:inline-flex;align-items:center;gap:6px;min-width:0}.page-navigation-button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;color:var(--muted);background:transparent;transition:background 80ms ease,color 80ms ease,opacity 80ms ease}.page-navigation-button:hover:not(:disabled){color:var(--ink);background:#ffffff14}.page-navigation-button:disabled{opacity:.38;cursor:default}.page-navigation-readout{min-width:132px;height:26px;padding:0 16px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:#1212146b;color:#f3f5f8;font-size:12px;font-weight:600;line-height:24px;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.01em;-webkit-user-select:none;user-select:none}.ml-search-wrap{position:relative;display:flex;align-items:center;width:200px;max-width:260px;flex-shrink:1}.ml-search-icon{position:absolute;left:6px;color:var(--muted);pointer-events:none}.ml-search-input{width:100%;height:22px;padding:0 24px;border-radius:3px;border:1px solid var(--line);background:var(--panel-raised);color:var(--ink);font-size:11px}.ml-search-input::placeholder{color:var(--muted)}.ml-search-input:focus{outline:none;border-color:var(--ring)}.ml-search-clear{position:absolute;right:4px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;color:var(--muted);border-radius:2px}.ml-search-clear:hover{color:var(--ink);background:#ffffff1a}.ab-spacer{flex:1}.bottom-panel-body{flex:1;overflow:auto;min-height:0}.markups-list-table{border-collapse:collapse;font-size:12px}.ml-th{position:sticky;top:0;background:var(--panel-raised);border-bottom:1px solid var(--line);border-right:1px solid rgba(255,255,255,.06);padding:4px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;white-space:nowrap;overflow:hidden}.ml-th:hover{color:var(--ink);background:#ffffff0a}.ml-th:last-child{border-right:none}.ml-th-color{cursor:default;padding:4px}.ml-sort-indicator{font-size:9px;opacity:.7;margin-left:2px}.ml-th{position:relative}.ml-col-resize{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:col-resize;z-index:2;touch-action:none}.ml-col-resize:after{content:"";position:absolute;right:0;top:20%;bottom:20%;width:2px;background:#ffffff24;transition:background .1s}.ml-col-resize:hover:after{background:var(--accent)}.ml-td{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.04);border-right:1px solid rgba(255,255,255,.04);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.ml-td:last-child{border-right:none}.ml-td-color{padding:4px;text-align:center}.ml-td-comment{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-group-row{cursor:pointer;background:var(--panel-raised)}.ml-group-row:hover{background:#ffffff0d}.ml-group-cell{padding:4px 8px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;letter-spacing:.02em}.ml-group-chevron{font-size:8px;margin-right:5px;opacity:.6}.ml-group-sheet-number{color:var(--ink)}.ml-group-sheet-name{color:var(--muted);font-weight:400}.ml-group-count{margin-left:5px;color:var(--muted);font-weight:400}.markups-list-row{cursor:pointer}.markups-list-row:hover .ml-td{background:#ffffff09}.markups-list-row-selected .ml-td,.markups-list-row-selected:hover .ml-td{background:var(--accent-soft)}.markups-list-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;border:1px solid rgba(0,0,0,.3);vertical-align:middle}.markups-list-muted{color:var(--muted)}.markups-list-status{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.markups-list-status-open{background:#ff450026;color:#ff7a40}.markups-list-status-addressed{background:#2fbe9a26;color:var(--accent)}.markups-list-status-ignored{background:#80808026;color:var(--muted)}.ml-context-menu{position:fixed;background:var(--panel-raised);border:1px solid var(--line);border-radius:5px;box-shadow:0 4px 16px #00000073;padding:4px 0;min-width:172px;z-index:1000}.ml-context-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;font-size:12px;color:var(--ink);background:transparent;border:none;cursor:pointer;text-align:left}.ml-context-item:hover{background:#ffffff12}.ml-context-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ml-context-dot-open{background:#ff7a40}.ml-context-dot-addressed{background:var(--accent)}.ml-context-dot-ignored{background:#888}.ml-th-status{cursor:default;padding-right:4px}.ml-th-status-inner{display:flex;align-items:center;gap:4px}.ml-th-status .ml-th-label{cursor:pointer;flex:1}.ml-status-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border-radius:3px;color:var(--muted);background:transparent;border:none;cursor:pointer;flex-shrink:0}.ml-status-filter-btn:hover{color:var(--ink);background:#ffffff14}.ml-status-filter-btn-active{color:var(--accent);background:var(--accent-soft)}.ml-status-filter-menu{background:var(--panel-raised);border:1px solid var(--line);border-radius:5px;box-shadow:0 4px 16px #00000073;padding:4px 0;min-width:160px;z-index:1000}.ml-status-filter-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12px;color:var(--ink);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}.ml-status-filter-item:hover{background:#ffffff12}.ml-status-filter-item input[type=checkbox]{margin:0;cursor:pointer}.shell-page{min-height:100vh;background:radial-gradient(circle at top right,rgba(47,190,154,.1),transparent 36%),linear-gradient(180deg,#1b1f26,#15181e);color:var(--ink);overflow-y:auto;overscroll-behavior-y:contain}.shell-page-fill{height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column}.shell-main-fill{flex:1 1 auto;min-height:0;max-width:none;width:100%;display:flex;flex-direction:column;overflow:hidden}.shell-content-fill{flex:1 1 auto;min-height:0;overflow:hidden}.shell-content-fill>:first-child{flex:1 1 auto;min-height:0}.shell-content-fill .publish-form{min-height:0}.shell-content-fill .publish-sheet-preview{flex:1 1 auto;min-height:140px;max-height:none}.shell-content-fill .project-section{flex:0 0 auto;display:flex;flex-direction:column;min-height:0;max-height:40vh;overflow-y:auto}.shell-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;background:#15181ee0;-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid rgba(255,255,255,.06)}.shell-header-brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:linear-gradient(180deg,#39c7a2,#239d7d);color:#0f1715;font-size:16px;font-weight:800;letter-spacing:.02em;flex:none}.shell-header-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.shell-header-copy strong{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.005em}.shell-header-copy span{font-size:12px;color:var(--muted)}.shell-header-actions{display:flex;align-items:center;gap:10px;flex:none}.shell-footer{position:sticky;bottom:0;z-index:10;background:#15181eeb;-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);border-top:1px solid rgba(255,255,255,.08);padding:12px 24px}.shell-footer-inner{max-width:1040px;margin:0 auto;display:flex;align-items:center;justify-content:flex-end;gap:10px}.shell-footer-button{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 18px;border-radius:6px;background:#ffffff0a;color:#e6ebf2;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.22);cursor:pointer;transition:background .12s ease,border-color .12s ease}.shell-footer-button:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff61}.shell-footer-button:focus-visible{outline:2px solid rgba(47,190,154,.6);outline-offset:2px}.shell-footer-button:disabled{opacity:.5;cursor:default}.shell-main{max-width:1040px;margin:0 auto;padding:24px 24px 36px}.shell-hero{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}.shell-hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.shell-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.shell-hero h1{margin:0;font-size:28px;line-height:1.1;font-weight:600;color:var(--ink);letter-spacing:-.005em}.shell-hero p{max-width:680px;margin:0;color:var(--muted);font-size:14px;line-height:1.55}.shell-content{display:flex;flex-direction:column;gap:16px}.shell-context-row-hero{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:4px;font-size:12px;color:var(--muted)}.shell-context-row-hero .shell-context-key{font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.shell-context-row-hero .shell-context-val{color:var(--ink);font-weight:500}.shell-context-row-hero .shell-context-dot{color:#fff3}.shell-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 14px;border-radius:999px;background:#ffffff0f;color:var(--ink);font-size:12px;font-weight:700;border:1px solid rgba(255,255,255,.08);cursor:pointer}.shell-secondary-button:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff24}.shell-secondary-button:disabled{opacity:.5;cursor:default}.account-chip{position:relative;flex:none}.account-chip-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);cursor:pointer;padding:0}.account-chip-button:hover{background:#ffffff1a;border-color:#ffffff29}.account-chip-button-open{background:var(--accent-soft);border-color:#2fbe9a66}.account-chip-avatar{font-size:11px;font-weight:700;color:var(--ink);letter-spacing:.02em}.account-chip-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:260px;padding:12px;background:var(--panel-raised);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px #00000073;z-index:100;display:flex;flex-direction:column;gap:10px}.account-chip-menu-header{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.account-chip-menu-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:12px;font-weight:700;flex:none}.account-chip-menu-identity{display:flex;flex-direction:column;gap:2px;min-width:0}.account-chip-menu-identity strong{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-chip-menu-identity span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-chip-menu-actions{display:flex;justify-content:flex-end;gap:8px}.account-chip-menu-primary{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 12px;border-radius:8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.account-chip-menu-primary:hover{background:#ffffff1a}.project-card-grid{display:flex;flex-direction:column;gap:10px}.project-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.project-section{display:flex;flex-direction:column;gap:10px}.project-section-heading{display:flex;flex-direction:column;gap:2px}.project-section-title{margin:0;color:var(--ink);font-size:18px;font-weight:700;letter-spacing:0;line-height:1.25}.project-section-subtitle{color:var(--muted);font-size:12px;font-weight:500}.project-section-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-section-actions-trailing{justify-content:flex-end}.project-section-header-inline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.project-section-controls{display:flex;align-items:center;gap:10px}.shell-secondary-button-inline{height:32px;padding:0 14px;display:inline-flex;align-items:center;font-size:13px;line-height:1;border-radius:999px;white-space:nowrap}.shell-list-controls-search-compact{flex:0 1 200px;max-width:210px;min-width:140px}.shell-list-controls-search-compact input{height:32px;padding-top:0;padding-bottom:0}.project-card{display:flex;flex-direction:column;gap:14px;width:100%;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff09;text-align:left;cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .12s ease}.project-card-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px}.project-card:hover:not(:disabled){border-color:#2fbe9a5c;background:#2fbe9a0f}.project-card:disabled{cursor:default;opacity:.6}.project-card-primary,.project-card-summary{min-width:0}.project-card-primary{display:flex;flex-direction:column;gap:4px}.project-card-title-row{display:flex;align-items:center;gap:10px;min-width:0}.project-card-title-row strong{font-size:15px;font-weight:600;color:#f3f5f8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-card-secondary-detail{color:#aab3bf;font-size:12px;font-weight:500;line-height:1.4}.project-card-summary{display:flex;align-items:center}.project-card-detail{color:var(--muted);font-size:12px;line-height:1.5}.project-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;justify-self:end;flex:none}.project-card-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 10px;border-radius:999px;background:var(--accent-soft);color:#aef0dd;font-size:11px;font-weight:600;letter-spacing:.01em}.project-card-action-label{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.shell-create-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff0a}.shell-create-copy{display:flex;flex-direction:column;gap:4px;max-width:520px}.shell-create-copy strong{color:var(--ink);font-size:14px;font-weight:600}.shell-create-form{display:flex;flex-direction:column;gap:10px;min-width:300px}.shell-text-input{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff0a;color:var(--ink);font-size:13px;outline:none}.shell-text-input:focus{border-color:#2fbe9a66;background:#ffffff0f}.shell-inline-actions{display:flex;align-items:center;gap:10px}.shell-inline-error{color:#ffb5b5;font-size:12px;line-height:1.45}.shell-state{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff08;color:var(--muted);font-size:13px}.shell-state-error{border-color:#ff6b6b4d;color:#ffb5b5}.project-detail-label{margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.shell-list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px}.shell-list-controls-search{position:relative;flex:0 1 210px;max-width:210px;min-width:140px}.shell-list-controls-search input{width:100%;padding:8px 12px 8px 34px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:13px;color:var(--ink);line-height:1.35;transition:border-color .12s ease,box-shadow .12s ease}.shell-list-controls-search input::placeholder{color:var(--muted)}.shell-list-controls-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.shell-list-controls-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px;pointer-events:none}.shell-tabs{display:inline-flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);margin:0 0 16px;padding:0}.shell-tab{background:transparent;border:none;padding:8px 4px;margin:0 12px 0 0;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:color .12s ease,border-color .12s ease}.shell-tab:first-child{margin-left:0}.shell-tab:hover{color:var(--ink)}.shell-tab-active{color:var(--accent);border-bottom-color:var(--accent)}.shell-tab-count{margin-left:6px;color:var(--muted);font-weight:500;font-size:12px}.shell-view-toggle{display:inline-flex;align-items:center;gap:2px;padding:2px;background:#ffffff0a;border:1px solid var(--line);border-radius:8px;margin-left:auto}.shell-view-toggle-button{background:transparent;border:none;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s ease,color .12s ease}.shell-view-toggle-button:hover{color:var(--ink)}.shell-view-toggle-button-active{background:var(--panel);color:var(--accent)}.shell-view-toggle-icon{font-size:14px;line-height:1}.shell-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13px}.shell-table thead th{text-align:left;padding:10px 14px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:#ffffff05;border-bottom:1px solid var(--line);white-space:nowrap}.shell-table tbody td{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}.shell-table tbody tr:last-child td{border-bottom:none}.shell-table tbody tr{transition:background .1s ease}.shell-table tbody tr:hover{background:var(--accent-soft)}.shell-table tbody tr.shell-table-row-clickable{cursor:pointer}.shell-table-cell-name strong{color:var(--ink);font-weight:600;font-size:13px}.shell-table-cell-muted{color:var(--muted)}.shell-table-cell-actions{width:40px;text-align:right;padding-right:8px}.shell-table-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}.shell-table-status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:var(--accent-soft);color:var(--accent)}.shell-table-status-badge:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.shell-table-status-archived{background:#ffffff0f;color:var(--muted)}.overflow-menu{position:relative;display:inline-flex}.overflow-menu-trigger{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,border-color .12s ease,color .12s ease}.overflow-menu-trigger:hover,.overflow-menu-trigger[aria-expanded=true]{background:#ffffff0f;border-color:var(--line);color:var(--ink)}.overflow-menu-popover{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 36px #0006;padding:6px;display:flex;flex-direction:column;gap:2px;z-index:50}.overflow-menu-item{background:transparent;border:none;text-align:left;padding:8px 12px;border-radius:6px;font-size:13px;color:var(--ink);cursor:pointer;transition:background .1s ease,color .1s ease}.overflow-menu-item:hover:not(:disabled){background:var(--accent-soft)}.overflow-menu-item:disabled{color:var(--muted);cursor:default}.overflow-menu-item-danger{color:#f87171}.overflow-menu-item-danger:hover:not(:disabled){background:#f871711f;color:#fca5a5}.shell-dialog{background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 32px 64px #00000080;width:min(520px,92vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.shell-dialog-danger{border-color:#f8717166}.shell-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 12px;border-bottom:1px solid var(--line)}.shell-dialog-header h2{margin:0;font-size:16px;font-weight:600;color:var(--ink)}.shell-dialog-close{background:transparent;border:none;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:6px}.shell-dialog-close:hover{background:#ffffff0f;color:var(--ink)}.shell-dialog-description{padding:14px 22px 0;color:var(--muted);font-size:13px;line-height:1.55}.shell-dialog-body{padding:14px 22px 4px;overflow-y:auto}.shell-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 22px 18px;border-top:1px solid var(--line);margin-top:10px}.dialog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.shell-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:13px;color:var(--ink);box-shadow:0 14px 28px #00000073;z-index:200}.shell-list-controls-left{display:inline-flex;align-items:center;gap:8px}.shell-list-controls .shell-list-controls-search{margin-left:auto}.shell-list-controls-search-icon{display:inline-flex;align-items:center;justify-content:center}.shell-table-header-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.shell-table-header-sortable:hover{background:#0000000a}.shell-table-header-button{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit}.shell-table-header-indicator{display:inline-block;min-width:10px;font-size:10px;line-height:1;opacity:.9}.shell-table-header-sorted{color:inherit}.overflow-menu-popover-portal{position:fixed!important;top:auto;right:auto;width:max-content;max-width:260px}.bind-model-modes{display:flex;flex-direction:column;gap:10px;margin:12px 0 18px}.bind-model-mode{display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;column-gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--surface);transition:border-color .12s ease,background .12s ease}.bind-model-mode:has(input[type=radio]:checked){border-color:var(--accent, #3b82f6);background:#3b82f60f}.bind-model-mode input[type=radio]{grid-row:1 / span 2;align-self:start;margin-top:2px}.bind-model-mode-title{font-weight:600;color:var(--ink)}.bind-model-mode-description{color:var(--muted);font-size:13px}.bind-model-form{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.bind-model-field{display:flex;flex-direction:column;gap:6px}.bind-model-field-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.bind-model-picker{display:flex;flex-direction:column;max-height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.bind-model-picker-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border:none;background:transparent;color:var(--ink);text-align:left;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line)}.bind-model-picker-item:last-child{border-bottom:none}.bind-model-picker-item:hover:not(:disabled){background:#ffffff0a}.bind-model-picker-item-selected{background:#3b82f61a;color:var(--ink)}.bind-model-picker-item-name{font-weight:500}.bind-model-summary{color:var(--muted);font-size:13px;margin:12px 0 16px}.bind-model-actions{display:flex;justify-content:flex-end;gap:10px}
