*{box-sizing:border-box}:root{color:#1f2937;--tp-spinner-duration:1.6s;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#000;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}body{background-color:#000;min-height:100vh;margin:0}#root{min-height:100vh}#initial-loader{z-index:9999;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}#initial-loader svg{opacity:.9}#initial-loader span{color:#ffffff59;letter-spacing:.3px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}.init-spinner{width:32px;height:32px;animation:init-spin var(--tp-spinner-duration,1.6s) linear infinite;border:3px solid #ffffff1a;border-top-color:#3071c5;border-radius:50%}@keyframes init-spin{to{transform:rotate(360deg)}}@keyframes tp-sync-spin{to{transform:rotate(360deg)}}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--select-caret-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M2 2.5L7 7.5L12 2.5' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");--color-bg:#101114;--color-surface:#18181b;--color-surface-elevated:#27272a;--color-surface-muted:#24262d;--color-surface-input:#1f2937;--color-border:#4b5563;--color-text:#f8fafc;--color-text-muted:#cbd5e1;--color-text-subtle:#94a3b8;--color-link:#93c5fd;--color-action-primary-bg:#0b57d0;--color-action-primary-fg:#fff;--color-action-secondary-bg:#2f333b;--color-action-secondary-fg:#f8fafc;--color-danger-bg:#7f1d1d;--color-danger-fg:#fff;--color-success-bg:#14532d;--color-success-fg:#fff;--surface-panel:var(--color-surface);--surface-card:var(--color-surface-elevated);--surface-subtle:var(--color-surface-muted);--surface-input:var(--color-surface-input);--text-primary:var(--color-text);--text-secondary:var(--color-text-muted);--text-muted:var(--color-text-subtle);--border-subtle:var(--color-border);--action-primary-bg:var(--color-action-primary-bg);--action-primary-text:var(--color-action-primary-fg);--danger-bg:var(--color-danger-bg);--success-bg:var(--color-success-bg);--danger-text:#fca5a5;--success-text:#86efac;--warning-text:#facc15;--shadow-popover:0 8px 24px #00000047}[data-theme=light],.light-mode{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--select-caret-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M2 2.5L7 7.5L12 2.5' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");--color-bg:#f5f7fb;--color-surface:#fff;--color-surface-elevated:#fff;--color-surface-muted:#eef2f7;--color-surface-input:#fff;--color-border:#cbd5e1;--color-text:#111827;--color-text-muted:#4b5563;--color-text-subtle:#64748b;--color-link:#0b57d0;--color-action-primary-bg:#0b57d0;--color-action-primary-fg:#fff;--color-action-secondary-bg:#e5e7eb;--color-action-secondary-fg:#111827;--color-danger-bg:#b91c1c;--color-danger-fg:#fff;--color-success-bg:#dcfce7;--color-success-fg:#14532d;--surface-panel:var(--color-surface);--surface-card:var(--color-surface-elevated);--surface-subtle:var(--color-surface-muted);--surface-input:var(--color-surface-input);--text-primary:var(--color-text);--text-secondary:var(--color-text-muted);--text-muted:var(--color-text-subtle);--border-subtle:var(--color-border);--action-primary-bg:var(--color-action-primary-bg);--action-primary-text:var(--color-action-primary-fg);--danger-bg:var(--color-danger-bg);--success-bg:var(--color-success-bg);--danger-text:#b91c1c;--success-text:#166534;--warning-text:#854d0e;--shadow-popover:0 8px 24px #0f172a29}.tp-dark-scope{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--select-caret-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M2 2.5L7 7.5L12 2.5' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");--color-bg:#101114;--color-surface:#18181b;--color-surface-elevated:#27272a;--color-surface-muted:#24262d;--color-surface-input:#1f2937;--color-border:#4b5563;--color-text:#f8fafc;--color-text-muted:#cbd5e1;--color-text-subtle:#94a3b8;--color-link:#93c5fd;--color-action-primary-bg:#0b57d0;--color-action-primary-fg:#fff;--color-action-secondary-bg:#2f333b;--color-action-secondary-fg:#f8fafc;--color-danger-bg:#7f1d1d;--color-danger-fg:#fff;--color-success-bg:#14532d;--color-success-fg:#fff;--surface-panel:var(--color-surface);--surface-card:var(--color-surface-elevated);--surface-subtle:var(--color-surface-muted);--surface-input:var(--color-surface-input);--text-primary:var(--color-text);--text-secondary:var(--color-text-muted);--text-muted:var(--color-text-subtle);--border-subtle:var(--color-border);--action-primary-bg:var(--color-action-primary-bg);--action-primary-text:var(--color-action-primary-fg);--danger-bg:var(--color-danger-bg);--success-bg:var(--color-success-bg);--danger-text:#fca5a5;--success-text:#86efac;--warning-text:#facc15;--shadow-popover:0 8px 24px #00000047}.tp-surface{background:var(--color-surface);color:var(--color-text)}.tp-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text)}.tp-muted-surface{background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text)}.tp-input,.tp-select,.tp-search{background:var(--color-surface-input);border:1px solid var(--color-border);color:var(--color-text);box-sizing:border-box;min-height:40px}.tp-input::placeholder,.tp-search::placeholder{color:var(--color-text-subtle)}select:not([multiple]){appearance:none!important;background-image:var(--select-caret-icon)!important;background-position:right 16px center!important;background-repeat:no-repeat!important;background-size:14px 10px!important;padding-right:46px!important}select option,select optgroup{background-color:var(--color-surface-elevated);color:var(--color-text)}.tp-button-primary,.tp-action-button--primary{background:var(--color-action-primary-bg);color:var(--color-action-primary-fg);cursor:pointer;border:0;transition:background-color .14s,border-color .14s,color .14s,opacity .14s,transform 80ms,box-shadow .14s}.tp-button-secondary,.tp-icon-button{background:var(--color-action-secondary-bg);border:1px solid var(--color-border);color:var(--color-action-secondary-fg);cursor:pointer;transition:background-color .14s,border-color .14s,color .14s,opacity .14s,transform 80ms,box-shadow .14s}.tp-button-danger{background:var(--color-danger-bg);color:var(--color-danger-fg);cursor:pointer;border:0;transition:background-color .14s,border-color .14s,color .14s,opacity .14s,transform 80ms,box-shadow .14s}.tp-action-button{cursor:pointer;transition:background-color .14s,border-color .14s,color .14s,opacity .14s,transform 80ms,box-shadow .14s}.tp-action-button:hover:not(:disabled),.tp-button-primary:hover:not(:disabled),.tp-button-secondary:hover:not(:disabled),.tp-button-danger:hover:not(:disabled),.tp-icon-button:hover:not(:disabled){box-shadow:0 0 0 1px color-mix(in srgb, var(--color-action-primary-bg) 42%, transparent);filter:brightness(1.06)}.tp-action-button:active:not(:disabled),.tp-button-primary:active:not(:disabled),.tp-button-secondary:active:not(:disabled),.tp-button-danger:active:not(:disabled),.tp-icon-button:active:not(:disabled){filter:brightness(.96);transform:translateY(1px)}.tp-action-button:focus-visible,.tp-button-primary:focus-visible,.tp-button-secondary:focus-visible,.tp-button-danger:focus-visible,.tp-icon-button:focus-visible{outline:2px solid var(--color-action-primary-bg);outline-offset:2px}.tp-action-button:disabled,.tp-button-primary:disabled,.tp-button-secondary:disabled,.tp-button-danger:disabled,.tp-icon-button:disabled{cursor:not-allowed;opacity:.58;box-shadow:none;filter:none}.tp-action-button--danger:hover:not(:disabled){box-shadow:0 0 0 1px color-mix(in srgb, var(--danger-text) 45%, transparent)}.tp-heading,.tp-text{color:var(--color-text)}.tp-text-muted{color:var(--color-text-muted)}.tp-text-subtle{color:var(--color-text-subtle)}.project-select option{background:var(--color-surface-elevated);color:var(--color-text)}.tp-workspace-surface{background:var(--color-surface);color:var(--color-text)}.tp-workspace-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);color:var(--color-text)}.tp-workspace-toolbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-text)}.tp-workspace-card,.tp-workspace-row{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text)}.tp-workspace-subtle{background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text)}.tp-workspace-modal{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text);box-shadow:var(--shadow-popover)}.tp-workspace-layout{min-width:0;min-height:0;display:grid}.tp-workspace-layout--rail{--tp-workspace-rail-width:300px;grid-template-columns:var(--tp-workspace-rail-width) minmax(0, 1fr);grid-template-rows:minmax(0,1fr)}.tp-workspace-rail{border-right:1px solid var(--color-border);border-bottom:0;grid-template-columns:minmax(0,1fr);align-content:start;align-items:stretch;gap:12px;padding:16px;display:grid;overflow:hidden auto}.tp-workspace-main{flex-direction:column;min-width:0;min-height:0;display:flex}.tp-workspace-scroll{flex:1;min-height:0;overflow-y:auto}.tp-workspace-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;display:grid}.tp-workspace-toolbar-controls{grid-template-columns:minmax(180px,1fr) 150px;width:min(560px,45%);min-width:0}.device-scan-toolbar-controls{grid-template-columns:minmax(180px,1fr) 150px;justify-content:end;justify-self:end;align-items:center;width:min(560px,45%);min-width:0;margin-left:auto}.submittals-main-toolbar .tp-workspace-toolbar-controls{justify-content:end;justify-self:end;align-items:center;margin-left:auto}.device-scan-toolbar-controls>label,.room-list-main-toolbar .tp-workspace-toolbar-search,.submittals-main-toolbar .tp-workspace-toolbar-search{box-sizing:border-box;align-items:center;gap:8px;min-height:40px;display:flex}.tp-workspace-toolbar-search{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.tp-workspace-toolbar-search svg{flex:none}.tp-workspace-toolbar-search input{width:100%;min-width:0;color:var(--color-text);background:0 0;border:0;outline:0;font-size:12px}.tp-workspace-toolbar-select{border:1px solid var(--color-border);background:var(--color-surface-input);color:var(--color-text);border-radius:8px;padding:8px 10px;font-size:12px;font-weight:700}.device-scan-toolbar-controls .themed-select,.room-list-main-toolbar .tp-workspace-toolbar-controls .themed-select,.submittals-main-toolbar .tp-workspace-toolbar-controls .themed-select{min-width:0}.device-scan-toolbar-controls .themed-select-trigger,.room-list-main-toolbar .tp-workspace-toolbar-controls .themed-select-trigger,.submittals-main-toolbar .tp-workspace-toolbar-controls .themed-select-trigger{min-height:40px}.tp-workspace-action-grid,.tp-workspace-secondary-grid{grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;display:grid}.tp-workspace-action-button{border:1px solid var(--color-border);background:var(--color-surface-muted);min-width:0;color:var(--color-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-weight:800;transition:background-color .14s,border-color .14s,color .14s,opacity .14s,transform 80ms,box-shadow .14s;display:flex}.tp-workspace-action-button.primary{background:var(--color-action-primary-bg);color:#fff;border:0}.tp-workspace-action-button.ghost{border-color:var(--color-action-primary-bg);color:var(--color-action-primary-bg);background:0 0}.tp-workspace-action-button:hover:not(:disabled){box-shadow:0 0 0 1px color-mix(in srgb, var(--color-action-primary-bg) 42%, transparent);filter:brightness(1.06)}.tp-workspace-action-button:active:not(:disabled){filter:brightness(.96);transform:translateY(1px)}.tp-workspace-action-button:focus-visible{outline:2px solid var(--color-action-primary-bg);outline-offset:2px}.tp-workspace-action-button:disabled{cursor:not-allowed;opacity:.58;box-shadow:none;filter:none}.trade-workspace-sidebar{grid-template-areas:none}.trade-workspace-stat-grid,.trade-workspace-actions{grid-area:auto}.trade-workspace-actions{grid-template-columns:minmax(0,1fr)!important}.trade-workspace-actions .tp-workspace-action-button{width:100%;min-height:42px}.schedule-sheet-tags{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.schedule-sheet-tag{color:#93c5fd;max-width:100%;min-height:22px;font:inherit;cursor:pointer;background:#2563eb24;border:1px solid #60a5fa7a;border-radius:999px;align-items:center;padding:2px 7px;font-size:11px;font-weight:900;line-height:1.2;text-decoration:none;display:inline-flex}.schedule-sheet-tag.is-static{cursor:default;opacity:.78}.schedule-sheet-tag:hover:not(.is-static){background:#2563eb42;border-color:#93c5fdb8}.schedule-sheet-tag:focus-visible{outline:2px solid var(--color-action-primary-bg);outline-offset:2px}.light-mode .schedule-sheet-tag{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.light-mode .schedule-sheet-tag:hover:not(.is-static){background:#bfdbfe;border-color:#3b82f6}.workspace-empty{min-height:280px;color:var(--color-text-muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.workspace-empty.compact{min-height:160px}.workspace-empty.error{color:var(--danger-text)}.room-list-main-toolbar .tp-workspace-toolbar-controls{flex:0 min(560px,45%);justify-content:end;justify-self:end;align-items:center;margin-left:auto}@media (width<=1100px){.tp-workspace-layout--rail,.room-list-workspace-shell{--tp-workspace-rail-width:260px}.tp-workspace-rail{padding:14px}.room-list-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.room-list-main-controls{grid-template-columns:minmax(0,1fr) minmax(140px,190px);justify-content:stretch}.room-list-row{grid-template-columns:minmax(170px,1.15fr) minmax(150px,1fr) auto minmax(210px,.9fr)}.room-list-row-meta:nth-of-type(3){display:none}}@media (width<=900px){.tp-workspace-layout--rail{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.tp-workspace-rail{border-right:0;border-bottom:1px solid var(--color-border)}.tp-workspace-action-grid,.tp-workspace-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-list-workspace-sidebar{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);grid-template-areas:"actions stats""secondary stats""message message";align-items:stretch}.room-list-stat-row,.room-list-actions,.room-list-secondary-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.tp-workspace-rail{max-height:44vh;padding:12px}.tp-workspace-action-grid,.tp-workspace-secondary-grid{grid-template-columns:minmax(0,1fr)}.room-list-workspace-sidebar{grid-template-columns:minmax(0,1fr);grid-template-areas:"stats""actions""secondary""message"}.room-list-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.room-list-actions,.room-list-secondary-tools,.room-list-main-controls{grid-template-columns:minmax(0,1fr)}.room-list-main-toolbar{flex-direction:column;padding:12px;align-items:stretch!important}.submittals-main-toolbar,.qr-admin-main-toolbar,.device-scan-toolbar{flex-direction:column;align-items:stretch!important}.device-scan-toolbar-controls,.tp-workspace-toolbar-controls{grid-template-columns:minmax(0,1fr);width:100%}.room-list-main-toolbar .tp-workspace-toolbar-controls{flex-basis:auto}.room-list-row{grid-template-columns:minmax(0,1fr);align-items:start}.room-list-row-meta:nth-of-type(3){display:grid}.room-list-sheet-meta{white-space:normal!important}}.precon-workspace-body .tp-workspace-layout--rail{grid-template-rows:auto;align-items:start;min-height:100%}.precon-workspace-body .tp-workspace-scroll{flex:none;overflow:visible}@media (width>=901px){.precon-workspace-body .tp-workspace-rail{align-self:start;max-height:calc(100dvh - 112px);position:sticky;top:0;overflow-y:auto}.precon-workspace-body .room-list-workspace-sidebar:has(.room-list-menu-trigger[aria-expanded=true]){z-index:90;overflow:visible}}@media (width<=900px){.precon-workspace-body .tp-workspace-layout--rail{grid-template-rows:auto}.precon-workspace-body .tp-workspace-rail{max-height:none;position:static;overflow:visible}}.device-scan-stat-grid{flex-wrap:wrap;gap:8px;min-width:0;margin-top:16px;display:flex}.device-scan-stat-card{flex:118px;min-width:min(118px,100%)}.room-list-workspace-shell{--tp-workspace-rail-width:300px}.room-list-workspace-sidebar{grid-template-areas:"stats""actions""secondary""message"}.room-list-stat-row{grid-area:stats}.room-list-action-button{border:1px solid var(--color-border);background:var(--color-surface-muted);min-width:0;color:var(--color-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-weight:800;transition:background-color .14s,border-color .14s,color .14s,opacity .14s,transform 80ms,box-shadow .14s;display:flex}.room-list-action-button.primary{background:var(--color-action-primary-bg);color:var(--color-action-primary-fg);border:0}.room-list-action-button.ghost{border-color:var(--color-action-primary-bg);color:var(--color-action-primary-bg);background:0 0}.room-list-action-button:hover:not(:disabled){box-shadow:0 0 0 1px color-mix(in srgb, var(--color-action-primary-bg) 42%, transparent);filter:brightness(1.06)}.room-list-action-button:active:not(:disabled){filter:brightness(.96);transform:translateY(1px)}.room-list-action-button:focus-visible{outline:2px solid var(--color-action-primary-bg);outline-offset:2px}.room-list-action-button:disabled{cursor:not-allowed;opacity:.58;box-shadow:none;filter:none}.room-list-actions{grid-area:actions}.room-list-secondary-tools{grid-area:secondary}.room-list-message-stack{grid-area:message;gap:6px;min-width:0;display:grid}.room-list-inline-message,.room-list-upload-progress{gap:6px;min-width:0;display:grid}.room-list-action-progress{border:1px solid color-mix(in srgb, var(--color-action-primary-bg) 36%, var(--color-border));background:color-mix(in srgb, var(--color-action-primary-bg) 10%, var(--color-surface-muted));border-radius:8px;gap:8px;min-width:0;padding:10px 12px;display:grid}.room-list-action-progress-header{min-width:0;color:var(--color-text);justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:900;display:flex}.room-list-action-progress-header span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.room-list-action-progress-copy{color:var(--color-text-muted);font-size:11px;line-height:1.35}.room-list-action-progress-bar{background:var(--color-surface-muted);border-radius:999px;height:6px;position:relative;overflow:hidden}.room-list-action-progress-bar:empty:after{content:"";border-radius:inherit;background:var(--color-action-primary-bg);width:42%;animation:1.15s ease-in-out infinite room-list-progress-sweep;position:absolute;inset:0}@keyframes room-list-progress-sweep{0%{transform:translate(-120%)}to{transform:translate(260%)}}.room-list-menu-shell{min-width:0;position:relative}.room-list-menu-trigger{border:1px solid var(--color-border);background:var(--color-surface-muted);width:100%;min-height:36px;color:var(--color-text);cursor:pointer;text-align:left;border-radius:8px;padding:9px 10px;font-size:12px;font-weight:800}.room-list-menu-trigger:before{content:"▸ "}.room-list-menu-trigger[aria-expanded=true]{border-color:var(--color-action-primary-bg);background:color-mix(in srgb, var(--color-action-primary-bg) 12%, var(--color-surface-muted))}.room-list-menu-trigger[aria-expanded=true]:before{content:"▾ "}.room-list-menu-popover{z-index:80;box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;width:100%;max-width:min(320px,100vw - 48px);max-height:min(420px,68vh);padding:10px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 18px 42px #00000057}.room-list-menu-content{gap:8px;display:grid}.room-list-source-row{border-radius:8px;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;padding:10px;display:grid}.room-list-main-toolbar{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.room-list-main-title{min-width:0}.room-list-main-title h2{margin:0;font-size:18px;line-height:1.3}.room-list-main-title p{max-width:42rem;color:var(--color-text-muted);margin:4px 0 0;font-size:12px;line-height:1.4}.room-list-main-controls{grid-template-columns:minmax(0,260px) minmax(150px,190px);justify-content:end;align-items:center;gap:8px;min-width:0;display:grid}.room-list-search{min-width:0;position:relative}.room-list-search-input{height:40px;min-height:40px;font-size:13px;line-height:1.2}.room-list-plan-area-select{height:40px;min-height:40px;padding-top:0;padding-bottom:0;font-size:13px;line-height:1.2}.room-list-row{border-radius:8px;grid-template-columns:minmax(160px,1.1fr) minmax(170px,1fr) minmax(140px,.75fr) auto minmax(220px,.95fr);align-items:center;gap:12px;padding:12px 14px;display:grid}.room-list-room-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.room-list-row-meta{min-width:0;color:var(--color-text-muted);gap:4px;font-size:12px;display:grid}.room-list-row-meta>div{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.room-list-sheet-link{color:var(--color-action-primary-bg);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.room-list-sheet-link:hover{text-decoration:underline}.room-list-sheet-link:focus-visible{outline:2px solid var(--color-action-primary-bg);outline-offset:2px;border-radius:3px;text-decoration:underline}.room-list-row-subtle{color:var(--color-text-subtle);font-size:11px}.submittals-workspace-shell{--tp-workspace-rail-width:300px}.submittals-workspace-sidebar{align-content:start}.submittals-filter-row{grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;display:grid}.submittals-search-control{min-width:0;display:block;position:relative}.submittals-search-control svg{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.submittals-search-input{border-radius:8px;width:100%;min-width:0;padding:0 12px 0 36px}.submittals-trade-select{width:100%}.submittals-primary-action{align-self:start;width:auto;min-width:150px;padding:10px 14px;font-weight:800}.submittals-workspace-sidebar .add-submittal-btn.submittals-primary-action{background:var(--color-action-primary-bg);border:1px solid var(--color-action-primary-bg);width:100%;color:var(--color-action-primary-fg);border-radius:8px;font-weight:800}.submittals-workspace-sidebar .add-submittal-btn.submittals-primary-action:hover:not(:disabled){background:var(--color-action-primary-bg);border-color:var(--color-action-primary-bg);color:var(--color-action-primary-fg)}.submittals-main-toolbar{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.submittals-main-toolbar h3{margin:0;font-size:18px}.submittals-main-toolbar p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.submittals-results{padding:16px}.container{background:linear-gradient(#000000a6,#000000a6),url(/bg-hero.jpg) 50%/cover no-repeat fixed;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem;display:flex}.header{text-align:center;margin-bottom:2rem}.brand-logo{width:80px;height:80px;margin:0 auto 1rem}.header h1{color:#fff;margin:0 0 .5rem;font-size:2.5rem;font-weight:700}.header p{color:#fff;margin:0;font-size:1rem}.demo-btn{-webkit-backdrop-filter:blur(4px);color:#fff;cursor:pointer;isolation:isolate;background:#ffffff1a;border:none;border-radius:12px;margin-top:1rem;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s;box-shadow:inset .5px -.5px 1px #ffffff4d,inset -.5px .5px 1px #ffffff4d}.demo-btn:hover{background:#ffffff2e}.upload-zone{text-align:center;-webkit-backdrop-filter:blur(12px);filter:drop-shadow(0 4px 16px #0000004d);cursor:pointer;isolation:isolate;background:#ffffff1a;border:none;border-radius:20px;padding:3rem 2rem;transition:all .2s;box-shadow:inset .5px -1px 1px #ffffff80,inset -.5px 1px 1px #ffffff80}.upload-zone:hover{background:#3071c51a}.file-input{display:none}.upload-label{cursor:pointer;flex-direction:column;align-items:center;gap:.75rem;display:flex}.upload-icon{color:#aaa;width:48px;height:48px}.upload-text{color:#aaa;font-size:1rem}.upload-text strong{color:#3071c5}.upload-hint{color:#aaa;font-size:.875rem}.file-preview{flex-direction:column;align-items:center;gap:.5rem;display:flex}.file-icon{color:#10b981;width:48px;height:48px}.file-name{color:#fff;font-size:1.1rem;font-weight:600}.file-size{color:#aaa;font-size:.875rem}.error-message{color:#ef4444;background:#dc262626;border:1px solid #dc26264d;border-radius:8px;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.error-message svg{flex-shrink:0;width:20px;height:20px}.actions{justify-content:center;gap:1rem;margin-top:1.5rem;display:flex}.btn{cursor:pointer;-webkit-backdrop-filter:blur(4px);isolation:isolate;border:none;border-radius:12px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s;box-shadow:inset .5px -.5px 1px #ffffff4d,inset -.5px .5px 1px #ffffff4d}.btn-primary{color:#fff;background:#3071c5cc}.btn-primary:hover:not(:disabled){filter:drop-shadow(0 4px 12px #3071c566);background:#3071c5f2;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:#aaa;background:#ffffff1a}.btn-secondary:hover{background:#ffffff26}.upload-content{width:100%;max-width:580px}.success-card{text-align:center;-webkit-backdrop-filter:blur(12px);filter:drop-shadow(0 4px 16px #0000004d);isolation:isolate;background:#1e1e1ea6;border-radius:20px;padding:2rem;box-shadow:inset .5px -1px 1px #ffffff80,inset -.5px 1px 1px #ffffff80}.success-icon{color:#10b981;width:64px;height:64px;margin:0 auto 1rem}.success-card h2{color:#fff;margin:0 0 1.5rem}.stats{justify-content:center;gap:1.5rem;margin-bottom:2rem;display:flex}.stat{-webkit-backdrop-filter:blur(4px);isolation:isolate;background:#ffffff14;border-radius:12px;flex-direction:column;align-items:center;min-width:100px;padding:1rem;display:flex;box-shadow:inset .5px -.5px 1px #ffffff4d,inset -.5px .5px 1px #ffffff4d}.stat-value{color:#3071c5;font-size:1.5rem;font-weight:700}.stat-label{color:#aaa;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.recent-drawings{border-top:1px solid #ffffff1a;margin-top:2rem;padding-top:2rem}.recent-drawings h3{color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem;font-size:.875rem}.drawing-card-wrapper{min-width:0;position:relative;overflow:hidden}.delete-drawing-btn{cursor:pointer;opacity:0;-webkit-backdrop-filter:blur(4px);background:#ffffff14;border:none;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;transition:opacity .2s,background .2s;display:flex;position:absolute;top:8px;right:8px;box-shadow:inset .5px -.5px 1px #ffffff4d,inset -.5px .5px 1px #ffffff4d}.drawing-card-wrapper:hover .delete-drawing-btn{opacity:1}.delete-drawing-btn:hover{background:#e74c3c}.delete-drawing-btn svg{stroke:#fff;width:16px;height:16px}.drawings-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;display:grid}.drawing-card{cursor:pointer;-webkit-backdrop-filter:blur(4px);filter:drop-shadow(0 2px 8px #0003);isolation:isolate;background:#ffffff14;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:.5rem;width:100%;min-width:0;padding:1rem;transition:all .2s;display:flex;box-shadow:inset .5px -.5px 1px #ffffff4d,inset -.5px .5px 1px #ffffff4d}.drawing-card:hover{filter:drop-shadow(0 4px 12px #3071c54d);background:#ffffff1f;transform:translateY(-2px)}.drawing-card-icon{color:#3071c5;width:32px;height:32px}.drawing-card-icon svg{width:100%;height:100%}.drawing-card-name{color:#fff;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.875rem;font-weight:600;overflow:hidden}.drawing-card-desc{color:#aaa;text-align:center;font-size:.75rem}.project-selector{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:14px;width:100%;max-width:560px;margin-top:16px;padding:16px 20px}.project-selector-header{margin-bottom:10px}.project-selector-label{color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.project-mode-toggle{background:#ffffff0f;border-radius:8px;gap:0;margin-bottom:12px;display:flex;overflow:hidden}.mode-btn{color:#ffffff73;cursor:pointer;background:0 0;border:none;flex:1;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.mode-btn.active{color:#93c5fd;background:#3071c540}.project-name-input,.project-select{color:#fff;box-sizing:border-box;-webkit-appearance:none;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-size:14px;transition:border-color .2s}.project-name-input:focus,.project-select:focus{border-color:#3071c580}.project-name-input::placeholder{color:#ffffff4d}.loading-container{background:#0d0d0d;flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100%;min-height:100vh;display:flex}.loading-animation{-webkit-backdrop-filter:blur(12px);filter:drop-shadow(0 4px 16px #0000004d);isolation:isolate;background:#ffffff1a;border-radius:20px;width:200px;height:200px;position:relative;overflow:hidden;box-shadow:inset .5px -1px 1px #ffffff80,inset -.5px 1px 1px #ffffff80}.floor-grid{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:2px;width:100%;height:100%;padding:8px;display:grid}.grid-cell{background:#ffffff08;border:1px solid #ffffff14;border-radius:2px;animation:2s ease-in-out infinite cellPulse}@keyframes cellPulse{0%,to{background:#ffffff08}50%{background:#3071c526}}.scanning-line{background:linear-gradient(90deg,#0000,#3071c5,#0000);height:3px;animation:2s ease-in-out infinite scanDown;position:absolute;top:0;left:0;right:0}@keyframes scanDown{0%{opacity:1;top:0}to{opacity:.3;top:100%}}.device-blocks{pointer-events:none;position:absolute;inset:0}.device-block{opacity:0;border-radius:4px;width:24px;height:24px;animation:2.5s ease-out infinite deviceAppear;position:absolute;transform:scale(0)}.device-block:first-child{background:#e8ad00}.device-block:nth-child(2){background:#0b57d0}.device-block:nth-child(3){background:#2e8b57}.device-block:nth-child(4){background:#e8ad00}.device-block:nth-child(5){background:#0b57d0}.device-block:nth-child(6){background:#2e8b57}@keyframes deviceAppear{0%{opacity:0;transform:scale(0)}20%{opacity:1;transform:scale(1.2)}40%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(.8)}}.loading-text{flex-direction:column;align-items:center;gap:.5rem;display:flex}.loading-title{color:#fff;font-size:1.25rem;font-weight:600}.loading-subtitle{color:#aaa;font-size:.875rem}@keyframes subtitlePulse{0%,to{opacity:.5}50%{opacity:1}}.loading-progress-bar{background:#ffffff14;border:1px solid #ffffff0f;border-radius:999px;width:min(320px,100vw - 48px);height:6px;margin-top:-.75rem;overflow:hidden;box-shadow:inset 0 1px 1px #ffffff14,0 8px 28px #3071c51f}.loading-progress-fill{border-radius:inherit;background:linear-gradient(90deg,#3071c5f2,#60a5faf2);width:0;height:100%;transition:width .35s;box-shadow:0 0 16px #60a5fa59}.loading-estimate{color:#666;letter-spacing:0;margin-top:-.5rem;font-size:.8rem}.loading-action-slot{--loading-continue-button-min-height:calc(1.08rem + 22px);min-height:var(--loading-continue-button-min-height);justify-content:center;align-items:center;display:flex}.loading-continue-button{color:#fff;cursor:pointer;min-height:var(--loading-continue-button-min-height);-webkit-backdrop-filter:blur(12px)saturate(140%);background:linear-gradient(#ffffff29,#ffffff14),#ffffff14;border:1px solid #ffffff29;border-radius:8px;padding:10px 16px;font-size:.9rem;font-weight:700;line-height:1.2;transition:background .2s,border-color .2s,transform .2s;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #ffffff14,0 10px 30px #0000002e}.loading-continue-button:hover{background:linear-gradient(#ffffff38,#ffffff1f),#ffffff1f;border-color:#ffffff47;transform:translateY(-1px)}.upload-progress-dock{left:50%;bottom:max(24px, env(safe-area-inset-bottom,24px));z-index:9999;color:#fff;-webkit-backdrop-filter:blur(16px)saturate(145%);isolation:isolate;background:#121216f0;border:1px solid #ffffff24;border-radius:28px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;width:min(520px,100vw - 48px);padding:14px 18px;animation:.18s ease-out upload-dock-in;display:grid;position:fixed;overflow:hidden;transform:translate(-50%);box-shadow:inset 0 1px #ffffff1f,0 4px 24px #0000008c}@keyframes upload-dock-in{0%{opacity:.78;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.upload-progress-dock-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.upload-progress-dock-heading{align-items:center;gap:8px;min-width:0;display:flex}.upload-progress-activity{color:#ffffffc7;filter:drop-shadow(0 0 10px #60a5fa47);width:15px;height:15px;animation:spin var(--tp-spinner-duration,1.6s) linear infinite;flex:none}.upload-progress-dock-title{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:800;overflow:hidden}.upload-progress-dock-detail{text-overflow:ellipsis;white-space:nowrap;color:#ffffffc2;font-size:.78rem;overflow:hidden}.upload-progress-dock-meter{background:#ffffff1f;border-radius:999px;grid-column:1/-1;height:5px;overflow:hidden;box-shadow:inset 0 1px 1px #0000002e}.upload-progress-dock-fill{border-radius:inherit;background:linear-gradient(90deg,#3071c5f5,#60a5faf5);width:0;height:100%;transition:width .35s;box-shadow:0 0 14px #60a5fa61}.upload-progress-dock-action{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(#428fedf5,#2364bef5),#3071c5;border:1px solid #93c5fd61;border-radius:8px;grid-column:1/-1;width:100%;padding:11px 14px;font-size:.9rem;font-weight:800;transition:background .18s,transform .18s,border-color .18s,box-shadow .18s;box-shadow:inset 0 1px #ffffff47,inset 0 -1px #052e703d,0 12px 30px #3071c540}.upload-progress-dock-action:hover{background:linear-gradient(#519cf6fa,#276dcbfa),#3071c5;border-color:#bfdbfe85;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff57,inset 0 -1px #052e703d,0 14px 34px #3071c552}[data-theme=light] .upload-progress-dock,.light-mode .upload-progress-dock{color:#0f172a;background:#ffffffeb;border-color:#0000001f;box-shadow:inset 0 1px #ffffffb8,0 2px 12px #0000001a}[data-theme=light] .upload-progress-dock-detail,.light-mode .upload-progress-dock-detail{color:#0f172a9e}[data-theme=light] .upload-progress-dock-meter,.light-mode .upload-progress-dock-meter{background:#0f172a14;box-shadow:inset 0 1px 1px #0f172a14}[data-theme=light] .upload-progress-activity,.light-mode .upload-progress-activity{color:#0f172a9e}@media (width<=640px){.upload-progress-dock{bottom:max(24px, env(safe-area-inset-bottom,24px));grid-template-columns:minmax(0,1fr);width:min(420px,100vw - 32px);padding:12px 14px}.upload-progress-dock-action{width:100%}}.home-screen{background:linear-gradient(#000000a6,#000000a6),url(/bg-hero.jpg) 50%/cover no-repeat fixed;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem;display:flex}.home-content{flex-direction:column;align-items:center;gap:40px;width:100%;max-width:560px;display:flex}.home-header{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.home-logo{justify-content:center;align-items:center;width:52px;height:52px;display:flex}.home-title{color:#fff;letter-spacing:-.5px;margin:0;font-size:2.2rem;font-weight:700}.home-subtitle{color:#fff9;margin:0;font-size:1rem}.home-actions{flex-direction:column;gap:12px;width:100%;display:flex}.home-action-card{cursor:pointer;text-align:left;border:none;border-radius:18px;align-items:center;gap:16px;width:100%;padding:20px;transition:transform .15s,box-shadow .15s;display:flex}.home-action-card:active{transform:scale(.98)}.home-action-primary{background:#3071c5;box-shadow:0 8px 32px #3071c559}.home-action-primary:hover{background:#2860b0;box-shadow:0 12px 40px #3071c573}.home-action-demo{-webkit-backdrop-filter:blur(12px);background:#ffffff1a;border:1px solid #ffffff1f}.home-action-demo:hover{background:#ffffff29}.home-action-icon{color:#fff;background:#ffffff26;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.home-action-icon svg{width:22px;height:22px}.home-action-text{flex-direction:column;flex:1;gap:3px;display:flex}.home-action-title{color:#fff;font-size:16px;font-weight:600;line-height:1.2}.home-action-desc{color:#ffffffa6;font-size:13px;line-height:1.3}.home-action-arrow{color:#ffffff80;flex-shrink:0;width:18px;height:18px}.home-projects{flex-direction:column;gap:12px;width:100%;display:flex}.home-projects-title{color:#fff6;text-transform:uppercase;letter-spacing:.7px;margin:0;font-size:12px;font-weight:600}.home-projects-grid{flex-direction:column;gap:8px;display:flex}.home-project-icon{color:#fff9;background:#ffffff1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.home-project-icon svg{width:18px;height:18px}.home-project-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.home-project-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.home-project-desc{color:#ffffff73;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}@media (width<=600px){.home-actions{gap:10px}.home-action-card{padding:16px}.home-action-icon{width:42px;height:42px}}.home-topbar{z-index:100;justify-content:flex-end;align-items:center;display:flex;position:fixed;top:16px;right:16px}.home-profile-wrap{position:relative}.home-profile-btn{-webkit-backdrop-filter:blur(8px);cursor:pointer;background:#ffffff26;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s;display:flex}.home-profile-btn:hover{background:#ffffff38}.home-profile-initials{color:#fff;letter-spacing:.3px;font-size:14px;font-weight:600}.home-profile-dropdown{background:#1c1c2a;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;gap:2px;min-width:180px;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 40px #00000080}.home-profile-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;padding:4px 8px 2px;font-size:13px;font-weight:600;overflow:hidden}.home-profile-phone{color:#fff6;padding:0 8px 4px;font-size:12px}.home-profile-divider{background:#ffffff14;height:1px;margin:4px 0}.home-profile-action{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;transition:background .15s;display:flex}.home-profile-action.logout{color:#ffffffbf}.home-profile-action.logout:hover{color:#ef4444;background:#ef44441f}.home-project-card{-webkit-backdrop-filter:blur(12px);cursor:default;text-align:left;background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:14px;width:100%;padding:14px 16px;transition:background .15s,border-color .15s;display:flex;position:relative}.home-project-card.hovered{background:#ffffff1c;border-color:#ffffff2e}.home-project-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.home-proj-action-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:5px;padding:6px 11px;font-size:12px;font-weight:600;transition:background .15s,opacity .15s;display:flex}.home-proj-action-btn.view{color:#7ab3f0;background:#3071c540}.home-proj-action-btn.view:hover{color:#a8d0ff;background:#3071c566}.home-proj-action-btn.delete{color:#ef6464e6;background:#ef444426}.home-proj-action-btn.delete:hover{color:#ef4444;background:#ef444447}.home-proj-action-btn.confirm-del{color:#fff;background:#ef4444;animation:.15s fadeIn}.home-proj-action-btn.confirm-del:hover{background:#dc2626}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.home-theme-toggle{-webkit-backdrop-filter:blur(8px);cursor:pointer;color:#ffffffd9;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-right:8px;transition:background .15s,color .15s;display:flex}.home-theme-toggle:hover{background:#fff3}.home-screen.light-mode{background:linear-gradient(#ffffff85,#ffffff85),url(/bg-hero.jpg) 50%/cover no-repeat fixed}.home-screen.light-mode .home-title{color:#0f172a}.home-screen.light-mode .home-subtitle{color:#00000085}.home-screen.light-mode .home-projects-title{color:#0006}.home-screen.light-mode .home-project-name{color:#0f172a}.home-screen.light-mode .home-project-desc{color:#0000007a}.home-screen.light-mode .home-action-demo{-webkit-backdrop-filter:blur(14px);background:#ffffff9e;border:1px solid #ffffffe6;box-shadow:0 4px 24px #0000001a}.home-screen.light-mode .home-action-demo:hover{background:#ffffffbf}.home-screen.light-mode .home-action-demo .home-action-title{color:#0f172a}.home-screen.light-mode .home-action-demo .home-action-desc{color:#00000080}.home-screen.light-mode .home-action-demo .home-action-arrow{color:#00000061}.home-screen.light-mode .home-action-demo .home-action-icon{color:#2860b0;background:#3071c524}.home-screen.light-mode .home-project-card{-webkit-backdrop-filter:blur(14px);background:#ffffff94;border-color:#ffffffd9;box-shadow:0 2px 12px #00000017}.home-screen.light-mode .home-project-card.hovered{background:#ffffffc7;border-color:#3071c54d;box-shadow:0 6px 20px #0000001f}.home-screen.light-mode .home-project-icon{color:#2860b0;background:#3071c51f}.home-screen.light-mode .home-proj-action-btn{color:#0000008c;background:#00000012}.home-screen.light-mode .home-proj-action-btn:hover{background:#0000001f}.home-screen.light-mode .home-theme-toggle{-webkit-backdrop-filter:blur(10px);color:#1e293b;background:#ffffffad;border-color:#fffffff2;box-shadow:0 2px 8px #0000001a}.home-screen.light-mode .home-theme-toggle:hover{background:#ffffffd9}.home-screen.light-mode .home-profile-btn{-webkit-backdrop-filter:blur(10px);background:#ffffffad;border-color:#fffffff2;box-shadow:0 2px 8px #0000001a}.home-screen.light-mode .home-profile-btn:hover{background:#ffffffd9}.home-screen.light-mode .home-profile-initials{color:#1e293b}.home-screen.light-mode .home-profile-dropdown{-webkit-backdrop-filter:blur(20px);background:#ffffffe0;border-color:#fffffff2;box-shadow:0 16px 48px #00000026}.home-screen.light-mode .home-profile-name{color:#0f172a}.home-screen.light-mode .home-profile-phone{color:#00000073}.home-screen.light-mode .home-profile-divider{background:#00000014}.home-screen.light-mode .home-profile-action.logout{color:#000000a6}.home-screen.light-mode .home-profile-action.logout:hover{color:#ef4444;background:#ef444417}.upload-zone.drag-active{background:#3071c526;transform:scale(1.02)}.upload-zone.has-file{background:#10b9811a}.upload-zone:hover .upload-icon,.upload-zone.drag-active .upload-icon{color:#3071c5}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:#1c1c2a;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;width:100%;max-width:480px;display:flex;overflow:hidden;box-shadow:0 24px 80px #0009}.modal-header{justify-content:space-between;align-items:center;padding:20px 20px 0;display:flex}.modal-title{color:#fff;margin:0;font-size:18px;font-weight:600}.modal-close-btn{cursor:pointer;color:#fff9;background:#ffffff14;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-close-btn:hover{color:#fff;background:#ffffff24}.modal-close-btn svg{width:16px;height:16px}.modal-body{flex-direction:column;gap:20px;padding:20px;display:flex}.modal-field{flex-direction:column;gap:8px;display:flex}.modal-label{color:#ffffff8c;letter-spacing:.2px;font-size:13px;font-weight:500}.modal-input{color:#fff;box-sizing:border-box;background:#ffffff12;border:1px solid #ffffff1f;border-radius:12px;outline:none;width:100%;padding:11px 14px;font-size:15px;transition:border-color .15s}.modal-input:focus{border-color:#3071c599}.modal-input::placeholder{color:#ffffff40}.modal-dropzone{cursor:pointer;background:#ffffff0a;border:1.5px dashed #ffffff2e;border-radius:14px;justify-content:center;align-items:center;min-height:130px;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.modal-dropzone:hover:not(.has-file){background:#3071c50d;border-color:#3071c580}.modal-dropzone.drag-active{background:#3071c51a;border-color:#3071c5}.modal-dropzone.has-file{cursor:default;background:#3071c50f;border-style:solid;border-color:#3071c566;min-height:68px}.modal-dropzone-inner{color:#ffffff73;flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.modal-dropzone-text{color:#fff9;font-size:14px}.modal-dropzone-text strong{color:#fff}.modal-dropzone-hint{color:#ffffff59;font-size:12px}.modal-address-selected{color:#dbeafe;background:#3071c51f;border:1px solid #3071c559;border-radius:10px;margin-bottom:8px;padding:10px 12px;font-size:13px}.modal-address-results{flex-direction:column;gap:6px;display:flex}.modal-address-result{text-align:left;color:#ffffffe0;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;padding:10px 12px;font-size:13px}.modal-address-result:hover{background:#3071c529;border-color:#3071c561}.modal-file-preview{align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.modal-file-type-badge{color:#7ab3f0;letter-spacing:.5px;background:#3071c540;border-radius:8px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:700}.modal-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.modal-file-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.modal-file-size{color:#fff6;font-size:12px}.modal-file-clear{cursor:pointer;color:#ffffff80;background:#ffffff14;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.modal-file-clear:hover{color:#fff;background:#ffffff26}.modal-file-clear svg{width:13px;height:13px}.modal-field-error{color:#ef4444;align-items:center;gap:6px;font-size:12px;display:flex}.modal-footer{justify-content:flex-end;align-items:center;gap:10px;padding:0 20px 20px;display:flex}.modal-btn-cancel{color:#ffffffb3;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:12px;padding:10px 18px;font-size:14px;font-weight:500;transition:background .15s}.modal-btn-cancel:hover{background:#ffffff14}[data-theme=light] .modal-label{color:#0f172a9e}[data-theme=light] .modal-input{color:#111827;background:#0f172a0a;border-color:#0f172a24}[data-theme=light] .modal-input::placeholder{color:#0f172a5c}[data-theme=light] .modal-dropzone{background:#0f172a08;border-color:#0f172a2e}[data-theme=light] .modal-dropzone:hover:not(.has-file),[data-theme=light] .modal-dropzone.drag-active{background:#2563eb0f;border-color:#2563eb5c}[data-theme=light] .modal-dropzone-inner{color:#0f172a73}[data-theme=light] .modal-dropzone-text{color:#0f172a9e}[data-theme=light] .modal-dropzone-text strong{color:#111827}[data-theme=light] .modal-dropzone-hint{color:#0f172a6b}[data-theme=light] .modal-btn-cancel{color:#1f2937;background:#0f172a0a;border-color:#0f172a24}[data-theme=light] .modal-btn-cancel:hover{background:#0f172a14}[data-theme=light] .modal-address-selected{color:#1e3a8a;background:#2563eb14;border-color:#2563eb3d}[data-theme=light] .modal-address-result{color:#111827;background:#0f172a0a;border-color:#0f172a1f}[data-theme=light] .modal-address-result:hover{background:#2563eb14;border-color:#2563eb47}.modal-btn-primary{color:#fff;cursor:pointer;background:#3071c5;border:none;border-radius:12px;padding:10px 22px;font-size:14px;font-weight:600;transition:background .15s,opacity .15s}.modal-btn-primary:hover:not(:disabled){background:#2860b0}.modal-btn-primary:disabled{opacity:.4;cursor:not-allowed}.upload-error-toast{color:#fff;z-index:10000;cursor:pointer;background:#dc2626;border-radius:10px;align-items:center;gap:10px;max-width:90vw;padding:12px 20px;font-size:14px;animation:.3s toast-in;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #dc262659}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.upload-error-icon{background:#ffffff40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:flex}.upload-error-text{flex:1;line-height:1.35}.upload-error-dismiss{opacity:.7;flex-shrink:0;padding-left:4px;font-size:18px}.analysis-banner{color:#e0e0e0;z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e1e1eeb;border-radius:8px;align-items:center;gap:10px;padding:8px 16px;font-size:13px;animation:.3s toast-in;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}.analysis-banner-spinner{width:14px;height:14px;animation:spin var(--tp-spinner-duration,1.6s) linear infinite;border:2px solid #fff3;border-top-color:#60a5fa;border-radius:50%;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.lp-bg{background:linear-gradient(#0009,#0009),url(/bg-hero.jpg) 50%/cover no-repeat fixed;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.lp-card{-webkit-backdrop-filter:blur(24px);background:#ffffff12;border:1px solid #ffffff24;border-radius:24px;flex-direction:column;gap:28px;width:100%;max-width:400px;padding:36px 32px 32px;display:flex;box-shadow:0 24px 64px #00000080}.lp-brand{flex-direction:column;align-items:center;gap:10px;display:flex}.lp-brand-name{color:#fff;letter-spacing:-.3px;font-size:22px;font-weight:700}.lp-header{flex-direction:column;gap:6px;display:flex}.lp-back{color:#ffffff8c;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:8px;padding:0;font-size:13px;transition:color .15s;display:inline-flex}.lp-back:hover{color:#ffffffd9}.lp-title{color:#fff;letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.lp-subtitle{color:#ffffff80;margin:0;font-size:14px;line-height:1.5}.lp-form{flex-direction:column;gap:14px;display:flex}.lp-field{flex-direction:column;gap:6px;display:flex}.lp-label{color:#fff9;letter-spacing:.3px;text-transform:uppercase;font-size:12px;font-weight:600}.lp-required{color:#f87171}.lp-input{color:#fff;box-sizing:border-box;background:#ffffff14;border:1px solid #ffffff26;border-radius:12px;outline:none;width:100%;padding:12px 14px;font-size:16px;transition:border-color .15s,background .15s}.lp-input::placeholder{color:#ffffff47}.lp-input:focus{background:#ffffff1c;border-color:#3071c5b3}.lp-input-phone{letter-spacing:.5px;font-size:18px}.lp-input-code{letter-spacing:10px;text-align:center;padding:14px;font-size:28px;font-weight:600}.lp-error{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d;border-radius:10px;padding:10px 14px;font-size:13px;line-height:1.4}.lp-access-denial{color:#fde68a;background:#facc151f;border:1px solid #facc1547;border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}.lp-waitlist-link{color:#bfdbfe;background:#60a5fa2e;border:1px solid #60a5fa5c;border-radius:10px;justify-content:center;align-self:flex-start;align-items:center;min-height:36px;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.lp-waitlist-link:hover{color:#dbeafe;background:#60a5fa42}.lp-remember{color:var(--text-secondary,#fff9);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.lp-remember input[type=checkbox]{accent-color:#3071c5;cursor:pointer;flex-shrink:0;width:16px;height:16px}.lp-btn-primary{color:#fff;cursor:pointer;background:#3071c5;border:none;border-radius:12px;width:100%;margin-top:2px;padding:14px;font-size:15px;font-weight:600;transition:background .15s,opacity .15s}.lp-btn-primary:hover:not(:disabled){background:#2563ae}.lp-btn-primary:disabled{opacity:.45;cursor:not-allowed}.lp-btn-ghost{color:#ffffffb3;cursor:pointer;background:#ffffff12;border:1px solid #ffffff24;border-radius:12px;width:100%;padding:11px;font-size:14px;transition:background .15s}.lp-btn-ghost:hover{background:#ffffff1c}.lp-divider{color:#ffffff40;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:12px;font-size:12px;display:flex}.lp-divider:before,.lp-divider:after{content:"";background:#ffffff1f;flex:1;height:1px}.lp-btn-demo{color:#ffffff8c;cursor:pointer;background:0 0;border:1px dashed #ffffff38;border-radius:12px;width:100%;padding:12px;font-size:14px;transition:border-color .15s,color .15s}.lp-btn-demo:hover{color:#fffc;border-color:#fff6}.lp-fine-print{color:#ffffff4d;text-align:center;margin:0;font-size:11px;line-height:1.5}.lp-fine-print a{color:#ffffff73;text-decoration:none}.lp-fine-print a:hover{color:#ffffffa6}.lp-signup-link{color:#fff6;text-align:center;margin:0;font-size:13px}.lp-link{color:#60a5fa;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.lp-link:hover{color:#93c5fd}@media (width<=480px){.lp-card{border-radius:20px;padding:28px 20px 24px}}.lp-dev-section{flex-direction:column;gap:12px;margin-top:20px;display:flex}.lp-dev-divider{align-items:center;gap:8px;margin-bottom:12px;display:flex}.lp-dev-divider:before,.lp-dev-divider:after{content:"";background:#ffffff1a;flex:1;height:1px}.lp-dev-divider span{text-transform:uppercase;letter-spacing:1.5px;color:#ffffff40;font-size:10px;font-weight:600}.lp-btn-dev{color:#facc15b3;cursor:pointer;background:#facc150f;border:1px dashed #facc1566;border-radius:10px;width:100%;padding:10px;font-size:13px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.lp-btn-dev:hover:not(:disabled){color:#facc15;background:#facc151f;border-color:#facc1599}.lp-btn-dev:disabled{opacity:.5;cursor:default}.lp-dev-copy,.lp-dev-status,.lp-dev-note{color:#ffffff8c;margin:0;font-size:12px;line-height:1.5}.lp-dev-user-grid{flex-direction:column;gap:10px;display:flex}.lp-dev-user-card{color:#fff;cursor:pointer;text-align:left;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:14px;width:100%;padding:12px 14px;transition:transform .15s,border-color .15s,background .15s}.lp-dev-user-card:hover:not(:disabled){background:#3071c51f;border-color:#3071c58c;transform:translateY(-1px)}.lp-dev-user-card:disabled{opacity:.6;cursor:default}.lp-dev-user-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.lp-dev-user-name{font-size:14px;font-weight:600}.lp-dev-user-meta{color:#ffffff8f;font-size:12px;display:block}.lp-dev-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:4px 8px;font-size:10px;font-weight:700}.lp-dev-badge--admin{color:#93c5fd;background:#3b82f62e}.lp-dev-badge--foreman{color:#fde68a;background:#facc1529}.lp-dev-badge--tradesman{color:#86efac;background:#34d39929}.lp-dev-links{background:#ffffff0a;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.lp-dev-links-title{letter-spacing:.7px;text-transform:uppercase;color:#fff6;font-size:11px;font-weight:700}.lp-dev-link{color:#93c5fd;font-size:13px;text-decoration:none}.lp-dev-link:hover{color:#bfdbfe}.review-login-panel{flex-direction:column;gap:10px;display:flex}.review-login-panel--disabled{gap:7px}.review-login-trigger{justify-content:space-between;align-items:center;gap:12px;display:flex}.review-login-trigger-main{justify-content:center;align-items:center;gap:8px;min-width:0;display:inline-flex}.review-login-disabled-trigger{justify-content:center;align-items:center;display:flex}.review-login-disabled-trigger:disabled,.review-login-disabled-trigger:hover:disabled{cursor:not-allowed;opacity:.62;background:#ffffff12}.review-login-disabled-message{color:#dbeafead;text-align:center;margin:0;font-size:12px;line-height:1.4}.review-login-chevron{flex:none;transition:transform .15s}.review-login-chevron--open{transform:rotate(180deg)}.review-login-personas{background:#0f172a6b;border:1px solid #93c5fd2e;border-radius:14px;flex-direction:column;gap:9px;padding:10px;display:flex}.review-login-description{color:#dbeafebd;margin:0 2px 2px;font-size:12px;line-height:1.45}.review-login-persona{color:#fff;cursor:pointer;text-align:left;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;grid-template-columns:34px 1fr;align-items:center;gap:10px;width:100%;min-height:72px;padding:10px;transition:border-color .15s,background .15s,transform .15s;display:grid}.review-login-persona:hover:not(:disabled){background:#2563eb29;border-color:#60a5fa7a;transform:translateY(-1px)}.review-login-persona:disabled{cursor:default;opacity:.58}.review-login-persona-icon{color:#bfdbfe;background:#60a5fa29;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.review-login-persona-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.review-login-persona-title{color:#fff;font-size:13px;font-weight:700}.review-login-persona-meta{color:#ffffff94;font-size:11px;line-height:1.35}.create-company-bg{background:var(--bg-primary,#111);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.create-company-card{background:var(--bg-secondary,#1a1a1a);border:1px solid var(--border-color,#2a2a2a);border-radius:16px;flex-direction:column;align-items:center;gap:0;width:100%;max-width:420px;padding:40px 32px 32px;display:flex}.create-company-logo{align-items:center;gap:10px;margin-bottom:28px;display:flex}.create-company-brand{color:var(--color-text);letter-spacing:-.3px;font-size:1.2rem;font-weight:700}.create-company-title{color:var(--color-text);text-align:center;margin:0 0 10px;font-size:1.45rem;font-weight:700}.create-company-sub{color:var(--color-text-muted);text-align:center;margin:0 0 28px;font-size:.9rem;line-height:1.5}.create-company-sub strong{color:var(--color-text)}.create-company-form{flex-direction:column;gap:16px;width:100%;display:flex}.create-company-field{flex-direction:column;gap:6px;display:flex}.create-company-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.create-company-input-wrap{align-items:center;display:flex;position:relative}.create-company-input{border:1.5px solid var(--border-color,#333);background:var(--bg-primary,#111);width:100%;color:var(--color-text);box-sizing:border-box;border-radius:10px;outline:none;padding:12px 40px 12px 14px;font-size:1rem;transition:border-color .2s}.create-company-input:focus{border-color:#2563eb}.create-company-input.input-ok{border-color:#22c55e}.create-company-input.input-err{border-color:#ef4444}.create-company-input::placeholder{color:var(--color-text-subtle)}.create-company-status{pointer-events:none;align-items:center;display:flex;position:absolute;right:12px}.spin{animation:spin var(--tp-spinner-duration,1.6s) linear infinite;color:var(--color-text-subtle)}.create-company-hint{margin-top:2px;font-size:.8rem}.create-company-hint.ok{color:#22c55e}.create-company-hint.err{color:#ef4444}.create-company-error{color:#ef4444;background:#ef444422;border:1px solid #ef444444;border-radius:8px;padding:10px 14px;font-size:.85rem}.create-company-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:10px;width:100%;margin-top:4px;padding:13px;font-size:1rem;font-weight:600;transition:opacity .2s,background .2s}.create-company-btn:disabled{opacity:.45;cursor:not-allowed}.create-company-btn:not(:disabled):hover{background:#1d4ed8}.create-company-logout{color:var(--color-text-subtle);cursor:pointer;background:0 0;border:none;margin-top:20px;font-size:.82rem;text-decoration:underline}.create-company-logout:hover{color:var(--color-text-muted)}@media (prefers-color-scheme:light){.create-company-bg{background:#f5f5f5}.create-company-card{background:#fff;border-color:#e5e7eb}.create-company-input{background:#fafafa;border-color:#d1d5db}}[data-theme=light] .create-company-bg{background:#f5f5f5}[data-theme=light] .create-company-card{background:#fff;border-color:#e5e7eb}[data-theme=light] .create-company-input{background:#fafafa;border-color:#d1d5db}.qr-page{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--select-caret-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M2 2.5L7 7.5L12 2.5' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");--color-bg:#000;--color-surface:#18181b;--color-surface-elevated:#27272a;--color-surface-muted:#24262d;--color-surface-input:#1f2937;--color-border:#4b5563;--color-text:#f8fafc;--color-text-muted:#cbd5e1;--color-text-subtle:#94a3b8;--color-link:#93c5fd;--color-action-primary-bg:#0b57d0;--color-action-primary-fg:#fff;--color-action-secondary-bg:#2f333b;--color-action-secondary-fg:#f8fafc;--color-danger-bg:#7f1d1d;--color-danger-fg:#fff;color:#fff;background:#000;min-height:100vh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif}.qr-header{-webkit-backdrop-filter:blur(20px);z-index:10;background:#ffffff0d;border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.qr-header-logo{width:32px;height:32px}.qr-header h1{flex:1;margin:0;font-size:18px;font-weight:600}.qr-header-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:600}.qr-header-badge.project{color:#6ba3e8;background:#3071c54d}.qr-header-badge.room{color:#e8ad00;background:#e8ad004d}.qr-header-badge.device{color:#5cc98a;background:#2e8b574d}.qr-content{max-width:480px;margin:0 auto;padding:20px}.qr-content.qr-content-wide{max-width:720px}.qr-login{color:#fff;background:#000;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.qr-login-logo{width:64px;height:64px;margin-bottom:16px}.qr-login h1{margin:0 0 8px;font-size:24px;font-weight:700}.qr-login p{color:#ffffff80;text-align:center;margin:0 0 32px;font-size:14px}.qr-login-form{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.qr-input{background:var(--color-surface-input);border:1px solid var(--color-border);color:var(--color-text);box-sizing:border-box;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-size:16px;transition:border-color .2s}select.qr-input{appearance:none;padding-right:46px}.qr-input:focus{border-color:#3071c5}.qr-input::placeholder{color:var(--color-text-subtle)}.qr-btn{color:#fff;cursor:pointer;background:#3071c5;border:none;border-radius:12px;width:100%;padding:14px 24px;font-size:16px;font-weight:600;transition:opacity .2s}.qr-btn:active{opacity:.8}.qr-btn:disabled{opacity:.4;cursor:not-allowed}.qr-btn.secondary{background:var(--color-action-secondary-bg);color:var(--color-action-secondary-fg)}.qr-error{color:#fca5a5;text-align:center;background:#ef444426;border:1px solid #ef44444d;border-radius:12px;padding:12px 16px;font-size:14px}.qr-access-denial{color:#fde68a;text-align:center;background:#facc151f;border:1px solid #facc154d;border-radius:12px;flex-direction:column;gap:10px;padding:12px 16px;font-size:14px;line-height:1.45;display:flex}.qr-access-denial a{color:#bfdbfe;background:#60a5fa2e;border:1px solid #60a5fa5c;border-radius:10px;align-self:center;align-items:center;min-height:36px;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.qr-access-denial a:hover{color:#dbeafe;background:#60a5fa42}.qr-success{color:#86efac;text-align:center;background:#22c55e26;border:1px solid #22c55e4d;border-radius:12px;padding:16px}.qr-success h3{margin:0 0 4px;font-size:18px}.qr-success p{color:#ffffff80;margin:0;font-size:13px}.qr-checkin-card{text-align:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:20px;padding:24px}.qr-checkin-card h2{margin:0 0 4px;font-size:20px}.qr-checkin-card .subtitle{color:#ffffff80;margin:0 0 20px;font-size:13px}.qr-checkin-time{color:#86efac;margin:8px 0;font-size:36px;font-weight:700}.qr-section{margin-bottom:24px}.qr-section h3{color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:14px;font-weight:600}.qr-device-list{flex-direction:column;gap:8px;display:flex}.qr-device-item{cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;transition:background .2s;display:flex}.qr-device-item:active{background:#ffffff1a}.qr-device-item.selected{background:#3071c51a;border-color:#3071c5}.qr-device-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.qr-device-icon.electrical{color:#e8ad00;background:#e8ad0033}.qr-device-icon.plumbing{color:#6ba3e8;background:#0b57d033}.qr-device-icon.hvac{color:#5cc98a;background:#2e8b5733}.qr-device-info{flex:1;min-width:0}.qr-device-info .name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;overflow:hidden}.qr-device-info .detail{color:#fff6;margin-top:2px;font-size:12px}.qr-device-status{gap:4px;display:flex}.qr-status-dot{background:#ffffff26;border-radius:50%;width:8px;height:8px}.qr-status-dot.active{background:#22c55e}.qr-status-dot.warning{background:#e8ad00}.qr-checkbox{cursor:pointer;border:2px solid #fff3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.qr-checkbox.checked{background:#3071c5;border-color:#3071c5}.qr-bulk-bar{-webkit-backdrop-filter:blur(20px);z-index:20;background:#000000e6;border-top:1px solid #ffffff1a;align-items:center;gap:12px;padding:16px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.qr-bulk-bar span{flex:1;font-size:14px;font-weight:500}.qr-bulk-actions{gap:8px;display:flex}.qr-bulk-btn{cursor:pointer;color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:600}.qr-bulk-btn.roughin{color:#000;background:#e8ad00}.qr-bulk-btn.installed{background:#3071c5}.qr-bulk-btn.inspected{color:#000;background:#22c55e}.qr-device-detail{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:16px;padding:20px}.qr-device-detail h2{margin:0 0 4px;font-size:20px}.qr-device-detail .trade-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:100px;margin-bottom:16px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}.qr-device-detail .trade-badge.electrical{color:#e8ad00;background:#e8ad0033}.qr-device-detail .trade-badge.plumbing{color:#6ba3e8;background:#0b57d033}.qr-device-detail .trade-badge.hvac{color:#5cc98a;background:#2e8b5733}.qr-specs-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.qr-spec-item{background:#ffffff0d;border-radius:10px;padding:12px}.qr-spec-item .label{color:#fff6;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px}.qr-spec-item .value{font-size:15px;font-weight:600}.qr-status-section{flex-direction:column;gap:10px;display:flex}.qr-status-row{background:#ffffff0d;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.qr-status-row .label{font-size:15px;font-weight:500}.qr-status-row .timestamp{color:#fff6;margin-top:2px;font-size:12px}.qr-toggle{cursor:pointer;background:#ffffff26;border:none;border-radius:14px;flex-shrink:0;width:48px;height:28px;transition:background .2s;position:relative}.qr-toggle.active{background:#22c55e}.qr-toggle:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.qr-toggle.active:after{transform:translate(20px)}.qr-checkin-list{flex-direction:column;gap:8px;display:flex}.qr-checkin-item{border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;padding:10px 0;display:flex}.qr-checkin-avatar{color:#6ba3e8;background:#3071c533;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.qr-checkin-info{flex:1}.qr-checkin-info .name{font-size:14px;font-weight:500}.qr-checkin-info .detail,.qr-checkin-time-small{color:#fff6;font-size:12px}.qr-loading{color:#ffffff80;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.qr-spinner{width:32px;height:32px;animation:spin var(--tp-spinner-duration,1.6s) linear infinite;border:3px solid #ffffff1a;border-top-color:#3071c5;border-radius:50%}.qr-select-all{color:#fff9;cursor:pointer;align-items:center;gap:8px;padding:8px 0 12px;font-size:14px;display:flex}.qr-back-btn{color:#6ba3e8;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:14px;display:flex}.qr-user-badge{background:#ffffff0d;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.qr-user-badge .avatar{color:#6ba3e8;background:#3071c54d;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:flex}.qr-admin-content{min-height:0}.qr-admin-workspace{height:100%;min-height:0;color:var(--color-text)}.qr-admin-rail{flex-direction:column;gap:14px;display:flex}.qr-admin-rail-section{border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:8px;padding:12px}.qr-admin-action-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qr-admin-filter-stack{gap:8px;display:grid}.qr-admin-search-control{border:1px solid var(--color-border);background:var(--color-surface-input);height:34px;color:var(--color-text-subtle);box-sizing:border-box;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.qr-admin-search-control input{width:100%;min-width:0;color:var(--color-text);background:0 0;border:0;outline:0;font-size:12px}.qr-admin-search-control input::placeholder{color:var(--color-text-subtle)}.qr-admin-compact-select,.qr-admin-compact-select.themed-select-trigger{border-radius:8px;height:34px;min-height:34px;padding-top:0;padding-bottom:0;font-size:12px}.qr-admin-main{min-width:0}.qr-admin-main-toolbar{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.qr-admin-main-toolbar h2{margin:0;font-size:18px;line-height:1.25}.qr-admin-main-toolbar p{color:var(--color-text-subtle);margin:4px 0 0;font-size:12px}.qr-admin-scroll{padding:16px}.qr-admin-project-summary{border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}@media (width<=760px){.qr-admin-workspace{height:auto}.qr-admin-scroll{overflow:visible}}.qr-device-header{-webkit-backdrop-filter:blur(20px);z-index:10;background:#ffffff0d;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.qr-device-header h3{margin:0;font-size:18px;font-weight:600}.qr-close-btn{cursor:pointer;background:#00000014;border:1.5px solid #0000002e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex;box-shadow:0 1px 4px #00000026}.qr-close-btn svg{stroke:#333;color:#333;width:16px;height:16px}[data-theme=dark] .qr-close-btn{background:#ffffff2e;border:1.5px solid #fff6;box-shadow:0 1px 4px #0000004d}[data-theme=dark] .qr-close-btn svg{stroke:#fff;color:#fff}.qr-device-tabs{border-bottom:1px solid #ffffff1a;padding:0 20px;display:flex}.qr-device-tab{color:#fff6;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:12px 0;font-size:14px;font-weight:500;transition:all .2s}.qr-device-tab.active{color:#fff;border-bottom-color:#3071c5;font-weight:600}.qr-device-content{padding:20px}.qr-checkbox-container{flex-direction:column;gap:8px;display:flex}.qr-checkbox-row{cursor:pointer;background:#ffffff0d;border:1.5px solid #0000;border-radius:12px;align-items:center;gap:14px;padding:16px;display:flex}.qr-checkbox-row:active{transform:scale(.98)}.qr-checkbox-row.next-action{background:#3071c51a;border-color:#3071c5}.qr-checkbox-row.next-action .qr-checkmark{border-color:#3071c5}.qr-checkbox-row.next-action .qr-checkbox-label{color:#fff;font-weight:600}.qr-checkbox-row.completed-step{background:#22c55e14}.qr-checkbox-row.completed-step .qr-checkbox-label{color:#ffffff80}.qr-checkbox-row.disabled{opacity:.4;pointer-events:none}.qr-checkbox-row input[type=checkbox]{display:none}.qr-checkmark{background:0 0;border:2px solid #ffffff40;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.qr-checkbox-row input:checked+.qr-checkmark{background:#3071c5;border-color:#3071c5}.qr-checkbox-row input:checked+.qr-checkmark:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;margin-top:-2px;transform:rotate(45deg)}.qr-checkbox-row.completed-step input:checked+.qr-checkmark{background:#22c55e;border-color:#22c55e}.qr-checkbox-label{color:#ffffff80;font-size:15px;font-weight:400}.qr-photos-section{margin-top:20px}.qr-photos-grid{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.qr-photo-thumb{border-radius:8px;width:72px;height:72px;position:relative;overflow:hidden}.qr-photo-thumb img{object-fit:cover;cursor:pointer;width:100%;height:100%}.qr-photo-delete{cursor:pointer;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex;position:absolute;top:4px;right:4px}.qr-photo-delete svg{color:#fff;width:10px;height:10px}.qr-add-photo-btn{color:#fff6;cursor:pointer;background:0 0;border:2px dashed #ffffff26;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:14px;transition:all .2s;display:flex}.qr-add-photo-btn:active{background:#ffffff0d}.qr-add-photo-btn svg{width:20px;height:20px}.qr-notes-section{margin-top:20px}.qr-notes-section h4{text-transform:uppercase;letter-spacing:.5px;color:#fff6;margin:0 0 8px;font-size:11px;font-weight:600}.qr-notes-input{color:#fff;resize:vertical;box-sizing:border-box;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;outline:none;width:100%;padding:12px;font-family:inherit;font-size:14px;transition:border-color .2s}.qr-notes-input:focus{border-color:#3071c5}.qr-notes-input::placeholder{color:#ffffff40}.qr-save-btn{color:#fff;cursor:pointer;background:#3071c5;border:none;border-radius:10px;width:100%;margin-top:20px;padding:14px;font-size:16px;font-weight:600;transition:all .2s}.qr-save-btn:active:not(:disabled){background:#2560a8;transform:scale(.98)}.qr-save-btn:disabled{opacity:.6;cursor:not-allowed}.qr-submittal-specs h4{margin:0 0 12px;font-size:15px;font-weight:600}.qr-spec-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.qr-spec-label{color:#fff6;flex-shrink:0;min-width:90px;padding-right:12px;font-size:13px}.qr-spec-value{color:#fff;text-align:right;word-break:break-word;flex:1;font-size:13px}.qr-view-pdf-btn{text-align:center;color:#3071c5;background:#3071c526;border-radius:10px;margin-top:16px;padding:12px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s;display:block}.qr-empty-state{text-align:center;color:#ffffff4d;padding:40px 20px}.qr-empty-state svg{opacity:.4;margin-bottom:16px}.qr-empty-title{color:#ffffff80;margin:0 0 6px;font-size:16px;font-weight:600}.qr-empty-desc{margin:0;font-size:13px;line-height:1.4}.lock-reason-text{color:#f59e0b;align-items:center;gap:4px;margin-top:4px;font-size:11px;font-weight:500;line-height:1.3;display:flex}.checklist-timestamp{color:#ffffff4d;align-items:center;gap:3px;margin-top:3px;font-size:10px;display:flex}.photo-upload-error{color:#fca5a5;background:#ef44441f;border:1px solid #ef444440;border-radius:8px;align-items:center;gap:6px;margin-top:8px;padding:8px 12px;font-size:12px;line-height:1.4;display:flex}.qr-add-photo-btn.uploading{opacity:.6;pointer-events:none}.qr-attr-section{margin-bottom:20px}.qr-attr-section h4{text-transform:uppercase;letter-spacing:.5px;color:#fff6;margin:0 0 8px;font-size:11px;font-weight:600}.qr-input-error{border-color:#ef444499}.qr-field-error{color:#fca5a5;margin:-4px 0 0 4px;font-size:12px}.qr-remember{color:#fff9;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.qr-remember input[type=checkbox]{accent-color:#3071c5;cursor:pointer;flex-shrink:0;width:16px;height:16px}.qr-session-warning{z-index:100;color:#000;background:#e8ad00f2;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:500;animation:.3s ease-out qr-slide-down;display:flex;position:fixed;top:0;left:0;right:0}@keyframes qr-slide-down{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.qr-session-warning span{flex:1}.qr-session-warning-btn{color:#000;cursor:pointer;white-space:nowrap;background:#0003;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.qr-session-warning-btn:active{background:#0000004d}.qr-session-warning-dismiss{color:#00000080;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}
