:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1a1a1a}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100vh;width:100%;background:#f5f5f4}#root{min-height:100vh;width:100%}.app-shell{overflow-x:clip}body,button,input,select,textarea{font-family:inherit}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:min(360px,100%);background:#fff;border-radius:12px;padding:2rem 1.75rem;border:1px solid #e5e5e5;display:flex;flex-direction:column;gap:.2rem}.login-brand{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.login-logo{width:2.4rem;height:2.4rem;border-radius:.4rem}.login-logo-text{font-weight:600;font-size:1.1rem;line-height:1;margin-top:.15rem;color:#1a1a1a;margin-bottom:1.25rem}.login-card h1{margin:0;font-size:1.2rem;font-weight:600;color:#1a1a1a}.login-card p{margin:.2rem 0 0;color:#737373;font-size:.85rem;line-height:1.5}.google-button{margin-top:1.25rem;min-height:44px}.login-config-alert{margin-top:1.25rem;padding:.9rem 1rem;border:1px solid #fca5a5;border-radius:10px;background:#fff5f5;color:#991b1b;display:flex;flex-direction:column;gap:.3rem}.login-config-alert strong{font-size:.9rem;font-weight:600}.login-config-alert span{font-size:.82rem;line-height:1.45}.dash{min-height:100vh;display:flex;flex-direction:column}.btn-ghost{font:inherit;background:none;border:none;color:#a3a3a3;font-size:.78rem;font-weight:500;padding:.25rem 0;cursor:pointer}.btn-ghost:hover{color:#525252}.btn-ghost:focus-visible{outline:2px solid #6366f1;outline-offset:2px;border-radius:4px}.dash-content{max-width:860px;width:100%;margin:0 auto;padding:2rem 1.5rem 4rem}.workspace-home{display:flex;flex-direction:column;gap:.75rem;width:min(100%,1180px);margin:0 auto}.workspace-launchbar{position:relative;overflow:hidden;border:1px solid #dbe4ef;border-radius:16px;background:radial-gradient(circle at top left,rgba(37,99,235,.11),transparent 28rem),linear-gradient(180deg,#fff,#f8fafc);padding:.7rem .8rem;box-shadow:0 14px 34px #0f172a12}.workspace-launchbar:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,#2563eb,#38bdf8)}.workspace-launchbar-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.5rem}.workspace-kicker{display:none}.workspace-title{margin:0;font-size:.92rem;font-weight:700;letter-spacing:-.02em;color:#0f172a}.workspace-subtitle{display:none}.workspace-meta{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .48rem;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;white-space:nowrap;font-size:.66rem}.workspace-meta-label{font-size:.58rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.workspace-launchbar-tools{position:relative;display:grid;gap:.45rem}.workspace-search{display:flex;flex-direction:column;gap:.4rem}.workspace-search>.workspace-search-label{display:none}.workspace-recent-bar-head .workspace-search-label{display:inline;font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#78716c}.workspace-search{gap:0}.workspace-search-input{font:inherit;width:100%;min-height:1.95rem;padding:.35rem .6rem;font-size:.8rem;border:1px solid #d1d5db;border-radius:9px;background:#fff;color:#0f172a;outline:none;transition:border-color .14s,box-shadow .14s}.workspace-search-input::placeholder{color:#94a3b8}.workspace-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.workspace-recent-bar{display:flex;align-items:center;gap:.5rem;padding:.32rem .45rem;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.workspace-recent-bar-head{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.workspace-recent-bar-head .workspace-search-label{white-space:nowrap;color:#64748b}.workspace-clear-btn{font:inherit;font-size:.6rem;font-weight:600;color:#94a3b8;background:none;border:none;padding:0;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}.workspace-clear-btn:hover{color:#334155}.workspace-recent-chips{display:flex;flex-wrap:wrap;gap:.3rem;flex:1;min-width:0}.workspace-recent-chip{font:inherit;font-size:.68rem;font-weight:600;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.22rem .48rem .22rem .28rem;cursor:pointer;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;display:inline-flex;align-items:center;gap:.34rem;line-height:1}.workspace-recent-chip:hover{background:#fff;border-color:#d4d4d4;box-shadow:0 1px 3px #0000000f}.workspace-recent-chip-icon{width:19px;height:19px;border-radius:5px;background:#f1f5f9;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;color:#525252;flex-shrink:0}.workspace-recent-chip-icon svg{width:12px;height:12px}.workspace-recent-chip-label{white-space:nowrap}.workspace-recent-chip:hover{background:#fff;border-color:#d1d5db;transform:translateY(-1px)}.workspace-section{display:flex;flex-direction:column;gap:.65rem}.workspace-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.workspace-section-copy{margin:.16rem 0 0;font-size:.78rem;color:#64748b}.dash-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.dash-heading{margin:0;font-size:.95rem;font-weight:700;color:#0f172a}.dash-count{font-size:.66rem;font-weight:600;background:#e2e8f0;color:#475569;padding:.08rem .4rem;border-radius:999px}.search-input{font:inherit;width:100%;padding:.55rem .85rem;border:1px solid #e5e5e5;border-radius:8px;font-size:.85rem;color:#1a1a1a;background:#fff;outline:none;margin-bottom:1.25rem;transition:border-color .12s}.search-input::placeholder{color:#a3a3a3}.search-input:focus{border-color:#a3a3a3}.no-results{color:#a3a3a3;font-size:.85rem;padding:.5rem 0}.workspace-empty-state{display:flex;flex-direction:column;gap:.3rem;padding:.85rem .95rem;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc}.workspace-empty-state h3{margin:0;font-size:.92rem;color:#0f172a}.workspace-empty-state p{margin:0;color:#64748b;font-size:.82rem}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:.5rem}@media(max-width:640px){.app-grid{grid-template-columns:1fr;gap:.42rem}}.app-card{font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:.62rem .68rem;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:.5rem;transition:border-color .12s,box-shadow .12s,transform .12s;contain:layout paint;content-visibility:auto;contain-intrinsic-size:96px}@media(max-width:640px){.app-card{padding:.55rem .6rem;grid-template-columns:28px minmax(0,1fr) auto;gap:.5rem}}.app-card:hover{border-color:#bfdbfe;box-shadow:0 8px 18px #0f172a0f;transform:translateY(-1px)}.app-card-muted{opacity:.55;filter:grayscale(25%)}.app-card:active{transform:translateY(0);box-shadow:none}.app-card-recent{border-color:#cbd5e1;background:linear-gradient(180deg,#fff,#f8fafc)}.app-card-icon{width:28px;height:28px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;color:#525252;flex-shrink:0}.app-card-copy{display:flex;flex-direction:column;gap:.24rem;min-width:0}.app-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem}.app-card h3{margin:0;font-size:.8rem;font-weight:700;color:#0f172a;letter-spacing:-.01em}.app-card p{margin:0;font-size:.7rem;color:#64748b;line-height:1.32}.workspace-home .badge{padding:.08rem .34rem;font-size:.55rem;color:#64748b;background:#f8fafc;border-color:#e2e8f0}.app-card>.badge{grid-column:2;justify-self:start;max-width:5.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{align-self:flex-start;padding:.12rem .45rem;border-radius:999px;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#f5f5f4;color:#737373;border:1px solid #e5e5e5}@media(max-width:720px){.shell-content:has(.workspace-home){background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 18rem),#f1f5f9}.shell-content:has(.workspace-home){padding:.9rem}.workspace-launchbar-head,.workspace-section-head{flex-direction:column;align-items:flex-start;gap:.4rem}.workspace-meta{align-self:flex-start}.workspace-recent-bar{align-items:flex-start;flex-direction:column}}.admin-sections{display:flex;flex-direction:column;gap:1.25rem}.admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;contain:layout paint}.admin-card-header{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.15rem;border-bottom:1px solid #f3f4f6;background:#fafafa}.admin-card-title{margin:0;font-size:.82rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em}.admin-card-body{padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.75rem}.admin-usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem}.admin-usage-metric{display:flex;flex-direction:column;gap:.3rem;padding:.85rem .95rem;border:1px solid #eef2f7;border-radius:10px;background:linear-gradient(180deg,#fff,#fafafa)}.admin-usage-label{font-size:.68rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.admin-usage-value{font-size:1.1rem;font-weight:700;color:#111827;letter-spacing:-.02em}.admin-usage-sub{font-size:.76rem;line-height:1.45;color:#6b7280}.admin-field{display:flex;flex-direction:column;gap:.3rem}.admin-field-label{font-size:.72rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.visibility-toggle{display:inline-flex;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#f9fafb}.visibility-opt{font:inherit;font-size:.78rem;font-weight:500;padding:.4rem .85rem;border:none;background:transparent;color:#6b7280;cursor:pointer;transition:all .12s;border-right:1px solid #e5e7eb}.visibility-opt:last-child{border-right:none}.visibility-opt:hover{background:#f3f4f6;color:#374151}.visibility-opt-active{background:#111827;color:#fff}.visibility-opt-active:hover{background:#1f2937;color:#fff}.admin-user-list{display:flex;flex-direction:column;max-height:480px;overflow-y:auto;scroll-behavior:smooth;scrollbar-gutter:stable}.admin-user-list::-webkit-scrollbar{width:10px}.admin-user-list::-webkit-scrollbar-thumb{background:#64748b59;border-radius:6px;border:2px solid transparent;background-clip:padding-box}.admin-user-list::-webkit-scrollbar-thumb:hover{background:#64748b8c;background-clip:padding-box;border:2px solid transparent}.admin-user-list::-webkit-scrollbar-track{background:transparent}.admin-user-list .admin-list-section{position:sticky;top:0;z-index:1;background:#f8fafc}.admin-user-item{border-bottom:1px solid #f3f4f6;contain:layout paint;content-visibility:auto;contain-intrinsic-size:88px}.admin-user-item:last-child{border-bottom:none}.admin-user-expanded{background:#f9fafb}.admin-user-row{display:flex;align-items:center;gap:.75rem;width:100%;padding:.65rem 1.15rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;transition:background .1s}.admin-user-row:hover{background:#f9fafb}.admin-user-identity{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.admin-avatar{width:32px;height:32px;border-radius:999px;object-fit:cover;flex-shrink:0}.admin-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:#e5e7eb;color:#6b7280;font-size:.75rem;font-weight:700}.admin-user-text{display:flex;flex-direction:column;min-width:0}.admin-user-name{font-size:.82rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-email{font-size:.72rem;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-meta{font-size:.72rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-badges{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.admin-user-actions{display:grid;grid-template-columns:minmax(8rem,max-content) 1fr auto;align-items:center;gap:.5rem 1rem;padding:.6rem 1.15rem .8rem;border-top:1px solid rgba(226,232,240,.9)}.admin-user-actions>.admin-action-remove,.admin-user-actions>.admin-action-note{grid-column:1 / -1}.admin-user-actions>.admin-action-remove{justify-self:end;margin-top:.2rem}.admin-action-group{display:contents}.admin-action-group>.admin-action-label{grid-column:1;text-align:left}.admin-action-group>:not(.admin-action-label){grid-column:2 / -1}.admin-action-group-block{width:100%;align-items:flex-start;flex-direction:column}.admin-action-label{font-size:.68rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.03em;margin-right:.15rem}.admin-list-section{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.15rem .35rem}.admin-list-section-label{font-size:.72rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.08em}.admin-app-selection{display:flex;flex-wrap:wrap;gap:.55rem}.admin-app-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .7rem;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#374151;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease;-webkit-user-select:none;user-select:none}.admin-app-pill:hover{border-color:#cbd5e1;background:#f8fafc}.admin-app-pill input{position:absolute;opacity:0;pointer-events:none}.admin-app-pill-active{border-color:#111827;background:#111827;color:#fff}.admin-app-pill-disabled{opacity:.6;cursor:not-allowed}.admin-app-pill-icon{width:22px;height:22px;border:1px solid #e5e7eb;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#f5f5f4;color:#525252;flex-shrink:0}.audit-log-list{display:flex;flex-direction:column}.audit-log-item{padding:.85rem 1.15rem;border-bottom:1px solid #f3f4f6}.audit-log-item:last-child{border-bottom:none}.audit-log-main{display:flex;flex-direction:column;gap:.28rem}.audit-log-topline{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.82rem;color:#111827}.audit-log-time{font-size:.7rem;color:#9ca3af;white-space:nowrap}.audit-log-meta{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.72rem;color:#6b7280}.audit-log-target{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#374151}.audit-log-summary{margin:0;font-size:.74rem;color:#6b7280;line-height:1.45}.audit-log-footer{display:flex;justify-content:center;padding:0 1.15rem 1rem}.status{font-size:.85rem;margin:0;padding:.25rem 0}.status.error{color:#dc2626}.status.info{color:#0284c7}.route-error-shell{min-height:calc(100vh - 3.25rem);display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}.route-error-card{width:min(680px,100%);background:linear-gradient(180deg,#fff,#fcfcfb);border:1px solid #e5e7eb;border-radius:18px;padding:1.4rem;box-shadow:0 20px 45px #0f172a12;display:grid;gap:.9rem}.route-error-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b45309}.route-error-title{margin:0;font-size:1.5rem;line-height:1.1;color:#111827}.route-error-message{margin:0;font-size:.92rem;line-height:1.6;color:#6b7280}.route-error-actions{display:flex;flex-wrap:wrap;gap:.65rem}.route-error-link{text-decoration:none}.route-error-context{display:flex;flex-wrap:wrap;gap:.5rem}.route-error-debug{margin:0;padding:.85rem;border-radius:12px;background:#111827;color:#e5e7eb;font-size:.76rem;line-height:1.5;overflow:auto;white-space:pre-wrap;word-break:break-word}.role-badge{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .4rem;border-radius:999px;background:#f5f5f4;color:#737373;border:1px solid #e5e5e5}:focus{outline:none}:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:.25rem}.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible,button:focus-visible{outline-offset:3px}.skip-link{position:absolute;top:.35rem;left:.35rem;padding:.4rem .7rem;background:#0f172a;color:#fff;border-radius:.35rem;font-weight:700;text-decoration:none;z-index:100;transform:translateY(-150%);transition:transform .12s}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0)}.role-badge.role-owner{background:#fef3c7;color:#92400e;border-color:#fde68a}.role-badge.role-admin,.role-badge.role-member,.role-badge.role-viewer,.role-badge.role-editor,.role-badge.role-manager,.role-badge.role-none{background:#f5f5f4;color:#525252;border-color:#e5e5e5}.expand-arrow{color:#a3a3a3;font-size:.7rem}.perm-label{font-size:.75rem;font-weight:600;color:#525252;text-transform:uppercase;letter-spacing:.04em}.perm-hint{font-size:.78rem;color:#a3a3a3;margin:0}.role-select{font:inherit;width:100%;border-radius:8px;border:1px solid #e5e5e5;padding:.45rem .75rem;background:#fff;color:#1a1a1a;-webkit-appearance:none;appearance:none}.role-select:focus{outline:none;border-color:#a3a3a3;box-shadow:0 0 0 3px #3b82f626}.btn-danger{font:inherit;font-size:.78rem;font-weight:500;padding:.35rem .75rem;border-radius:6px;border:1px solid #fecaca;background:#fff;color:#dc2626;cursor:pointer;align-self:flex-start;transition:all .1s}.btn-danger:hover{background:#fef2f2}.upload-actions{display:flex;gap:.5rem;margin-bottom:1rem}.btn-primary{font:inherit;font-size:.82rem;font-weight:500;padding:.45rem 1rem;border-radius:8px;border:none;background:#1a1a1a;color:#fff;cursor:pointer;transition:background .1s}.btn-primary:hover{background:#333}.btn-primary:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.btn-primary:disabled{background:#a3a3a3;cursor:not-allowed}.btn-secondary{font:inherit;font-size:.82rem;font-weight:500;padding:.45rem 1rem;border-radius:8px;border:1px solid #e5e5e5;background:#fff;color:#525252;cursor:pointer;transition:all .1s;display:inline-flex;align-items:center;gap:.35rem}.btn-secondary:hover{border-color:#d4d4d4}.btn-secondary:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{font-size:.75rem;padding:.3rem .65rem}.upload-form-card{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:1.25rem;margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.85rem}.upload-form-header{display:flex;align-items:center;justify-content:space-between}.upload-form-header h3{margin:0;font-size:.9rem;font-weight:600}.form-field{display:flex;flex-direction:column;gap:.3rem}.form-label{font-size:.75rem;font-weight:600;color:#525252;text-transform:uppercase;letter-spacing:.04em}.form-input{font:inherit;padding:.5rem .75rem;border:1px solid #e5e5e5;border-radius:8px;font-size:.85rem;color:#1a1a1a;background:#fff;outline:none;transition:border-color .12s}.form-input:focus{border-color:#a3a3a3}.form-input::placeholder{color:#a3a3a3}.drop-zone{border:2px dashed #e5e5e5;border-radius:10px;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#a3a3a3;font-size:.85rem;cursor:pointer;transition:all .15s}.drop-zone:hover{border-color:#d4d4d4;background:#fafafa}.drop-zone.drag-over{border-color:#1a1a1a;background:#f5f5f4;color:#525252}.drop-zone.drop-zone-filled{border-color:#4f46e5;background:#f5f3ff;color:#4338ca}.file-list{display:flex;flex-direction:column;gap:.35rem}.upload-progress-panel{margin-top:.75rem;display:flex;flex-direction:column;gap:.35rem}.upload-progress-track{height:8px;border-radius:999px;background:#ece7df;overflow:hidden}.upload-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#111827,#3f3f46);transition:width .18s ease}.upload-progress-label{font-size:.72rem;color:#6b7280;font-weight:600}.file-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#f5f5f4;border-radius:6px;font-size:.8rem}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1a1a1a;font:inherit;font-weight:500;background:none;border:none;padding:0;text-align:left}.file-name-link{cursor:pointer;color:#2563eb;transition:color .12s}.file-name-link:hover{color:#1d4ed8;text-decoration:underline}.file-size{color:#a3a3a3;font-size:.75rem;flex-shrink:0}.file-meta{font-size:.65rem;color:#9ca3af;flex-shrink:0}.file-uploader{font-weight:600;color:#6b7280}.file-remove{font-size:1rem;padding:0;line-height:1}.file-status{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.preview-overlay{position:fixed;inset:0;z-index:1000;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem}.preview-modal{background:#fff;border-radius:14px;box-shadow:0 20px 60px #00000040;max-width:960px;width:100%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.preview-header{padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.preview-header h3{margin:0 0 .35rem;font-size:1.05rem;font-weight:700;color:#111827}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.preview-card{border-radius:10px;border:2px solid #e5e7eb;overflow:hidden;background:#fafafa;transition:border-color .15s,box-shadow .15s;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;contain:layout paint;content-visibility:auto;contain-intrinsic-size:240px}.preview-card.preview-new{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e26}.preview-thumb{width:100%;aspect-ratio:8.5 / 11;object-fit:contain;background:#fff;display:block;border-bottom:1px solid #e5e7eb}.preview-info{display:flex;align-items:center;gap:.35rem;padding:.4rem .5rem .15rem;flex-wrap:wrap}.preview-page-num{font-size:.7rem;font-weight:700;color:#6b7280}.preview-type-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:4px}.badge-shop{background:#dcfce7;color:#166534}.badge-structural{background:#f3f4f6;color:#6b7280}.preview-sheet-type{font-size:.65rem;font-weight:600;color:#4b5563;background:#e5e7eb;padding:.05rem .35rem;border-radius:3px}.preview-walls{display:flex;flex-wrap:wrap;gap:.25rem;padding:.2rem .5rem;align-items:center}.preview-wall-tag{font-size:.58rem;font-weight:600;color:#1e40af;background:#dbeafe;padding:.05rem .3rem;border-radius:3px}.preview-wall-unassigned{color:#92400e;background:#fef3c7}.preview-wall-assign{font-size:.6rem;padding:0 .25rem;border:1px solid #d1d5db;border-radius:3px;background:#fff;color:#2563eb;cursor:pointer;min-height:1.3rem}.preview-wall-assign:hover{border-color:#93c5fd}.preview-wall-input{width:55px;font-size:.6rem;padding:0 .25rem;border:1px solid #d1d5db;border-radius:3px;background:#fff;color:#0f172a;min-height:1.3rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.preview-wall-input::placeholder{color:#9ca3af}.preview-wall-input:focus{border-color:#2563eb;outline:none}.preview-wall-remove{border:none;background:none;cursor:pointer;color:inherit;opacity:.5;font-size:.7rem;padding:0 0 0 .2rem;line-height:1}.preview-wall-remove:hover{opacity:1}.preview-file-label{font-size:.6rem;color:#9ca3af;padding:.15rem .5rem .4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;flex-shrink:0}.preview-card:hover{box-shadow:0 0 0 2px #6366f14d}.preview-card.preview-disabled{border-color:#d1d5db!important;opacity:.4;filter:grayscale(.6)}.preview-card.preview-already{border-color:#d1d5db!important;opacity:.32;filter:grayscale(1)}.preview-card.preview-replacing{border-color:#f59e0b!important;box-shadow:0 0 0 1px #f59e0b40}.preview-card.preview-dragging{opacity:.4;transform:scale(.97);box-shadow:0 4px 16px #00000026}.preview-card.preview-drag-over{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f1,0 4px 12px #6366f133;transform:scale(1.02)}.preview-checkbox{position:absolute;top:6px;left:6px;z-index:3;width:20px;height:20px;border-radius:5px;border:2px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s;padding:0;box-shadow:0 1px 3px #0000001f}.preview-checkbox--checked{background:#22c55e;border-color:#16a34a;color:#fff}.preview-checkbox:hover{border-color:#6366f1}.preview-checkbox--checked:hover{background:#16a34a;border-color:#15803d}.preview-already-label{position:absolute;bottom:38px;left:0;right:0;text-align:center;font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9ca3af;pointer-events:none;z-index:2}.preview-replacing-badge{position:absolute;top:6px;right:6px;z-index:3;background:#f59e0b;color:#fff;font-size:.55rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.15rem .4rem;border-radius:4px;pointer-events:none}.preview-type-btn{cursor:pointer;border:none;padding:.1rem .4rem;border-radius:4px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.preview-type-btn:hover{filter:brightness(.9);outline:1px solid currentColor}.preview-summary-excluded{color:#9ca3af;font-weight:600;font-size:.82rem}.preview-summary-already{color:#f59e0b;font-weight:600;font-size:.82rem}.preview-summary-hint{color:#9ca3af;font-weight:400;font-size:.75rem;margin-left:auto}.preview-summary-action{background:none;border:1px solid #d1d5db;border-radius:5px;padding:.2rem .55rem;font-size:.72rem;font-weight:600;color:#374151;cursor:pointer}.preview-summary-action:hover{background:#f3f4f6}.file-status-uploaded{color:#16a34a}.file-status-processing{color:#d97706}.upload-page{display:flex;flex-direction:column;min-height:100%;position:relative}.upload-page-header{display:flex;align-items:center;gap:1rem;padding:0 0 1rem;border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem}.upload-page-title{display:flex;align-items:baseline;gap:.75rem}.upload-page-title .dash-heading{margin:0}.upload-page-body{display:flex;flex-direction:column;gap:1.25rem;flex:1}.drop-zone-large{padding:3rem 2rem;border:2px dashed #d1d5db;border-radius:14px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;display:flex;flex-direction:column;align-items:center;gap:.6rem;background:#fafafa;color:#6b7280}.drop-zone-large:hover,.drop-zone-large.drag-over{border-color:#6366f1;background:#f5f3ff;color:#4338ca}.drop-zone-label{font-size:1rem;font-weight:600;color:inherit}.drop-zone-hint{font-size:.8rem;color:#9ca3af}.preview-page-summary{display:flex;align-items:center;gap:1.25rem;font-size:.82rem;font-weight:600;padding:.1rem 0}.preview-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem;vertical-align:middle}.preview-dot-shop{background:#22c55e}.preview-dot-struct{background:#d1d5db}.preview-summary-shop{color:#166534}.preview-summary-struct{color:#6b7280}.preview-summary-scanning{color:#9ca3af;font-weight:400;font-style:italic;margin-left:auto}.upload-page-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem;border-top:1px solid #e5e7eb;margin-top:.5rem}.preview-grid--locked{pointer-events:none;opacity:.55}.upload-progress-banner{border-top:1px solid #e5e7eb;padding:1rem 0 .75rem;display:flex;align-items:center;justify-content:center;gap:.85rem;background:#fafafa;border-radius:0 0 10px 10px}.upload-progress-copy{display:flex;flex-direction:column;gap:.18rem}.upload-progress-title{font-size:.9rem;font-weight:700;color:#111827}.upload-progress-subtitle{font-size:.8rem;color:#6b7280}.conflict-warning{display:flex;align-items:flex-start;gap:.5rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.6rem .85rem;font-size:.8rem;color:#92400e;line-height:1.45}.conflict-warning svg{flex-shrink:0;margin-top:1px;color:#d97706}.conflict-warning--replace{background:#eff6ff;border-color:#bfdbfe;color:#1e3a5f}.conflict-warning--replace svg{color:#3b82f6}.file-item-conflict .file-name{color:#2563eb}.file-conflict-tag{font-size:.68rem;font-weight:600;background:#dbeafe;color:#1d4ed8;border-radius:4px;padding:1px 5px;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.sets-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.set-card{background:#fff;border:1px solid #e5e5e5;border-radius:10px;overflow:hidden;contain:layout paint;content-visibility:auto;contain-intrinsic-size:132px}.set-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;cursor:pointer}.set-card-header:hover{background:#fafafa}.set-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.set-card-info strong{font-size:.88rem;font-weight:600}.set-meta{font-size:.75rem;color:#737373}.set-status{font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.set-status-pending{color:#a3a3a3}.set-status-processing{color:#d97706}.set-status-complete{color:#16a34a}.set-status-error{color:#dc2626}.set-card-badges{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.badge-visible{background:#dcfce7;color:#166534;border-color:#bbf7d0}.set-card-detail{padding:.75rem 1rem 1rem;border-top:1px solid #f0f0f0;display:flex;flex-direction:column;gap:.75rem}.set-detail-actions{display:flex;gap:.4rem}.draft-ready-callout{display:flex;align-items:flex-start;gap:.7rem;padding:.8rem .9rem;border:1px solid #e7dcc7;border-left:4px solid #b89a6a;border-radius:10px;background:linear-gradient(135deg,#fcf9f4fa,#f8f3eafa);box-shadow:inset 0 1px #ffffffb8,0 1px 2px #6d542c0d}.draft-ready-icon{width:1.9rem;height:1.9rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#8b6b3f;background:#b89a6a1f;border:1px solid rgba(184,154,106,.2)}.draft-ready-content{display:flex;flex-direction:column;gap:.14rem;min-width:0}.draft-ready-content strong{font-size:.83rem;line-height:1.1;color:#5f4a2c}.draft-ready-content span{font-size:.78rem;line-height:1.35;color:#7b6850}.set-files-section{display:flex;flex-direction:column;gap:.35rem}.job-progress-card{border:1px solid #e5e5e5;border-radius:8px;padding:.75rem;background:#fafafa;display:flex;flex-direction:column;gap:.65rem}.progress-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.82rem;font-weight:600}.progress-label{font-size:.75rem;color:#6b7280}.progress-bar{width:100%;height:6px;border-radius:999px;background:#e5e7eb;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#34d399,#10b981);border-radius:999px;transition:width .4s ease}.job-timeline{display:flex;flex-direction:column;gap:.65rem}.job-row{background:#fff;border:1px solid #e5e5e5;border-radius:6px;padding:.5rem .65rem}.job-row-running{border-color:#d97706;box-shadow:0 0 0 1px #d9770626}.job-row-failed{border-color:#dc2626;box-shadow:0 0 0 1px #dc262626}.job-row-complete{border-color:#16a34a}.job-row-main{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.job-row-main strong{font-size:.8rem}.job-file-name{flex:1 1 auto;min-width:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.72rem;color:#4b5563;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;padding:.05rem .4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-status{padding:.1rem .5rem;border-radius:999px;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.job-status-running{background:#ffedd5;color:#c2410c;border:1px solid #fbbf24}.job-status-complete{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.job-status-failed{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.job-row-meta{font-size:.72rem;color:#6b7280;display:flex;gap:.35rem;flex-wrap:wrap}.job-error{color:#dc2626}.vis-icon{display:inline-flex;align-items:center}.vis-icon-visible{color:#38bdf8}.vis-icon-hidden,.vis-icon-pending,.vis-icon-on_hold{color:#9ca3af}.btn-vis-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:.78rem;cursor:pointer;transition:all .15s}.btn-vis-active{color:#38bdf8;border-color:#7dd3fc;background:#f0f9ff}.btn-vis-active:hover{background:#e0f2fe}.btn-vis-inactive{color:#9ca3af;border-color:#d1d5db}.btn-vis-inactive:hover{background:#f9fafb;color:#6b7280}.set-section{margin-top:.5rem;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.set-section-header{display:flex;align-items:center;gap:.4rem;padding:.45rem .7rem;background:#f9fafb;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.set-section-header::-webkit-details-marker{display:none}.set-section-header:before{content:"▸";font-size:.65rem;color:#9ca3af;transition:transform .15s}details[open]>.set-section-header:before{transform:rotate(90deg)}.set-section-count{font-weight:500;color:#9ca3af;font-size:.65rem}.set-section-scroll{max-height:200px;overflow-y:auto;padding:.5rem .7rem}.wc-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem;padding:.45rem .6rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:.75rem}.wc-filter{padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:4px;font:inherit;font-size:.75rem;width:240px}.wc-filter:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.wc-filter-clear{font-size:1rem;line-height:1;padding:0 .2rem;color:#9ca3af;background:none;border:none;cursor:pointer}.wc-filter-info{font-size:.7rem;color:#6b7280;margin:.25rem 0}.wc-toggles{display:flex;flex-wrap:wrap;gap:.3rem;margin-left:auto}.wc-toggle{font:inherit;display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:5px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .12s;border:1px solid}.wc-t-on{background:#dcfce7;color:#166534;border-color:#86efac}.wc-t-on:hover{background:#bbf7d0}.wc-t-partial{background:#fef9c3;color:#854d0e;border-color:#fde68a}.wc-t-partial:hover{background:#fef08a}.wc-t-off{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}.wc-t-off:hover{background:#e5e7eb}.wc-t-count{font-size:.6rem;opacity:.7}.wc-t-reset{background:#fff;color:#6b7280;border-style:dashed;border-color:#d1d5db}.wc-t-reset:hover{background:#f3f4f6;color:#374151}.wc-order-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.4rem .6rem;margin-bottom:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}.wc-order-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#475569;white-space:nowrap}.wc-order-items{display:flex;flex-wrap:wrap;gap:.25rem}.wc-order-item{display:inline-flex;align-items:center;gap:.2rem;padding:.18rem .45rem;background:#fff;border:1px solid #cbd5e1;border-radius:4px;font-size:.7rem;cursor:grab;-webkit-user-select:none;user-select:none;transition:all .1s}.wc-order-item:hover{border-color:#3b82f6;background:#eff6ff}.wc-order-item:active{cursor:grabbing}.wc-oi-num{font-size:.55rem;font-weight:700;color:#94a3b8;min-width:.8rem;text-align:center}.wc-oi-name{font-weight:600;color:#1e293b}.wc-oi-grip{color:#cbd5e1;font-size:.65rem}.wc-oi-drop{background:#dbeafe!important;border-color:#3b82f6!important}.wc-oi-drag{opacity:.35}.wc-order-reset{font-size:.62rem;color:#64748b;text-decoration:underline;background:none;border:none;cursor:pointer;margin-left:auto}.wc-list{display:flex;flex-direction:column;gap:1px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#e5e7eb}.wc-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#fff;min-height:2.1rem}.wc-row:hover{background:#fafbfc}.wc-row-dim{background:#fafafa!important}.wc-row-id{display:flex;align-items:center;gap:.35rem;flex-shrink:0;min-width:6rem}.wc-id{font-weight:700;font-size:.8rem;color:#1f2937;font-variant-numeric:tabular-nums}.wc-row-dim .wc-id{color:#9ca3af}.wc-hint{font-size:.55rem;color:#d1d5db;font-style:italic;white-space:nowrap}.wc-eye{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;transition:all .12s;flex-shrink:0}.wc-eye-on{color:#16a34a;background:#dcfce7}.wc-eye-on:hover{background:#bbf7d0}.wc-eye-off{color:#9ca3af;background:#f3f4f6}.wc-eye-off:hover{background:#e5e7eb;color:#6b7280}.wc-eye-wait{color:#a16207;background:#fef9c3;cursor:wait}.wc-eye:disabled{opacity:.4;cursor:wait}.wc-chips{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;flex:1;min-width:0}.wc-group{display:inline-flex;align-items:center;gap:.15rem;padding-right:.45rem;border-right:1px solid #e5e7eb}.wc-group:last-child{border-right:none;padding-right:0}.wc-glabel{font-size:.55rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;margin-right:.1rem;-webkit-user-select:none;user-select:none}.wc-chip{font:inherit;display:inline-flex;align-items:center;justify-content:center;padding:.18rem .5rem;border-radius:999px;font-size:.68rem;font-weight:600;cursor:pointer;transition:all .12s;border:1.5px solid;line-height:1.2;white-space:nowrap}.wc-c-on{background:#dcfce7;color:#166534;border-color:#86efac}.wc-c-on:hover{background:#bbf7d0;border-color:#4ade80;box-shadow:0 1px 3px #22c55e33}.wc-c-off{background:#fff;color:#9ca3af;border-color:#d1d5db}.wc-c-off:hover{background:#f9fafb;border-color:#9ca3af;color:#6b7280;box-shadow:0 1px 3px #0000000f}.wc-c-proc{background:#fef9c3;color:#a16207;border-color:#fde68a;cursor:wait;animation:wc-pulse 1.2s ease-in-out infinite}@keyframes wc-pulse{0%,to{opacity:1}50%{opacity:.5}}.wc-chip:disabled{cursor:wait}.wc-empty{font-size:.7rem;color:#d1d5db;font-style:italic}.btn-xs{font-size:.65rem;padding:.1rem .35rem;border:1px solid #d1d5db;border-radius:3px;background:#fff;cursor:pointer;color:#2563eb;line-height:1}.btn-xs:hover{background:#eff6ff;border-color:#93c5fd}.unclassified-list{display:flex;flex-direction:column;gap:.35rem}.unclassified-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .65rem;background:#fff;border:1px solid rgba(148,163,184,.22);border-radius:6px;flex-wrap:wrap}.unclassified-row-dim{opacity:.55;background:#fafafa}.unclassified-row-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.unclassified-row-page{font-size:.82rem;font-weight:700;color:#0f172a;white-space:nowrap}.unclassified-row-file{font-size:.74rem;color:var(--ff-text-muted, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.unclassified-row-actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.public-viewer{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f8fafc}.public-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:2.5rem;max-width:420px;width:100%;text-align:center;box-shadow:0 1px 3px #0000000f;contain:layout paint;content-visibility:auto;contain-intrinsic-size:320px}.public-card h2{margin:.75rem 0 .25rem;font-size:1.3rem}.public-pdf-shell{height:100vh;display:flex;flex-direction:column;background:#f3f4f6}.public-pdf-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;gap:.75rem}.public-pdf-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.public-pdf-title{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;font-size:.88rem;min-width:0}.public-pdf-divider{width:1px;height:18px;background:#d1d5db}.public-pdf-meta{color:#9ca3af;font-size:.78rem}.public-empty-pill{display:inline-flex;align-items:center;justify-content:center;padding:.38rem .7rem;border-radius:999px;background:#fff;color:#4b5563;border:1px solid #d1d5db;font-size:.76rem;font-weight:600}.public-version-strip{display:flex;gap:.5rem;padding:.65rem 1rem;background:#f8fafc;border-bottom:1px solid #e5e7eb;overflow-x:auto;flex-shrink:0}.public-version-chip{border:1px solid #d1d5db;background:#fff;color:#4b5563;border-radius:999px;padding:.35rem .75rem;font:inherit;font-size:.76rem;font-weight:600;cursor:pointer;white-space:nowrap}.public-version-chip.active{border-color:#111827;background:#111827;color:#fff}.public-pdf-body{flex:1;min-height:0;display:flex;justify-content:center;padding:12px}.public-pdf-frame{width:100%;max-width:1400px;height:100%;border:none;background:#f3f4f6;border-radius:6px;overflow:hidden}.public-pdf-loading{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af}@media(max-width:720px){.public-pdf-header{align-items:flex-start;flex-direction:column;gap:.75rem}}.version-sidebar{margin-top:.75rem;border:1px solid #e5e5e5;border-radius:8px;padding:.75rem;background:#fafafa;max-height:300px;overflow-y:auto}.version-sidebar .perm-label{margin-bottom:.5rem}.wgh-on{color:#16a34a}.wgh-partial{color:#d97706}.wgh-off{color:#a3a3a3}.wgh-count{font-size:.6rem;font-weight:400;opacity:.7}.version-list{display:flex;flex-direction:column;gap:.5rem}.version-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:1px solid #e5e5e5;border-radius:6px;background:#fff;font-size:.8rem;transition:border-color .15s}.version-item.version-active{border-color:#10b981;background:#f0fdf4}.version-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.version-label{color:#6b7280;font-style:italic}.version-meta,.version-date{color:#9ca3af;font-size:.75rem}.version-actions{display:flex;gap:.35rem;flex-shrink:0}@media(max-width:640px){.nav-name{display:none}.dash-content{padding:1.5rem 1rem 3rem}}:root{--ff-bg-main: #ffffff;--ff-bg-card: #ffffff;--ff-bg-card-soft: #f8f9fb;--ff-text-strong: #1a1d23;--ff-text-muted: #5f6775;--ff-line: #e2e5ea;--ff-brand: #2563eb;--ff-brand-strong: #1d4ed8;--ff-warn: #d97706;--ff-danger: #d94f4f;--ff-good: #16a34a;--ff-chip: #e8ecf1;--ff-shadow: 0 1px 4px rgba(0, 0, 0, .08)}.page-grid{display:grid;gap:1rem}.page-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.page-title{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:.45rem}.page-muted{margin:0;color:var(--ff-text-muted);font-size:.95rem}.card{background:var(--ff-bg-card);border:1px solid var(--ff-line);border-radius:.375rem;box-shadow:0 1px 3px #0000000f}.panel{padding:.9rem}.row{display:flex;gap:.5rem;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.mono{font-family:IBM Plex Mono,monospace}.divider{border:none;border-top:1px solid var(--ff-line);margin:.5rem 0}.stat-grid{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.stat-card{display:flex;align-items:center;gap:.75rem;padding:.9rem;contain:layout paint;content-visibility:auto;contain-intrinsic-size:112px}.stat-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.25rem;background:#4a90e21f;color:var(--ff-brand);flex-shrink:0}.stat-icon.warn{background:#f5a6231f;color:var(--ff-warn)}.stat-icon.good{background:#27ae601f;color:var(--ff-good)}.stat-icon.danger{background:#e74c3c1f;color:var(--ff-danger)}.stat-value{font-size:1.5rem;font-weight:700;line-height:1;font-family:IBM Plex Mono,monospace}.stat-label{font-size:.88rem;color:var(--ff-text-muted);margin-top:.15rem}.stat-grid.home-expanded{grid-template-columns:1fr 1fr}.dash-active-work{border:2px solid rgba(22,163,74,.4);border-radius:.5rem;background:linear-gradient(135deg,#f0fdf4,#ecfdf5,#f0fdf4);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.75rem}.dash-active-header{display:flex;align-items:center;gap:.55rem;color:#15803d}.dash-active-pulse{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:dash-pulse 2s ease-in-out infinite}@keyframes dash-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 8px #22c55e00}}.dash-active-title{font-size:1.05rem;font-weight:700}.dash-active-grid{display:grid;grid-template-columns:1fr;gap:.55rem}.dash-active-card{display:flex;flex-direction:column;gap:.35rem;padding:.75rem .85rem;border:1px solid rgba(22,163,74,.2);border-radius:.4rem;background:#fff;cursor:pointer;text-align:left;transition:border-color .12s,box-shadow .12s,transform .1s;contain:layout paint;content-visibility:auto;contain-intrinsic-size:132px}.dash-active-card:hover{border-color:#16a34a80;box-shadow:0 2px 12px #16a34a1f;transform:translateY(-1px)}.dash-active-card-top{display:flex;align-items:center;justify-content:space-between}.dash-active-card-id{display:flex;align-items:center;gap:.45rem;font-size:1rem;font-weight:700}.dash-active-card-meta{display:flex;align-items:center;gap:.55rem;font-size:.85rem;color:var(--ff-text-muted)}.dash-active-card-stage{font-weight:600}.dash-active-card-action{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:var(--ff-text-muted);margin-top:.1rem}.dash-active-card-go{display:flex;align-items:center;gap:.3rem;font-weight:700;color:#15803d;font-size:.88rem}.dash-no-work{display:flex;align-items:center;gap:.55rem;padding:.85rem 1rem;border:1px dashed var(--ff-line);border-radius:.4rem;color:var(--ff-text-muted);font-size:.92rem}.dash-no-work-link{background:none;border:none;color:var(--ff-brand);font-weight:700;cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.operations-page{gap:.85rem}.operations-page .work-header{align-items:stretch}.work-header-main{display:grid;gap:.25rem}.work-header-meta{display:flex;flex-wrap:wrap;gap:.35rem}.work-active-strip{position:sticky;top:.25rem;z-index:12;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.55rem;border:1px solid var(--ff-line);border-radius:.5rem;background:#fff;padding:.6rem .75rem}.work-active-strip.mine{border-left:3px solid var(--ff-good);border-color:#16a34a52;background:linear-gradient(180deg,#f4fff8,#eefbf4)}.work-active-strip.busy{border-left:3px solid var(--ff-warn);border-color:#d9770652;background:linear-gradient(180deg,#fffaf1,#fff4df)}.work-active-main{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1}.work-active-dot{width:.58rem;height:.58rem;border-radius:999px;background:var(--ff-brand);flex:0 0 auto}.work-active-dot.mine{background:var(--ff-good);box-shadow:0 0 0 3px #16a34a26}.work-active-dot.busy{background:var(--ff-warn);animation:work-pulse 1.2s ease-in-out infinite}.work-active-title{margin:0;font-family:IBM Plex Mono,monospace;font-size:1rem;font-weight:700}.work-active-sub{margin:0;color:var(--ff-text-muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-active-continue{min-height:2.25rem;padding:0 .75rem;font-size:.84rem}@keyframes work-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.6}}.work-list{display:grid;gap:.4rem}.work-item{border:1px solid var(--ff-line);border-radius:.375rem;background:#fff;padding:.7rem;display:grid;gap:.45rem;cursor:pointer;transition:border-color .12s ease}.work-item:hover{border-color:#93c5fd}.work-item.active{border-color:var(--ff-brand);background:#f5f8ff;border-left:3px solid var(--ff-brand)}.work-item.state-running{border-left:3px solid #f59e0b}.work-item.state-complete{border-left:3px solid #16a34a}.work-item.state-hold{border-left:3px solid #dc2626}.work-item.state-paused{border-left:3px solid #0ea5e9}.work-sort-row{display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.2rem;margin-bottom:.55rem}.work-sort-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ff-line);background:#fff;color:var(--ff-text-muted);border-radius:999px;width:2.25rem;height:2.25rem;padding:0;flex:0 0 auto}.work-sort-btn.active{color:var(--ff-brand);border-color:var(--ff-brand);background:#eef4ff}.work-progress{width:100%;height:.38rem;border-radius:999px;overflow:hidden;background:var(--ff-line)}.work-progress-fill{height:100%;width:0;border-radius:inherit;background:var(--ff-brand);transition:width .15s ease-out}.work-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem}.work-photo-card{border:1px solid var(--ff-line);border-radius:.375rem;background:#fff;padding:0;overflow:hidden;display:grid;gap:0;text-align:left;transition:border-color .12s ease}.work-photo-card:hover{border-color:var(--ff-brand)}.work-photo-thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.work-photo-placeholder{width:100%;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;color:var(--ff-text-muted);background:#f1f5f9}.work-photo-caption{padding:.3rem .4rem;font-size:.76rem;color:var(--ff-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-photo-upload-label{display:inline-flex;margin-left:auto;cursor:pointer}.work-photo-upload-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:var(--ff-brand);color:#fff;border-radius:.45rem;font-size:.8rem;font-weight:600;box-shadow:0 1px 2px #2563eb33;transition:background .12s ease,box-shadow .12s ease,transform .08s ease}.work-photo-upload-btn:hover{background:var(--ff-brand-strong);box-shadow:0 2px 6px #2563eb47}.work-photo-upload-btn:active{transform:translateY(1px)}.work-photo-empty{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1.1rem 1rem;background:#f8fafc;border:1.5px dashed #cbd5e1;border-radius:.55rem;color:#64748b;cursor:pointer;text-align:center;transition:border-color .12s ease,background .12s ease,color .12s ease}.work-photo-empty:hover{border-color:var(--ff-brand);background:#f8fbff;color:var(--ff-brand)}.work-photo-empty-static{cursor:default;padding:.7rem 1rem}.work-photo-empty-static:hover{border-color:#cbd5e1;background:#f8fafc;color:#64748b}.work-photo-empty-title{margin:0;font-size:.86rem;font-weight:700;color:inherit}.work-photo-empty-sub{margin:0;font-size:.74rem;color:#94a3b8}.work-session-overlay{position:fixed;inset:0;z-index:120;display:flex;justify-content:center;align-items:center;padding:.8rem;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#07102073}.work-session-sheet{width:min(1060px,100%);height:min(900px,calc(100dvh - 1.6rem));display:flex;flex-direction:column;border:1px solid var(--ff-line);border-radius:.75rem;overflow:hidden;background:#f8f9fb;box-shadow:0 20px 50px #0f172a4d}.work-session-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.65rem .85rem;border-bottom:1px solid rgba(148,163,184,.3);background:linear-gradient(92deg,#1e293b,#0f172a)}.work-session-title{margin:0;font-size:1rem;font-weight:700;color:#f8fafc}.work-session-sub{margin:0;font-size:.82rem;color:#94a3b8}.work-session-tabs{display:flex;gap:.4rem;overflow-x:auto;padding:.5rem .75rem;border-bottom:1px solid var(--ff-line);background:#fff}.work-session-tab{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--ff-line);background:#f8f9fb;color:var(--ff-text-muted);border-radius:999px;min-height:2.1rem;padding:0 .72rem;font-size:.8rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;flex:0 0 auto}.work-session-tab.active{border-color:var(--ff-brand);background:#fff;color:var(--ff-brand)}.work-session-context{padding:.55rem .75rem;border-bottom:1px solid var(--ff-line);background:#fff}.work-session-context-inner{border:1px solid var(--ff-line);border-left-width:4px;border-radius:.375rem;background:#f8f9fb;padding:.5rem .65rem;display:grid;gap:.35rem}.work-session-context-inner.state-running{border-left-color:#f59e0b}.work-session-context-inner.state-paused{border-left-color:#0ea5e9}.work-session-context-inner.state-complete{border-left-color:#16a34a}.work-session-context-inner.state-hold{border-left-color:#dc2626}.work-session-context-sub{margin:0;font-size:.82rem;color:var(--ff-text-muted)}.work-session-body{flex:1;overflow-y:auto;padding:.65rem .75rem;display:grid;gap:.55rem}.state-running{border-left-color:#f59e0b}.state-paused{border-left-color:#0ea5e9}.state-complete{border-left-color:#16a34a}.state-hold{border-left-color:#dc2626}.state-skipped{border-left-color:#a78bfa}.split-grid{display:grid;gap:.75rem}.section-header{display:flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;color:var(--ff-text-muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:.4rem;border-bottom:1px solid var(--ff-line);margin-bottom:.5rem}.form-grid{display:grid;gap:.75rem}.field{display:grid;gap:.3rem}.field label{font-weight:600;font-size:.88rem;color:var(--ff-text-muted);text-transform:uppercase;letter-spacing:.04em}.input,.select,.textarea{width:100%;border:1px solid var(--ff-line);border-radius:.25rem;background:#fff;padding:.55rem .65rem;min-height:2.5rem;font-size:.95rem;color:var(--ff-text-strong)}.textarea{resize:vertical;min-height:4.5rem}.input:focus,.select:focus,.textarea:focus{outline:2px solid rgba(59,130,246,.4);outline-offset:1px;border-color:var(--ff-brand)}.list{display:grid;gap:.4rem}.item{border:1px solid var(--ff-line);border-radius:.25rem;background:var(--ff-bg-card-soft);padding:.7rem;display:grid;gap:.35rem;cursor:pointer;transition:border-color .15s,background .15s}.item:hover{border-color:#c0c6d0}.item.active{border-color:var(--ff-brand);background:#2563eb0f;border-left:3px solid var(--ff-brand)}.item-title{font-size:1.05rem;font-weight:700;margin:0}.item-sub{font-size:.9rem;margin:0;color:var(--ff-text-muted)}.tab-buttons{display:flex;gap:0;border-bottom:1px solid var(--ff-line)}.tab-button{border:none;background:none;padding:.5rem 1rem;font-size:.92rem;font-weight:600;color:var(--ff-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab-button:hover{color:var(--ff-text-strong)}.tab-button.active{color:var(--ff-brand);border-bottom-color:var(--ff-brand)}.btn{border:0;border-radius:.25rem;min-height:2.5rem;padding:0 .85rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .15s,opacity .15s}.btn:hover{opacity:.88}.btn:active{opacity:.75}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.full{width:100%}.btn.primary{background:var(--ff-brand);color:#fff}.btn.primary:hover{background:var(--ff-brand-strong)}.btn.secondary{background:#fff;color:var(--ff-text-strong);border:1px solid var(--ff-line)}.btn.secondary:hover{background:var(--ff-bg-card-soft)}.btn.danger{background:var(--ff-danger);color:#fff}.btn-trash{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--ff-danger);color:#fff;border:none;border-radius:6px;cursor:pointer;flex-shrink:0;transition:background .12s ease,transform .08s ease}.btn-trash:hover:not(:disabled){background:#b91c1c}.btn-trash:active:not(:disabled){transform:scale(.94)}.btn-trash:disabled{opacity:.5;cursor:not-allowed}.btn-trash-sm{width:24px;height:24px;border-radius:5px}.btn.good{background:var(--ff-good);color:#fff}.btn.warn{background:var(--ff-warn);color:#fff}.badge.good{background:#16a34a1a;color:var(--ff-good)}.badge.warn{background:#d977061a;color:var(--ff-warn)}.badge.danger{background:#dc26261a;color:var(--ff-danger)}.audit-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.audit-table{width:100%;border-collapse:collapse;font-size:.88rem}.audit-table th{text-align:left;padding:.5rem .6rem;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ff-text-muted);border-bottom:2px solid var(--ff-line);white-space:nowrap}.audit-table td{padding:.45rem .6rem;border-bottom:1px solid var(--ff-line);vertical-align:top}.audit-table tr:hover td{background:var(--ff-bg-card-soft)}.create-page{gap:.85rem}.dashboard-page,.create-page,.setup-page{min-width:0;container-type:inline-size}.create-hero{border:1px solid rgba(37,99,235,.28);background:linear-gradient(125deg,#f5f9ff,#eef6ff 60%,#e6fff4);padding:1.1rem 1.25rem}.create-hero-controls{display:grid;grid-template-columns:minmax(14rem,1fr) auto;gap:1rem;align-items:end;margin-top:.5rem}.create-factory-field{margin:0}.create-factory-field .select{font-weight:600}.field-hint{display:block;margin-top:.25rem;font-size:.72rem;color:#6b7280}.field-optional{font-size:.7rem;color:#9ca3af;font-weight:400;margin-left:.25rem}.create-hero-stats{display:flex;gap:.5rem;align-items:stretch}.create-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:4.6rem;padding:.45rem .6rem;background:#ffffffb3;border:1px solid rgba(37,99,235,.18);border-radius:.5rem}.create-stat-num{font-size:1.1rem;font-weight:700;color:#111827;line-height:1}.create-stat-label{font-size:.65rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem}.create-card-sub{margin-top:-.4rem;margin-bottom:.5rem;font-size:.78rem}.create-inline-warning{background:#fffbeb;border:1px solid #fcd34d;color:#92400e;border-radius:.4rem;padding:.55rem .7rem;font-size:.82rem;line-height:1.4}.create-inline-warning a{color:#92400e;text-decoration:underline;font-weight:600}.create-submit{margin-top:.4rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.create-empty-state{text-align:center;padding:2.5rem 1.5rem}.create-empty-state h2{margin:.5rem 0 .25rem;font-size:1.1rem;color:#111827}.create-empty-icon{font-size:2.4rem;line-height:1}@media(max-width:640px){.create-hero-controls{grid-template-columns:1fr;align-items:stretch}.create-hero-stats{justify-content:flex-start;flex-wrap:wrap}}.create-hero-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.create-layout{display:grid;gap:.8rem;grid-template-columns:1fr}.create-card{border:1px solid var(--ff-line);contain:layout paint;content-visibility:auto;contain-intrinsic-size:280px}.create-card .section-header{margin-bottom:.65rem}.create-template-rule{border:1px dashed rgba(37,99,235,.3);border-radius:.35rem;background:#fff;padding:.45rem .55rem;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.create-preview-row{display:flex;flex-wrap:wrap;gap:.35rem;min-height:2.4rem;padding:.38rem;border:1px solid var(--ff-line);border-radius:.3rem;background:#fff}.setup-page{display:grid;gap:.85rem}.dashboard-page .page-header,.create-page .page-header,.setup-page .page-header{flex-wrap:wrap}.dashboard-page .page-header>*,.create-page .page-header>*,.setup-page .page-header>*{min-width:0}.dashboard-page .page-header .btn,.create-page .page-header .btn,.setup-page .page-header .btn{flex:0 0 auto}.dashboard-page .split-grid:not(.operations),.create-page .split-grid:not(.operations),.setup-page .split-grid:not(.operations){grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}.dash-active-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}.dash-active-card-meta,.dash-active-card-action{flex-wrap:wrap;row-gap:.3rem}.create-hero-head{flex-wrap:wrap}.create-hero-head>*{min-width:0}.create-layout{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));align-items:start}.create-page .field{min-width:0}.create-page .row{flex-wrap:wrap}.tab-bar{display:flex;flex-wrap:wrap;gap:.45rem}.tab-btn{min-height:2.3rem;padding:0 .8rem;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#fff;color:var(--ff-text-muted);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.setup-tab-info{display:flex;align-items:center;gap:.55rem;margin:.35rem 0 .15rem;padding:.55rem .85rem;background:#2563eb0d;border:1px solid rgba(37,99,235,.12);border-radius:8px;font-size:.82rem;color:var(--ff-text-muted)}.setup-tab-info span{line-height:1.4}.info-dot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#94a3b838;color:var(--ff-text-muted);font-family:inherit;font-size:.6rem;font-weight:700;font-style:normal;line-height:1;cursor:help;-webkit-user-select:none;user-select:none;transition:background .15s ease,color .15s ease}.info-dot:before{content:"";position:absolute;inset:-4px}.tab-btn.active .info-dot{background:#ffffff40;color:#fff}.info-dot:hover,.info-dot:focus-visible{background:var(--ff-brand);color:#fff;outline:none}.info-dot-tooltip{position:absolute;top:calc(100% + 10px);left:0;transform:translateY(4px);width:max-content;max-width:min(280px,calc(100vw - 2rem));padding:.55rem .75rem;background:#0f172a;color:#f1f5f9;font-size:.72rem;font-weight:500;font-style:normal;font-family:inherit;line-height:1.35;border-radius:6px;box-shadow:0 10px 24px #0f172a38;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;white-space:normal;text-align:left;z-index:30}.info-dot-tooltip:before{content:"";position:absolute;top:-5px;left:8px;border:5px solid transparent;border-top:0;border-bottom-color:#0f172a}.info-dot:hover .info-dot-tooltip,.info-dot:focus-visible .info-dot-tooltip{opacity:1;transform:translateY(0);pointer-events:auto}.tab-btn:hover{border-color:#2563eb61;color:var(--ff-brand)}.tab-btn.active{border-color:var(--ff-brand);background:linear-gradient(180deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 10px 20px #2563eb2e}.toggle-wrap{display:inline-flex;align-items:center;gap:.7rem}.toggle-label{font-size:.82rem;font-weight:700;color:var(--ff-text-muted);text-transform:uppercase;letter-spacing:.06em}.toggle{position:relative;width:3rem;height:1.75rem;border:1px solid rgba(148,163,184,.45);border-radius:999px;background:#e2e8f0;cursor:pointer;transition:background .15s ease,border-color .15s ease}.toggle:after{content:"";position:absolute;top:.16rem;left:.18rem;width:1.15rem;height:1.15rem;border-radius:999px;background:#fff;box-shadow:0 1px 4px #0f172a2e;transition:transform .15s ease}.toggle.on{background:#2563eb;border-color:#1d4ed8}.toggle.on:after{transform:translate(1.2rem)}.field-hint{display:inline-block;margin-top:.25rem;font-size:.76rem;line-height:1.45;color:var(--ff-text-muted)}.setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.6rem}.setup-line-card,.setup-add-card{display:grid;align-content:start;overflow:hidden;text-align:left}.setup-line-card{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.setup-line-card:hover{transform:translateY(-1px);border-color:#2563eb59;box-shadow:0 8px 18px #2563eb14}.setup-line-card-bar{height:.2rem;width:100%}.setup-line-card-body{display:grid;gap:.3rem;padding:.65rem .75rem .7rem}.setup-line-card-name{margin:0;font-size:.95rem;font-weight:700;color:#0f172a;line-height:1.2}.setup-line-card-factory{margin:0;color:var(--ff-text-muted);font-size:.8rem}.setup-line-card-stats{display:flex;flex-wrap:wrap;gap:.35rem;color:var(--ff-text-muted);font-size:.78rem}.setup-line-card-open{margin-top:.2rem;font-size:.75rem;font-weight:700;color:var(--ff-brand);letter-spacing:.02em;transition:transform .12s ease}.setup-line-card:hover .setup-line-card-open{transform:translate(2px)}.setup-line-card:focus-visible{outline:2px solid var(--ff-brand);outline-offset:2px}.setup-readonly-banner{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:.45rem;font-size:.85rem;line-height:1.4;margin-bottom:.5rem}.setup-readonly-banner strong{color:#1e3a8a}.setup-readonly-banner em{color:#1e3a8a;font-style:normal;font-weight:700}.setup-add-card{place-items:center;min-height:4.5rem;border:1px dashed rgba(148,163,184,.45);background:linear-gradient(180deg,#f8fafc,#f1f5f9);cursor:pointer}.setup-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1.5rem;gap:.65rem}.setup-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:#2563eb14;color:var(--ff-brand);margin-bottom:.5rem}.setup-empty-title{margin:0;font-size:1.15rem;font-weight:800;color:#0f172a}.setup-empty-desc{margin:0 0 .4rem;max-width:40rem;font-size:.9rem;line-height:1.55;color:var(--ff-text-muted)}.setup-empty-desc strong{color:#0f172a}.setup-empty-desc em{color:var(--ff-brand);font-style:normal;font-weight:600}.setup-add-card span{font-size:.95rem;font-weight:800;color:var(--ff-brand)}.setup-editor{display:grid;gap:.9rem;min-width:0}.setup-editor-topbar{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.setup-editor-header{display:flex;flex-direction:column;gap:.5rem;padding:.65rem .85rem .75rem;border:1px dashed #cbd5e1;border-radius:.5rem;background:#f8fafc}.setup-editor-copy{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.setup-editor-kicker{font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#1d4ed8;padding:.1rem .4rem;background:#eff6ff;border:1px solid #dbeafe;border-radius:4px;white-space:nowrap}.setup-editor-heading{margin:0;font-size:.82rem;line-height:1.3;font-weight:600;color:#0f172a}.setup-editor-help{margin:0;flex-basis:100%;font-size:.72rem;line-height:1.4;color:#64748b}.setup-editor-header>.field,.setup-editor-header>label+input,.setup-editor-header>.row{flex:0 0 auto}.setup-editor-header .field{display:flex;flex-direction:column;gap:.15rem;min-width:0}.setup-editor-header .field>label,.setup-editor-header>label{font-size:.62rem!important;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.setup-editor-title,.setup-editor-desc{width:100%;min-width:0;border:1px solid #cbd5e1;border-radius:.4rem;background:#fff;color:#0f172a;outline:none}.setup-editor-title{min-height:2rem;padding:.3rem .55rem;font:inherit;font-size:.88rem;font-weight:600}.setup-editor-desc{min-height:1.9rem;padding:.3rem .55rem;font:inherit;font-size:.8rem}.setup-editor-title:focus,.setup-editor-desc:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.setup-editor-header .select{min-height:1.95rem;font-size:.8rem;padding:.25rem .55rem}.setup-stage-list{display:grid;gap:0;position:relative;padding-left:1.35rem}.setup-stage-list:before{content:"";position:absolute;left:.95rem;top:.9rem;bottom:.9rem;width:2px;background:repeating-linear-gradient(180deg,rgba(37,99,235,.35) 0 6px,transparent 6px 12px);border-radius:2px}.setup-stage-card{position:relative;border:1px solid #e2e8f0;border-left:3px solid #2563eb;border-radius:.6rem;background:#fff;box-shadow:0 1px 2px #0f172a0a;overflow:hidden;contain:layout paint;content-visibility:auto;contain-intrinsic-size:200px;margin:.4rem 0;transition:box-shadow .15s ease,border-color .15s ease}.setup-stage-card:hover{border-color:#cbd5e1;border-left-color:#1d4ed8;box-shadow:0 4px 10px -4px #0f172a1f}.setup-stage-card.dragging{opacity:.55}.setup-stage-top{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.55rem .85rem;background:#fff;border-bottom:1px solid transparent}.setup-stage-card:has(.setup-stage-expanded) .setup-stage-top{border-bottom-color:#eef2f7;background:#f8fafc}.setup-stage-title-block{display:grid;gap:.08rem;min-width:0;flex:1 1 16rem}.setup-stage-subtitle{font-size:.74rem;line-height:1.4;color:var(--ff-text-muted)}.setup-stage-num{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:.5rem;background:#eff6ff;color:#1d4ed8;font-size:.78rem;font-weight:800;flex:0 0 auto;border:1px solid #bfdbfe;margin-left:-2.05rem;position:relative;z-index:1;box-shadow:0 0 0 3px #fff}.setup-stage-card:hover .setup-stage-num{background:#2563eb;color:#fff;border-color:#2563eb}.setup-stage-expanded{display:grid;gap:.75rem;padding:.85rem;background:#fff}.setup-stage-body{display:flex;gap:.75rem;align-items:flex-end;padding-left:0;flex-wrap:wrap}.setup-stage-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--ff-text-muted)}.setup-add-btn{min-height:2.4rem;padding:0 .85rem;border:1px dashed rgba(37,99,235,.35);border-radius:.8rem;background:#2563eb0d;color:var(--ff-brand);font:inherit;font-weight:700;cursor:pointer}.setup-cl-group{position:relative;display:grid;gap:.5rem;margin:.25rem 0 .1rem .25rem;padding:.15rem 0 .15rem 1rem;border-left:2px solid rgba(37,99,235,.22)}.setup-cl-inline{border:1px solid #e2e8f0;border-radius:.6rem;background:#fff;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease}.setup-cl-inline:hover{border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a0d}.setup-cl-inline-open{border-color:#bfdbfe;box-shadow:0 1px 2px #0f172a0d}.setup-cl-inline-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .7rem .5rem .55rem;cursor:pointer;background:linear-gradient(180deg,#eff6ffb3,#fff);border-bottom:1px solid transparent;font-size:.85rem}.setup-cl-inline-open .setup-cl-inline-header{border-bottom-color:#eef2f7}.setup-cl-chevron{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#64748b;transition:transform .15s ease,color .15s ease;flex-shrink:0}.setup-cl-chevron.open{transform:rotate(90deg);color:#1d4ed8}.setup-cl-inline-title{flex:1;min-width:0;color:#1d4ed8;font-weight:700;letter-spacing:.01em}.setup-cl-inline-body{display:grid;gap:.65rem;padding:.75rem .8rem .85rem;background:#fbfcfe}.setup-cl-badge{display:inline-flex;align-items:center;padding:.12rem .5rem;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;flex-shrink:0}.setup-cl-badge-info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.setup-cl-badge-warn{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.setup-cl-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none}.setup-cl-toggle input[type=checkbox]{accent-color:var(--ff-brand)}.setup-icon-btn-group{display:inline-flex;align-items:stretch;margin-left:auto;flex-shrink:0;background:#fff;border:1px solid #e2e8f0;border-radius:7px;overflow:hidden;box-shadow:0 1px 1px #0f172a08}.setup-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-right:1px solid #eef2f7;color:#64748b;cursor:pointer;transition:background .1s ease,color .1s ease}.setup-icon-btn:last-child{border-right:none}.setup-icon-btn:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.setup-icon-btn:disabled{opacity:.35;cursor:not-allowed}.setup-icon-btn-danger{background:var(--ff-danger);color:#fff;border-left:1px solid rgba(0,0,0,.1)}.setup-icon-btn-danger:hover:not(:disabled){background:#b91c1c;color:#fff}.setup-field-card{display:grid;gap:.5rem;padding:.65rem .7rem .7rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;transition:border-color .12s ease}.setup-field-card:hover{border-color:#cbd5e1}.setup-field-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.setup-field-num{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.setup-cl-add-item,.setup-cl-add-list{display:inline-flex;justify-content:center;align-items:center;min-height:2.1rem;padding:.4rem .8rem;background:#2563eb0a;border:1px dashed rgba(37,99,235,.35);border-radius:.5rem;color:var(--ff-brand);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease}.setup-cl-add-item:hover,.setup-cl-add-list:hover{background:#2563eb17;border-color:var(--ff-brand)}.setup-cl-add-list{justify-self:stretch;min-height:2.4rem}.factory-map-preview-card{display:grid;gap:.85rem;padding:.9rem;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 1px 2px #0f172a0a;contain:layout paint}.factory-map-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;flex-wrap:wrap}.factory-map-preview-kicker{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ff-brand)}.factory-map-preview-title{margin:.2rem 0 0;font-size:1.05rem;line-height:1.3;font-weight:700;color:#0f172a}.factory-map-preview-address{margin:.25rem 0 0;font-size:.82rem;color:var(--ff-text-muted)}.factory-map-preview-frame{position:relative;display:block;width:100%;max-width:480px;border-radius:12px;overflow:hidden;border:1px solid rgba(148,163,184,.22);background:#e2e8f0;aspect-ratio:16 / 9;box-shadow:inset 0 0 0 1px #ffffff80}.factory-map-preview-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.factory-map-preview-badge{display:inline-flex;align-items:center;gap:.35rem;height:1.65rem;padding:0 .65rem;border-radius:999px;border:1px solid rgba(148,163,184,.32);background:#fff;font-size:.74rem;font-weight:600;color:#334155;letter-spacing:.01em;white-space:nowrap}.factory-map-preview-badge.off{border-color:#2563eb59;background:#2563eb14;color:#1d4ed8;text-transform:capitalize}.factory-map-preview-badge.warn{border-color:#d9770666;background:#f59e0b1f;color:#92400e;text-transform:capitalize}.factory-map-preview-badge.block{border-color:#dc262666;background:#ef44441f;color:#991b1b;text-transform:capitalize}.factory-map-preview-help{margin:0;font-size:.78rem;line-height:1.4;color:var(--ff-text-muted)}.factory-map-preview-empty{margin:0;padding:1rem;font-size:.84rem;color:var(--ff-text-muted);border:1px dashed rgba(148,163,184,.45);border-radius:10px;background:#f8fafc;text-align:center}.factory-map-preview-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.factory-map-preview-iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#e2e8f0;pointer-events:none;filter:saturate(.92) contrast(.98)}.factory-map-preview-shield{position:absolute;inset:0;z-index:1;background:transparent;cursor:default}.factory-map-preview-frame:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px #0f172a0f;z-index:3}.factory-map-preview-ring-glow{fill:#2563eb2e;stroke:#2563eb59;stroke-width:10}.factory-map-preview-ring-glow.warn{fill:#f59e0b2e;stroke:#d9770659}.factory-map-preview-ring-glow.block{fill:#ef44442e;stroke:#dc262659}.factory-map-preview-ring{fill:none;stroke:#2563ebf2;stroke-width:3;stroke-dasharray:6 3}.factory-map-preview-ring.warn{stroke:#d97706f2}.factory-map-preview-ring.block{stroke:#dc2626f2}.factory-map-preview-pin{pointer-events:none}.factory-map-preview-pin-shadow{fill:#0f172a47}.factory-map-preview-pin-body{fill:#2563eb;stroke:#fff;stroke-width:3;stroke-linejoin:round;transition:fill .15s ease}.factory-map-preview-pin-body.warn{fill:#d97706}.factory-map-preview-pin-body.block{fill:#dc2626}.factory-map-preview-pin-hole{fill:#fff}.setup-tpl-section{display:grid;gap:.75rem}.setup-tpl-section-header,.setup-tpl-header{width:100%;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;border:1px solid rgba(148,163,184,.24);border-radius:.85rem;background:#fff;padding:.7rem .85rem;color:#0f172a;font:inherit;font-weight:800;text-align:left;cursor:pointer}.setup-tpl-list{display:grid;gap:.7rem;padding:0}.setup-tpl-card{border:1px solid rgba(148,163,184,.24);border-radius:.9rem;background:#fff;overflow:hidden;contain:layout paint;content-visibility:auto;contain-intrinsic-size:240px}.setup-tpl-body{display:grid;gap:.75rem;padding:.85rem;border-top:1px solid rgba(226,232,240,.9)}@container (max-width: 1100px){.dashboard-page .page-header .btn,.create-page .page-header .btn,.setup-page .page-header .btn{width:100%}.create-hero-head{flex-direction:column;align-items:stretch}.create-hero .field{min-width:0!important;width:100%}.setup-editor-topbar{align-items:stretch}.setup-editor-topbar .row{width:100%;justify-content:stretch;flex-wrap:wrap}.setup-editor-topbar .row>*{flex:1 1 12rem}}@container (max-width: 760px){.dashboard-page .page-title,.create-page .page-title,.setup-page .page-title{font-size:1.1rem}.stat-grid,.dash-active-grid,.create-layout,.setup-grid,.dashboard-page .split-grid:not(.operations),.create-page .split-grid:not(.operations),.setup-page .split-grid:not(.operations){grid-template-columns:1fr}.stat-card,.dash-active-work,.create-hero,.create-card,.setup-line-card,.setup-add-card,.setup-editor-header,.setup-stage-card,.setup-tpl-card{border-radius:.85rem}.setup-stage-top{padding:.7rem .8rem}.setup-stage-expanded,.setup-tpl-body{padding:.8rem}.tab-btn{flex:1 1 9rem;justify-content:center}}.stage-item{border:1px solid var(--ff-line);border-radius:.375rem;padding:.75rem;background:var(--ff-bg-card-soft);display:grid;gap:.5rem;transition:opacity .2s,border-color .2s}.stage-item.dragging{opacity:.4}.stage-item.drag-over{border-top:3px solid var(--ff-brand)}.stage-header{display:flex;align-items:center;gap:.5rem}.stage-body{display:flex;gap:.75rem;align-items:center;padding-left:1.75rem;flex-wrap:wrap}.qc-check-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border:1px solid var(--ff-line);border-radius:.25rem;background:var(--ff-bg-card-soft);transition:background .1s}.qc-check-item:hover{background:#eef0f4}.drag-over{border-top:3px solid var(--ff-brand)}.work-action-panel{border:1px solid var(--ff-line);border-radius:.375rem;background:#fff;padding:.55rem}.work-action-panel.mine{border-left:3px solid var(--ff-good)}.work-inline-section{border-top:1px solid var(--ff-line);padding-top:.5rem}.work-inline-section .section-header{display:flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;color:var(--ff-text-muted);margin-bottom:.35rem}.work-stage-guidance{display:grid;gap:.5rem}.work-stage-guidance-note{margin:0;padding:.5rem .65rem;border:1px dashed #cbd5e1;border-radius:.45rem;background:#f8fafc;color:#64748b}.work-stage-guidance-block{display:grid;gap:.4rem;padding:.55rem .7rem;border:1px solid var(--ff-line);border-radius:.45rem;background:#fff}.work-stage-guidance-block.is-disabled{background:#f8fafc;border-style:dashed}.work-stage-guidance-title{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#475569}.work-stage-desc{margin:0;font-size:.9rem;line-height:1.45;color:#0f172a}.work-stage-desc.is-placeholder,.work-stage-placeholder{color:#64748b}.work-stage-image{max-width:100%;max-height:12rem;border-radius:.45rem;border:1px solid var(--ff-line);object-fit:contain;background:#f8fafc;align-self:start}.work-stage-checklist{border:1px solid var(--ff-line);border-radius:.45rem;padding:.55rem .7rem;background:#fff;display:grid;gap:.35rem}.work-stage-checklist.is-disabled{background:#f8fafc;border-style:dashed}.work-stage-checklist-head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.work-stage-checklist-title{font-weight:700;font-size:.9rem;color:#0f172a}.work-stage-checklist-items{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}.work-stage-checklist-items li{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#334155}.work-stage-check-input{width:1rem;height:1rem;margin:0;accent-color:var(--ff-brand);flex-shrink:0}.work-stage-check{width:1.05rem;height:1.05rem;display:grid;place-items:center;font-size:.95rem;color:var(--ff-brand);flex-shrink:0}.work-stage-check-label{flex:1;min-width:0}.work-stage-check-req{font-size:.7rem;color:#92400e;background:#fef3c7;padding:.05rem .35rem;border-radius:.25rem;letter-spacing:.03em;text-transform:uppercase;font-weight:700}.workpiece-item{border-color:var(--ff-line);border-radius:.375rem;padding:.7rem;background:#fff;transition:border-color .12s ease}.workpiece-item:hover{border-color:#93c5fd}.workpiece-item.active{border-color:var(--ff-brand);background:#f5f8ff;border-left:3px solid var(--ff-brand)}.workpiece-item.state-running{border-left:3px solid #f59e0b}.workpiece-item.state-complete{border-left:3px solid #16a34a}.workpiece-item.state-hold{border-left:3px solid #dc2626}.workpiece-item.state-paused{border-left:3px solid #0ea5e9}.workpiece-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.55rem}.workpiece-item-id{display:flex;align-items:center;gap:.4rem;min-width:0}.workpiece-item-status{flex:0 0 auto}.workpiece-active-self{color:#15803d;font-weight:700}.workpiece-active-other{color:#b45309;font-weight:700}.work-stage-chip-row{display:flex;flex-wrap:wrap;gap:.3rem}.work-stage-chip{display:flex;align-items:center;gap:.4rem;text-align:left;border:1px solid var(--ff-line);border-left:3px solid #cbd5e1;background:#fff;color:var(--ff-text-muted);border-radius:.35rem;padding:.35rem .6rem;font-size:.76rem;font-weight:600;flex:0 0 auto}.work-stage-chip.active{border-left-color:var(--ff-brand);background:#f5f8ff}.work-stage-chip.state-running{border-left-color:#f59e0b}.work-stage-chip.state-paused{border-left-color:#0ea5e9}.work-stage-chip.state-complete{border-left-color:#16a34a}.work-stage-chip.state-hold{border-left-color:#dc2626}.work-stage-chip.state-not-started{border-left-color:#cbd5e1}.work-stage-chip.state-skipped{border-left-color:#a78bfa}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal-card{background:var(--ff-bg-card);border-radius:.5rem;padding:1rem;width:100%;max-width:420px;box-shadow:0 8px 32px #00000059}.work-photo-lightbox{position:fixed;inset:0;z-index:140;background:#020617e0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:1rem}.work-photo-lightbox-img,.work-photo-lightbox-placeholder{width:100%;max-height:calc(100dvh - 8rem);border-radius:.6rem;object-fit:contain;background:#0f172ae6;border:1px solid rgba(148,163,184,.35)}.issue-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.55rem}.issue-photo-card{display:grid;gap:.35rem;border:1px solid var(--ff-line);background:var(--ff-bg-card-soft);border-radius:.35rem;padding:.45rem}@media(min-width:900px){.stat-grid{grid-template-columns:repeat(4,1fr)}.stat-grid.home-expanded{grid-template-columns:repeat(3,1fr)}.dash-active-grid{grid-template-columns:repeat(2,1fr)}.split-grid{grid-template-columns:1fr 1fr}}@media(min-width:980px){.create-layout{grid-template-columns:minmax(320px,.95fr) minmax(460px,1.05fr)}}@media(min-width:1280px){.split-grid.operations{grid-template-columns:minmax(320px,.9fr) minmax(480px,1.1fr)}}@media(max-width:899px){.work-active-strip{top:.4rem}.work-active-main{width:100%}.work-active-sub{white-space:normal}.work-session-overlay{padding:0}.work-session-sheet{width:100%;height:100dvh;border-radius:0;border:none;box-shadow:none}.work-session-body{padding:.55rem}.work-session-head{position:sticky;top:0;z-index:2}.work-session-tabs{position:sticky;top:3.45rem;z-index:2}.work-stage-chip-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.15rem}.work-sort-row{-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}}@media(max-width:640px){.page-title{font-size:1.15rem}.btn{min-height:2.75rem}.input,.select,.textarea{min-height:2.75rem;font-size:1rem}.stat-grid{gap:.5rem}.stat-card{padding:.65rem}.stat-value{font-size:1.25rem}.stat-label{font-size:.8rem}.stat-icon{width:2.1rem;height:2.1rem}.dash-active-work{padding:.75rem}.dash-active-card{padding:.65rem .75rem}.panel{padding:.7rem}.split-grid,.form-grid{gap:.6rem}.create-layout{gap:.65rem}.create-hero{padding:.7rem}.textarea{min-height:6rem}.work-photo-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.issue-photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.work-sort-btn{width:2.5rem;height:2.5rem}.workpiece-item{padding:.85rem;gap:.5rem}.item-title{font-size:.95rem}.audit-table{font-size:.82rem}.audit-table th{padding:.4rem .45rem;font-size:.72rem}.audit-table td{padding:.4rem .45rem}.work-photo-lightbox{grid-template-columns:1fr;padding:.65rem;gap:.5rem}}.operations-page{gap:1rem;min-width:0;container-type:inline-size}.work-floor-hero{position:relative;overflow:hidden;border:1px solid rgba(37,99,235,.12);background:radial-gradient(circle at top right,rgba(59,130,246,.18),transparent 34%),linear-gradient(180deg,#fff,#f5f9ff);box-shadow:0 18px 48px #0f172a14}.work-floor-hero:after{content:"";position:absolute;inset:auto -3rem -3rem auto;width:13rem;height:13rem;border-radius:999px;background:radial-gradient(circle,#3b82f629,#3b82f600 72%);pointer-events:none}.operations-page .work-header{align-items:end}.work-floor-hero-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem}.work-floor-kicker,.work-panel-kicker{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ff-brand)}.work-floor-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.work-floor-copy,.work-panel-copy{max-width:48rem;margin:0;font-size:.92rem;line-height:1.55;color:var(--ff-text-muted)}.work-header-actions{display:flex;align-items:flex-start;justify-content:flex-end}.work-header-actions .btn{min-width:11rem}.work-floor-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.8rem}.work-metric-card{position:relative;display:grid;gap:.28rem;padding:.9rem 1rem;border:1px solid rgba(148,163,184,.22);border-radius:.9rem;background:#fffc;box-shadow:inset 0 1px #ffffffb3}.work-metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:.2rem;border-radius:inherit;background:linear-gradient(180deg,var(--ff-brand) 0%,#93c5fd 100%)}.work-metric-label{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.work-metric-value{font-size:2rem;line-height:1;font-weight:800;color:#0f172a}.work-metric-sub{font-size:.82rem;color:var(--ff-text-muted)}.work-header-meta{gap:.45rem}.work-header-meta .badge{background:#fffc;border-color:#94a3b859}.work-active-strip{border-radius:.9rem;box-shadow:0 12px 30px #0f172a0f}.work-queue-panel,.work-workspace-launch{display:grid;align-content:start;gap:.95rem;min-height:32rem;min-width:0;border-radius:1rem;box-shadow:0 16px 36px #0f172a0f}.split-grid.operations{grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));align-items:start}.work-panel-heading{display:grid;gap:.35rem}.work-section-header{align-items:center;gap:.45rem;font-size:1rem;font-weight:800;color:#0f172a}.work-panel-copy{margin-top:.1rem}.work-queue-toolbar{display:grid;gap:.85rem}.work-search-shell{display:flex;align-items:center;gap:.65rem;min-height:3rem;padding:0 .9rem;border:1px solid rgba(148,163,184,.28);border-radius:.9rem;background:linear-gradient(180deg,#fff,#f8fafc);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.work-search-shell:focus-within{border-color:#2563eb73;box-shadow:0 0 0 4px #2563eb1f;background:#fff}.work-search-icon{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:999px;background:#2563eb1a;color:var(--ff-brand);font-size:.76rem;font-weight:800;flex:0 0 auto}.work-search-input{min-height:0;border:none;background:transparent;padding:0;box-shadow:none}.work-search-input:focus{box-shadow:none}.work-search-input::placeholder{color:#94a3b8}.work-sort-block{display:grid;gap:.45rem}.work-sort-label{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.work-sort-row{flex-wrap:wrap;overflow:visible;gap:.45rem;margin-bottom:0;padding-bottom:.1rem}.work-sort-btn{width:auto;height:auto;min-height:2.2rem;padding:.45rem .8rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.01em}.work-sort-btn.active{color:#fff;border-color:var(--ff-brand);background:linear-gradient(180deg,#2563eb,#1d4ed8);box-shadow:0 10px 20px #2563eb33}.work-queue-list{display:grid;gap:.7rem;align-content:start;max-height:calc(100dvh - 22rem);overflow:auto;padding-right:.15rem}.workpiece-item{display:grid;gap:.8rem;border:1px solid rgba(148,163,184,.22);border-radius:.95rem;padding:.9rem;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 10px 22px #0f172a0a;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;contain:layout paint;content-visibility:auto;contain-intrinsic-size:220px}.workpiece-item-button{display:grid;gap:.8rem;width:100%;border:none;background:transparent;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.workpiece-item:hover{transform:translateY(-1px);border-color:#3b82f666;box-shadow:0 16px 28px #2563eb17}.workpiece-item.active{border-color:#2563eb80;border-left:1px solid rgba(37,99,235,.5);background:linear-gradient(180deg,#f5f9ff,#eef4ff);box-shadow:0 18px 34px #2563eb1f}.workpiece-item.my-workpiece{background:linear-gradient(180deg,#f4fff8,#eefbf4)}.workpiece-item.working:not(.my-workpiece){background:linear-gradient(180deg,#fffaf1,#fff5e4)}.workpiece-item-topline{align-items:flex-start}.workpiece-item-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.75rem}.workpiece-item-label{display:block;margin-bottom:.2rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.workpiece-item-value{margin:0;font-size:.92rem;font-weight:700;color:#0f172a}.workpiece-item-context{margin:-.15rem 0 0;color:var(--ff-text-muted)}.workpiece-item-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.workpiece-item-stat{display:grid;gap:.18rem;padding:.7rem .78rem;border:1px solid rgba(226,232,240,.9);border-radius:.8rem;background:linear-gradient(180deg,#fff,#f8fafc)}.workpiece-item-stat-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.workpiece-item-stat-value{font-size:.98rem;line-height:1.2;color:#0f172a}.workpiece-item-footer{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding-top:.65rem;border-top:1px solid rgba(226,232,240,.9)}.workpiece-item-badges{gap:.4rem}.workpiece-item-open{flex:0 0 auto;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-brand)}.work-empty-state{display:grid;place-items:center;gap:.35rem;min-height:11rem;padding:1.3rem;border:1px dashed rgba(148,163,184,.4);border-radius:1rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9);text-align:center}.work-empty-state-title,.work-launch-empty-title{margin:0;font-size:1.1rem;font-weight:800;color:#0f172a}.work-empty-state-copy,.work-launch-empty-copy{max-width:28rem;margin:0;font-size:.9rem;line-height:1.6;color:var(--ff-text-muted)}.work-workspace-launch{background:radial-gradient(circle at top right,rgba(59,130,246,.08),transparent 34%),linear-gradient(180deg,#fff,#f8fbff)}.work-launch-empty{display:grid;place-items:center;gap:.6rem;min-height:100%;padding:2rem 1.4rem;border:1px dashed rgba(148,163,184,.42);border-radius:1rem;background:#ffffffc7;text-align:center}.work-launch-empty-icon{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:999px;border:1px solid rgba(37,99,235,.2);background:#2563eb14;color:var(--ff-brand);font-size:1.15rem;font-weight:800}.work-launch-empty-hints{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}.work-launch-empty-hints .badge{background:#ffffffe6}.work-launch-cta{display:grid;gap:.95rem;padding:1rem;border:1px solid rgba(148,163,184,.22);border-radius:1rem;background:#ffffffe6;box-shadow:0 12px 28px #0f172a0f}.work-launch-topline .item-title{margin-bottom:.2rem}.work-launch-status{align-self:flex-start}.work-launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.7rem}.work-launch-stat{display:grid;gap:.28rem;padding:.8rem .85rem;border:1px solid rgba(226,232,240,.95);border-radius:.8rem;background:linear-gradient(180deg,#fff,#f8fafc)}.work-launch-stat-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.work-launch-stat-value{font-size:1rem;line-height:1.3;color:#0f172a}.work-launch-tags{gap:.45rem}@container (max-width: 1100px){.work-floor-hero-main{grid-template-columns:1fr}.work-header-actions{width:100%;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.work-header-actions .btn{width:auto;flex:0 0 auto;margin-left:auto}.split-grid.operations{grid-template-columns:1fr}.work-queue-list{max-height:none}}@container (max-width: 760px){.work-floor-hero,.work-queue-panel,.work-workspace-launch,.work-empty-state,.work-launch-empty,.work-launch-cta{border-radius:.85rem}.work-floor-hero{padding:.8rem}.work-metric-card,.work-launch-stat{padding:.75rem .8rem}.work-metric-value{font-size:1.6rem}.work-launch-empty{padding:1.25rem .95rem}}@media(max-width:640px){.work-floor-hero-main{grid-template-columns:1fr}.work-floor-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.work-header-actions{width:100%;flex-wrap:wrap;justify-content:space-between;gap:.6rem}.work-header-actions .btn{width:auto;flex:0 0 auto;margin-left:auto}.work-queue-panel,.work-workspace-launch{min-height:0}.work-queue-list{max-height:none}}@media(max-width:420px){.workpiece-item-info-grid{grid-template-columns:1fr}.workpiece-item-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.work-launch-grid{grid-template-columns:1fr}}@media(max-width:640px){.work-floor-hero,.work-queue-panel,.work-workspace-launch,.work-empty-state,.work-launch-empty,.work-launch-cta{border-radius:.85rem}.work-floor-hero{padding:.8rem}.work-sort-btn{width:auto;height:auto;min-height:2.3rem;padding:.45rem .72rem}}@media(max-width:640px){.work-floor-hero{padding:.55rem .7rem}.work-floor-kicker,.work-floor-copy{display:none}.work-floor-hero .page-title{font-size:1.05rem;line-height:1.15}.work-header-meta{gap:.25rem;flex-wrap:wrap}.work-header-meta .badge{font-size:.65rem;padding:.12rem .4rem}.work-floor-hero-main{gap:.35rem}.work-floor-metrics{display:flex!important;flex-direction:row!important;grid-template-columns:none!important;gap:.35rem!important;margin-top:.45rem}.work-metric-card{flex:1 1 0;padding:.4rem .5rem!important;min-width:0;display:flex;flex-direction:column;gap:.05rem}.work-metric-card:before{display:none}.work-metric-label{font-size:.58rem;letter-spacing:.04em}.work-metric-value{font-size:1.1rem!important;line-height:1.1}.work-metric-sub{display:none}.work-header-actions .btn{min-height:2.1rem;padding:.35rem .7rem;font-size:.82rem}.work-active-strip{padding:.45rem .65rem;gap:.35rem}.work-active-strip .work-active-sub{display:none}.work-queue-panel{padding:.7rem .75rem}.work-panel-kicker,.work-panel-copy{display:none}.work-section-header{font-size:.88rem}.work-queue-count{font-size:.82rem}.work-queue-toolbar{gap:.5rem}.work-sort-label{font-size:.66rem;letter-spacing:.04em}.work-sort-btn{min-height:2.05rem;padding:.35rem .6rem;font-size:.78rem}.work-search-input{padding:.55rem .65rem;font-size:.86rem}.work-queue-list{gap:.45rem;max-height:calc(100dvh - 5.5rem);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.workpiece-item{padding:.6rem .7rem;gap:.45rem;border-radius:.65rem;box-shadow:0 2px 6px #0f172a0a;contain-intrinsic-size:140px}.workpiece-item:hover{transform:none}.workpiece-item-topline{align-items:center}.workpiece-item-info-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:.45rem}.workpiece-item-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.35rem}.workpiece-item-label{font-size:.6rem;letter-spacing:.06em;margin-bottom:.05rem}.workpiece-item-value{font-size:.82rem}.workpiece-item-stat{padding:.45rem .5rem;border-radius:.6rem}.workpiece-item-stat-label{font-size:.56rem;letter-spacing:.05em}.workpiece-item-stat-value{font-size:.84rem}.workpiece-item .item-sub{font-size:.72rem;margin:0}.workpiece-item-footer{padding-top:.4rem;gap:.3rem;align-items:flex-start}.workpiece-item-open{font-size:.62rem}.workpiece-item-badges>span.badge:not(.good):not(.warn){display:none}}.work-session-sheet{overflow:hidden}.work-session-head{background:linear-gradient(90deg,#1f2937,#111827);color:#fff}.work-session-head .work-session-title{color:#fff}.work-session-head .work-session-sub{color:#ffffffc7}.work-session-head .btn.secondary{background:#ffffff1a;color:#fff;border-color:#ffffff40}.work-session-head .btn.secondary:hover{background:#ffffff2e}.work-stage-chip-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;margin-bottom:.7rem}.work-stage-chip{border:1.5px solid #e5e7eb;border-radius:.6rem;padding:.65rem .7rem;background:#fff;text-align:left;cursor:pointer;transition:transform .08s ease,border-color .12s ease,box-shadow .12s ease}.work-stage-chip:hover{border-color:#93c5fd;transform:translateY(-1px)}.work-stage-chip.active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;background:#eff6ff}.work-stage-chip.state-running{border-color:#f59e0b;background:#fffbeb}.work-stage-chip.state-paused{border-color:#0ea5e9;background:#f0f9ff}.work-stage-chip.state-complete{border-color:#16a34a;background:#f0fdf4}.work-stage-chip.state-hold{border-color:#dc2626;background:#fef2f2}.work-stage-chip-name{display:block;font-weight:600;font-size:.92rem;color:#111827}.work-stage-chip-state{display:inline-block;margin-top:.25rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;font-weight:600}.work-action-panel{border:1px solid #e5e7eb;border-radius:.7rem;padding:.8rem;background:#fafafa;margin-bottom:.7rem}.work-action-panel.mine{background:#f0fdf4;border-color:#86efac}.work-action-lock{display:grid;gap:.45rem}.work-action-jump{justify-self:start}.work-action-panel .btn{min-height:2.7rem;font-weight:600;font-size:.95rem}.work-action-lock{display:grid;gap:.55rem;padding:.75rem;border:1px dashed #cbd5e1;border-radius:.65rem;background:#fff}.work-action-lock .btn{justify-self:start;min-width:11rem}.work-action-panel .work-action-pause{background:#0284c7;color:#fff}.work-action-panel .work-action-pause:hover:not(:disabled){background:#0369a1}.work-action-panel .work-action-takeover{background:#fff;color:#334155;border:1px solid #cbd5e1}.work-action-panel .work-action-takeover:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.work-inline-section{border-top:1px solid #e5e7eb;padding-top:.6rem;margin-top:.6rem}.work-inline-section .section-header{font-size:.7rem;letter-spacing:.08em;color:#6b7280;text-transform:uppercase;font-weight:700;margin-bottom:.4rem;display:flex;align-items:center;gap:.4rem}@media(max-width:640px){.work-session-sheet{max-width:100vw;border-radius:0}.work-session-head{padding:.7rem .8rem}.work-session-title{font-size:1rem}.work-session-sub{font-size:.75rem}.work-stage-chip-row{grid-template-columns:repeat(2,1fr);gap:.4rem}.work-stage-chip{padding:.5rem .6rem}.work-stage-chip-name{font-size:.82rem}.work-action-panel{padding:.6rem}.work-action-panel .btn{min-height:2.5rem;font-size:.9rem}.work-inline-section{padding-top:.5rem;margin-top:.5rem}}.setup-stage-image-section{margin-top:.5rem}.setup-stage-image-preview{display:flex;align-items:center;gap:.75rem;margin-top:.35rem}.setup-stage-image-thumb{width:4rem;height:4rem;object-fit:cover;border-radius:.35rem;border:1px solid #e5e5e5}.user-role-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:500;background:#f5f5f4;color:#525252}.user-role-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}@media(max-width:420px){.page-header{flex-wrap:wrap;gap:.5rem}.page-title{font-size:1.05rem}.stat-grid{grid-template-columns:1fr 1fr;gap:.4rem}.stat-card{padding:.5rem;gap:.5rem}.stat-icon{width:1.8rem;height:1.8rem}.stat-value{font-size:1.1rem}.stat-label{font-size:.74rem}.dash-active-title{font-size:.92rem}.dash-active-card-id .mono{font-size:.85rem}.create-template-rule{font-size:.82rem;padding:.35rem .45rem;overflow-x:auto}.create-preview-row{min-height:2rem;padding:.3rem;font-size:.82rem}}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.85rem;padding:.22rem 1.25rem;background:#fff;color:#1a1a1a;border-bottom:1px solid #e5e5e5}.topbar .topbar-title{color:#1a1a1a}.topbar .topbar-subtitle{color:#737373}.topbar .topbar-name{color:#525252}.topbar .topbar-btn{background:#fff;color:#525252;border:1px solid #e5e5e5}.topbar .topbar-btn:hover{background:#f5f5f4;color:#1a1a1a}.topbar .topbar-signout{display:inline-flex;align-items:center;gap:.4rem}.topbar-signout-icon{flex-shrink:0;display:none}.topbar-signout-label{line-height:1}.topbar .topbar-btn.primary{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.topbar .topbar-btn.primary:hover{background:#000;color:#fff}.topbar .topbar-tab{color:#737373}.topbar .topbar-tab:hover{color:#1a1a1a;background:#f5f5f4}.topbar .topbar-tab.active{color:#1a1a1a;background:transparent;border-color:transparent;border-bottom:2px solid #1a1a1a;border-radius:0}.topbar .topbar-avatar-fallback{background:#d97757;color:#fff}.topbar-brand{display:flex;align-items:center;gap:.48rem;min-width:0;background:none;border:none;padding:0;cursor:pointer;color:inherit;text-align:left}.topbar-brand-text{display:flex;flex-direction:column;min-width:0}.topbar-logo{width:1.45rem;height:1.45rem;border-radius:.2rem}.topbar-title{font-weight:700;font-size:.88rem;line-height:1;letter-spacing:.04em;text-transform:uppercase}.topbar-subtitle{font-size:.64rem;color:#8a909c;margin-top:.12rem}.topbar-actions{display:flex;align-items:center;gap:.42rem;flex-wrap:wrap}.topbar-right-slot{display:flex;align-items:center;min-width:0;margin-left:auto}.topbar-btn{min-height:1.85rem;padding:0 .62rem;font-size:.78rem;font-weight:500;border-radius:.3rem;border:1px solid rgba(255,255,255,.12);background:#ffffff14;color:#e8eaed;cursor:pointer;transition:background .15s}.topbar-btn:hover{background:#ffffff24}.topbar-user{display:flex;align-items:center;gap:.4rem;text-decoration:none;color:inherit;padding:.2rem .4rem;border-radius:.45rem;transition:background .12s ease}.topbar-user:hover{background:#ffffff0f}.topbar-user:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.topbar-avatar{width:1.45rem;height:1.45rem;border-radius:50%;object-fit:cover}.topbar-avatar-fallback{display:flex;align-items:center;justify-content:center;background:#334155;color:#e8eaed;font-size:.6rem;font-weight:700}.topbar-name{font-size:.78rem;color:#c4c9d4;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.factory-layout{flex:1;display:grid;grid-template-columns:1fr;min-height:0}@media(min-width:641px){.factory-layout{grid-template-columns:var(--sidebar-w, 220px) 5px 1fr}}.side-nav{display:none}@media(min-width:641px){.side-nav{display:flex;flex-direction:column;gap:.3rem;padding:.6rem;background:#0d0f12;overflow-y:auto;border-right:1px solid #1e2228}}.resize-handle{display:none}@media(min-width:641px){.resize-handle{display:block;background:#1e2228;cursor:col-resize;transition:background .15s}.resize-handle:hover,.resize-handle:active{background:#2563eb}}.factory-content{padding:1rem;padding-bottom:calc(5.8rem + env(safe-area-inset-bottom,0px));overflow-y:auto;background:#fff;min-width:0}@media(min-width:641px){.factory-content{padding:1.1rem}}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:stretch;gap:.18rem;padding:.3rem .45rem calc(.42rem + env(safe-area-inset-bottom,0px));background:#0d0f12;border-top:1px solid #1e2228}@media(min-width:641px){.mobile-nav{display:none}}.nav-link{min-height:2.5rem;border-radius:.25rem;display:flex;align-items:center;gap:.5rem;padding:0 .65rem;font-size:.85rem;font-weight:600;color:#8a909c;border:1px solid transparent;text-decoration:none;transition:color .15s,background .15s;cursor:pointer}.nav-link:hover{color:#e8eaed;background:#ffffff0f}.nav-link.active{color:#fff;background:#2563eb33;border-color:#2563eb66;border-left:3px solid #2563eb;padding-left:calc(.65rem - 3px)}.mobile-nav .nav-link{flex:1 1 0;min-width:0;flex-direction:column;justify-content:center;text-align:center;gap:.12rem;padding:.22rem .18rem;min-height:3.25rem;font-size:.58rem;text-transform:uppercase;letter-spacing:.03em;border-left:none}.mobile-nav .nav-link.active{border-left:none;padding-left:.25rem}.nav-sections{display:flex;flex-direction:column;gap:.6rem}.nav-section{display:flex;flex-direction:column;gap:.2rem}.nav-section+.nav-section{padding-top:.6rem;border-top:1px solid #1e2228}.nav-section-title{margin:0 .35rem .15rem;color:#8a909c;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}@media(max-width:899px){.topbar-name{display:none}.topbar-user{gap:0}}@media(max-width:640px){.topbar-signout-label{display:none}.topbar-signout-icon{display:inline-block}.topbar .topbar-signout{padding:0;gap:0;width:2.2rem;height:2.2rem;min-width:2.2rem;justify-content:center;border-radius:999px}}.topbar-nav{display:flex;align-items:center;gap:.25rem;flex:1;justify-content:center}.topbar-tab{display:inline-flex;align-items:center;padding:0 .85rem;height:1.95rem;font-size:.8rem;font-weight:600;color:#8a909c;text-decoration:none;border-radius:.3rem;border:1px solid transparent;transition:color .15s,background .15s,border-color .15s}.topbar-tab:hover{color:#e8eaed;background:#ffffff0f}.topbar-tab.active{color:#fff;background:#2563eb33;border-color:#2563eb66}.shell-content{flex:1;background:#f5f5f4;padding:1.5rem;min-height:0}.shell-content:has(.workspace-home){background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 28rem),radial-gradient(circle at bottom right,rgba(14,165,233,.07),transparent 24rem),#f1f5f9;padding:1rem 1.15rem 1.8rem}@media(max-width:640px){.topbar-nav{flex:none;justify-content:flex-start}}.nav-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem}.nav-icon svg{width:100%;height:100%}.nav-label{flex:1;min-width:0}.mobile-nav .nav-link .nav-icon{width:1.2rem;height:1.2rem}.mobile-nav .nav-link .nav-label{display:block;flex:0 0 auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-container{position:fixed;bottom:1.25rem;right:1.25rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 2rem));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:8px;background:#1f2937;color:#f9fafb;font-size:.875rem;box-shadow:0 10px 25px -5px #00000040,0 8px 10px -6px #0003;border-left:3px solid #6b7280;animation:toast-in .18s ease-out}.toast-success{border-left-color:#10b981}.toast-error{border-left-color:#ef4444}.toast-info{border-left-color:#3b82f6}.toast-message{flex:1;line-height:1.35}.toast-close{background:transparent;border:0;color:inherit;font-size:1.15rem;line-height:1;cursor:pointer;opacity:.65;padding:0 .15rem}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-loader{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(80,80,140,.18))}.app-loader img{width:100%;height:100%;display:block;animation:app-loader-spin 1.4s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:50% 50%;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}@keyframes app-loader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.app-loader img{animation-duration:4s}}.route-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2rem;pointer-events:none;animation:route-loader-fade .22s ease-out}.route-loader-shell{position:relative;min-height:calc(100vh - 72px)}.route-loader-label{font-size:.78rem;color:#6b7280;letter-spacing:.02em}@keyframes route-loader-fade{0%{opacity:0}to{opacity:1}}.pdf-doc-view{position:relative;width:100%;height:100%;overflow:auto;background:#f3f4f6}.pdf-doc-pages{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px}.pdf-page-container{position:relative;background:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000000f;overflow:hidden}.pdf-doc-canvas{display:block;position:absolute;inset:0}.pdf-page-skeleton{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:.85rem;background:linear-gradient(135deg,#f9fafb 25%,#f3f4f6,#f9fafb 75%);background-size:200% 200%;animation:pdf-skel 1.6s ease-in-out infinite}@keyframes pdf-skel{0%{background-position:0% 0%}to{background-position:200% 0%}}.pdf-doc-text-layer{position:absolute;inset:0;overflow:hidden;line-height:1;-webkit-user-select:text;user-select:text;pointer-events:auto}.pdf-doc-text-layer>span,.pdf-doc-text-layer>br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.pdf-doc-text-layer ::selection{background:#3b82f659;color:transparent}.pdf-doc-loading,.pdf-doc-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.pdf-doc-error{pointer-events:auto}.pdf-doc-indexing{position:absolute;top:8px;right:12px;background:#111827d9;color:#f9fafb;font-size:.72rem;padding:.3rem .55rem;border-radius:999px;pointer-events:none;z-index:10;animation:toast-in .18s ease-out}@media(max-width:640px){.public-pdf-header{flex-direction:column;align-items:flex-start;gap:.4rem;padding:.65rem .85rem}.public-pdf-title{flex-wrap:wrap;gap:.35rem;font-size:.85rem}.public-pdf-meta{font-size:.72rem}.public-pdf-divider{display:none}.public-version-strip{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:.4rem .5rem}.public-version-chip{scroll-snap-align:start;flex:0 0 auto}.pdf-doc-pages{padding:6px;gap:6px}}.color-picker-row{display:flex;align-items:center;gap:.6rem}.color-input{width:2.5rem;height:2.5rem;padding:0;border:1px solid #d4d4d4;border-radius:.4rem;background:none;cursor:pointer}.color-input::-webkit-color-swatch{border:none;border-radius:.3rem}.color-input::-moz-color-swatch{border:none;border-radius:.3rem}.color-hex-input{font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;width:6.5rem;padding:.45rem .55rem;border:1px solid #d4d4d4;border-radius:.4rem;background:#fff;color:#1a1a1a;outline:none;text-transform:lowercase;transition:border-color .14s,box-shadow .14s}.color-hex-input::placeholder{color:#a8a29e;text-transform:none}.color-hex-input:focus{border-color:#9ca3af;box-shadow:0 0 0 3px #1118270f}.color-clear-btn{font:inherit;font-size:.72rem;font-weight:600;color:#525252;background:#fff;border:1px solid #d4d4d4;border-radius:.35rem;padding:.3rem .55rem;cursor:pointer}.color-clear-btn:hover{background:#f5f5f4;color:#1a1a1a}.topbar-user-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;gap:.1rem}.topbar-role{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.08rem .4rem;border-radius:999px;border:1px solid transparent}.topbar-role-owner{background:#fef3c7;color:#92400e;border-color:#fde68a}.topbar-role-admin{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.topbar-role-member{background:#f5f5f4;color:#525252;border-color:#e5e5e5}@media(max-width:640px){.topbar-user-text{display:none}}.danger-zone{margin-top:1.5rem;padding:1.15rem 1.25rem;border:1px solid #e5e5e5;border-left:3px solid #dc2626;border-radius:.5rem;background:#fff;display:flex;flex-direction:column;gap:1rem}.danger-zone-head{display:flex;flex-direction:column;gap:.35rem}.danger-zone-tag{align-self:flex-start;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#dc2626;background:#fef2f2;padding:.2rem .55rem;border-radius:999px;border:1px solid #fecaca}.danger-zone-heading{margin:0;font-size:.95rem;font-weight:600;color:#1a1a1a}.danger-zone-sub{margin:0;font-size:.78rem;line-height:1.5;color:#737373}.danger-zone-action{display:flex;align-items:stretch;gap:.5rem;flex-wrap:wrap}.danger-zone-input{font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;flex:1;min-width:14rem;padding:.55rem .75rem;border:1px solid #e5e5e5;border-radius:.4rem;background:#fafaf9;color:#1a1a1a;outline:none;transition:border-color .14s,box-shadow .14s,background .14s}.danger-zone-input::placeholder{color:#a8a29e}.danger-zone-input:focus{border-color:#dc2626;background:#fff;box-shadow:0 0 0 3px #dc262614}.danger-zone-input:disabled{cursor:not-allowed;opacity:.6}.danger-zone-btn{font:inherit;font-size:.82rem;font-weight:600;padding:0 1.1rem;min-height:2.35rem;border:1px solid #dc2626;background:#dc2626;color:#fff;border-radius:.4rem;cursor:pointer;transition:background .12s,border-color .12s,opacity .12s;white-space:nowrap}.danger-zone-btn:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.danger-zone-btn:disabled{background:#f5f5f4;border-color:#e5e5e5;color:#a8a29e;cursor:not-allowed}.danger-zone-msg{margin:0;font-size:.78rem;font-weight:500}.danger-zone-msg.error{color:#dc2626}.danger-zone-msg.ok{color:#16a34a}@media(max-width:640px){.danger-zone-input{min-width:0;width:100%}.danger-zone-btn{width:100%}}.view-as-banner{position:sticky;top:0;z-index:25;display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;padding:.55rem 1rem;background:linear-gradient(90deg,#fff7cf,#ffe38f 60%,#ffd165);color:#4e3000;border-bottom:1px solid #e7b148;font-size:.82rem;font-weight:600}.view-as-icon{display:inline-flex;color:#b86400}.view-as-text strong{display:inline-block;margin-left:.25rem;padding:.1rem .5rem;border-radius:999px;background:#ffffffb3;border:1px solid rgba(177,97,0,.25);color:#8a4400;font-weight:700}.view-as-hint{flex:1 1 320px;font-weight:500;font-size:.74rem;color:#6a4b16;opacity:.95}.view-as-exit{margin-left:auto;background:#fff7de;color:#8a4400;border:1px solid #dda03b;border-radius:999px;padding:.25rem .85rem;font-size:.75rem;font-weight:700;cursor:pointer;transition:background .12s,border-color .12s}.view-as-exit:hover{background:#fff0c0;border-color:#c88418}@media(max-width:640px){.view-as-hint{flex-basis:100%;margin-left:0}.view-as-exit{margin-left:0}}.members-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid rgba(148,163,184,.18)}.members-title{margin:0;font-size:1rem;font-weight:700;color:#0f172a;display:inline-flex;align-items:center;gap:.5rem}.members-subtitle{margin:.2rem 0 0;font-size:.78rem;color:var(--ff-text-muted);max-width:42rem}.members-count{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;background:#2563eb14;border:1px solid rgba(37,99,235,.18);border-radius:999px;flex-shrink:0}.members-count-value{font-size:.85rem;font-weight:800;color:var(--ff-brand);line-height:1}.members-count-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ff-brand);opacity:.75}.members-list{display:flex;flex-direction:column;gap:.55rem}.member-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);align-items:center;gap:.85rem 1.25rem;padding:.85rem 1rem;background:#fff;border:1px solid rgba(148,163,184,.2);border-left:3px solid rgba(37,99,235,.45);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease,border-left-color .15s ease}.member-row:hover{border-color:#2563eb40;border-left-color:#2563eb;box-shadow:0 4px 12px -6px #2563eb38}@media(max-width:720px){.member-row{grid-template-columns:1fr;gap:.65rem}}.member-identity{display:flex;align-items:center;gap:.7rem;min-width:0}.member-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#c7d2fe);color:#1d4ed8;display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:700;overflow:hidden;box-shadow:0 0 0 2px #fff,0 0 0 3px #2563eb33}.member-avatar img{width:100%;height:100%;object-fit:cover}.member-identity-text{min-width:0;flex:1}.member-name{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-self-tag{display:inline-flex;align-items:center;padding:.05rem .4rem;background:#2563eb1f;color:var(--ff-brand);border-radius:4px;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.member-email{font-size:.76rem;color:var(--ff-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-roles{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0;justify-content:flex-start}.member-empty-tag{font-size:.76rem;font-style:italic;color:var(--ff-text-muted)}.member-role-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .55rem .25rem .5rem;background:color-mix(in srgb,currentColor 8%,#ffffff);border:1px solid color-mix(in srgb,currentColor 35%,#ffffff);border-radius:999px;font-size:.76rem;font-weight:600;color:#334155;white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform .12s ease}.member-role-chip:hover{background:color-mix(in srgb,currentColor 14%,#ffffff);transform:translateY(-1px)}.member-role-chip-system{background:#fef3c7!important;border-color:#fbbf24!important;color:#92400e!important}.member-role-chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.member-role-overflow{position:relative;display:inline-flex}.member-role-more-pill{display:inline-flex;align-items:center;padding:.22rem .6rem;background:#2563eb14;border:1px solid rgba(37,99,235,.2);color:var(--ff-brand);border-radius:999px;font:inherit;font-size:.74rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease}.member-role-more-pill:hover{background:#2563eb24;border-color:#2563eb52}.member-role-more-pill-open{background:#2563eb2e;border-color:var(--ff-brand)}.member-role-overflow-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:220px;max-width:300px;padding:.35rem;background:#fff;border:1px solid rgba(148,163,184,.3);border-radius:10px;box-shadow:0 14px 30px #0f172a24,0 4px 8px #0f172a0f;animation:memberRoleOverflowPopIn .12s ease-out;display:flex;flex-direction:column;gap:.3rem}@keyframes memberRoleOverflowPopIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.member-role-overflow-header{padding:.3rem .5rem .1rem}.member-role-overflow-title{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ff-text-muted)}.member-role-overflow-list{display:flex;flex-direction:column;gap:.1rem;max-height:260px;overflow-y:auto;padding-right:2px}.member-role-overflow-list::-webkit-scrollbar{width:8px}.member-role-overflow-list::-webkit-scrollbar-track{background:transparent}.member-role-overflow-list::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:999px}.member-role-overflow-list::-webkit-scrollbar-thumb:hover{background:#94a3b8a6}.member-role-overflow-item{display:flex;align-items:center;gap:.55rem;padding:.4rem .55rem;border-radius:6px;font-size:.82rem;color:#0f172a;transition:background .1s ease}.member-role-overflow-item:hover{background:#2563eb0f}.member-role-overflow-item-system{background:#fef9c3}.member-role-overflow-item-system:hover{background:#fde68a}.member-role-overflow-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px #ffffffe6,0 0 0 2.5px #0f172a14}.member-role-overflow-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-role-overflow-tag{font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.1rem .35rem;border-radius:4px;background:#fde68a;color:#78350f}.member-role-overflow-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:transparent;border:none;border-radius:4px;color:#0f172a80;cursor:pointer;transition:background .1s ease,color .1s ease}.member-role-overflow-remove:hover:not(:disabled){background:#dc26261f;color:#dc2626}.member-role-overflow-remove:disabled{opacity:.4;cursor:not-allowed}.member-role-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:.15rem;padding:0;border:none;background:transparent;color:inherit;opacity:.5;border-radius:50%;cursor:pointer;transition:opacity .12s ease,background .12s ease}.member-role-chip-remove:hover:not(:disabled){opacity:1;background:#ef444426;color:#dc2626}.member-role-chip-remove:disabled{cursor:not-allowed;opacity:.25}.member-add{display:inline-flex;align-items:center;flex-shrink:0}.add-role-menu{position:relative;display:inline-block}.add-role-trigger{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;background:#2563eb0f;border:1px dashed rgba(37,99,235,.4);border-radius:7px;color:var(--ff-brand);font:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease}.add-role-trigger:hover:not(:disabled){background:#2563eb1f;border-color:var(--ff-brand)}.add-role-trigger:disabled{opacity:.5;cursor:not-allowed}.add-role-trigger-open{background:#2563eb1f;border-color:var(--ff-brand);border-style:solid}.add-role-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:240px;max-width:300px;padding:.3rem;background:#fff;border:1px solid rgba(148,163,184,.3);border-radius:10px;box-shadow:0 14px 30px #0f172a24,0 4px 8px #0f172a0f;animation:addRolePopIn .12s ease-out;display:flex;flex-direction:column;gap:.25rem}@keyframes addRolePopIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.add-role-popover-search{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#94a3b81a;border-radius:7px;color:var(--ff-text-muted)}.add-role-popover-search svg{flex-shrink:0}.add-role-popover-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:.82rem;color:#0f172a}.add-role-popover-search input::placeholder{color:var(--ff-text-muted)}.add-role-popover-list{display:flex;flex-direction:column;gap:.1rem;max-height:260px;overflow-y:auto;padding-right:2px}.add-role-popover-list::-webkit-scrollbar{width:8px}.add-role-popover-list::-webkit-scrollbar-track{background:transparent}.add-role-popover-list::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:999px}.add-role-popover-list::-webkit-scrollbar-thumb:hover{background:#94a3b8a6}.add-role-empty{padding:.85rem .6rem;text-align:center;font-size:.78rem;color:var(--ff-text-muted);font-style:italic}.add-role-option{display:flex;align-items:center;gap:.55rem;padding:.45rem .6rem;border:none;background:transparent;text-align:left;border-radius:6px;cursor:pointer;font:inherit;font-size:.82rem;color:#0f172a;transition:background .1s ease}.add-role-option:hover{background:#2563eb14}.add-role-option:active{background:#2563eb29}.add-role-option-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px #ffffffe6,0 0 0 2.5px #0f172a14}.add-role-option-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-role-option-tag{font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#92400e;background:#fef3c7;padding:.1rem .35rem;border-radius:4px}.member-add-empty{font-size:.72rem;color:var(--ff-text-muted);font-style:italic}.member-empty-state{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:2.5rem 1rem;color:var(--ff-text-muted);text-align:center}.member-empty-state svg{color:#94a3b880;margin-bottom:.35rem}.member-empty-state p{margin:0;font-size:.9rem;font-weight:600;color:#475569}.member-empty-state-hint{font-size:.78rem!important;font-weight:400!important;color:var(--ff-text-muted)!important}.tab-btn-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.15rem;padding:0 .4rem;margin-left:.4rem;background:#94a3b833;color:inherit;border-radius:999px;font-size:.68rem;font-weight:700}.tab-btn.active .tab-btn-count{background:#ffffff38;color:inherit}.roles-list-scroll{display:flex;flex-direction:column;gap:.5rem;max-height:60vh;overflow-y:auto;padding-right:.25rem}@media(max-width:640px){.roles-list-scroll{max-height:50vh}}.roles-list-scroll::-webkit-scrollbar{width:8px}.roles-list-scroll::-webkit-scrollbar-track{background:transparent}.roles-list-scroll::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}.roles-list-scroll::-webkit-scrollbar-thumb:hover{background:#a8a29e}.roles-list-scroll .item{padding:.5rem .6rem;gap:.2rem;border-radius:.35rem}.roles-list-scroll .item-title{font-size:.85rem;font-weight:600}.roles-list-scroll .item-sub{font-size:.7rem;line-height:1.35}.roles-list-scroll .badge{font-size:.6rem;padding:.1rem .4rem}.perm-danger-icon{display:inline-flex;align-items:center;justify-content:center;color:#dc2626;cursor:help;flex-shrink:0;transition:transform .15s ease}.perm-danger-icon:hover{transform:scale(1.15)}.roles-list-scroll .btn-xs{font-size:.65rem;font-weight:600;padding:.2rem .5rem;border-radius:.25rem;cursor:pointer;transition:background .12s,border-color .12s}.roles-list-scroll .btn-xs.btn-secondary{background:#fff;color:#525252;border:1px solid #d4d4d4}.roles-list-scroll .btn-xs.btn-secondary:hover{background:#f5f5f4;color:#1a1a1a;border-color:#a8a29e}.account-page{max-width:760px;margin:0 auto;padding:1.5rem 1rem 3rem;display:grid;gap:1rem}.account-hero.card.panel{padding:1.5rem 1.5rem 1.25rem;position:relative;overflow:hidden}.account-hero.card.panel:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#6366f1,#8b5cf6,#ec4899)}.account-identity{display:flex;align-items:center;gap:1.1rem}.account-avatar{width:4.5rem;height:4.5rem;border-radius:50%;object-fit:cover;background:#e5e5e5;flex-shrink:0;box-shadow:0 0 0 3px #fff,0 0 0 4px #e5e7eb}.account-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#475569,#1e293b);color:#f8fafc;font-size:1.3rem;font-weight:700;letter-spacing:.04em}.account-identity-text{display:grid;gap:.3rem;min-width:0}.account-name{font-size:1.35rem;font-weight:600;margin:0;color:#0f172a;letter-spacing:-.01em}.account-email-button{background:none;border:none;padding:0;margin:0;font:inherit;display:inline-flex;align-items:center;gap:.5rem;color:#475569;cursor:pointer;width:max-content;font-size:.9rem}.account-email-button:hover .account-email-copy{opacity:1}.account-email-copy{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6366f1;background:#eef2ff;padding:.1rem .4rem;border-radius:.25rem;opacity:0;transition:opacity .12s ease}.account-identity-text .topbar-role{margin-top:.25rem;width:max-content}.account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid #f1f5f9}.account-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.25rem;text-align:center}.account-stat-value{font-size:1.4rem;font-weight:700;color:#0f172a;line-height:1}.account-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:600}.account-section.card.panel{padding:1.25rem;display:grid;gap:.9rem;align-content:start}.account-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.85rem;flex-wrap:wrap}.account-section-title{margin:0;font-size:1rem;font-weight:600;color:#0f172a}.account-section-footer{margin-top:.25rem;display:flex;justify-content:flex-end}.account-info-card{display:grid;gap:.5rem;padding:.9rem 1rem;border:1px solid #fde68a;background:#fffbeb;border-radius:.55rem;color:#92400e}.account-info-card strong{font-size:.95rem}.account-info-card p{margin:0;font-size:.85rem;line-height:1.5}.account-info-card .btn{width:max-content}.account-sessions{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.session-card{display:grid;gap:.7rem;padding:.85rem 1rem .95rem;border:1px solid #e5e7eb;border-radius:.6rem;background:#fff;transition:border-color .12s ease,box-shadow .12s ease}.session-card:hover{border-color:#cbd5e1}.session-card.is-current{border-color:#818cf8;box-shadow:0 0 0 1px #818cf8}.session-card-head{display:flex;align-items:center;justify-content:space-between;gap:.85rem}.session-card-title{display:flex;align-items:center;gap:.65rem;min-width:0}.session-card-title-text{display:flex;align-items:baseline;gap:.5rem;min-width:0}.session-card-title-text strong{font-size:1rem;font-weight:600;color:#0f172a;letter-spacing:-.01em}.session-card-os{font-size:.82rem;color:#64748b}.session-status-dot{width:.55rem;height:.55rem;border-radius:50%;background:#cbd5e1;flex-shrink:0}.session-status-dot.is-current{background:#6366f1;box-shadow:0 0 0 3px #6366f12e}.session-card-tag{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#4338ca;background:#e0e7ff;padding:.12rem .4rem;border-radius:.25rem;margin-left:.25rem}.session-fields{margin:0;padding-top:.7rem;border-top:1px solid #f1f5f9;display:grid;grid-template-columns:1fr 1fr;column-gap:1.1rem;row-gap:.55rem}.session-field{display:grid;grid-template-columns:5.4rem 1fr;align-items:baseline;gap:.5rem;min-width:0}.session-field dt{font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.session-field dd{margin:0;font-size:.85rem;color:#1e293b;display:flex;flex-direction:column;gap:.1rem;min-width:0;word-break:break-word}.session-field-aux{font-size:.72rem;color:#94a3b8}.session-field .mono,.session-card .mono{font-family:ui-monospace,SF Mono,Menlo,Monaco,Cascadia Mono,monospace;font-size:.78rem;letter-spacing:-.01em}@media(max-width:520px){.session-fields{grid-template-columns:1fr}.session-card-head{flex-wrap:wrap}.session-card-head .btn{margin-left:auto}}.account-roles{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.account-role{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border:1px solid #e5e7eb;border-radius:.45rem;background:#fff}.account-role-dot{width:.7rem;height:.7rem;border-radius:50%;flex-shrink:0}.account-role-text{flex:1;display:flex;align-items:center;gap:.4rem;font-size:.92rem;color:#0f172a;min-width:0}.account-role-system{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#475569;background:#f1f5f9;padding:.08rem .35rem;border-radius:.25rem}.account-perm-summary{display:flex;align-items:baseline;gap:.5rem;padding:.7rem .85rem;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:.45rem;margin-top:.25rem}.account-perm-summary-count{font-size:1.15rem;font-weight:700;color:#0f172a}.account-perm-summary-label{font-size:.82rem;color:#64748b;line-height:1.4}@media(max-width:600px){.account-page{padding:1rem .75rem 2rem}.account-hero.card.panel{padding:1.25rem 1rem 1rem}.account-session{flex-wrap:wrap}.account-session-main{flex-basis:100%;order:2}.account-session .btn{order:3;margin-left:auto}.account-section-head{flex-direction:column}.account-stats{gap:.25rem}.account-stat-value{font-size:1.2rem}}.operations-page{gap:.4rem}.operations-page .card.panel{padding:.35rem .689rem}.operations-page .work-floor-hero:after{width:9.945rem;height:9.945rem;inset:auto -2.295rem -2.295rem auto}.operations-page .work-floor-hero-main{gap:.5rem;row-gap:.32rem}.operations-page .work-floor-kicker,.operations-page .work-panel-kicker{margin:0 0 .12rem}.operations-page .work-floor-title-row{gap:.421rem}.operations-page .work-header-actions .btn{min-width:8.415rem}.operations-page .work-floor-metrics{gap:.35rem}.operations-page .work-metric-card{gap:.1rem;padding:.35rem .765rem;border-radius:.689rem}.operations-page .work-metric-card:before{width:.153rem}.operations-page .work-header-meta{gap:.344rem}.operations-page .work-queue-panel,.operations-page .work-workspace-launch{gap:.4rem;min-height:0;border-radius:.765rem}.operations-page .work-panel-heading{gap:.12rem}.operations-page .work-section-header{gap:.344rem}.operations-page .work-panel-copy{margin-top:0}.operations-page .work-queue-toolbar{gap:.4rem}.operations-page .work-search-shell{gap:.55rem;min-height:2.7rem;padding:0 .9rem;border-radius:.75rem;border-width:1.5px;border-color:#2563eb47;box-shadow:0 2px 8px #0f172a0d}.operations-page .work-search-shell:focus-within{border-color:#2563eb99;box-shadow:0 0 0 4px #2563eb24}.operations-page .work-search-icon{width:1.85rem;height:1.85rem;font-size:1rem}.operations-page .work-search-input{font-size:1rem;font-weight:500}.operations-page .work-search-input::placeholder{color:#64748b}.operations-page .work-sort-block{gap:.22rem}.operations-page .work-sort-row{gap:.344rem;padding-bottom:.04rem}.operations-page .work-sort-btn{min-height:1.5rem;padding:.22rem .612rem}.operations-page .work-queue-list{gap:.32rem;max-height:calc(100dvh - 10rem);padding-right:.115rem}.operations-page .workpiece-item{gap:.35rem;border-radius:.727rem;padding:.4rem .689rem;contain-intrinsic-size:116px}.operations-page .workpiece-item-button{gap:.35rem}.operations-page .workpiece-item-info-grid{column-gap:.574rem;row-gap:.22rem}.operations-page .workpiece-item-label{margin-bottom:.06rem}.operations-page .workpiece-item-stats{gap:.32rem}.operations-page .workpiece-item-stat{gap:.06rem;padding:.24rem .597rem;border-radius:.612rem}.operations-page .workpiece-item-footer{gap:.497rem;padding-top:.24rem}.operations-page .workpiece-item-badges{gap:.306rem}.operations-page .work-empty-state{gap:.22rem;min-height:6rem;padding:.6rem .995rem;border-radius:.765rem}.operations-page .workpiece-item-id{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap;min-width:0}.operations-page .workpiece-item-project{font-weight:700;color:#0f172a}.operations-page .workpiece-item-id-code{font-size:.9rem;font-weight:600;color:var(--ff-text-muted)}.operations-page .workpiece-item.state-running,.operations-page .workpiece-item.state-paused{background:linear-gradient(180deg,#fffbeb,#fef3c7);border-color:#fcd34d;border-left:4px solid #f59e0b}.factory-topbar-scope{display:grid;gap:.18rem;min-width:min(100%,15rem)}.factory-topbar-scope-loading{padding:.35rem .55rem;border:1px solid rgba(148,163,184,.24);border-radius:.65rem;background:#f8fafc}.factory-topbar-eyebrow{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.factory-topbar-field{display:flex;align-items:center;gap:.5rem}.factory-topbar-select{min-height:2rem;min-width:11rem;padding:0 .7rem;border:1px solid #d6d3d1;border-radius:.55rem;background:#fff;color:#111827;font:inherit;font-weight:700}.factory-topbar-select option{font-weight:500}.factory-topbar-select option:checked{font-weight:800}.factory-topbar-meta{font-size:.72rem;color:#64748b;white-space:nowrap}.factory-topbar-status,.factory-topbar-error{font-size:.72rem;color:#64748b}.factory-topbar-error{color:#b91c1c}.projects-scope-strip{display:flex;justify-content:space-between;gap:.85rem;margin-top:.75rem;flex-wrap:wrap}.projects-scope-card{display:grid;gap:.22rem;padding:.85rem .95rem;border:1px solid rgba(148,163,184,.28);border-radius:.8rem;background:linear-gradient(180deg,#fff,#f8fafc);min-width:min(100%,18rem)}.projects-scope-card strong{font-size:1rem;color:#0f172a}.projects-scope-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.projects-scope-badges{display:flex;gap:.4rem;flex-wrap:wrap;align-items:flex-start}.create-page .create-hero-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.create-page .create-scope-card{display:grid;gap:.2rem;padding:.85rem .9rem;border:1px solid rgba(148,163,184,.22);border-radius:.8rem;background:linear-gradient(180deg,#fff,#f8fafc)}.create-page .create-scope-card strong{font-size:1rem;color:#0f172a}.create-page .create-release-summary{display:flex;gap:.45rem;flex-wrap:wrap}.create-page .create-recent-actions{display:flex;gap:.35rem;flex-wrap:wrap}.factory-dashboard-page{gap:.75rem}.factory-dashboard-header{align-items:flex-start;gap:1rem}.factory-dashboard-actions{display:flex;gap:.55rem;flex-wrap:wrap}.factory-dashboard-scope{padding:.95rem 1rem}.factory-dashboard-scope-main{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;align-items:flex-start}.factory-dashboard-scope-label{display:block;margin-bottom:.2rem;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.factory-dashboard-scope-main strong{display:block;font-size:1.1rem;color:#0f172a}.factory-dashboard-scope-badges{display:flex;gap:.4rem;flex-wrap:wrap}.factory-dashboard-grid{align-items:start}.factory-dashboard-panel{min-height:0}.factory-line-pulse-list,.factory-watch-list,.factory-project-pressure,.factory-scope-health{display:grid;gap:.65rem}.factory-line-pulse-item,.factory-project-pressure-item{display:grid;gap:.45rem;padding:.8rem .85rem;border:1px solid rgba(148,163,184,.22);border-radius:.8rem;background:linear-gradient(180deg,#fff,#f8fafc)}.factory-line-pulse-head,.factory-project-pressure-head,.factory-watch-item-head{display:flex;justify-content:space-between;gap:.7rem;align-items:flex-start}.factory-line-pulse-head p,.factory-watch-item-head p{margin:.2rem 0 0;color:var(--ff-text-muted);font-size:.82rem}.factory-line-pulse-bar{height:.45rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.factory-line-pulse-bar>div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#60a5fa)}.factory-line-pulse-stats,.factory-project-pressure-stats{display:flex;gap:.4rem;flex-wrap:wrap}.factory-watch-item{display:grid;gap:.4rem;padding:.8rem .85rem;border:1px solid rgba(148,163,184,.22);border-radius:.8rem;background:#fff;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.factory-watch-item:hover{border-color:#2563eb61;box-shadow:0 6px 16px #0f172a14;transform:translateY(-1px)}.factory-watch-item-meta{display:flex;justify-content:space-between;gap:.75rem;color:var(--ff-text-muted);font-size:.8rem}.factory-scope-health{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.factory-scope-health-item{padding:.8rem .85rem;border:1px solid rgba(148,163,184,.22);border-radius:.8rem;background:linear-gradient(180deg,#fff,#f8fafc)}.factory-scope-health-label{display:block;margin-bottom:.22rem;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ff-text-muted)}.factory-scope-health-item strong{display:block;font-size:1.35rem;color:#0f172a}.factory-scope-health-item p{margin:.2rem 0 0;color:var(--ff-text-muted);font-size:.82rem}.shift-board{gap:1rem}.shift-board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.shift-board-title-group{min-width:0}.shift-board-kicker,.shift-hero-eyebrow{display:block;margin-bottom:.22rem;color:#64748b;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.shift-board-title{margin:0;color:#0f172a;font-size:1.85rem;line-height:1.08}.shift-board-subtitle{margin:.35rem 0 0;color:#52627a;font-size:.92rem}.shift-board-actions{display:flex;flex:0 0 auto;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.shift-board-actions .btn{display:inline-flex;align-items:center;gap:.4rem}.shift-loading{margin:0;color:#52627a;font-size:.9rem}.shift-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(22rem,.95fr);gap:1rem;padding:1rem;border:1px solid #dbe3ef;border-left-width:5px;border-radius:8px;background:#fff;box-shadow:0 10px 24px #0f172a0f}.shift-hero-alert{border-left-color:#dc2626}.shift-hero-steady{border-left-color:#2563eb}.shift-hero-ready{border-left-color:#16a34a}.shift-hero-neutral{border-left-color:#64748b}.shift-hero-main{min-width:0}.shift-hero-value-row{display:flex;align-items:center;gap:.9rem;min-width:0}.shift-hero-value{color:#0f172a;font-size:3.4rem;line-height:.95;letter-spacing:0}.shift-hero h2{margin:0;color:#0f172a;font-size:1.25rem;line-height:1.15}.shift-hero p{margin:.28rem 0 0;color:#52627a;font-size:.92rem;line-height:1.4}.shift-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.shift-metric{min-width:0;padding:.75rem .8rem;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc}.shift-metric span{display:block;color:#64748b;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.shift-metric strong{display:block;margin-top:.2rem;color:#0f172a;font-size:1.55rem;line-height:1}.shift-metric-alert strong{color:#b91c1c}.shift-board-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);gap:1rem;align-items:start}.shift-panel{min-width:0;padding:1rem;border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 8px 22px #0f172a0b}.shift-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.85rem}.shift-section-head h2{margin:0;color:#0f172a;font-size:1rem;line-height:1.2}.shift-section-head p,.shift-section-note{display:block;margin:.2rem 0 0;color:#64748b;font-size:.82rem}.shift-section-note{margin:.12rem 0 0;white-space:nowrap}.shift-work-list,.shift-queue-list,.shift-line-list{display:grid;gap:.55rem}.shift-work-row,.shift-queue-row{width:100%;min-width:0;border:1px solid #dbe3ef;border-radius:8px;background:#fff;color:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.shift-work-row:hover,.shift-queue-row:hover{border-color:#93c5fd;box-shadow:0 8px 18px #0f172a14;transform:translateY(-1px)}.shift-work-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.9rem;align-items:center;padding:.85rem}.shift-work-main{display:grid;gap:.18rem;min-width:0}.shift-work-id{display:inline-flex;align-items:center;gap:.38rem;min-width:0;color:#0f172a;font-size:.84rem}.shift-work-main strong,.shift-queue-row strong,.shift-line-main strong{min-width:0;color:#0f172a;overflow-wrap:anywhere}.shift-work-main>span:last-child,.shift-queue-row span,.shift-line-main span,.shift-work-side{color:#64748b;font-size:.82rem}.shift-work-side{display:grid;justify-items:end;gap:.3rem;white-space:nowrap}.shift-work-hold{border-color:#fecdd3;background:#fff8f8}.shift-work-paused{border-color:#fde68a;background:#fffbeb}.shift-queue-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .8rem}.shift-queue-row>div{display:grid;gap:.16rem;min-width:0}.shift-queue-row>span{flex:0 0 auto;white-space:nowrap}.shift-line-row{display:grid;grid-template-columns:minmax(12rem,1.1fr) minmax(10rem,1fr) auto;gap:.8rem;align-items:center;padding:.8rem 0;border-top:1px solid #e2e8f0}.shift-line-row:first-child{border-top:0;padding-top:0}.shift-line-row:last-child{padding-bottom:0}.shift-line-main{display:grid;gap:.16rem;min-width:0}.shift-line-load{display:flex;height:.55rem;min-width:0;overflow:hidden;border-radius:999px;background:#e2e8f0}.shift-line-segment{display:block;min-width:0;height:100%}.shift-line-running{background:#2563eb}.shift-line-ready{background:#16a34a}.shift-line-hold{background:#dc2626}.shift-line-complete{background:#94a3b8}.shift-line-counts{display:flex;gap:.38rem;flex-wrap:wrap;justify-content:flex-end;min-width:9.5rem}.shift-line-counts span{padding:.2rem .45rem;border:1px solid #dbe3ef;border-radius:999px;color:#52627a;font-size:.75rem;white-space:nowrap}.shift-empty{display:grid;gap:.2rem;padding:1rem;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;color:#64748b}.shift-empty strong{color:#0f172a;font-size:.92rem}.shift-empty span{font-size:.84rem}.shift-access-panel{max-width:46rem}@media(max-width:980px){.shift-hero,.shift-board-grid{grid-template-columns:1fr}.shift-line-row{grid-template-columns:minmax(0,1fr)}.shift-line-counts{justify-content:flex-start;min-width:0}}@media(max-width:640px){.shift-board-head{flex-direction:column}.shift-board-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));width:100%}.shift-board-actions .btn{width:100%;justify-content:center;min-width:0;padding-inline:.55rem}.shift-board-title{font-size:1.55rem}.shift-hero{padding:.85rem}.shift-hero-value-row{align-items:flex-start;gap:.7rem}.shift-hero-value{font-size:2.6rem}.shift-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shift-work-row{grid-template-columns:1fr}.shift-work-side{display:flex;align-items:center;justify-content:space-between;white-space:normal}.shift-section-head{align-items:center}.shift-section-note{white-space:normal;text-align:right}}@media(max-width:900px){.factory-topbar-field{flex-direction:column;align-items:stretch;gap:.25rem}.factory-topbar-meta{white-space:normal}}@media(max-width:640px){.factory-shell-has-scope .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "scope scope";align-items:center;gap:.42rem;min-height:0;padding:.42rem .7rem .5rem}.factory-shell-has-scope .topbar-brand{grid-area:brand;min-width:0}.factory-shell-has-scope .topbar-logo{width:1.35rem;height:1.35rem}.factory-shell-has-scope .topbar-title{font-size:.82rem}.factory-shell-has-scope .topbar-subtitle{font-size:.58rem}.factory-shell-has-scope .topbar-actions{grid-area:actions;justify-self:end;flex-wrap:nowrap;gap:.32rem}.factory-shell-has-scope .topbar-actions>.topbar-btn:not(.topbar-signout){min-height:1.85rem;padding:0 .58rem;font-size:.74rem}.factory-shell-has-scope .topbar-user{flex-shrink:0}.factory-shell-has-scope .topbar-avatar{width:1.65rem;height:1.65rem}.factory-shell-has-scope .topbar-signout{width:1.95rem;min-width:1.95rem;height:1.95rem}.factory-shell-has-scope .topbar-right-slot{grid-area:scope;width:100%;min-width:0;margin-left:0}.factory-topbar-scope{min-width:0;width:100%}.factory-shell-has-scope .factory-topbar-scope{min-width:0;width:100%;display:grid;gap:0}.factory-shell-has-scope .factory-topbar-eyebrow,.factory-shell-has-scope .factory-topbar-meta{display:none}.factory-shell-has-scope .factory-topbar-field,.factory-topbar-select{min-width:0;width:100%}.factory-shell-has-scope .factory-topbar-select{min-height:1.95rem;border-radius:.55rem;padding:0 .65rem;font-size:.82rem}.factory-shell-has-scope .factory-topbar-error{margin-top:.15rem;font-size:.68rem}.projects-scope-strip,.factory-dashboard-scope-main{flex-direction:column}.create-page .create-hero-actions,.factory-dashboard-actions{width:100%;justify-content:flex-start}.factory-watch-item-meta{flex-direction:column;gap:.18rem}}@media(max-width:390px){.factory-shell-has-scope .topbar{gap:.32rem;padding-inline:.55rem}.factory-shell-has-scope .topbar-subtitle{display:none}.factory-shell-has-scope .topbar-actions>.topbar-btn:not(.topbar-signout){min-width:2rem;padding:0 .48rem;font-size:.7rem}.factory-shell-has-scope .topbar-avatar{width:1.55rem;height:1.55rem}.factory-shell-has-scope .topbar-signout{width:1.85rem;min-width:1.85rem;height:1.85rem}}.operations-page .workpiece-item.state-hold{background:linear-gradient(180deg,#fff1f2,#ffe4e6);border-color:#fca5a5;border-left:4px solid #dc2626}.operations-page .workpiece-item.state-complete{background:linear-gradient(180deg,#f0fdf4,#dcfce7);border-color:#86efac;border-left:4px solid #16a34a;opacity:.92}.operations-page .workpiece-item.state-skipped{background:linear-gradient(180deg,#faf5ff,#f3e8ff);border-color:#d8b4fe;border-left:4px solid #a855f7;opacity:.92}.operations-page .workpiece-item.state-not-started{border-left:4px solid #cbd5e1}.operations-page .work-header-actions{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}.operations-page .work-project-filter{display:grid;gap:.2rem}.projects-page{gap:.75rem;min-height:0;display:grid;grid-template-rows:auto 1fr}.projects-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.projects-header-text{min-width:0;flex:1}.projects-header-actions{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.projects-factory-select{display:grid;gap:.2rem}.projects-header-search{display:flex;align-items:center;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}.projects-header-search .work-search-shell{flex:1;min-width:16rem}.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(19rem,22rem);gap:.85rem;overflow-x:auto;overflow-y:hidden;align-items:stretch;padding-bottom:.4rem;scroll-snap-type:x proximity}.kanban-column{display:grid;grid-template-rows:auto 1fr;background:var(--ff-bg-card);border:1px solid var(--ff-line);border-radius:.75rem;min-height:0;scroll-snap-align:start;box-shadow:0 1px 3px #0000000a}.kanban-column-header{display:grid;gap:.4rem;padding:.8rem .9rem;border-bottom:1px solid var(--ff-line);background:linear-gradient(180deg,#fff,#f8fafc);border-radius:.75rem .75rem 0 0}.kanban-column-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.kanban-column-title{font-size:1.05rem;color:#0f172a}.kanban-column-sub{font-size:.82rem;color:var(--ff-text-muted);font-weight:600}.kanban-column-stats{display:flex;flex-wrap:wrap;gap:.3rem}.kanban-column-body{display:grid;gap:.5rem;padding:.65rem .7rem .8rem;overflow-y:auto;align-content:start;max-height:calc(100dvh - 16rem)}.kanban-empty{margin:.4rem 0 0;color:var(--ff-text-muted)}.kanban-card{position:relative;display:grid;gap:.12rem;min-height:4.05rem;padding:.56rem .75rem .5rem;border:1px solid rgba(148,163,184,.26);border-left-width:4px;border-radius:.78rem;background:#fffffff0;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 6px 18px #0f172a12;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.kanban-card:hover{transform:translateY(-1px);border-color:#2563eb73;box-shadow:0 10px 24px #0f172a17}.kanban-card-selected{border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb52,0 10px 22px #2563eb2e!important;transform:translateY(-1px);outline:none;position:relative}.kanban-card-selected:before{content:"✓";position:absolute;top:.35rem;right:.35rem;width:1.15rem;height:1.15rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.72rem;font-weight:900;display:grid;place-items:center;box-shadow:0 1px 3px #0003}.kanban-card-selected{background:linear-gradient(135deg,#eff6fffa,#fffffff0);box-shadow:0 10px 24px #2563eb21!important}.kanban-card-selected:before{content:none}.kanban-card-openhint{margin-top:.3rem;padding:.3rem .5rem;background:#2563eb;color:#fff;font-size:.75rem;font-weight:700;border-radius:.35rem;text-align:center;letter-spacing:.02em;animation:kanban-hint-fade .18s ease-out}@keyframes kanban-hint-fade{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.kanban-card-running{border-left-color:#2563eb}.kanban-card-paused{border-left-color:#0ea5e9}.kanban-card-hold{border-left-color:#ef4444}.kanban-card-not_started{border-left-color:#22c55e}.kanban-card-complete{border-left-color:#94a3b8;opacity:.92}.kanban-card-skipped{border-left-color:#a78bfa;opacity:.92}.kanban-card-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.kanban-card-title-row{display:flex;align-items:center;gap:.45rem;min-width:0;flex-wrap:wrap}.kanban-card-subrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem}.kanban-card-project{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155;font-size:.76rem;font-weight:650}.kanban-card-meta{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.35rem;font-size:.82rem}.kanban-card-meta-label{color:var(--ff-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}.kanban-card-meta-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-weight:700;text-align:right}.kanban-card-updated{color:#64748b;font-size:.68rem;white-space:nowrap}@media(max-width:640px){.kanban-board{grid-auto-columns:85vw}.kanban-column-body{max-height:calc(100dvh - 20rem)}}.work-session-identity{display:flex;align-items:center;gap:.6rem;min-width:0;flex:1}.work-session-identity-text{min-width:0}.work-session-qr-btn{width:2.25rem;height:2.25rem;min-width:2.25rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(148,163,184,.35);border-radius:.5rem;background:#fff;color:#475569;cursor:pointer;transition:background .12s,border-color .12s,color .12s;flex-shrink:0}.work-session-qr-btn:hover{background:#f1f5f9;border-color:#2563eb66;color:#1e40af}.work-session-qr-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media(max-width:640px){.work-session-qr-btn{width:2.5rem;height:2.5rem;min-width:2.5rem}}.work-session-label-tools{display:flex;gap:.3rem;flex-shrink:0}.qp-body{display:grid;gap:.75rem}.qp-identity{display:grid;gap:.15rem}.qp-id{font-size:1.35rem;font-weight:800;color:#0f172a;letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.1;word-break:break-all}.qp-line{font-size:.92rem;color:#475569;font-weight:600}.qp-stats{display:flex;flex-wrap:wrap;gap:.3rem}.qp-state-running,.qp-state-paused{background:#fffbeb;color:#92400e;border-color:#fcd34d}.qp-state-hold{background:#fff1f2;color:#991b1b;border-color:#fca5a5}.qp-state-complete,.qp-state-skipped{background:#f0fdf4;color:#15803d;border-color:#86efac}.qp-section-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#475569;margin-top:.25rem}.qp-actions{display:grid;gap:.4rem}.qp-actions .btn{justify-content:center}.qp-hint{margin:0}.kanban-column-title-right{display:flex;align-items:center;gap:.35rem}.kanban-column-print{width:2rem;height:2rem;min-width:2rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(148,163,184,.28);border-radius:.45rem;background:#fff;color:#475569;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.kanban-column-print:hover{background:#f1f5f9;border-color:#2563eb66;color:#1e40af}.kanban-column-print:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.pw-shell{min-height:100dvh;display:flex;flex-direction:column;padding-bottom:max(1rem,env(safe-area-inset-bottom));background:#f1f5f9;box-sizing:border-box}.pw-doc{width:100%;max-width:56rem;margin:1rem auto;margin-top:max(1rem,env(safe-area-inset-top));background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0f172a0d;overflow:hidden}.pw-doc-body{padding:1.25rem 1.4rem;display:grid;gap:.7rem}.pw-masthead{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.2rem;align-items:center;padding:1.15rem 1.4rem;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#fafbfd,#f3f6fb)}.pw-masthead-left{min-width:0;display:grid;gap:.15rem}.pw-kicker{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#2563eb}.pw-project{margin:.15rem 0 0;font-size:1.4rem;line-height:1.15;font-weight:800;color:#0f172a}.pw-masthead-ids{display:flex;gap:.35rem;flex-wrap:wrap;align-items:baseline;margin-top:.2rem}.pw-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.25rem;font-weight:700;color:#0f172a;letter-spacing:.02em}.pw-line{font-size:.95rem;color:#475569;font-weight:600}.pw-masthead-subids{display:flex;gap:.4rem;flex-wrap:wrap;font-size:.82rem;color:#64748b;margin-top:.15rem}.pw-masthead-right{display:grid;gap:.45rem;justify-items:stretch;align-content:start}.pw-mini-qr{position:relative;justify-self:end;width:3.2rem;height:3.2rem;padding:.2rem;background:#fff;border:1px solid #e2e8f0;border-radius:.45rem;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.pw-mini-qr:hover{border-color:#93c5fd;box-shadow:0 4px 10px #2563eb24;transform:translateY(-1px)}.pw-mini-qr:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.pw-mini-qr img{display:block;width:100%;height:100%;image-rendering:pixelated}.pw-mini-qr-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#2563ebe0;color:#fff;border-radius:inherit;opacity:0;transition:opacity .12s ease;pointer-events:none}.pw-mini-qr:hover .pw-mini-qr-overlay,.pw-mini-qr:focus-visible .pw-mini-qr-overlay{opacity:1}.pw-state-pill{justify-self:end;padding:.28rem .75rem;border-radius:999px;font-size:.82rem;font-weight:800;letter-spacing:.03em;border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a}.pw-state-running,.pw-state-paused{background:#fffbeb;color:#92400e;border-color:#fcd34d}.pw-state-hold{background:#fff1f2;color:#991b1b;border-color:#fca5a5}.pw-state-complete{background:#f0fdf4;color:#15803d;border-color:#86efac}.pw-state-not_started{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.pw-progress{width:100%;height:.55rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.pw-progress-bar{height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);transition:width .3s ease}.pw-progress-label{display:flex;justify-content:space-between;font-size:.78rem;color:#64748b;font-weight:600}.pw-progress-pct{color:#0f172a;font-weight:800}.pw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));border-bottom:1px solid #e2e8f0;background:#fff}.pw-stat{padding:.7rem 1rem;display:grid;gap:.1rem;border-right:1px solid #e2e8f0;min-width:0}.pw-stat:last-child{border-right:none}.pw-stat-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b}.pw-stat-value{font-size:.92rem;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pw-section{padding:1rem 1.4rem;border-bottom:1px solid #e2e8f0}.pw-section:last-of-type{border-bottom:none}.pw-section-title{margin:0 0 .55rem;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#475569}.pw-drawings{display:grid;gap:.4rem}.pw-drawing-link{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:.5rem;text-decoration:none;font-weight:700;transition:background .12s ease,border-color .12s ease}.pw-drawing-link:hover{background:#dbeafe;border-color:#2563eb}.pw-drawing-icon{font-size:1rem}.pw-drawing-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pw-drawing-arrow{color:#2563eb;font-weight:900}.pw-table-head{display:grid;grid-template-columns:2.2rem 1.4rem minmax(0,1fr) minmax(0,1.1fr) 5.5rem 1.2rem;gap:.6rem;padding:.35rem .6rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;border-bottom:1px solid #e2e8f0}.pw-table{list-style:none;padding:0;margin:0;display:grid}.pw-row{border-bottom:1px solid #e2e8f0}.pw-row:last-child{border-bottom:none}.pw-row-head{display:grid;grid-template-columns:2.2rem 1.4rem minmax(0,1fr) minmax(0,1.1fr) 5.5rem 1.2rem;gap:.6rem;width:100%;padding:.6rem;border:none;background:transparent;text-align:left;cursor:pointer;align-items:center;font:inherit;color:inherit;transition:background .12s ease}.pw-row-head:hover:not(:disabled){background:#f8fafc}.pw-row-head:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.pw-row-head:disabled{cursor:default}.pw-row-order{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;font-size:.82rem;color:#94a3b8}.pw-row-status{display:grid;place-items:center}.pw-row-dot{width:1rem;height:1rem;border-radius:999px;display:grid;place-items:center;font-size:.7rem;font-weight:900;color:#fff}.pw-row-dot-done{background:#16a34a}.pw-row-dot-current{background:#2563eb;box-shadow:0 0 0 3px #2563eb2e}.pw-row-dot-pending{background:#cbd5e1}.pw-row-name{font-weight:700;color:#0f172a;font-size:.92rem;min-width:0;display:inline-flex;gap:.35rem;align-items:center;flex-wrap:wrap}.pw-row-pending .pw-row-name{color:#64748b;font-weight:600}.pw-row-signoff{display:grid;gap:.05rem;font-size:.82rem;min-width:0}.pw-row-by{color:#0f172a;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pw-row-when{color:#64748b;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pw-row-by-muted{color:#94a3b8;font-style:italic}.pw-row-duration{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;font-weight:700;color:#0f172a;text-align:right}.pw-row-chev{color:#94a3b8;text-align:right;font-size:.9rem}.pw-row-done .pw-row-head{background:#f0fdf4}.pw-row-done .pw-row-head:hover:not(:disabled){background:#dcfce7}.pw-row-current .pw-row-head{background:#eff6ff}.pw-row-current .pw-row-head:hover:not(:disabled){background:#dbeafe}.pw-row-body{padding:.65rem .9rem 1rem 3.5rem;display:grid;gap:.7rem;background:#f8fafc;border-top:1px dashed #cbd5e1}.pw-row-block{display:grid;gap:.3rem}.pw-row-block-title{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#475569;display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.pw-row-desc{margin:0;color:#334155;font-size:.9rem;line-height:1.45}.wf-tag{display:inline-flex;align-items:center;gap:.18rem;padding:.08rem .35rem;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:.25rem;white-space:nowrap;line-height:1.25;vertical-align:baseline}.wf-tag-sm{padding:.02rem .28rem;font-size:.58rem;gap:.12rem}.wf-tag-glyph{font-size:.85em}.wf-tag-neutral{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.wf-tag-required,.wf-tag-qc-req{background:#fef3c7;color:#92400e;border-color:#fcd34d}.wf-tag-compliance{background:#fef2f2;color:#991b1b;border-color:#fca5a5}.wf-tag-qc-pass{background:#f0fdf4;color:#15803d;border-color:#86efac}.wf-tag-qc-fail{background:#fef2f2;color:#991b1b;border-color:#fca5a5}.wf-tag-skippable{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.wf-tag-skipped{background:#fef3c7;color:#92400e;border-color:#fcd34d}.wf-tag-done{background:#f0fdf4;color:#15803d;border-color:#86efac}.wf-tag-running{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.wf-tag-pending{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.wf-tag-hold{background:#fef2f2;color:#991b1b;border-color:#fca5a5}.wf-tag-paused{background:#fff7ed;color:#c2410c;border-color:#fdba74}.pw-chip{display:inline-block;padding:.08rem .35rem;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:.25rem}.pw-chip-qc{background:#fef3c7;color:#92400e;border-color:#fcd34d}.pw-chip-danger{background:#fef2f2;color:#991b1b;border-color:#fca5a5}.pw-chip-pass{background:#f0fdf4;color:#15803d;border-color:#86efac}.pw-chip-fail{background:#fef2f2;color:#991b1b;border-color:#fca5a5}.pw-meta{display:grid;gap:.25rem}.pw-meta-title{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.pw-meta-list{margin:0;display:grid;gap:.15rem}.pw-meta-row{display:grid;grid-template-columns:minmax(5rem,28%) 1fr;gap:.5rem;font-size:.82rem}.pw-meta-row dt{margin:0;color:#64748b;text-transform:capitalize}.pw-meta-row dd{margin:0;color:#0f172a;word-break:break-word}.pw-check{list-style:none;margin:0;padding:0;display:grid;gap:.2rem}.pw-check li{display:flex;gap:.45rem;align-items:center;font-size:.88rem;color:#334155}.pw-check-box{width:1rem;height:1rem;display:grid;place-items:center;color:#2563eb;flex-shrink:0;border:1px solid #94a3b8;border-radius:.15rem;background:#fff;box-sizing:border-box}.pw-check-box-done{border-color:#16a34a;background:#f0fdf4}.pw-check-box-done:after{content:"";width:.35rem;height:.6rem;border:solid #16a34a;border-width:0 .12rem .12rem 0;transform:rotate(45deg) translateY(-.05rem)}.pw-check-label{flex:1;min-width:0}.pw-check-req{font-size:.65rem;color:#92400e;background:#fef3c7;padding:.05rem .3rem;border-radius:.25rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.pw-row-strip{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;align-items:baseline;font-size:.82rem;color:#0f172a;margin:0 0 .6rem;padding:.45rem .6rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px}.pw-strip-field{line-height:1.35}.pw-strip-label{display:inline-block;margin-right:.3rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.pw-strip-by{margin-left:.25rem;color:#64748b;font-size:.78rem}.pw-strip-notes{flex:1 1 100%;color:#334155}.pw-check-table{display:grid;grid-template-columns:28px minmax(0,1fr) 36px 36px 44px minmax(140px,220px);align-items:stretch;font-size:.82rem;border:1px solid #cbd5e1;border-radius:4px;overflow:hidden;background:#fff}.pw-check-thead{display:contents}.pw-check-thead>span{background:#f1f5f9;color:#334155;font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.4rem .5rem;border-bottom:1px solid #cbd5e1;text-align:center}.pw-check-thead>span:nth-child(2){text-align:left}.pw-check-thead>span:last-child{text-align:left}.pw-check-row{display:contents}.pw-check-row>*{border-bottom:1px solid #e2e8f0;padding:.35rem .5rem;display:flex;align-items:center}.pw-check-row:last-child>*{border-bottom:none}.pw-check-row>.pw-check-num{justify-content:center;color:#64748b;font-weight:600;font-size:.78rem}.pw-check-row>.pw-check-label{color:#0f172a;font-size:.85rem;line-height:1.3;flex-direction:row;flex-wrap:wrap;gap:.3rem}.pw-check-cell-mark{justify-content:center;cursor:default}.pw-verdict-mark{position:relative;width:13px;height:13px;border:1.2px solid #cbd5e1;background:#f8fafc;display:inline-block;flex-shrink:0;border-radius:1px}.pw-verdict-mark.is-selected{border-color:#94a3b8;background:#fff}.pw-verdict-mark.is-selected:before,.pw-verdict-mark.is-selected:after{content:"";position:absolute;left:50%;top:50%;width:13px;height:1.4px;background:#94a3b8;transform-origin:center}.pw-verdict-mark.is-selected:before{transform:translate(-50%,-50%) rotate(45deg)}.pw-verdict-mark.is-selected:after{transform:translate(-50%,-50%) rotate(-45deg)}.pw-check-notes-readonly{display:block;width:100%}.pw-row-dot-skipped{display:inline-flex;align-items:center;justify-content:center;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;width:1.2rem;height:1.2rem;border-radius:999px;font-weight:800;font-size:.85rem}.pw-chip-warn{background:#fef3c7;color:#92400e;border-color:#fcd34d}@media(max-width:720px){.pw-check-table{grid-template-columns:minmax(0,1fr) 30px 30px 36px;font-size:.78rem}.pw-check-thead>span:first-child,.pw-check-row>.pw-check-num,.pw-check-thead>span:last-child,.pw-check-row>.pw-check-notes-readonly{display:none}}.pw-photo-list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem;font-size:.82rem}.pw-photo-name{font-weight:600;color:#0f172a}.pw-events{list-style:none;margin:0;padding:0;display:grid;gap:.2rem;font-size:.82rem;color:#334155}.pw-events-action{font-weight:700;color:#0f172a}.pw-events-note{margin-top:.15rem;padding:.25rem .45rem;background:#fff;border-left:2px solid #cbd5e1;border-radius:.25rem;color:#475569;font-style:italic}.pw-line-desc{margin:0 0 .55rem;color:#334155;font-size:.9rem;line-height:1.45}.pw-certs{display:grid;gap:.35rem}.pw-cert{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border:1px solid #e2e8f0;background:#fff;border-radius:.45rem;color:inherit;text-decoration:none;font-size:.88rem}.pw-cert-link:hover{border-color:#93c5fd;background:#eff6ff}.pw-cert-icon{width:1.4rem;height:1.4rem;border-radius:.3rem;background:#f0fdf4;color:#15803d;display:grid;place-items:center;font-size:.85rem;font-weight:800;flex-shrink:0}.pw-cert-label{flex:1;min-width:0;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pw-cert-issued{color:#64748b;font-size:.78rem;white-space:nowrap}.pw-notfound{border:1px solid #fecaca;background:#fff1f2;border-radius:.6rem;padding:1rem;display:grid;gap:.5rem;text-align:center}.pw-notfound-title{font-weight:800;color:#991b1b;font-size:1rem}.pw-notfound-desc{margin:0;color:#7f1d1d;font-size:.9rem;line-height:1.45}.pw-notfound-desc strong{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#450a0a}.pw-share{margin:.5rem 1.4rem 1rem;border-top:1px solid #e2e8f0;padding-top:.75rem}.pw-share-summary{cursor:pointer;list-style:none;font-size:.88rem;font-weight:700;color:#475569;padding:.25rem 0;display:flex;align-items:center;gap:.35rem;-webkit-tap-highlight-color:transparent}.pw-share-summary::-webkit-details-marker{display:none}.pw-share-summary:before{content:"▸";display:inline-block;transition:transform .15s;font-size:.75rem;color:#94a3b8}.pw-share[open] .pw-share-summary:before{transform:rotate(90deg)}.pw-share-body{display:grid;gap:.6rem;margin-top:.5rem}.pw-btn-block{width:100%;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.pw-qr{display:grid;place-items:center;gap:.35rem;padding:.5rem .25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.55rem}.pw-qr img{width:min(220px,60vw);height:auto;display:block}.pw-qr-hint{font-size:.78rem;color:#64748b}.pw-muted{margin:0;color:#64748b;font-size:.9rem;line-height:1.5}.pw-muted-center{text-align:center}.pw-inline-link{color:#2563eb;text-decoration:underline}.pw-footnote{margin:.5rem 1.4rem 1.2rem;font-size:.78rem;color:#64748b;text-align:center}.pw-dir-doc .pw-masthead{grid-template-columns:minmax(0,1fr) auto;gap:1rem}.pw-dir-lede{margin-top:.25rem;max-width:36rem}.pw-dir-count{display:grid;gap:.1rem;justify-items:end}.pw-dir-big{font-size:2.1rem;font-weight:900;color:#0f172a;line-height:1;letter-spacing:-.02em}.pw-dir-big-sub{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.pw-dir-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));background:#fff;border-bottom:1px solid #e2e8f0}.pw-dir-stat{position:relative;padding:.6rem .85rem;background:transparent;border:none;border-right:1px solid #e2e8f0;text-align:left;cursor:pointer;font:inherit;color:inherit;display:grid;gap:.1rem;transition:background .12s ease}.pw-dir-stat:last-child{border-right:none}.pw-dir-stat:hover:not(:disabled){background:#f8fafc}.pw-dir-stat:disabled{cursor:default;opacity:.45}.pw-dir-stat:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.pw-dir-stat.is-active{background:#eff6ff;box-shadow:inset 0 -3px #2563eb}.pw-dir-stat-count{font-size:1.3rem;font-weight:800;color:#0f172a;letter-spacing:-.01em}.pw-dir-stat-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.pw-dir-stat-running .pw-dir-stat-count,.pw-dir-stat-paused .pw-dir-stat-count{color:#b45309}.pw-dir-stat-hold .pw-dir-stat-count{color:#b91c1c}.pw-dir-stat-complete .pw-dir-stat-count{color:#15803d}.pw-dir-stat-not_started .pw-dir-stat-count{color:#475569}.pw-dir-controls{display:flex;gap:.6rem;padding:.8rem 1.4rem .2rem;flex-wrap:wrap;align-items:center}.pw-dir-search{position:relative;flex:1;min-width:16rem;display:flex;align-items:center}.pw-dir-search-icon{position:absolute;left:.6rem;color:#94a3b8;pointer-events:none}.pw-dir-search .input{width:100%;padding-left:2rem;padding-right:2rem}.pw-dir-search-clear{position:absolute;right:.3rem;border:none;background:transparent;color:#94a3b8;width:1.6rem;height:1.6rem;border-radius:999px;cursor:pointer;font-size:.8rem}.pw-dir-search-clear:hover{background:#f1f5f9;color:#0f172a}.pw-dir-controls .select{min-width:11rem}.pw-dir-status{padding:1rem 1.4rem;color:#64748b;font-size:.9rem}.pw-dir-body{padding:.4rem .5rem .6rem;display:grid;gap:.6rem}.pw-dir-group{display:grid;gap:.25rem}.pw-dir-group-head{display:flex;align-items:baseline;gap:.4rem;margin:.5rem .9rem .25rem;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.pw-dir-group-factory{color:#475569}.pw-dir-group-sep{color:#cbd5e1;font-size:.9rem}.pw-dir-group-project{color:#0f172a}.pw-dir-group-count{margin-left:auto;padding:.1rem .4rem;font-size:.7rem;font-weight:800;color:#475569;background:#f1f5f9;border-radius:999px}.pw-dir-list{list-style:none;padding:0;margin:0;display:grid;gap:.25rem}.pw-dir-row{display:flex;align-items:stretch;background:#fff;border:1px solid #e2e8f0;border-left-width:4px;border-radius:.45rem;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;margin:0 .5rem}.pw-dir-row:hover{border-color:#93c5fd;box-shadow:0 6px 14px #2563eb14;transform:translateY(-1px)}.pw-dir-row-running,.pw-dir-row-paused{border-left-color:#f59e0b}.pw-dir-row-hold{border-left-color:#dc2626}.pw-dir-row-complete{border-left-color:#16a34a;opacity:.88}.pw-dir-row-not_started{border-left-color:#cbd5e1}.pw-dir-link{flex:1;min-width:0;display:grid;grid-template-columns:5.5rem minmax(8rem,1.4fr) minmax(6rem,1fr) 6rem auto;gap:.7rem;align-items:center;padding:.55rem .75rem;text-decoration:none;color:inherit}.pw-dir-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:800;font-size:.92rem;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pw-dir-project{font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pw-dir-line{color:#475569;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pw-dir-state-pill{justify-self:start;padding:.12rem .45rem;border-radius:999px;font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;white-space:nowrap}.pw-dir-row-running .pw-dir-state-pill,.pw-dir-row-paused .pw-dir-state-pill{background:#fffbeb;color:#92400e;border-color:#fcd34d}.pw-dir-row-hold .pw-dir-state-pill{background:#fff1f2;color:#991b1b;border-color:#fca5a5}.pw-dir-row-complete .pw-dir-state-pill{background:#f0fdf4;color:#15803d;border-color:#86efac}.pw-dir-row-not_started .pw-dir-state-pill{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.pw-dir-when{color:#64748b;font-size:.78rem;white-space:nowrap;justify-self:end}.pw-dir-copy{align-self:stretch;border:none;border-left:1px solid #e2e8f0;background:#fff;color:#2563eb;font-weight:700;font-size:.78rem;padding:0 .85rem;cursor:pointer;flex-shrink:0;transition:background .12s ease,color .12s ease}.pw-dir-copy:hover{background:#eff6ff;color:#1d4ed8}@media(max-width:720px){.pw-dir-doc .pw-masthead{grid-template-columns:1fr}.pw-dir-count{justify-items:start}.pw-dir-link{grid-template-columns:5rem minmax(0,1fr);grid-template-areas:"id project" "id line" "state when";row-gap:.15rem}.pw-dir-id{grid-area:id;align-self:center}.pw-dir-project{grid-area:project}.pw-dir-line{grid-area:line}.pw-dir-state-pill{grid-area:state}.pw-dir-when{grid-area:when;justify-self:end}}.pw-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:.72rem;font-weight:700;text-transform:capitalize}.pw-pill-running,.pw-pill-paused{background:#fffbeb;color:#92400e;border-color:#fcd34d}.pw-pill-hold{background:#fff1f2;color:#991b1b;border-color:#fca5a5}.pw-pill-complete{background:#f0fdf4;color:#15803d;border-color:#86efac}.pw-pill-not_started{background:#f1f5f9;color:#475569;border-color:#cbd5e1}@media print{.pw-shell .topbar{display:none!important}}@media(max-width:640px){.pw-doc{border-radius:.55rem;margin:.4rem auto}.pw-masthead{grid-template-columns:1fr;gap:.7rem;padding:.9rem 1rem}.pw-masthead-right{justify-items:start}.pw-state-pill{justify-self:start}.pw-section{padding:.85rem 1rem}.pw-stat{padding:.55rem .7rem}.pw-table-head{display:none}.pw-row-head{grid-template-columns:1.6rem 1.2rem minmax(0,1fr) 4.5rem 1rem;grid-template-areas:"ord dot name dur chev" "ord dot sign sign sign";gap:.35rem;padding:.5rem .55rem}.pw-row-order{grid-area:ord}.pw-row-status{grid-area:dot}.pw-row-name{grid-area:name}.pw-row-signoff{grid-area:sign;font-size:.78rem}.pw-row-duration{grid-area:dur}.pw-row-chev{grid-area:chev}.pw-row-body{padding:.55rem .7rem .8rem}}.print-labels-page{min-height:100dvh;background:#f8fafc;padding:.75rem;box-sizing:border-box}.print-labels-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;margin-bottom:.8rem;box-shadow:0 1px 3px #0f172a0a}.print-labels-toolbar-info{flex:1 1 14rem;min-width:0}.print-labels-title{margin:0;font-size:1.1rem;font-weight:800;color:#0f172a}.print-labels-subtitle{margin:.15rem 0 0;font-size:.85rem;color:#64748b}.print-labels-size{display:grid;gap:.2rem;font-size:.78rem;color:#475569}.print-labels-size span{font-weight:600;letter-spacing:.02em;text-transform:uppercase;font-size:.7rem}.print-labels-custom{display:flex;gap:.5rem;flex-wrap:wrap}.print-labels-custom label{display:grid;gap:.2rem;font-size:.78rem;color:#475569}.print-labels-custom span{font-weight:600;letter-spacing:.02em;text-transform:uppercase;font-size:.7rem}.print-labels-custom .input{width:5rem}.print-labels-actions{display:flex;gap:.4rem;align-items:flex-end}.print-labels-select{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.print-labels-select-count{font-size:.8rem;color:#475569;font-weight:600;margin-right:.25rem}.print-labels-select .btn-link{background:transparent;border:none;color:#2563eb;font-size:.78rem;font-weight:600;padding:.25rem .4rem;border-radius:.3rem;cursor:pointer}.print-labels-select .btn-link:hover{background:#eff6ff}.print-labels-select .btn-link:disabled{color:#94a3b8;cursor:not-allowed;background:transparent}.print-labels-hint{flex-basis:100%;font-size:.72rem;color:#64748b;margin:0}@media(max-width:640px){.print-labels-toolbar{gap:.5rem}.print-labels-actions{width:100%}.print-labels-actions>button{flex:1}}.print-labels-grid{display:grid;grid-template-columns:repeat(auto-fill,var(--label-w, 2in));gap:.15in;justify-content:start}.print-label{position:relative;width:var(--label-w, 2in);height:var(--label-h, 1.5in);border:1px solid #e2e8f0;border-radius:.15in;padding:.08in .1in;box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr) auto;justify-items:center;align-items:center;gap:.04in;background:#fff;overflow:hidden;text-decoration:none;color:inherit;cursor:pointer;user-select:none;-webkit-user-select:none;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease,opacity .12s ease}.print-label:hover{border-color:#93c5fd;box-shadow:0 4px 14px #2563eb1f;transform:translateY(-1px)}.print-label:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.print-label.is-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb,0 6px 18px #2563eb2e;background:#f0f7ff}.print-labels-grid.has-selection .print-label:not(.is-selected){opacity:.42;filter:saturate(.75)}.print-label-check{position:absolute;top:.06in;right:.06in;width:.18in;height:.18in;border-radius:999px;background:#fff;border:1.5px solid #cbd5e1;display:grid;place-items:center;font-size:.1in;color:transparent;font-weight:900;transition:background .12s ease,border-color .12s ease,color .12s ease}.print-label.is-selected .print-label-check{background:#2563eb;border-color:#2563eb;color:#fff}.print-label-open{position:absolute;top:.06in;left:.06in;width:.2in;height:.2in;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#64748b;display:grid;place-items:center;font-size:.11in;text-decoration:none;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.print-label-open:hover{background:#eff6ff;color:#2563eb;border-color:#93c5fd}.print-label-project{font-size:clamp(.08in,calc(min(var(--label-w, 2in),var(--label-h, 1.5in))*.095),.13in);font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#0f172a;line-height:1.1;text-align:center;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:100%}.print-label-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(.13in,calc(min(var(--label-w, 2in),var(--label-h, 1.5in))*.16),.22in);font-weight:800;color:#0f172a;line-height:1.05;letter-spacing:.02em;text-align:center;overflow-wrap:anywhere}.print-label-qr{width:min(calc(var(--label-w, 2in) - .2in),calc(var(--label-h, 1.5in) - .7in));height:min(calc(var(--label-w, 2in) - .2in),calc(var(--label-h, 1.5in) - .7in));display:flex;align-items:center;justify-content:center;overflow:hidden}.print-label-qr img{width:100%;height:100%;display:block;object-fit:contain;image-rendering:pixelated}.print-label-qr-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:.09in;color:#cbd5e1;border:1px dashed #e2e8f0;border-radius:.06in}.travelers-shell{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:.75rem;height:calc(100vh - 220px);min-height:480px}@media(max-width:900px){.travelers-shell{grid-template-columns:1fr;grid-template-rows:minmax(220px,280px) minmax(0,1fr);height:auto}}.travelers-list{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:.6rem;overflow:hidden;min-height:0}.travelers-list-head{padding:.55rem .75rem;border-bottom:1px solid #e2e8f0;background:#f8fafc;font-size:.75rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em}.travelers-list-items{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1 auto;min-height:0}.travelers-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;padding:.5rem .7rem;border-bottom:1px solid #f1f5f9;cursor:pointer;align-items:center;transition:background .1s,box-shadow .1s}.travelers-row:hover{background:#f8fafc}.travelers-row.is-focused{background:#eff6ff;box-shadow:inset 3px 0 #2563eb}.travelers-row.is-selected{background:#f0f9ff}.travelers-row.is-selected.is-focused{background:#dbeafe}.travelers-row-check{width:16px;height:16px;cursor:pointer;flex-shrink:0}.travelers-row-main{min-width:0}.travelers-row-id{font-size:.85rem;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.travelers-row-meta{font-size:.72rem;color:#64748b;display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.1rem}.travelers-row-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.travelers-preview{display:flex;flex-direction:column;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:.6rem;overflow:hidden;min-height:0}.travelers-preview-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0}.travelers-preview-title{font-size:.85rem;font-weight:700;color:#0f172a}.travelers-preview-frame{flex:1 1 auto;width:100%;border:none;background:#f3f4f6;min-height:0}.travelers-preview-empty{flex:1 1 auto;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:.85rem;padding:1rem}@media print{.travelers-shell{display:none!important}}.print-labels-mode{display:flex;gap:.25rem}.print-travelers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5in,1fr));gap:.5in;justify-content:start}.print-traveler{position:relative;width:100%;min-height:9.5in;border:1px solid #e2e8f0;border-radius:.25in;padding:.4in;box-sizing:border-box;background:#fff;display:grid;grid-template-rows:auto 1fr auto;gap:.3in;cursor:pointer;user-select:none;-webkit-user-select:none;transition:border-color .12s ease,box-shadow .12s ease}.print-traveler:hover{border-color:#93c5fd;box-shadow:0 4px 14px #2563eb1f}.print-traveler:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.print-traveler.is-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb,0 6px 18px #2563eb2e;background:#f0f7ff}.print-travelers-grid.has-selection .print-traveler:not(.is-selected){opacity:.42;filter:saturate(.75)}.print-traveler-head{border-bottom:2px solid #0f172a;padding-bottom:.15in}.print-traveler-project{font-size:.95rem;color:#475569;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.print-traveler-id{font-size:2.4rem;font-weight:900;color:#0f172a;line-height:1.05;margin-top:.05in;word-break:break-all}.print-traveler-line{font-size:1.05rem;color:#1f2937;margin-top:.05in}.print-traveler-body{display:grid;grid-template-columns:minmax(2.6in,3.2in) 1fr;gap:.4in;align-items:start}.print-traveler-qr{display:grid;gap:.1in;justify-items:center}.print-traveler-qr img{width:100%;height:auto;max-width:3in;image-rendering:pixelated;image-rendering:crisp-edges}.print-traveler-qr-placeholder{width:3in;height:3in;display:grid;place-items:center;background:#f1f5f9;color:#64748b;font-weight:700;border-radius:.1in}.print-traveler-qr-caption{font-size:.78rem;color:#64748b;text-align:center}.print-traveler-meta{display:grid;grid-template-columns:auto 1fr;gap:.12in .25in;margin:0;align-content:start}.print-traveler-meta dt{font-size:.78rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.02em}.print-traveler-meta dd{margin:0;font-size:1.05rem;color:#0f172a;font-weight:600}.print-traveler-foot{border-top:1px solid #e2e8f0;padding-top:.12in;display:flex;justify-content:space-between;font-size:.72rem;color:#64748b}@media print{.no-print{display:none!important}body,html{background:#fff!important}.print-labels-page{padding:0;background:#fff}.print-labels-grid{gap:0}.print-label{border:none;border-radius:0;page-break-inside:avoid;break-inside:avoid;transform:none!important;box-shadow:none!important;opacity:1!important;filter:none!important;background:#fff!important}.print-labels-grid.has-selection .print-label:not(.is-selected){display:none!important}.print-label-check,.print-label-open{display:none!important}.print-label{print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-travelers-grid{display:block!important;gap:0}.print-traveler{border:none;border-radius:0;padding:0;min-height:auto;page-break-inside:avoid;break-inside:avoid;box-shadow:none!important;opacity:1!important;filter:none!important;background:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-travelers-grid.has-selection .print-traveler:not(.is-selected){display:none!important}body.printing-labels *{visibility:hidden!important}body.printing-labels .print-labels-page,body.printing-labels .print-labels-page *{visibility:visible!important}body.printing-labels .print-labels-page{position:absolute!important;inset:0!important;margin:0!important;padding:0!important;background:#fff!important}}.qa-page{gap:.75rem;min-height:0;display:grid;grid-template-rows:auto auto 1fr}.qa-header{padding:.9rem}.qa-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.qa-header-actions{display:flex;gap:.5rem}.qa-scope-strip{display:flex;justify-content:space-between;gap:.85rem;margin-top:.65rem;flex-wrap:wrap}.qa-scope-card{display:grid;gap:.15rem;padding:.55rem .75rem;border:1px solid #e2e8f0;border-radius:.55rem;background:#fff;flex:1 1 18rem;min-width:0}.qa-scope-card strong{font-size:1rem;color:#0f172a}.qa-scope-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.qa-scope-badges{display:flex;gap:.4rem;flex-wrap:wrap;align-items:flex-start}.qa-search{display:flex;gap:.5rem;align-items:center;margin-top:.6rem}.qa-search .input{flex:1;min-width:0}.qa-layout{display:grid;grid-template-columns:minmax(20rem,24rem) 1fr;gap:.85rem;align-items:start;min-height:0}@media(max-width:900px){.qa-layout{grid-template-columns:1fr}}.qa-queue{display:grid;gap:.5rem;align-content:start;max-height:calc(100dvh - 14rem);overflow-y:auto;padding-right:.25rem}.qa-card{display:grid;gap:.3rem;padding:.65rem .75rem;border:1px solid rgba(148,163,184,.32);border-radius:.55rem;background:#fff;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.qa-card:hover{border-color:#2563eb73;box-shadow:0 6px 14px #0f172a0f;transform:translateY(-1px)}.qa-card-selected{border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb52,0 10px 22px #2563eb2e!important}.qa-card-row{display:flex;justify-content:space-between;align-items:center;gap:.4rem;flex-wrap:wrap}.qa-card-project{font-size:.78rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em}.qa-card-id{font-size:.95rem;font-weight:800;color:#0f172a;word-break:break-all}.qa-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:.2rem .5rem;font-size:.78rem;color:#475569}.qa-card-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qa-card-time{font-size:.72rem;color:#64748b}.qa-detail{padding:.9rem;display:grid;gap:.85rem;align-content:start}.qa-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.qa-detail-project{margin:0;font-size:.78rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em}.qa-detail-id{margin:.1rem 0 .2rem;font-size:1.5rem;font-weight:900;color:#0f172a;word-break:break-all}.qa-detail-line{margin:0;color:#475569;font-size:.95rem}.qa-detail-state{display:flex;gap:.4rem;flex-wrap:wrap;align-items:flex-start}.qa-detail-meta{display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;padding:.65rem .75rem;background:#f8fafc;border-radius:.5rem;border:1px solid #e2e8f0}.qa-detail-meta-label{font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.qa-detail-actions{display:flex;gap:.5rem;flex-wrap:wrap}.qa-section-heading{margin:0 0 .4rem;font-size:1rem;font-weight:800;color:#0f172a}.qa-stage-block{display:grid;gap:.5rem}.qa-stage-description{margin:0;color:#334155;font-size:.92rem;line-height:1.4}.qa-checklist{border:1px solid #e2e8f0;border-radius:.5rem;padding:.6rem .75rem;background:#fff}.qa-checklist-head{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-bottom:.4rem}.qa-checklist-items{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.qa-checklist-items li{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.25rem 0;border-bottom:1px dashed #e2e8f0}.qa-checklist-items li:last-child{border-bottom:none}.qa-checklist-marker{font-size:1.05rem;color:#64748b}.qa-checklist-label{flex:1;min-width:12rem;color:#0f172a;font-weight:600;cursor:pointer}.qa-checklist-input-checkbox{width:1.15rem;height:1.15rem;margin:0;cursor:pointer}.qa-checklist-input{max-width:14rem;min-width:6rem}.qa-activity-block{display:grid;gap:.4rem}.qa-activity-list{list-style:none;padding:0;margin:0;display:grid;gap:.3rem}.qa-activity-list li{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;font-size:.82rem;color:#334155;padding:.3rem .5rem;border:1px solid #e2e8f0;border-radius:.4rem;background:#fff}.qa-activity-text{color:#0f172a;font-weight:600}.qa-activity-time{color:#64748b;font-size:.75rem;white-space:nowrap}.wf-page{display:flex;flex-direction:column;gap:.85rem;padding:1rem .25rem 1.5rem;max-width:1280px;margin:0 auto;width:100%}.wf-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.wf-page-head-text{display:flex;flex-direction:column;gap:.15rem}.wf-page-title{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.01em;color:#0f172a}.wf-page-sub{margin:0;font-size:.85rem;color:#64748b}.wf-toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.wf-search-shell{position:relative;flex:1 1 280px;min-width:220px}.wf-search-icon{position:absolute;top:50%;left:.7rem;transform:translateY(-50%);color:#94a3b8;display:inline-flex;pointer-events:none}.wf-search-input{width:100%;height:2.25rem;padding:0 .7rem 0 2.1rem;border:1px solid #e2e8f0;border-radius:.55rem;font:inherit;font-size:.85rem;color:#0f172a;background:#fff;outline:none;transition:border-color .12s,box-shadow .12s}.wf-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.wf-search-input::placeholder{color:#94a3b8}.wf-project-select,.wf-sort-select{height:2.25rem;padding:0 1.8rem 0 .65rem;border:1px solid #e2e8f0;border-radius:.55rem;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='none' stroke='%2364748b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/></svg>") no-repeat right .65rem center;font:inherit;font-size:.82rem;color:#0f172a;-webkit-appearance:none;appearance:none;cursor:pointer}.wf-filter-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.wf-toolbar-spacer{flex:1 1 auto}.wf-filter-chip{display:inline-flex;align-items:center;gap:.32rem;font:inherit;font-size:.78rem;font-weight:600;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.32rem .75rem;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.wf-filter-chip:hover{background:#f8fafc;color:#0f172a}.wf-filter-chip.active{background:#0f172a;color:#fff;border-color:#0f172a}.wf-filter-chip-ready.active{background:#16a34a;border-color:#16a34a}.wf-filter-chip-in_progress.active{background:#2563eb;border-color:#2563eb}.wf-filter-chip-on_hold.active{background:#dc2626;border-color:#dc2626}.wf-filter-chip-done.active{background:#475569;border-color:#475569}.wf-filter-mark{width:.46rem;height:.46rem;border-radius:999px;background:#94a3b8;box-shadow:0 0 0 3px #94a3b821;flex:0 0 auto}.wf-filter-mark-ready{background:#22c55e;box-shadow:0 0 0 3px #22c55e21}.wf-filter-mark-in_progress{background:#2563eb;box-shadow:0 0 0 3px #2563eb21}.wf-filter-mark-on_hold{background:#ef4444;box-shadow:0 0 0 3px #ef444421}.wf-filter-mark-done{background:#94a3b8;box-shadow:0 0 0 3px #94a3b829}.wf-filter-chip.active .wf-filter-mark{background:#fff;box-shadow:0 0 0 3px #ffffff2e}.wf-filter-count{opacity:.75;font-weight:500;margin-left:0}.wf-filter-chip.active .wf-filter-count{opacity:.85}.wf-table{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:.7rem;background:#fff;overflow:hidden}.wf-table-head,.wf-row{display:grid;grid-template-columns:minmax(120px,1.5fr) minmax(110px,1.5fr) minmax(90px,1.3fr) minmax(86px,100px) minmax(70px,90px);gap:.5rem;align-items:center;padding:.7rem .95rem;text-align:left}.wf-table-head{background:#f8fafc;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid #e2e8f0}.wf-row{position:relative;font:inherit;font-size:.86rem;color:#0f172a;background:#fff;border:none;border-bottom:1px solid #f1f5f9;padding-left:1.15rem;cursor:pointer;overflow:hidden;transition:background .12s,box-shadow .12s,transform .12s}.wf-row:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#94a3b8}.wf-row.state-running:before{background:#2563eb}.wf-row.state-paused:before{background:#0ea5e9}.wf-row.state-not-started:before{background:#22c55e}.wf-row.state-hold:before{background:#ef4444}.wf-row.state-complete:before{background:#94a3b8}.wf-row.state-skipped:before{background:#a78bfa}.wf-row:last-child{border-bottom:none}.wf-row:hover{background:#f8fafc}.wf-row.is-selected{background:#fff;box-shadow:inset 0 0 0 2px #2563eb61}.wf-row.is-selected:hover{background:#f8fbff}.wf-row.is-mine{box-shadow:inset 0 -2px #2563eb42}.wf-row.is-selected.is-mine{box-shadow:inset 0 0 0 2px #2563eb61,inset 0 -2px #2563eb42}.wf-cell{display:inline-flex;align-items:center;min-width:0}.wf-cell-id{gap:.5rem;font-weight:600}.wf-col-right{justify-content:flex-end;color:#64748b;font-size:.78rem}.wf-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#94a3b8}.wf-dot-running{background:#2563eb;box-shadow:0 0 0 3px #2563eb21}.wf-dot-paused{background:#0ea5e9;box-shadow:0 0 0 3px #0ea5e921}.wf-dot-not_started{background:#22c55e;box-shadow:0 0 0 3px #22c55e21}.wf-dot-hold{background:#ef4444;box-shadow:0 0 0 3px #ef444421}.wf-dot-complete{background:#94a3b8;box-shadow:0 0 0 3px #94a3b826}.wf-dot-skipped{background:#a78bfa;box-shadow:0 0 0 3px #a78bfa24}.wf-state-pill{display:inline-flex;align-items:center;gap:.34rem;height:22px;padding:0 .55rem;border-radius:999px;border:1px solid transparent;font-size:.7rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.wf-state-mark{position:relative;width:.68rem;height:.68rem;border-radius:999px;background:currentColor;flex:0 0 auto}.wf-state-running{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.wf-state-paused{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}.wf-state-not_started{background:#dcfce7;color:#166534;border-color:#bbf7d0}.wf-state-hold{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.wf-state-complete{background:#f8fafc;color:#475569;border-color:#e2e8f0}.wf-state-skipped{background:#ede9fe;color:#6d28d9;border-color:#ddd6fe}.wf-state-running .wf-state-mark:after{content:"";position:absolute;inset:-4px;border:1px solid rgba(37,99,235,.3);border-radius:999px;animation:wf-state-pulse 1.45s ease-out infinite}.wf-state-paused .wf-state-mark:before,.wf-state-paused .wf-state-mark:after{content:"";position:absolute;top:.18rem;bottom:.18rem;width:2px;border-radius:999px;background:#fff}.wf-state-paused .wf-state-mark:before{left:.24rem}.wf-state-paused .wf-state-mark:after{right:.24rem}.wf-state-complete .wf-state-mark{border-radius:.22rem;background:#64748b}.wf-state-complete .wf-state-mark:after{content:"";position:absolute;left:.18rem;top:.2rem;width:.34rem;height:.18rem;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}.wf-state-hold .wf-state-mark:before{content:"";position:absolute;left:50%;top:.16rem;width:2px;height:.32rem;border-radius:999px;background:#fff;transform:translate(-50%)}.wf-state-hold .wf-state-mark:after{content:"";position:absolute;left:50%;bottom:.14rem;width:2px;height:2px;border-radius:999px;background:#fff;transform:translate(-50%)}@keyframes wf-state-pulse{0%{opacity:.8;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}@media(prefers-reduced-motion:reduce){.wf-state-running .wf-state-mark:after{animation:none;opacity:0}}.wf-empty{padding:2.2rem 1rem;text-align:center;color:#64748b}.wf-empty-title{margin:0 0 .2rem;font-size:.9rem;font-weight:600;color:#334155}.wf-empty-sub{margin:0;font-size:.8rem}.wf-load-more{display:flex;justify-content:center;padding:.5rem 0}.wf-page-foot{font-size:.78rem;color:#64748b;padding:.25rem .1rem .5rem}.wf-cell-stage-hold{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin-top:.15rem;font-size:.72rem;font-weight:600;color:#b91c1c;text-overflow:ellipsis;letter-spacing:-.01em}.wf-hold-banner{margin:.6rem 1.1rem 0;padding:.7rem .85rem;background:linear-gradient(180deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;border-left:4px solid #dc2626;border-radius:8px;display:flex;gap:.7rem;align-items:flex-start;flex-shrink:0}.wf-hold-banner-icon{flex-shrink:0;color:#b91c1c;margin-top:.05rem}.wf-hold-banner-body{display:flex;flex-direction:column;gap:.18rem;min-width:0}.wf-hold-banner-title{font-size:.78rem;font-weight:800;color:#991b1b;letter-spacing:-.005em}.wf-hold-banner-reason{font-size:.85rem;color:#1f2937;font-weight:600;line-height:1.35}.wf-hold-banner-expected{font-size:.74rem;color:#7f1d1d;font-weight:600}.wf-hold-dialog-overlay{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.wf-hold-dialog{width:min(440px,100%);background:#fff;border-radius:12px;box-shadow:0 20px 50px #0f172a47;display:flex;flex-direction:column;gap:.85rem;padding:1.1rem 1.1rem 1rem}.wf-hold-dialog-head{display:flex;flex-direction:column;gap:.25rem}.wf-hold-dialog-title{margin:0;font-size:1rem;font-weight:800;color:#0f172a;letter-spacing:-.01em}.wf-hold-dialog-sub{margin:0;font-size:.82rem;color:#64748b;line-height:1.4}.wf-hold-dialog-field{display:flex;flex-direction:column;gap:.32rem}.wf-hold-dialog-label{font-size:.72rem;font-weight:700;color:#334155;letter-spacing:.04em;text-transform:uppercase}.wf-hold-dialog-required{color:#dc2626;margin-left:.15rem}.wf-hold-dialog-optional{color:#94a3b8;font-weight:600;text-transform:none;letter-spacing:0;margin-left:.25rem}.wf-hold-dialog-textarea,.wf-hold-dialog-input{font:inherit;font-size:.88rem;color:#0f172a;border:1px solid #cbd5e1;border-radius:8px;padding:.55rem .7rem;background:#fff;resize:vertical;outline:none;transition:border-color .12s,box-shadow .12s}.wf-hold-dialog-textarea:focus,.wf-hold-dialog-input:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c72e}.wf-hold-dialog-count{align-self:flex-end;font-size:.7rem;color:#94a3b8}.wf-hold-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.kanban-card-hold{margin-top:.4rem;padding:.4rem .55rem;background:#fee2e2;border-radius:6px;display:flex;flex-direction:column;gap:.1rem;border-left:3px solid #dc2626}.kanban-card-hold-label{font-size:.65rem;font-weight:700;color:#991b1b;letter-spacing:.05em;text-transform:uppercase}.kanban-card-hold-reason{font-size:.78rem;color:#1f2937;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wf-modal-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem 1rem;z-index:1000;overflow-y:auto}.work-session-sheet.wf-modal-sheet{background:#fff;border:none;border-radius:.85rem;width:min(620px,100%);height:auto;max-height:calc(100vh - 4rem);overflow:hidden;box-shadow:0 24px 60px #0f172a38;display:flex;flex-direction:column}.work-session-overlay.wf-modal-overlay{align-items:flex-start;padding:3rem 1rem 1rem}.wf-modal-head{display:flex;align-items:center;justify-content:space-between;padding:.95rem 1.1rem .6rem;background:#fff;flex-shrink:0}.wf-modal-eyebrow{margin:0;font-size:.95rem;font-weight:700;color:#0f172a;letter-spacing:-.01em}.wf-modal-close{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:#64748b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s}.wf-modal-close:hover{background:#f1f5f9;color:#0f172a}.wf-tabs{display:flex;align-self:flex-start;gap:.2rem;margin:0 1.1rem;padding:.2rem;border:1px solid #e2e8f0;border-radius:999px;border-bottom:1px solid #e2e8f0;background:#f8fafc;box-shadow:inset 0 1px #ffffffbf;flex-shrink:0;overflow:visible}.wf-tabs .work-session-tab{display:inline-flex;align-items:center;gap:.38rem;min-height:1.85rem;background:transparent;border:none;border-radius:999px;padding:0 .75rem;font:inherit;font-size:.74rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:#64748b;cursor:pointer;transition:background .14s ease,color .14s ease,box-shadow .14s ease}.wf-tabs .work-session-tab:hover{color:#0f172a;background:#ffffffbf}.wf-tabs .work-session-tab.active{color:#fff;background:#0f172a;box-shadow:0 4px 12px #0f172a29}.wf-tab-mark{width:.42rem;height:.42rem;border-radius:999px;background:#cbd5e1}.wf-tabs .work-session-tab.active .wf-tab-mark{background:#60a5fa}.wf-modal-body{padding:.85rem 1.1rem 1.1rem;display:flex;flex-direction:column;gap:.85rem;flex:1 1 auto;min-height:0;overflow-y:auto}.wf-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem .6rem;padding:.75rem;border:1px solid #e2e8f0;border-radius:.6rem;background:#f8fafc}@media(max-width:560px){.wf-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.wf-meta-cell{display:flex;flex-direction:column;gap:.18rem;min-width:0}.wf-meta-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.wf-meta-value-row{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;min-width:0}.wf-meta-value{font-size:.85rem;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-meta-value.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.wf-meta-icon-btn{width:22px;height:22px;border-radius:5px;border:1px solid #e2e8f0;background:#fff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s}.wf-meta-icon-btn:hover{background:#f1f5f9;color:#0f172a}.wf-team-chips{display:flex;flex-wrap:wrap;gap:.22rem;min-width:0}.wf-team-chip{max-width:100%;padding:.1rem .42rem;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1e3a8a;font-size:.68rem;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-stage-block{display:flex;flex-direction:column;gap:.35rem}.wf-field-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#475569}.wf-stage-select{height:2.4rem;padding:0 2rem 0 .75rem;border:1px solid #e2e8f0;border-radius:.5rem;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='none' stroke='%2364748b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/></svg>") no-repeat right .7rem center;font:inherit;font-size:.88rem;font-weight:600;color:#0f172a;-webkit-appearance:none;appearance:none;cursor:pointer}.wf-stage-picker{display:grid;gap:.38rem}.wf-stage-option{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-height:3.15rem;padding:.55rem .62rem .55rem .72rem;border:1px solid #e2e8f0;border-left-width:4px;border-radius:.6rem;background:#fff;color:#0f172a;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.wf-stage-option:hover{border-color:#bfdbfe;background:#f8fbff}.wf-stage-option.is-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb2e}.wf-stage-option-main{display:inline-flex;align-items:center;gap:.55rem;min-width:0}.wf-stage-step{width:1.35rem;height:1.35rem;border-radius:999px;display:inline-grid;place-items:center;flex:0 0 auto;background:#f1f5f9;color:#475569;font-size:.72rem;font-weight:850}.wf-stage-copy{display:grid;gap:.08rem;min-width:0}.wf-stage-name{font-size:.85rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-stage-team{font-size:.7rem;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-stage-status{display:inline-flex;align-items:center;gap:.32rem;min-height:1.45rem;padding:0 .5rem;border:1px solid transparent;border-radius:999px;font-size:.66rem;font-weight:800;white-space:nowrap}.wf-stage-status-mark{width:.52rem;height:.52rem;border-radius:999px;background:currentColor;flex:0 0 auto}.wf-stage-option-done{border-color:#bbf7d0;border-left-color:#16a34a;background:linear-gradient(90deg,#ecfdf5,#f7fee7);color:#14532d}.wf-stage-option-done.is-selected{border-color:#16a34a;box-shadow:0 0 0 2px #16a34a33}.wf-stage-option-done .wf-stage-name{color:#14532d;text-decoration-line:line-through;text-decoration-thickness:2px;text-decoration-color:#16a34a8c}.wf-stage-option-done .wf-stage-team{color:#166534}.wf-stage-option-done .wf-stage-step{background:#bbf7d0;color:#14532d}.wf-stage-option-skipped{border-left-color:#7c3aed}.wf-stage-option-skipped .wf-stage-name{color:#64748b;text-decoration-line:line-through;text-decoration-thickness:2px;text-decoration-color:#7c3aed80}.wf-stage-option-ready{border-left-color:#22c55e;background:linear-gradient(90deg,#f0fdf4,#fff 42%)}.wf-stage-option-ready .wf-stage-step{background:#dcfce7;color:#15803d}.wf-stage-option-mine,.wf-stage-option-running{border-left-color:#2563eb}.wf-stage-option-other{border-left-color:#f59e0b;background:#fffbeb}.wf-stage-option-paused{border-left-color:#0ea5e9}.wf-stage-option-hold{border-left-color:#ef4444}.wf-stage-option-not-done{border-left-color:#cbd5e1}.wf-stage-status-done{background:#dcfce7;color:#15803d;border-color:#86efac}.wf-stage-status-skipped{background:#ede9fe;color:#6d28d9;border-color:#ddd6fe}.wf-stage-status-ready{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.wf-stage-status-mine,.wf-stage-status-running{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.wf-stage-status-other{background:#fef3c7;color:#b45309;border-color:#fde68a}.wf-stage-status-paused{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}.wf-stage-status-hold{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.wf-stage-status-not-done{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.wf-stage-option-done .wf-stage-status-mark,.wf-stage-option-skipped .wf-stage-status-mark{border-radius:.22rem;position:relative}.wf-stage-option-done .wf-stage-status-mark:after,.wf-stage-option-skipped .wf-stage-status-mark:after{content:"";position:absolute;left:.13rem;top:.15rem;width:.28rem;height:.14rem;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}@media(max-width:560px){.wf-stage-option{grid-template-columns:1fr;align-items:stretch;gap:.42rem}.wf-stage-status{justify-self:start}}.wf-checklist-block{display:flex;flex-direction:column;gap:.55rem}.wf-checklist-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.wf-checklist-head-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.wf-checklist-title{margin:0;font-size:.84rem;font-weight:700;color:#0f172a}.wf-checklist-sub{font-weight:400;color:#64748b}.wf-checklist-desc{margin:0;font-size:.8rem;color:#475569;line-height:1.4}.wf-checklist-preview-note{margin:.15rem 0 0;font-size:.74rem;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:.4rem;padding:.3rem .45rem}.wf-checklist-details-link{font-size:.78rem;font-weight:600;color:#2563eb;text-decoration:none;white-space:nowrap}.wf-checklist-details-link:hover{text-decoration:underline}.wf-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.wf-checklist-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) minmax(7rem,auto) auto auto;align-items:center;gap:.55rem;padding:.55rem .7rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;font-size:.84rem;color:#0f172a}.wf-checklist-status{width:22px;height:22px;border:1.5px solid #cbd5e1;border-radius:.32rem;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.85rem;font-weight:900;background:#fff;flex-shrink:0}.wf-checklist-status.is-complete{border-color:#16a34a;background:#16a34a}.wf-checklist-status.is-tap-target{cursor:pointer;position:relative;transition:border-color .12s,background .12s,transform .08s,box-shadow .12s}.wf-checklist-status.is-tap-target:before{content:"";position:absolute;inset:-7px;border-radius:.5rem}.wf-checklist-status.is-tap-target:hover:not(.is-complete){border-color:#16a34a;background:#f0fdf4}.wf-checklist-status.is-tap-target.is-complete:hover{filter:brightness(1.05)}.wf-checklist-status.is-tap-target:active{transform:scale(.92)}.wf-checklist-status.is-tap-target.is-disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.wf-checkbox-native{position:absolute;opacity:0;pointer-events:none}.wf-checkbox-native:focus-visible+.wf-checklist-status{outline:2px solid #2563eb;outline-offset:2px;box-shadow:0 0 0 4px #2563eb2e}.wf-checklist-disabled .wf-checklist-item{background:#f8fafc}.wf-checklist-disabled .wf-checklist-item:not(.is-checked){opacity:.72}.wf-checklist-disabled .wf-checklist-label{color:#64748b}.wf-checklist-item.is-checked .wf-checklist-label{color:#94a3b8;text-decoration:line-through;text-decoration-color:#94a3b899}.wf-checklist-num{color:#94a3b8;font-size:.78rem;font-weight:600}.wf-checklist-label{color:#0f172a;min-width:0}.wf-checklist-input{min-height:1.9rem;width:min(13rem,100%);font-size:.8rem}.wf-checklist-input-number{width:7.5rem}.wf-checklist-photo-btn{min-height:1.9rem;padding:0 .65rem;border:1px solid #bfdbfe;border-radius:.45rem;background:#eff6ff;color:#1d4ed8;font-size:.76rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}.wf-checklist-photo-btn.is-disabled{cursor:not-allowed;opacity:.65}.wf-checklist-photo-btn.is-complete{border-color:#bbf7d0;background:#dcfce7;color:#166534}.wf-checklist-photo-btn.is-complete.is-disabled{opacity:1}.wf-step-pill{font-size:.66rem;font-weight:700;letter-spacing:.02em;padding:.18rem .55rem;border-radius:999px;text-transform:capitalize}.wf-step-pill.is-required{background:#fee2e2;color:#b91c1c}.wf-step-pill.is-optional{background:#f1f5f9;color:#475569}.metrics-page{gap:1rem}.metrics-section{background:#fff;border:1px solid #e2e8f0;border-radius:.7rem;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.55rem}.metrics-section-title{margin:0;font-size:.95rem;font-weight:700;color:#0f172a}.metrics-section-sub{margin:0;font-size:.78rem;color:#64748b}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.metrics-bars{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.metrics-bar-row{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr);gap:.65rem;align-items:center}.metrics-bar-label{display:flex;align-items:center;gap:.55rem;min-width:0}.metrics-bar-rank{width:22px;height:22px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.7rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.metrics-bar-name{display:flex;flex-direction:column;min-width:0}.metrics-bar-stage{font-size:.84rem;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metrics-bar-line{font-size:.7rem;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metrics-bar-track{position:relative;height:26px;background:#f8fafc;border-radius:6px;overflow:hidden;border:1px solid #e2e8f0}.metrics-bar-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:5px 0 0 5px}.metrics-bar-fill.is-over-estimate{background:linear-gradient(90deg,#f97316,#dc2626)}.metrics-bar-value{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:.4rem;font-size:.74rem;font-weight:700;color:#0f172a;background:#ffffffdb;padding:0 .35rem;border-radius:4px;white-space:nowrap;font-feature-settings:"tnum"}.metrics-variance{font-size:.66rem;font-weight:700;padding:.05rem .35rem;border-radius:999px}.metrics-variance.is-slow{background:#fee2e2;color:#b91c1c}.metrics-variance.is-fast{background:#dcfce7;color:#166534}.metrics-table{width:100%;border-collapse:collapse;font-size:.84rem;margin-top:.4rem}.metrics-table th{text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;font-weight:700;padding:.4rem .55rem;border-bottom:1px solid #e2e8f0}.metrics-table td{padding:.5rem .55rem;border-bottom:1px solid #f1f5f9;color:#0f172a}@media(max-width:640px){.metrics-bar-row{grid-template-columns:1fr}.metrics-bar-label{padding:.2rem 0}}.metrics-head{align-items:flex-start}.metrics-controls{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:.5rem}.metrics-alert,.metrics-empty{padding:.8rem .9rem;border-radius:8px;font-size:.86rem}.metrics-alert{border:1px solid #fecaca;background:#fef2f2;color:#991b1b;font-weight:700}.metrics-empty{border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b}.metrics-hero-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.metrics-tile{display:grid;min-width:0;gap:.2rem;padding:.9rem 1rem;border:1px solid #dbe3ef;border-left:4px solid #64748b;border-radius:8px;background:#fff;box-shadow:0 6px 18px #0f172a0b}.metrics-tile-primary{border-left-color:#2563eb}.metrics-tile.is-alert{border-left-color:#dc2626;background:#fff8f8}.metrics-tile.is-warning{border-left-color:#f59e0b;background:#fffbeb}.metrics-tile-label{color:#64748b;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.metrics-tile strong{color:#0f172a;font-size:2rem;line-height:1;font-feature-settings:"tnum"}.metrics-tile span:last-child{color:#52627a;font-size:.78rem}.metrics-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(20rem,.8fr);align-items:start;gap:1rem}.metrics-panel{display:grid;min-width:0;gap:.75rem;padding:1rem;border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 6px 18px #0f172a0a}.metrics-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.metrics-section-head h2{margin:0;color:#0f172a;font-size:1rem;line-height:1.2}.metrics-section-head p{margin:.2rem 0 0;color:#64748b;font-size:.8rem}.metrics-section-head>span{flex:0 0 auto;color:#64748b;font-size:.76rem;font-weight:700}.metrics-stage-stack,.metrics-line-list,.metrics-bars{display:grid;gap:.55rem;list-style:none;margin:0;padding:0}.metrics-stage-row{display:grid;min-width:0;gap:.45rem;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.metrics-stage-title,.metrics-line-row{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:.8rem}.metrics-stage-title strong,.metrics-line-row strong{display:block;min-width:0;color:#0f172a;font-size:.9rem;overflow-wrap:anywhere}.metrics-stage-title span,.metrics-line-row span{color:#64748b;font-size:.76rem}.metrics-stage-total{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:1.55rem;padding:0 .55rem;border-radius:999px;background:#f1f5f9;color:#0f172a!important;font-weight:800;font-feature-settings:"tnum"}.metrics-load-bar{display:flex;width:100%;height:.62rem;overflow:hidden;border-radius:999px;background:#e2e8f0}.metrics-load-bar span{min-width:0;height:100%}.metrics-load-bar .is-ready{background:#22c55e}.metrics-load-bar .is-running{background:#2563eb}.metrics-load-bar .is-paused{background:#0ea5e9}.metrics-load-bar .is-hold{background:#dc2626}.metrics-load-bar .is-done{background:#94a3b8}.metrics-stage-counts,.metrics-line-stats{display:flex;flex-wrap:wrap;gap:.35rem}.metrics-stage-counts span,.metrics-line-stats span{padding:.16rem .45rem;border:1px solid #e2e8f0;border-radius:999px;color:#52627a;font-size:.72rem;font-weight:700;white-space:nowrap}.metrics-stage-counts .is-alert,.metrics-line-stats .is-alert{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.metrics-line-row{align-items:flex-start;padding:.65rem 0;border-top:1px solid #e2e8f0}.metrics-line-row:first-child{border-top:0;padding-top:0}.metrics-line-row:last-child{padding-bottom:0}.metrics-line-stats{flex:0 0 auto;justify-content:flex-end}.metrics-bar-row{display:grid;grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);align-items:center;gap:.7rem}.metrics-bar-label{display:flex;align-items:center;min-width:0;gap:.55rem}.metrics-bar-rank{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.45rem;height:1.45rem;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.7rem;font-weight:800}.metrics-bar-name{display:grid;min-width:0;gap:.05rem}.metrics-bar-stage{color:#0f172a;font-size:.84rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metrics-bar-line{color:#64748b;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metrics-bar-track{position:relative;min-height:1.8rem;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.metrics-bar-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#60a5fa,#2563eb)}.metrics-bar-fill.is-over-estimate{background:linear-gradient(90deg,#fb923c,#dc2626)}.metrics-bar-value{position:absolute;inset:0 .5rem 0 auto;display:inline-flex;align-items:center;gap:.35rem;color:#0f172a;font-size:.74rem;font-weight:800;white-space:nowrap;font-feature-settings:"tnum"}.metrics-variance{padding:.05rem .35rem;border-radius:999px;font-size:.66rem;font-weight:800}.metrics-table{width:100%;border-collapse:collapse;font-size:.84rem;margin-top:0}.metrics-table th{padding:.45rem .55rem;border-bottom:1px solid #e2e8f0;color:#94a3b8;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-align:left;text-transform:uppercase}.metrics-table td{padding:.55rem;border-bottom:1px solid #f1f5f9;color:#0f172a;vertical-align:top}.metrics-table tr:last-child td{border-bottom:none}.metrics-table .wf-col-right{text-align:right}.metrics-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}@media(max-width:980px){.metrics-hero-grid,.metrics-main-grid{grid-template-columns:1fr}}@media(max-width:640px){.metrics-head,.metrics-controls,.metrics-stage-title,.metrics-line-row{flex-direction:column;align-items:stretch}.metrics-controls .btn,.metrics-controls .wf-sort-select{width:100%}.metrics-bar-row{grid-template-columns:1fr}.metrics-bar-value{position:relative;inset:auto;padding:.42rem .5rem}.metrics-line-stats{justify-content:flex-start}}.wf-checklist-reset{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:999px;background:transparent;color:#94a3b8;cursor:pointer;transition:background .12s,color .12s,border-color .12s,transform .08s;flex-shrink:0}.wf-checklist-reset:hover{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.wf-checklist-reset:active{transform:scale(.94)}.wf-checklist-reset:focus-visible{outline:2px solid #b91c1c;outline-offset:2px}.wf-checklist-reset-spacer{display:inline-block;width:26px;height:26px}@media(max-width:720px){.wf-checklist-item{grid-template-columns:auto auto minmax(0,1fr) auto auto}.wf-checklist-input,.wf-checklist-photo-btn{grid-column:3 / -1;width:100%}.wf-checklist-status{width:26px;height:26px;border-radius:.4rem}}.wf-checklist-empty{margin:0;padding:.7rem;text-align:center;color:#94a3b8;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:.5rem;font-size:.8rem}.wf-notes-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#475569;margin-top:.25rem}.wf-notes-shell{position:relative}.wf-notes-input{width:100%;resize:vertical;min-height:56px;padding:.55rem .65rem 1.4rem;border:1px solid #e2e8f0;border-radius:.55rem;font:inherit;font-size:.85rem;color:#0f172a;background:#fff;outline:none;transition:border-color .12s,box-shadow .12s}.wf-notes-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.wf-notes-counter{position:absolute;bottom:.35rem;right:.6rem;font-size:.7rem;color:#94a3b8}.wf-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding-top:.65rem;border-top:1px solid #f1f5f9;flex-wrap:wrap}.wf-modal-foot-actions{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.wf-modal-foot-actions .actions{display:contents}.wf-modal-foot-actions .work-action-btn{min-height:2.25rem;padding:0 .95rem;font-size:.85rem;font-weight:600;border-radius:.55rem}.wf-modal-foot-actions .work-action-start{background:#2563eb;color:#fff}.wf-modal-foot-actions .work-action-start:hover{background:#1d4ed8}.wf-modal-foot-actions .work-action-pause{background:#fff;color:#0f172a;border:1px solid #e2e8f0}.wf-modal-foot-actions .work-action-pause:hover{background:#f8fafc}.wf-modal-foot-actions .work-action-complete{background:#16a34a;color:#fff}.wf-modal-foot-actions .work-action-complete:hover{background:#15803d}.wf-modal-foot-actions .work-action-hold{background:#ef4444;color:#fff}.wf-modal-foot-actions .work-action-hold:hover{background:#dc2626}.wf-modal-foot-actions .work-action-release{background:#2563eb;color:#fff}.wf-modal-exit-btn{min-height:2rem;padding:0 .75rem;border:1px solid #d1d5db;border-radius:.5rem;background:#f3f4f6;color:#475569;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.wf-modal-exit-btn:hover{background:#e5e7eb;border-color:#cbd5e1;color:#0f172a}.wf-collapsible{border-top:1px solid #f1f5f9;padding-top:.5rem}.wf-collapsible summary{cursor:pointer;font-size:.82rem;font-weight:600;color:#475569;padding:.35rem 0;list-style:none}.wf-collapsible summary::-webkit-details-marker{display:none}.wf-collapsible summary:before{content:"▸";display:inline-block;margin-right:.4rem;color:#94a3b8;transition:transform .12s}.wf-collapsible[open] summary:before{transform:rotate(90deg)}.wf-collapsible-body{padding:.35rem 0 .25rem}@media(max-width:720px){.operations-page{background:radial-gradient(circle at top left,rgba(37,99,235,.1),transparent 14rem),linear-gradient(180deg,#f8fbff,#fff 42%)}.wf-page{gap:.55rem;padding:.5rem .45rem 1rem}.wf-page-head{align-items:center;padding:.65rem .75rem;border:1px solid rgba(15,23,42,.08);border-radius:.85rem;background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;box-shadow:0 10px 24px #0f172a24}.wf-page-title{color:#fff;font-size:1.12rem}.wf-page-sub{color:#dbeafedb;font-size:.72rem}.wf-page-head .btn{min-height:1.85rem;padding:0 .65rem;border-color:#ffffff38;background:#ffffff1f;color:#fff}.wf-toolbar{display:grid;grid-template-columns:1fr;gap:.5rem}.wf-search-shell{min-width:0;width:100%}.wf-search-input,.wf-project-select,.wf-sort-select{height:2.25rem;border-radius:.7rem;background-color:#fff;box-shadow:0 8px 20px #0f172a0f}.wf-filter-row{flex-wrap:nowrap;overflow-x:auto;padding:.1rem 0 .35rem;margin:0 -.45rem;scroll-padding-inline:.45rem;scrollbar-width:none}.wf-filter-row::-webkit-scrollbar{display:none}.wf-filter-chip:first-child{margin-left:.45rem}.wf-filter-chip{flex:0 0 auto;min-height:1.9rem;padding:0 .68rem;border-radius:999px;background:#ffffffe0;box-shadow:0 6px 16px #0f172a0d}.wf-toolbar-spacer{display:none}.wf-sort-select{flex:0 0 auto;min-width:7.6rem;margin-right:.45rem}.wf-table{gap:.45rem;border:none;border-radius:0;background:transparent;overflow:visible}.wf-table-head{display:none}.wf-row{position:relative;grid-template-columns:1fr auto;grid-template-areas:"id status" "project updated" "stage stage";gap:.12rem .6rem;min-height:4.05rem;padding:.56rem .75rem .5rem;border:1px solid rgba(148,163,184,.26);border-radius:.78rem;background:#ffffffeb;box-shadow:0 6px 18px #0f172a12;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.wf-row:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#94a3b8}.wf-row:after{content:">";position:absolute;right:.65rem;bottom:.42rem;color:#cbd5e1;font-weight:800;font-size:.85rem}.wf-row.state-running:before{background:#2563eb}.wf-row.state-paused:before{background:#0ea5e9}.wf-row.state-not-started:before{background:#22c55e}.wf-row.state-hold:before{background:#ef4444}.wf-row.state-complete:before{background:#94a3b8}.wf-row.state-skipped:before{background:#a78bfa}.wf-row:hover{background:#fff;transform:translateY(-1px)}.wf-row.is-selected{border-color:#2563eb47;background:#fffffffa;box-shadow:0 10px 24px #2563eb1a,inset 0 0 0 2px #2563eb42}.wf-row.is-mine{box-shadow:0 6px 18px #0f172a12}.wf-row.is-mine:before{width:5px}.wf-cell{min-width:0}.wf-cell-id{grid-area:id;gap:.45rem;font-size:.84rem;font-weight:800;letter-spacing:-.01em;color:#0f172a}.wf-status-dot{width:9px;height:9px}.wf-cell-project,.wf-cell-stage{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-cell-project{grid-area:project;color:#334155;font-size:.76rem;font-weight:650}.wf-cell-stage{grid-area:stage;color:#64748b;font-size:.68rem;max-width:calc(100% - 1.4rem)}.wf-cell-stage:before{content:"STAGE ";color:#94a3b8;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.6rem}.wf-cell-status{grid-area:status;justify-self:end;align-self:start}.wf-cell-updated{grid-area:updated;justify-self:end;align-self:center;padding-right:0;color:#64748b;font-size:.68rem}.wf-state-pill{height:1.35rem;padding:0 .5rem;font-size:.62rem;box-shadow:inset 0 0 0 1px #fff9}.wf-page-foot{padding:.15rem .2rem .5rem;color:#64748b;font-size:.76rem}.wf-empty{border:1px dashed #cbd5e1;border-radius:1rem;background:#ffffffd9}}@media(max-width:390px){.wf-page{padding:.4rem .35rem .9rem}.wf-page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;padding:.55rem .62rem;border-radius:.72rem}.wf-page-head-text{min-width:0;gap:0}.wf-page-title{font-size:1rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-page-sub{display:none}.wf-page-head .wf-refresh-btn{width:2rem;min-width:2rem;min-height:2rem;padding:0;justify-content:center}.wf-page-head .wf-refresh-btn svg{margin-right:0!important}.wf-refresh-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}.wf-kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:.4rem 0 .6rem}@media(max-width:900px){.wf-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.wf-kpi-strip{grid-template-columns:1fr 1fr}}.wf-kpi-tile{background:#fff;border:1px solid #e2e8f0;border-radius:.7rem;padding:.7rem .85rem;display:flex;flex-direction:column;gap:.2rem;transition:border-color .12s,box-shadow .12s}.wf-kpi-tile:hover{border-color:#cbd5e1;box-shadow:0 4px 10px #0f172a0d}.wf-kpi-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.wf-kpi-value{font-size:1.6rem;font-weight:700;color:#0f172a;line-height:1.05;font-feature-settings:"tnum"}.wf-kpi-running{box-shadow:inset 3px 0 #2563eb}.wf-kpi-ready{box-shadow:inset 3px 0 #16a34a}.wf-kpi-hold{box-shadow:inset 3px 0 #dc2626}.wf-kpi-mine{box-shadow:inset 3px 0 #0f172a}.factory-watch-item-id-row{display:inline-flex;align-items:center;gap:.5rem}.factory-watch-item-sub{margin:.18rem 0 0;font-size:.76rem;color:#64748b}.qa-card-id-row{display:inline-flex;align-items:center;gap:.4rem}.wf-row-action{display:none}.projects-more-actions{position:relative}.projects-more-actions>summary{list-style:none;cursor:pointer}.projects-more-actions>summary::-webkit-details-marker{display:none}.projects-more-menu{position:absolute;right:0;top:calc(100% + .35rem);z-index:5;display:grid;gap:.35rem;min-width:12rem;padding:.45rem;border:1px solid #dbe4ef;border-radius:.65rem;background:#fff;box-shadow:0 12px 28px #0f172a1f}.projects-more-menu .btn{justify-content:flex-start;width:100%}.setup-overview-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.setup-overview-card{display:grid;gap:.16rem;padding:.7rem .8rem;border:1px solid #e2e8f0;border-radius:.7rem;background:linear-gradient(180deg,#fff,#f8fafc)}.setup-overview-card strong{font-size:1.45rem;line-height:1;color:#0f172a}.setup-overview-card span:last-child{color:#64748b;font-size:.78rem}.setup-overview-label{font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.setup-projects-layout{display:grid;grid-template-columns:minmax(20rem,.82fr) minmax(24rem,1.18fr);gap:.85rem;align-items:start}.setup-projects-editor,.setup-project-guide{display:grid;gap:.65rem}.setup-project-guide{align-content:start}.setup-project-list-card .list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:.55rem}.setup-project-meta{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;max-width:100%;margin-top:.35rem;padding:.18rem .5rem;border:1px solid #e2e8f0;border-radius:999px;color:#475569;font-size:.78rem}.setup-project-meta-label{font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}.create-hero{background:#fff;border-color:#e2e8f0;box-shadow:0 6px 18px #0f172a0a}.create-recent-empty{display:grid;gap:.35rem;border-style:dashed;background:#f8fafc}.create-id-preview{display:flex;gap:.35rem;flex-wrap:wrap;padding:.4rem 0 0}.qa-layout{grid-template-columns:minmax(22rem,28rem) minmax(0,1fr)}.qa-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.qa-detail-actions{display:grid;gap:.65rem}.qa-detail-actions-main,.qa-danger-zone{display:flex;gap:.5rem;flex-wrap:wrap}.qa-danger-zone{padding-top:.65rem;border-top:1px dashed #fecaca}.qa-checklist-label{display:grid;gap:.16rem}.qa-checklist-guidance{color:#64748b;font-size:.76rem;font-weight:500;line-height:1.35}@media(max-width:900px){.setup-projects-layout,.qa-layout{grid-template-columns:1fr}.setup-overview-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.factory-shell-has-scope .topbar{padding:.34rem .6rem .42rem;gap:.3rem}.factory-shell-has-scope .factory-topbar-select{min-height:1.8rem;font-size:.8rem}.projects-page{display:grid;grid-template-rows:auto auto}.projects-header-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;width:100%;gap:.45rem}.projects-factory-select,.projects-more-actions{grid-column:1 / -1}.projects-header-actions .btn,.projects-more-actions>summary{width:100%;justify-content:center}.projects-more-menu{position:static;margin-top:.35rem;min-width:0;box-shadow:none}.kanban-board{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;overflow:visible;padding-bottom:0}.kanban-column-body{max-height:none}.kanban-card-openhint{font-size:.7rem;line-height:1.25}.wf-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id status" "project updated" "stage action";padding-right:.75rem}.wf-row:after{content:none}.wf-row-action{grid-area:action;justify-self:end;align-self:center;display:inline-flex;align-items:center;min-height:1.5rem;padding:0 .52rem;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.66rem;font-weight:800;white-space:nowrap}.wf-cell-status,.wf-cell-updated{max-width:9rem}.wf-cell-stage{max-width:100%}.work-session-overlay.wf-modal-overlay{padding:0}.work-session-sheet.wf-modal-sheet{width:100%;max-width:none;min-height:100dvh;max-height:100dvh;border-radius:0}.wf-modal-head{position:sticky;top:0;z-index:2;padding:.75rem .85rem .5rem}.wf-tabs{position:sticky;top:2.95rem;z-index:2;margin-inline:.85rem}.wf-modal-body{padding:.75rem .85rem calc(1rem + env(safe-area-inset-bottom,0px))}.wf-checklist-item{grid-template-columns:auto auto minmax(0,1fr) auto auto}.wf-step-pill{justify-self:end}.wf-checklist-input,.wf-checklist-photo-btn{grid-column:3 / -1;width:100%}.wf-modal-foot{align-items:stretch;gap:.55rem}.wf-modal-foot>.btn,.wf-modal-foot-actions,.wf-modal-foot-actions .actions,.wf-modal-foot-actions .work-action-btn,.wf-modal-exit-btn{width:100%}.wf-modal-foot-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.wf-modal-foot-actions .actions{display:contents}.wf-modal-foot-actions .work-action-complete,.wf-modal-foot-actions .work-action-start,.wf-modal-foot-actions .work-action-release,.wf-modal-exit-btn{grid-column:1 / -1}.qa-detail-actions-main,.qa-danger-zone{display:grid;grid-template-columns:1fr}.qa-detail-actions-main .btn,.qa-danger-zone .btn{width:100%}}@media(max-width:520px){.setup-overview-strip{grid-template-columns:1fr 1fr;gap:.5rem}.setup-overview-card{padding:.58rem .65rem}.setup-overview-card strong{font-size:1.2rem}.qa-card-meta{grid-template-columns:1fr}}.kanban-column-eyebrow{margin:0 0 .18rem;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.kanban-card-project-empty{color:#94a3b8;font-style:italic}.metrics-v2{gap:1rem}.metrics-v2 .metrics-head{align-items:flex-start}.metrics-window-control{display:grid;gap:.25rem}.metrics-window-control>span{color:#64748b;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.metrics-command-center{display:grid;grid-template-columns:minmax(17rem,.9fr) minmax(24rem,1.35fr) minmax(17rem,.85fr);gap:.9rem;align-items:stretch}.metrics-floor-card,.metrics-focus-card,.metrics-window-card,.metrics-signal-card,.metrics-board-panel,.metrics-history-panel{min-width:0;border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 8px 22px #0f172a0b}.metrics-floor-card{display:grid;align-content:space-between;gap:.85rem;padding:1rem;border-left:5px solid #64748b}.metrics-floor-card.is-blocked{border-left-color:#dc2626;background:#fff8f8}.metrics-floor-card.is-paused{border-left-color:#f97316;background:#fffaf5}.metrics-floor-card.is-running{border-left-color:#2563eb;background:#f8fbff}.metrics-floor-card.is-ready{border-left-color:#22c55e;background:#f8fffb}.metrics-floor-card.is-clear{border-left-color:#94a3b8}.metrics-card-kicker{color:#64748b;font-size:.68rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.metrics-floor-card h2,.metrics-focus-card h2,.metrics-window-card h2,.metrics-board-panel h2,.metrics-history-panel h2{margin:0;color:#0f172a;font-size:1rem;line-height:1.2}.metrics-floor-card h2{font-size:1.55rem}.metrics-floor-card p,.metrics-window-card p{margin:0;color:#52627a;font-size:.84rem;line-height:1.4}.metrics-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.metrics-pill{display:grid;gap:.08rem;padding:.55rem .6rem;border:1px solid #e2e8f0;border-radius:8px;background:#ffffffb8}.metrics-pill strong{color:#0f172a;font-size:1.1rem;line-height:1;font-feature-settings:"tnum"}.metrics-pill span{color:#64748b;font-size:.68rem;font-weight:800;text-transform:uppercase}.metrics-focus-card,.metrics-window-card,.metrics-board-panel,.metrics-history-panel{display:grid;gap:.75rem;padding:1rem}.metrics-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.metrics-card-head>span{flex:0 0 auto;color:#64748b;font-size:.76rem;font-weight:800}.metrics-attention-list{display:grid;gap:.45rem}.metrics-attention-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem .8rem;padding:.62rem .68rem;border:1px solid #e2e8f0;border-left:4px solid #cbd5e1;border-radius:8px;color:inherit;text-decoration:none;background:#fff}.metrics-attention-row:hover{border-color:#bfdbfe;box-shadow:0 8px 18px #2563eb17}.metrics-attention-row.is-hold{border-left-color:#dc2626}.metrics-attention-row.is-paused{border-left-color:#f97316}.metrics-attention-row.is-running{border-left-color:#2563eb}.metrics-attention-row.is-not_started{border-left-color:#22c55e}.metrics-attention-main{display:grid;min-width:0;gap:.08rem}.metrics-attention-main strong{color:#0f172a;font-size:.88rem}.metrics-attention-main span{overflow:hidden;color:#64748b;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.metrics-attention-meta{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;color:#64748b;font-size:.72rem;font-weight:800;white-space:nowrap}.metrics-attention-progress{grid-column:1 / -1;height:.28rem;overflow:hidden;border-radius:999px;background:#e2e8f0}.metrics-attention-progress span{display:block;height:100%;border-radius:inherit;background:#2563eb}.metrics-window-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.metrics-window-grid>div{display:grid;gap:.08rem;padding:.65rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.metrics-window-grid strong{color:#0f172a;font-size:1.35rem;line-height:1;font-feature-settings:"tnum"}.metrics-window-grid span{color:#64748b;font-size:.7rem;font-weight:800;text-transform:uppercase}.metrics-signal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.metrics-signal-card{display:grid;gap:.25rem;padding:.85rem .95rem}.metrics-signal-card>span{color:#64748b;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.metrics-signal-card strong{overflow:hidden;color:#0f172a;font-size:1.2rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.metrics-signal-card p{margin:0;color:#52627a;font-size:.78rem}.metrics-board-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(20rem,.85fr);gap:1rem;align-items:start}.metrics-stage-lanes,.metrics-line-stack,.metrics-history-bars{display:grid;gap:.55rem}.metrics-stage-lane,.metrics-line-card{display:grid;gap:.5rem;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.metrics-stage-lane.is-blocked{border-color:#fecaca;background:snow}.metrics-stage-lane-head,.metrics-line-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.metrics-stage-lane-head strong,.metrics-line-head strong{display:block;min-width:0;color:#0f172a;font-size:.92rem;overflow-wrap:anywhere}.metrics-stage-lane-head span,.metrics-line-head span{color:#64748b;font-size:.74rem}.metrics-open-count{display:grid;min-width:3rem;justify-items:center;padding:.2rem .45rem;border-radius:8px;background:#f1f5f9}.metrics-open-count strong{font-size:1rem;font-feature-settings:"tnum"}.metrics-open-count span{color:#64748b;font-size:.62rem;font-weight:800;text-transform:uppercase}.metrics-mix-bar{display:flex;width:100%;height:.7rem;overflow:hidden;border-radius:999px;background:#e2e8f0}.metrics-mix-bar span{min-width:0;height:100%}.metrics-mix-bar .is-ready{background:#22c55e}.metrics-mix-bar .is-running{background:#2563eb}.metrics-mix-bar .is-paused{background:#f97316}.metrics-mix-bar .is-hold{background:#dc2626}.metrics-tag-row,.metrics-line-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.metrics-tag-row>span:not(.wf-tag),.metrics-line-meta span{color:#64748b;font-size:.72rem;font-weight:800}.metrics-line-meta .is-alert{color:#b91c1c}.metrics-history-empty{display:grid;gap:.25rem;padding:.85rem;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;color:#64748b;font-size:.86rem}.metrics-history-empty strong{color:#0f172a}.metrics-history-bar{display:grid;grid-template-columns:minmax(13rem,16rem) minmax(0,1fr);gap:.7rem;align-items:center}.metrics-history-label{display:flex;align-items:center;min-width:0;gap:.55rem}.metrics-history-label>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.45rem;height:1.45rem;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.7rem;font-weight:900}.metrics-history-label div{display:grid;min-width:0}.metrics-history-label strong{overflow:hidden;color:#0f172a;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.metrics-history-label small{overflow:hidden;color:#64748b;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.metrics-history-track{position:relative;min-height:1.9rem;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.metrics-history-track>span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#60a5fa,#2563eb)}.metrics-history-track>span.is-over{background:linear-gradient(90deg,#fb923c,#dc2626)}.metrics-history-track b{position:absolute;inset:0 .55rem 0 auto;display:inline-flex;align-items:center;gap:.35rem;color:#0f172a;font-size:.74rem;font-weight:900;white-space:nowrap}.metrics-history-track em{padding:.05rem .35rem;border-radius:999px;font-size:.66rem;font-style:normal}.metrics-history-track em.is-slow{background:#fee2e2;color:#b91c1c}.metrics-history-track em.is-fast{background:#dcfce7;color:#166534}.metrics-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);gap:1rem;align-items:start}.metrics-v2 .metrics-empty{padding:.78rem .85rem;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;color:#64748b;font-size:.84rem}.metrics-v2 .metrics-empty.is-compact{padding:.62rem .7rem}@media(max-width:1180px){.metrics-command-center,.metrics-board-grid,.metrics-detail-grid{grid-template-columns:1fr}.metrics-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.metrics-v2 .metrics-head,.metrics-v2 .metrics-controls,.metrics-card-head,.metrics-stage-lane-head,.metrics-line-head{flex-direction:column;align-items:stretch}.metrics-command-center,.metrics-signal-grid,.metrics-window-grid,.metrics-attention-row{grid-template-columns:1fr}.metrics-v2 .metrics-controls .btn,.metrics-window-control,.metrics-window-control .wf-sort-select{width:100%}.metrics-attention-meta{justify-content:flex-start}.metrics-history-bar{grid-template-columns:1fr}.metrics-history-track b{position:relative;inset:auto;padding:.5rem .55rem}}.metrics-time-page{max-width:1400px;gap:.85rem}.metrics-time-page .metrics-head{align-items:flex-start}.metrics-time-page .wf-page-sub{max-width:58rem}.metrics-time-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.metrics-time-kpi{display:grid;min-width:0;gap:.24rem;padding:.75rem .85rem;border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a08}.metrics-time-kpi.is-late{border-color:#fecaca;background:snow;box-shadow:inset 4px 0 #dc2626}.metrics-time-kpi span,.metrics-time-panel-head>div>span{color:#64748b;font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.metrics-time-kpi strong{overflow:hidden;color:#020617;font-size:1.55rem;font-weight:900;line-height:1.05;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.metrics-time-kpi p{min-height:2.1em;margin:0;color:#52627a;font-size:.76rem;line-height:1.35;overflow-wrap:anywhere}.metrics-time-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(24rem,.72fr);gap:.85rem;align-items:start}.metrics-time-panel{display:grid;min-width:0;gap:.7rem;padding:.9rem 1rem;border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 8px 24px #0f172a0a}.metrics-time-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.metrics-time-panel-head h2{margin:.12rem 0 0;color:#020617;font-size:1.02rem;font-weight:900;letter-spacing:0}.metrics-time-panel-head small{color:#52627a;font-size:.75rem;font-weight:800;white-space:nowrap}.metrics-live-table-wrap{border:1px solid #e2e8f0;border-radius:8px}.metrics-live-table{min-width:68rem}.metrics-live-table tbody tr{transition:background .12s ease,box-shadow .12s ease}.metrics-live-table tbody tr:hover{background:#f8fbff}.metrics-live-table tbody tr.is-late-row{background:snow}.metrics-live-table tbody tr.is-late-row td:first-child{box-shadow:inset 4px 0 #dc2626}.metrics-live-table-link{display:inline-block;max-width:15rem;overflow:hidden;color:#0f172a;font-size:.86rem;font-weight:900;line-height:1.2;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.metrics-live-table-link:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:.16rem}.metrics-live-table .wf-col-right{text-align:right}.metrics-live-variance-cell{color:#475569;font-weight:900;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.metrics-live-variance-cell.is-late{color:#b91c1c}.metrics-live-variance-cell.is-early{color:#166534}.metrics-live-variance-cell.is-on-time{color:#1d4ed8}.metrics-live-table-track{width:7rem;height:.42rem;overflow:hidden;border-radius:999px;background:#e2e8f0}.metrics-live-table-track span{display:block;height:100%;max-width:100%;border-radius:inherit;background:#2563eb}.metrics-live-table-track span.is-late{background:#dc2626}.metrics-table-wrap{width:100%;overflow-x:auto}.metrics-time-table{min-width:44rem;border-collapse:separate;border-spacing:0}.metrics-time-table th{background:#f8fafc;color:#64748b;font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.metrics-time-table td{vertical-align:middle;font-size:.82rem}.metrics-time-table td strong{display:block;color:#020617;font-size:.84rem;font-weight:900}.metrics-time-table td span{display:block;margin-top:.12rem;color:#64748b;font-size:.72rem}.metrics-time-table .mono,.metrics-time-table td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-variant-numeric:tabular-nums}.metrics-time-table .is-late-cell{color:#b91c1c;font-weight:900}.metrics-timeline{display:grid;gap:.42rem}.metrics-timeline-row{display:grid;grid-template-columns:3.1rem minmax(0,1fr) 2.3rem;gap:.55rem;align-items:center}.metrics-timeline-row>span,.metrics-timeline-row>strong{color:#475569;font-size:.72rem;font-weight:900;font-variant-numeric:tabular-nums}.metrics-timeline-row>strong{color:#020617;text-align:right}.metrics-timeline-track{display:flex;align-items:stretch;height:.86rem;overflow:hidden;border-radius:999px;background:#eef2f7}.metrics-timeline-track b{display:block;min-width:0}.metrics-timeline-track .is-start{background:#60a5fa}.metrics-timeline-track .is-complete{background:#22c55e}.metrics-timeline-track .is-hold{background:#f97316}.metrics-timeline-track .is-reject{background:#dc2626}.metrics-duration-bars{display:grid;gap:.58rem}.metrics-duration-row{display:grid;grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);gap:.75rem;align-items:center}.metrics-duration-row>div:first-child{display:grid;min-width:0;gap:.1rem}.metrics-duration-row strong{overflow:hidden;color:#020617;font-size:.84rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.metrics-duration-row span{overflow:hidden;color:#64748b;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.metrics-duration-track{position:relative;min-height:1.95rem;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.metrics-duration-track>span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#93c5fd,#2563eb)}.metrics-duration-track b{position:absolute;inset:0 .55rem 0 auto;display:inline-flex;align-items:center;gap:.35rem;color:#020617;font-size:.74rem;font-weight:900;white-space:nowrap;font-variant-numeric:tabular-nums}.metrics-duration-track em{padding:.05rem .35rem;border-radius:999px;font-size:.66rem;font-style:normal}.metrics-duration-track em.is-late{background:#fee2e2;color:#b91c1c}.metrics-duration-track em.is-early{background:#dcfce7;color:#166534}@media(max-width:1180px){.metrics-time-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-time-grid{grid-template-columns:1fr}}@media(max-width:720px){.metrics-time-page .metrics-head,.metrics-time-page .metrics-controls,.metrics-time-panel-head{flex-direction:column;align-items:stretch}.metrics-time-kpis{grid-template-columns:1fr}.metrics-time-page .metrics-controls .btn,.metrics-time-page .metrics-window-control,.metrics-time-page .metrics-window-control .wf-sort-select{width:100%}.metrics-time-panel{padding:.78rem}.metrics-live-table{min-width:58rem}.metrics-live-table-link{max-width:11rem}.metrics-live-table-track{width:5.5rem}.metrics-duration-row,.metrics-timeline-row{grid-template-columns:1fr}.metrics-timeline-row>strong{text-align:left}.metrics-duration-track b{position:relative;inset:auto;padding:.55rem}}
