: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:1.25rem}.workspace-launchbar{border:1px solid #e7e5e4;border-radius:12px;background:#fff;padding:.75rem .85rem;box-shadow:0 2px 8px #1118270a}.workspace-launchbar-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.workspace-kicker{display:none}.workspace-title{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:#111827}.workspace-subtitle{display:none}.workspace-meta{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border:1px solid #e7e5e4;border-radius:999px;background:#fafaf9;white-space:nowrap;font-size:.7rem}.workspace-meta-label{font-size:.62rem;font-weight:600;color:#78716c;text-transform:uppercase;letter-spacing:.05em}.workspace-launchbar-tools{display:grid;gap:.5rem}.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:2.1rem;padding:.4rem .65rem;font-size:.85rem;border:1px solid #d6d3d1;border-radius:8px;background:#fff;color:#111827;outline:none;transition:border-color .14s,box-shadow .14s}.workspace-search-input::placeholder{color:#a8a29e}.workspace-search-input:focus{border-color:#9ca3af;box-shadow:0 0 0 3px #1118270d}.workspace-recent-bar{display:flex;align-items:center;gap:.6rem;padding:.4rem .55rem;border:1px solid #ece7e1;border-radius:8px;background:#fafaf9}.workspace-recent-bar-head{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.workspace-recent-bar-head .workspace-search-label{white-space:nowrap}.workspace-clear-btn{font:inherit;font-size:.65rem;font-weight:600;color:#a8a29e;background:none;border:none;padding:0;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}.workspace-clear-btn:hover{color:#57534e}.workspace-recent-chips{display:flex;flex-wrap:wrap;gap:.35rem;flex:1;min-width:0}.workspace-recent-chip{font:inherit;font-size:.72rem;font-weight:600;color:#1f2937;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:.3rem .55rem .3rem .35rem;cursor:pointer;transition:background .14s,border-color .14s,box-shadow .14s;display:inline-flex;align-items:center;gap:.4rem;line-height:1}.workspace-recent-chip:hover{background:#fff;border-color:#d4d4d4;box-shadow:0 1px 3px #0000000f}.workspace-recent-chip-icon{width:22px;height:22px;border-radius:6px;background:#f5f5f4;border:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;color:#525252;flex-shrink:0}.workspace-recent-chip-icon svg{width:14px;height:14px}.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:.85rem}.workspace-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.workspace-section-copy{margin:.25rem 0 0;font-size:.85rem;color:#78716c}.dash-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.dash-heading{margin:0;font-size:1rem;font-weight:600;color:#1a1a1a}.dash-count{font-size:.7rem;font-weight:600;background:#e5e5e5;color:#525252;padding:.1rem .45rem;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}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem}@media(max-width:640px){.app-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}}@media(max-width:380px){.app-grid{grid-template-columns:1fr}}.app-card{font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:.85rem;display:flex;flex-direction:column;gap:.55rem;transition:border-color .12s,box-shadow .12s,transform .12s}@media(max-width:640px){.app-card{padding:.7rem;gap:.4rem}}.app-card:hover{border-color:#d4d4d4;box-shadow:0 2px 8px #0000000d;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:#d6d3d1;background:linear-gradient(180deg,#fff,#fcfcfb)}.app-card-icon{width:36px;height:36px;border-radius:8px;background:#f5f5f4;border:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;color:#525252;flex-shrink:0}.app-card-copy{display:flex;flex-direction:column;gap:.45rem;min-width:0}.app-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.app-card h3{margin:0;font-size:.88rem;font-weight:600;color:#1a1a1a}.app-card p{margin:0;font-size:.8rem;color:#737373;line-height:1.45}.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){.workspace-launchbar-head,.workspace-section-head{flex-direction:column;align-items:flex-start}.workspace-meta{align-self:flex-start}}.admin-sections{display:flex;flex-direction:column;gap:1.25rem}.admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.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-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}.admin-user-item{border-bottom:1px solid #f3f4f6}.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-actions{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.15rem .75rem;flex-wrap:wrap}.admin-action-group{display:flex;align-items:center;gap:.35rem}.admin-action-label{font-size:.68rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.03em;margin-right:.15rem}.admin-project-list{display:flex;flex-direction:column}.admin-project-item{display:flex;align-items:center;padding:.65rem 1.15rem;border-bottom:1px solid #f3f4f6}.admin-project-item:last-child{border-bottom:none}.admin-project-info{display:flex;flex-direction:column;flex:1;min-width:0}.admin-project-name{font-size:.85rem;font-weight:600;color:#111827}.admin-project-slug{font-size:.72rem;color:#9ca3af}.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}.role-badge.role-owner{background:#fef3c7;color:#92400e;border-color:#fde68a}.role-badge.role-admin{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.role-badge.role-member{background:#f5f5f4;color:#737373;border-color:#e5e5e5}.role-badge.role-viewer{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.role-badge.role-editor{background:#dcfce7;color:#166534;border-color:#bbf7d0}.role-badge.role-manager{background:#fee2e2;color:#991b1b;border-color:#fecaca}.role-badge.role-none{background:#f5f5f4;color:#737373;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;-moz-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}.btn-icon{padding:.3rem .4rem;display:inline-flex;align-items:center;justify-content:center}.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;top:0;right:0;bottom:0;left: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;-moz-user-select:-moz-none;user-select:none}.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:.2rem;padding:.15rem .5rem}.preview-wall-tag{font-size:.58rem;font-weight:600;color:#1e40af;background:#dbeafe;padding:.05rem .3rem;border-radius:3px}.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}.file-status-error{color:#dc2626}.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}.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,.badge-vis-visible{background:#dcfce7;color:#166534;border-color:#bbf7d0}.badge-vis-hidden{background:#f5f5f4;color:#737373;border-color:#e5e5e5}.badge-vis-pending{background:#fef9c3;color:#854d0e;border-color:#fde68a}.badge-vis-on_hold{background:#fee2e2;color:#991b1b;border-color:#fecaca}.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-queued{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.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;-moz-user-select:-moz-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;-moz-user-select:-moz-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;-moz-user-select:-moz-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}.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}.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}.wall-grid-header-toggle{cursor:pointer;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;display:flex;flex-direction:column;align-items:center;gap:2px;transition:background .15s,color .15s}.wall-grid-header-toggle:hover{background:#f0f0f0}.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}.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}.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-pct{font-size:1.3rem;font-weight:800;font-family:IBM Plex Mono,monospace;color:#15803d}.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-progress{width:100%;height:6px;border-radius:999px;background:#16a34a1f;overflow:hidden}.dash-active-card-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .2s ease-out}.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:-webkit-sticky;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-session-overlay{position:fixed;top:0;right:0;bottom:0;left: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.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)}.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}.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%,18rem),1fr));gap:.85rem}.setup-line-card,.setup-add-card{display:grid;align-content:start;min-height:11.5rem;overflow:hidden;text-align:left}.setup-line-card{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.setup-line-card:hover{transform:translateY(-1px);border-color:#2563eb59;box-shadow:0 14px 28px #2563eb14}.setup-line-card-bar{height:.28rem;width:100%}.setup-line-card-body{display:grid;gap:.55rem;padding:.9rem}.setup-line-card-name{margin:0;font-size:1rem;font-weight:800;color:#0f172a}.setup-line-card-factory{margin:0;color:var(--ff-text-muted);font-size:.88rem}.setup-line-card-stats{display:flex;flex-wrap:wrap;gap:.45rem;color:var(--ff-text-muted);font-size:.82rem}.setup-add-card{place-items:center;border:1px dashed rgba(148,163,184,.45);background:linear-gradient(180deg,#f8fafc,#f1f5f9);cursor:pointer}.setup-add-card span{font-size:.95rem;font-weight:800;color:var(--ff-brand)}.setup-editor{display:grid;gap:.85rem;min-width:0}.setup-editor-topbar{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.setup-editor-header{display:grid;gap:.6rem;padding:1rem;border:1px solid rgba(148,163,184,.25);border-radius:.9rem;background:linear-gradient(180deg,#fff,#f8fbff)}.setup-editor-title,.setup-editor-desc{width:100%;min-width:0;border:1px solid rgba(148,163,184,.28);border-radius:.75rem;background:#fff;color:#0f172a;outline:none}.setup-editor-title{min-height:3rem;padding:.7rem .9rem;font:inherit;font-size:1.15rem;font-weight:800}.setup-editor-desc{min-height:2.7rem;padding:.7rem .9rem;font:inherit;font-size:.92rem}.setup-editor-title:focus,.setup-editor-desc:focus{border-color:#2563eb66;box-shadow:0 0 0 4px #2563eb1a}.setup-stage-list{display:grid;gap:.8rem}.setup-stage-card{border:1px solid rgba(148,163,184,.24);border-radius:.95rem;background:#fff;box-shadow:0 12px 26px #0f172a0d;overflow:hidden}.setup-stage-card.dragging{opacity:.55}.setup-stage-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.8rem .95rem;border-bottom:1px solid rgba(226,232,240,.9);background:linear-gradient(180deg,#fff,#f8fafc)}.setup-stage-num{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:999px;background:#2563eb1a;color:var(--ff-brand);font-size:.76rem;font-weight:800;flex:0 0 auto}.setup-stage-expanded{display:grid;gap:.85rem;padding:.95rem}.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-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}.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}.checklist-item{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--ff-line)}.checklist-item:last-child{border-bottom:none}.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}.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-item-meta{margin-top:.05rem}.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}.work-stage-list-item{border-left:3px solid #cbd5e1}.work-stage-list-item.state-running{border-left-color:#f59e0b}.work-stage-list-item.state-paused{border-left-color:#0ea5e9}.work-stage-list-item.state-complete{border-left-color:#16a34a}.work-stage-list-item.state-hold{border-left-color:#dc2626}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left: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;top:0;right:0;bottom:0;left: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:-webkit-sticky;position:sticky;top:0;z-index:2}.work-session-tabs{position:-webkit-sticky;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}.dash-active-card-pct{font-size:1.1rem}.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}.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-footer{padding-top:.65rem;border-top:1px solid rgba(226,232,240,.9)}.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,.work-header-actions .btn{width:100%}.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:899px){.work-floor-hero-main,.work-floor-metrics{grid-template-columns:1fr}.work-header-actions,.work-header-actions .btn{width:100%}.workpiece-item-info-grid,.work-launch-grid{grid-template-columns:1fr}.work-queue-panel,.work-workspace-launch{min-height:0}.work-queue-list{max-height:none}}@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}}.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:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.1rem;padding:.28rem 1.5rem;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-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:.55rem;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.6rem;height:1.6rem;border-radius:.2rem}.topbar-title{font-weight:700;font-size:.95rem;line-height:1;letter-spacing:.04em;text-transform:uppercase}.topbar-subtitle{font-size:.7rem;color:#8a909c;margin-top:.12rem}.topbar-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.topbar-btn{min-height:2rem;padding:0 .7rem;font-size:.82rem;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}.topbar-avatar{width:1.6rem;height:1.6rem;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:.82rem;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:900px){.factory-layout{grid-template-columns:var(--sidebar-w, 220px) 5px 1fr}}.side-nav{display:none}@media(min-width:900px){.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:900px){.resize-handle{display:block;background:#1e2228;cursor:col-resize;transition:background .15s}.resize-handle:hover,.resize-handle:active{background:#2563eb}}.factory-content{padding:1rem 1rem 5.5rem;overflow-y:auto;background:#fff;min-width:0}@media(min-width:900px){.factory-content{padding:1.1rem}}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:.25rem;padding:.35rem .5rem;background:#0d0f12;border-top:1px solid #1e2228}@media(min-width:900px){.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-direction:column;justify-content:center;text-align:center;gap:.15rem;padding:.25rem;min-height:3rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;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}}.topbar-nav{display:flex;align-items:center;gap:.25rem;flex:1;justify-content:center}.topbar-tab{display:inline-flex;align-items:center;padding:0 1rem;height:2.2rem;font-size:.85rem;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}@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.4rem;height:1.4rem}.mobile-nav .nav-link .nav-label{display:none}.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;-moz-user-select:-moz-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;top:0;right:0;bottom:0;left: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;top:0;right:0;bottom:0;left:0}.pdf-page-skeleton{position:absolute;top:0;right:0;bottom:0;left: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;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;-webkit-user-select:text;-moz-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;top:0;right:0;bottom:0;left: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}}.activity-feed{display:flex;flex-direction:column;gap:.5rem}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.activity-item{display:flex;gap:.6rem;padding:.5rem .25rem;border-bottom:1px solid rgba(0,0,0,.06)}.activity-item:last-child{border-bottom:0}.activity-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#9ca3af;margin-top:.45rem}.activity-publish .activity-dot{background:#10b981}.activity-restore .activity-dot{background:#3b82f6}.activity-error .activity-dot{background:#ef4444}.activity-upload .activity-dot{background:#8b5cf6}.activity-delete .activity-dot{background:#f59e0b}.activity-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.activity-line{font-size:.875rem;line-height:1.35;word-break:break-word}.activity-time{font-size:.72rem;color:#6b7280}.activity-footer{display:flex;justify-content:center;padding-top:.5rem}.activity-error{display:flex;align-items:center;gap:.5rem;padding:.4rem 0}.activity-error .status{margin:0;flex:1}.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:-webkit-sticky;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}}.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}.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}
