:root{--bg:#f6f7f9;--panel:#ffffff;--ink:#18202f;--muted:#667085;--line:#d9dee7;--soft-line:#edf0f5;--accent:#146c5f;--accent-strong:#0d4f46;--danger:#b42318;--success:#087443;--warning-bg:#fff8e6;--nav:#101828;--nav-active:#1d2939;--shadow:0 1px 2px rgba(16,24,40,0.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.viewer-shell{align-items:center;background:#0b111c;color:#ffffff;display:grid;min-height:100vh;padding:28px}.viewer-stage{display:grid;grid-gap:24px;gap:24px;margin:0 auto;max-width:980px;width:100%}.public-viewer-stage{max-width:1180px}.viewer-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.viewer-stage h1{font-size:32px}.viewer-stage p{color:#cfd8e8;margin:6px 0 0}.viewer-placeholder{align-items:center;aspect-ratio:16/9;background:#111827;border:1px solid #334155;border-radius:8px;display:grid;justify-items:center;padding:24px;text-align:center}.public-model-frame{position:relative}.viewer-ar-control{align-items:center;background:rgba(11,17,28,.92);border:1px solid rgba(169,240,219,.35);border-radius:8px;bottom:22px;color:#ffffff;display:grid;grid-gap:5px;gap:5px;left:22px;max-width:360px;padding:12px;position:absolute;z-index:2}.viewer-ar-control button{justify-self:flex-start;min-height:42px}.viewer-ar-control small,.viewer-ar-control span{color:#cfd8e8;font-size:12px;line-height:1.35}.viewer-ar-control small{color:#a9f0db}.viewer-ar-control.disabled{border-color:rgba(255,232,164,.38)}.viewer-ar-control.disabled button{background:#475467;cursor:not-allowed}.public-model-stage{background:#f8fafc;border:1px solid #334155;border-radius:8px;height:min(72vh,760px);min-height:560px;overflow:hidden}.viewer-qr-card{align-items:center;background:#ffffff;border:1px solid #d9dee7;border-radius:8px;bottom:22px;box-shadow:0 16px 34px rgba(15,23,42,.18);color:var(--ink);display:grid;grid-gap:14px;gap:14px;grid-template-columns:118px minmax(0,1fr) auto;max-width:540px;padding:14px;position:absolute;right:22px}.viewer-qr-card img{border:1px solid var(--soft-line);border-radius:6px;height:118px;width:118px}.viewer-qr-card div{display:grid;grid-gap:5px;gap:5px;min-width:0}.viewer-qr-card small,.viewer-qr-card span{color:var(--muted);line-height:1.3;overflow-wrap:anywhere}.viewer-qr-close,.viewer-qr-toggle{background:#101828;border-color:#101828}.viewer-qr-close{align-self:flex-end}.viewer-qr-toggle{bottom:22px;position:absolute;right:22px}.viewer-status{border:1px solid #334155;border-radius:999px;color:#cfd8e8;flex:0 0 auto;font-size:13px;padding:8px 12px}.viewer-status.ready{background:rgba(20,108,95,.16);border-color:rgba(76,194,164,.45);color:#a9f0db}.viewer-status.warning{background:rgba(255,248,230,.08);border-color:rgba(246,200,95,.45);color:#ffe8a4}.viewer-placeholder strong{font-size:20px}.viewer-actions span,.viewer-placeholder span{color:#cfd8e8}.model-load-placeholder{aspect-ratio:auto;border:0;height:100%}.viewer-actions{display:flex;flex-wrap:wrap;gap:10px}.viewer-actions span{border:1px solid #334155;border-radius:999px;font-size:13px;padding:8px 12px}.qr-menu-shell{--menu-accent:#f6c85f;--menu-primary:#137966;background:#f6f7f9;color:var(--ink);min-height:100vh;padding:28px}.qr-menu-page{display:grid;grid-gap:22px;gap:22px;margin:0 auto;max-width:1120px;width:100%}.qr-menu-header{align-items:flex-start;background:#ffffff;border:1px solid var(--line);border-top:5px solid var(--menu-primary);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:20px;gap:20px;grid-template-columns:72px minmax(0,1fr) auto;padding:22px}.qr-menu-cover{aspect-ratio:5/1;border-radius:6px;grid-column:1/-1;max-height:220px;min-height:140px;width:100%}.qr-menu-cover,.qr-menu-logo{display:block;object-fit:cover}.qr-menu-logo{aspect-ratio:1;background:#eef8f5;border:1px solid var(--soft-line);border-radius:8px;height:72px;width:72px}.qr-menu-logo.placeholder{align-items:center;color:var(--menu-primary);display:flex;font-size:28px;font-weight:850;justify-content:center}.qr-menu-header-main{min-width:0}.qr-menu-header h1{color:var(--menu-primary);font-size:30px;margin:2px 0 0}.qr-menu-header p{color:var(--muted);margin:6px 0 0}.qr-menu-header .viewer-status{border-color:var(--line);color:var(--muted)}.qr-menu-header .viewer-status.ready{color:var(--menu-primary)}.qr-menu-profile-lines{color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 12px;line-height:1.4;margin-top:12px}.qr-menu-profile-lines span{overflow-wrap:anywhere}.qr-menu-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.qr-menu-tags span{background:color-mix(in srgb,var(--menu-accent) 24%,#ffffff);border:1px solid color-mix(in srgb,var(--menu-accent) 45%,#ffffff);border-radius:999px;color:var(--ink);font-size:12px;font-weight:750;padding:5px 9px}.qr-menu-section{background:#ffffff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:16px;gap:16px;padding:20px}.qr-menu-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr)}.qr-menu-item{align-items:center;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(300px,1.5fr) minmax(330px,1.2fr) minmax(150px,.5fr);padding:16px}.qr-menu-item.unavailable{background:#fbfcfd}.qr-menu-item-main{align-items:flex-start;display:grid;grid-gap:12px;gap:12px;grid-template-columns:74px minmax(0,1fr)}.qr-menu-item-copy{min-width:0}.qr-menu-thumb{aspect-ratio:1;background:#eef3f0;border:1px solid var(--soft-line);border-radius:8px;display:block;height:74px;object-fit:cover;width:74px}.qr-menu-thumb.placeholder{align-items:center;color:var(--accent-strong);display:flex;font-size:24px;font-weight:800;justify-content:center}.qr-menu-item h3{font-size:20px;margin:2px 0 0}.qr-menu-title-row{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.qr-menu-ready-badge{border-radius:999px;flex:0 0 auto;font-size:11px;font-weight:800;padding:5px 8px;white-space:nowrap}.qr-menu-ready-badge.ready{background:#eef8f5;color:var(--menu-primary)}.qr-menu-ready-badge.pending{background:#fff8e6;color:#875a00}.qr-menu-item p{color:var(--muted);font-size:13px;line-height:1.45;margin:6px 0 0}.qr-menu-item-action{min-width:0}.qr-menu-item .button-link{background:var(--menu-primary);border-color:var(--menu-primary);min-height:42px;width:100%}.qr-menu-item .button-link:hover{background:color-mix(in srgb,var(--menu-primary) 82%,#000000);border-color:color-mix(in srgb,var(--menu-primary) 82%,#000000)}.qr-menu-item .button-link.disabled{background:#8eb9ae;border-color:#8eb9ae}.qr-menu-item-facts{display:grid;grid-gap:10px 14px;gap:10px 14px;grid-template-columns:repeat(3,minmax(90px,1fr));margin:0}.qr-menu-item dt{color:var(--muted);font-size:11px}.qr-menu-item dd{font-size:13px}.qr-menu-unavailable{display:grid;grid-gap:6px;gap:6px}.qr-menu-unavailable small{color:var(--muted);font-size:12px;line-height:1.35;text-align:left}.qr-menu-disclaimer{color:var(--muted);font-size:12px;line-height:1.45;margin:0}.qr-menu-readiness{align-items:center;border:1px solid var(--soft-line);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.qr-menu-readiness.ready{background:#ecfdf3;border-color:rgba(19,121,102,.28)}.qr-menu-readiness.pending{background:#fff8e6;border-color:rgba(190,129,0,.26)}.qr-menu-readiness strong{color:var(--ink);font-size:13px}.qr-menu-readiness span{color:var(--muted);font-size:13px;line-height:1.35}.qr-menu-category-nav{display:flex;flex-wrap:wrap;gap:8px}.qr-menu-category-nav a{align-items:center;background:#ffffff;border:1px solid var(--line);border-radius:999px;color:var(--ink);display:inline-flex;gap:8px;min-height:40px;padding:0 12px;text-decoration:none}.qr-menu-category-nav span{font-size:13px;font-weight:700}.qr-menu-category-nav strong{align-items:center;background:rgba(19,121,102,.1);border-radius:999px;color:var(--menu-primary,#137966);display:inline-flex;font-size:12px;height:24px;justify-content:center;min-width:24px;padding:0 7px}.analytics-filter-bar{align-items:end;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(160px,1fr)) repeat(2,auto);margin-bottom:16px;padding:14px}.analytics-filter-bar label{display:grid;grid-gap:6px;gap:6px}.analytics-filter-bar span{color:var(--muted);font-size:12px;font-weight:700}.analytics-filter-bar input{border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit;min-height:42px;padding:0 12px}.ar-launch-button{background:#0f766e;border:1px solid rgba(169,240,219,.6);border-radius:999px;bottom:18px;box-shadow:0 12px 28px rgba(15,23,42,.24);color:#ffffff;cursor:pointer;font:700 14px/1.2 Inter,system-ui,sans-serif;left:18px;min-height:44px;padding:0 18px;position:absolute}.viewer-platform-bar{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.viewer-platform-card{background:#101828;border:1px solid #334155;border-radius:8px;display:grid;grid-gap:4px;gap:4px;padding:12px}.viewer-platform-card.active{border-color:rgba(76,194,164,.7);box-shadow:inset 3px 0 0 #0f766e}.viewer-platform-card strong{color:#ffffff;font-size:13px}.viewer-platform-card span{color:#cfd8e8;font-size:12px;line-height:1.4}.viewer-info-bar{align-items:center;display:flex;gap:18px;justify-content:space-between}.viewer-info-bar,.viewer-menu-card{background:#101828;border:1px solid #334155;border-radius:8px;padding:14px 16px}.viewer-menu-card{display:grid;grid-gap:12px;gap:12px}.viewer-menu-card h2{color:#ffffff}.viewer-menu-card dl{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:0}.viewer-menu-card dt{color:#9ca3af;font-size:11px;margin-bottom:4px}.viewer-menu-card dd{color:#eef4ff;font-size:13px;margin:0;overflow-wrap:anywhere}.viewer-menu-disclaimer{border-top:1px solid #334155;color:#cfd8e8;font-size:12px;line-height:1.45;margin:0;padding-top:10px}.viewer-menu-assumptions{border:1px solid #334155;border-radius:6px;color:#cfd8e8;font-size:12px;padding:10px 12px}.viewer-menu-assumptions summary{color:#ffffff;cursor:pointer;font-weight:700}.viewer-menu-assumptions ul{margin:8px 0 0;padding-left:18px}.viewer-info-main{display:grid;grid-gap:4px;gap:4px;min-width:220px}.viewer-info-main span{color:#cfd8e8;font-size:13px}.viewer-facts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.viewer-facts span{border:1px solid #334155;border-radius:999px;color:#cfd8e8;font-size:12px;padding:7px 10px}.login-shell{align-items:center;display:grid;min-height:100vh;padding:24px}.login-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:18px;gap:18px;margin:0 auto;max-width:420px;padding:28px;width:100%}.login-form,.profile-switch{display:grid;grid-gap:12px;gap:12px}.profile-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{display:grid;grid-template-columns:248px minmax(0,1fr)}.shell,.sidebar{min-height:100vh}.sidebar{background:var(--nav);border-right:1px solid var(--line);color:#eef4ff;display:flex;flex-direction:column;padding:24px 18px}.brand{font-size:17px;font-weight:700;margin-bottom:28px}nav{align-content:start;display:grid;flex:1 1;grid-gap:6px;gap:6px;grid-auto-rows:max-content}.nav-button{background:transparent;border:0;border-radius:6px;color:#cfd8e8;cursor:pointer;font:inherit;font-size:14px;min-height:40px;padding:10px 12px;text-align:left}.nav-button.active,.nav-button:hover{background:var(--nav-active);color:#ffffff}.sidebar-footer{border-top:1px solid rgba(238,244,255,.12);display:grid;grid-gap:10px;gap:10px;padding-top:14px}.sidebar-footer small{color:#cfd8e8}.nav-logout{background:transparent;border-color:rgba(238,244,255,.2);color:#ffffff;width:100%}.nav-logout:hover{background:var(--nav-active)}.workspace{min-width:0}.topbar{background:var(--panel);border-bottom:1px solid var(--line);gap:18px;justify-content:space-between;min-height:88px;padding:20px 28px}.topbar,.topbar-actions{align-items:center;display:flex}.topbar-actions{gap:10px}.user-chip{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:1px;gap:1px;min-width:150px;padding:7px 10px}.eyebrow,.user-chip span,dt,small{color:var(--muted)}.user-chip span,dt,small{font-size:12px}.user-chip strong{font-size:13px;font-weight:700}.eyebrow{font-size:13px;margin:0 0 4px}h1,h2{letter-spacing:0;margin:0}h1{font-size:25px;line-height:1.2}h2{font-size:15px;line-height:1.3}.pill{border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;padding:6px 10px;white-space:nowrap}.pill.saved{border-color:#8bd8bc;color:var(--accent-strong)}.pill.error{border-color:#f7b7ae;color:var(--danger)}.content-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) 320px;padding:24px 28px}.content-grid.wide{grid-template-columns:minmax(360px,.95fr) minmax(440px,1.25fr)}.asset-editor-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(420px,.8fr) minmax(0,1.7fr);padding:24px 28px}.panel,.summary{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel{display:grid;grid-gap:22px;gap:22px;min-width:0;padding:22px}.summary{align-self:start;padding:20px}.panel section,.summary{display:grid;grid-gap:14px;gap:14px}.section-heading{align-items:center;display:flex;gap:14px;justify-content:space-between}.section-actions{align-items:flex-end;display:flex;gap:10px}.compact-field{min-width:210px}.field-grid{display:grid;grid-gap:14px;gap:14px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.branding-upload-card{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:12px}.branding-upload-card label{gap:8px}.branding-upload-card span,.hint{overflow-wrap:anywhere}.branding-upload-card span,.hint,.unit-note{color:var(--muted);font-size:13px;line-height:1.4}.unit-note{margin:-6px 0 0}.span-two{grid-column:span 2}.ingredient-rows{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:12px}.ingredient-rows-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.ingredient-row-limit,.ingredient-rows-heading small{color:var(--muted);font-size:12px}.ingredient-row-grid{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(180px,1.5fr) minmax(90px,.7fr) minmax(100px,.8fr) minmax(180px,1.4fr) 40px}button.ingredient-row-remove{align-items:center;background:#ffffff;border:1px solid var(--line);color:var(--danger);display:inline-flex;font-size:22px;height:40px;justify-content:center;padding:0;width:40px}button.ingredient-row-remove:hover{background:#fff5f5;border-color:#e8b0b0;color:var(--danger)}label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px}input,select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff;border:1px solid #cfd6e1;border-radius:6px;color:var(--ink);font:inherit;min-height:40px;padding:8px 10px;width:100%}textarea{min-height:62px;resize:vertical}input[readonly]{background:#f9fafb;color:var(--muted)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,108,95,.12);outline:none}.actions{display:flex;gap:10px;justify-content:flex-end}.actions.left{justify-content:flex-start}button{background:var(--accent);border:1px solid var(--accent);border-radius:6px;color:#ffffff;cursor:pointer;font:inherit;font-weight:650;min-height:40px;padding:8px 14px}button:hover{background:var(--accent-strong)}button:disabled{cursor:not-allowed;opacity:.68}button.secondary{background:#ffffff;border-color:var(--line);color:var(--ink)}button.secondary.active,button.secondary:hover{background:#eef8f5;border-color:#91c9bd;color:var(--accent-strong)}button.secondary.danger{color:var(--danger)}.filter-strip{display:flex;flex-wrap:wrap;gap:8px}button.filter-chip{align-items:center;background:#ffffff;border:1px solid var(--line);color:var(--ink);display:inline-flex;gap:8px;min-height:34px;padding:6px 10px}button.filter-chip.active,button.filter-chip:hover{background:#eef8f5;border-color:#91c9bd;color:var(--accent-strong)}.filter-chip strong{align-items:center;background:#eef8f5;border-radius:999px;display:inline-flex;font-size:12px;justify-content:center;min-height:22px;min-width:22px;padding:2px 6px}button.asset-row,button.publish-row{background:#ffffff;border:0;border-top:1px solid var(--soft-line);border-radius:0;color:var(--ink);font-weight:400;text-align:left;width:100%}button.publish-row:first-child{border-top:0}button.asset-row.active,button.asset-row:hover,button.publish-row.active,button.publish-row:hover{background:#eef8f5;color:var(--ink)}button.asset-row.active,button.publish-row.active{box-shadow:inset 3px 0 0 var(--accent)}.asset-table{border:1px solid var(--soft-line);border-radius:8px;display:grid;min-width:0;overflow:hidden}.asset-row{align-items:center;border-top:1px solid var(--soft-line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,.75fr) minmax(0,.95fr) minmax(0,.5fr) minmax(0,.65fr);min-height:56px;padding:12px 14px}.asset-row:first-child{border-top:0}.asset-row.header{background:#f8fafc;color:var(--muted);font-size:12px;font-weight:700;min-height:40px;text-transform:uppercase}.asset-row span:first-child,.publish-row div{display:grid;grid-gap:3px;gap:3px;min-width:0;overflow-wrap:anywhere}.asset-title-cell{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:44px minmax(0,1fr)}.asset-title-cell span{display:grid;grid-gap:3px;gap:3px;min-width:0}.asset-title-cell small,.asset-title-cell strong{line-height:1.15;min-width:0}.asset-title-cell small{color:var(--muted);overflow-wrap:anywhere}.asset-thumb{background:#f8fafc;border:1px solid var(--soft-line);border-radius:6px;height:44px;object-fit:cover;width:44px}.empty-thumb{align-items:center;color:var(--muted);display:inline-flex;font-size:10px;justify-content:center;line-height:1.1;padding:4px;text-align:center}.compact-library{align-self:start}.compact-assets .asset-row{align-items:start;gap:10px;grid-template-areas:"title images" "status status";grid-template-columns:minmax(0,1fr) auto;padding:12px}.compact-assets .asset-title-cell{grid-area:title;gap:8px;grid-template-columns:40px minmax(0,1fr)}.compact-assets .asset-title-cell strong{-webkit-box-orient:vertical;-webkit-line-clamp:3;display:-webkit-box;overflow:hidden}.compact-assets .asset-title-cell small{font-size:11px}.compact-assets .asset-thumb{height:40px;width:40px}.compact-assets .asset-status-cell{grid-area:status;max-width:none}.compact-assets .asset-image-count{align-items:center;background:#f1f5f9;border-radius:999px;color:var(--muted);display:inline-flex;font-size:12px;font-weight:700;grid-area:images;justify-content:center;min-height:26px;min-width:42px;padding:4px 8px}.split-library .asset-row.header{display:none}.split-library .asset-row{align-items:start;gap:8px 12px;grid-template-areas:"title title" "status status" "org domain" "images fit";grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:14px}.split-library .asset-title-cell{grid-area:title}.split-library .asset-status-cell{grid-area:status;max-width:none}.split-library .asset-domain-cell,.split-library .asset-fit-cell,.split-library .asset-image-cell,.split-library .asset-org-cell{color:var(--muted);font-size:12px;line-height:1.35;min-width:0;overflow-wrap:anywhere}.split-library .asset-org-cell{grid-area:org}.split-library .asset-domain-cell{grid-area:domain}.split-library .asset-image-cell{grid-area:images}.split-library .asset-fit-cell{grid-area:fit}.stack{display:grid;grid-gap:3px;gap:3px;justify-items:start;min-width:0}.asset-status-cell small{color:var(--muted);font-size:12px;line-height:1.15;max-width:100%;overflow-wrap:anywhere}.subform{border-top:1px solid var(--soft-line);display:grid;grid-gap:18px;gap:18px;padding-top:18px}.pipeline-card{grid-gap:14px;gap:14px}.pipeline-card,.readiness-card{border:1px solid var(--soft-line);border-radius:8px;display:grid;padding:16px}.readiness-card{grid-gap:12px;gap:12px}.readiness-card.ready{background:#f0fdf4;border-color:#91c9bd}.readiness-card.attention{background:#fff8e6;border-color:#f5d58b}.readiness-card p{color:var(--muted);margin:0}.readiness-details{border-top:1px solid rgba(102,112,133,.18);grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px}.readiness-actions{display:flex;flex-wrap:wrap;gap:10px}.pipeline-steps{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.pipeline-step{align-items:flex-start;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:8px;gap:8px;grid-template-columns:10px minmax(0,1fr);min-height:76px;padding:12px}.pipeline-step strong{display:block;font-size:13px;margin-bottom:3px}.pipeline-step small{overflow-wrap:anywhere}.state-dot{background:#d0d5dd;border-radius:999px;height:10px;margin-top:4px;width:10px}.pipeline-step.done .state-dot{background:var(--success)}.pipeline-step.active .state-dot,.pipeline-step.queued .state-dot{background:var(--accent)}.pipeline-step.failed .state-dot{background:var(--danger)}.pipeline-step.done{background:#f0fdf4}.pipeline-step.active,.pipeline-step.queued{background:#eef8f5;border-color:#91c9bd}.pipeline-step.failed{background:#fff4f2;border-color:#f7b7ae}.pipeline-job{border-top:1px solid var(--soft-line);grid-template-columns:repeat(4,minmax(0,1fr));padding-top:12px}.pipeline-artifact{align-items:center;background:#f8fafc;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);padding:12px}.pipeline-artifact div{display:grid;grid-gap:3px;gap:3px;min-width:0}.pipeline-artifact code{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.pipeline-status-badge{align-items:center;border-radius:6px;display:inline-flex;font-size:14px;font-weight:700;justify-content:center;min-height:40px;padding:8px 14px;white-space:nowrap}.pipeline-status-badge.complete{background:#eef8f5;border:1px solid #91c9bd;color:var(--accent-strong)}.pipeline-status-badge.failed{background:#fff4f2;border:1px solid #f7b7ae;color:var(--danger)}.pipeline-status-badge.neutral{background:#f8fafc;border:1px solid var(--line);color:var(--muted)}.review-actions{align-items:center;background:#fff8e6;border:1px solid #f5d58b;border-radius:8px;display:flex;gap:14px;justify-content:space-between;padding:14px 16px}.prompt-review-card{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:14px;gap:14px;padding:16px}.prompt-meta{grid-template-columns:repeat(4,minmax(0,1fr))}.food-review-panel{background:#f7fbfa;border:1px solid #b9ddd5;border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:14px}.food-review-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.food-review-grid dt{color:var(--muted);font-size:12px;font-weight:700;margin-bottom:5px}.food-review-grid dd{color:var(--ink);font-size:14px;margin:0}.food-review-lists{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.food-qa-panel{background:#f8fafc;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:14px}.qa-check-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.qa-check{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:5px;gap:5px;min-height:96px;padding:10px}.qa-check strong{font-size:13px}.qa-check span{border-radius:999px;font-size:11px;font-weight:700;justify-self:start;padding:3px 7px}.qa-check small{line-height:1.35}.qa-check.passed{background:#f0fdf4;border-color:#b6e7c2}.qa-check.passed span{background:#dcfce7;color:var(--success)}.qa-check.failed{background:#fff8e6;border-color:#e7c76f}.qa-check.failed span{background:#fef3c7;color:#866300}.prompt-box{background:#f8fafc;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:8px;gap:8px;padding:12px}.prompt-box pre{color:var(--ink);font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;margin:0;max-height:220px;overflow:auto;white-space:pre-wrap}.vlm-observation-panel{border-top:1px solid var(--soft-line);display:grid;grid-gap:12px;gap:12px;padding-top:14px}.vlm-summary-warning{max-width:760px;margin:8px 0 0;padding:10px 12px;border:1px solid #e7c66b;border-radius:6px;background:#fff8e6;color:#6f5200;font-size:13px;line-height:1.45}.vlm-observation-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.vlm-observation-card{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:12px}.provider-brief-panel{border-top:1px solid var(--soft-line);display:grid;grid-gap:10px;gap:10px;padding-top:14px}.provider-brief-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.provider-brief-grid dt{color:var(--muted);font-size:12px;font-weight:700;margin-bottom:5px}.provider-brief-grid dd{color:var(--ink);font-size:13px;line-height:1.45;margin:0}.provider-brief-grid ul{margin:0;padding-left:18px}.observation-card-heading{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.compact-list li,.observation-card-heading small,.vlm-observation-card p{color:var(--muted);font-size:13px;line-height:1.45}.mini-badge{background:#eef8f5;border:1px solid #91c9bd;border-radius:999px;color:var(--accent-strong);font-size:11px;font-weight:700;padding:4px 7px;white-space:nowrap}.compact-list{margin:0;padding-left:18px}.review-notes{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.review-notes ul{margin:0;padding-left:18px}.review-notes li,.review-notes p{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.thumbnail-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.image-tile{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:8px;gap:8px;overflow:hidden;padding:8px}.image-tile img,.image-tile-placeholder{aspect-ratio:1;background:#f8fafc;border-radius:6px;object-fit:cover;width:100%}.image-tile-placeholder{align-items:center;color:var(--muted);display:flex;font-size:12px;justify-content:center}.image-tile div{display:grid;grid-gap:2px;gap:2px}.image-instruction-form{border-top:1px solid var(--soft-line);display:grid;grid-gap:8px;gap:8px;padding-top:8px}.image-instruction-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.compact-action{min-height:34px;padding:6px 10px}.asset-action-row{border-top:1px solid var(--soft-line);display:flex;flex-wrap:wrap;gap:10px;padding-top:14px}.file-picker{align-items:center;border:1px dashed #b9c3d3;border-radius:8px;color:var(--ink);cursor:pointer;display:grid;grid-gap:12px;gap:12px;grid-template-columns:42px minmax(0,1fr);min-height:74px;padding:14px;position:relative}.file-picker:hover{background:#f8fafc;border-color:var(--accent)}.file-picker input{cursor:pointer;inset:0;opacity:0;position:absolute}.file-picker.disabled{cursor:not-allowed;opacity:.62}.file-plus{align-items:center;background:#eef8f5;border:1px solid #91c9bd;border-radius:999px;color:var(--accent-strong);display:inline-flex;font-size:24px;font-weight:700;height:42px;justify-content:center;line-height:1;width:42px}.file-picker strong{display:block;font-size:14px;margin-bottom:3px}.file-chip-list{display:flex;flex-wrap:wrap;gap:8px}.file-chip-list span{background:#f8fafc;border:1px solid var(--soft-line);border-radius:999px;color:var(--muted);font-size:12px;padding:5px 8px}.preflight-list{display:grid;grid-gap:8px;gap:8px}.preflight-item{align-items:center;border:1px solid var(--soft-line);border-radius:8px;display:flex;gap:10px;justify-content:space-between;padding:10px 12px}.preflight-item.ok{background:#eef8f5;border-color:#91c9bd}.preflight-item.warning{background:var(--warning-bg);border-color:#e7c76f}.preflight-item.error{background:#fff4f2;border-color:#f7b7ae}.preflight-item small{color:var(--muted);display:block;font-size:12px;margin-top:2px}.preflight-item span{color:var(--ink);font-size:13px;font-weight:700;text-align:right}.preflight-item.error span{color:var(--danger)}.preflight-item.warning span{color:#866300}mark{background:var(--warning-bg);border-radius:999px;color:#854d0e;display:inline-flex;font-size:12px;font-weight:700;line-height:1;max-width:100%;padding:4px 8px;white-space:nowrap}.publish-row{align-items:center;border-top:1px solid var(--soft-line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(240px,1fr) 100px 170px;min-height:64px;padding:14px}.publish-row:first-child{border-top:0}.embed-preview{background:#f8fafc;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:6px;gap:6px;padding:12px}.embed-preview code{color:var(--muted);font-size:12px;line-height:1.45;overflow-wrap:anywhere}.viewer-workspace{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) 340px;padding:24px 28px}.viewer-stage-panel{min-height:calc(100vh - 136px);grid-template-rows:auto minmax(420px,1fr)}.large-model-placeholder,.large-model-stage{align-items:center;background:#f8fafc;border:1px solid var(--soft-line);border-radius:8px;display:grid;min-height:min(70vh,760px);overflow:hidden;width:100%}.large-model-placeholder{color:var(--muted);font-weight:700;justify-items:center;text-align:center}.model-list{border-top:1px solid var(--soft-line);display:grid;grid-gap:8px;gap:8px;padding-top:12px}.model-list-item{align-items:center;background:#ffffff;border:1px solid var(--soft-line);border-radius:8px;color:var(--ink);display:grid;grid-gap:10px;gap:10px;grid-template-columns:44px minmax(0,1fr);min-height:58px;padding:8px;text-align:left;width:100%}.model-list-item.active,.model-list-item:hover{background:#eef8f5;border-color:#91c9bd;color:var(--ink)}.model-list-item span{display:grid;grid-gap:2px;gap:2px;min-width:0}.model-list-item small,.model-list-item strong{overflow-wrap:anywhere}.model-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.model-card{background:#ffffff;border:1px solid var(--soft-line);border-radius:8px;grid-gap:12px;gap:12px;min-width:0;padding:12px}.model-card,.model-preview{display:grid;overflow:hidden}.model-preview{align-items:center;aspect-ratio:4/3;background:#f8fafc;border:1px solid var(--soft-line);border-radius:6px;justify-items:center}.model-placeholder{align-items:center;background:#eef8f5;border:1px dashed #91c9bd;border-radius:6px;color:var(--accent-strong);display:flex;font-size:13px;font-weight:700;height:calc(100% - 24px);justify-content:center;width:calc(100% - 24px)}.model-card-body{display:grid;grid-gap:12px;gap:12px}.model-card-body>div{display:grid;grid-gap:3px;gap:3px;min-width:0}.model-card-body small,.model-card-body strong{overflow-wrap:anywhere}.detail-panel{min-width:0}.action-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.button-link{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:6px;color:#ffffff;display:inline-flex;font-weight:650;justify-content:center;min-height:40px;padding:8px 12px}.button-link:hover{background:var(--accent-strong)}.button-link.secondary-link{background:#ffffff;border-color:var(--line);color:var(--ink)}.button-link.secondary-link:hover{background:#eef8f5;border-color:#91c9bd;color:var(--accent-strong)}.button-link.disabled{cursor:not-allowed;opacity:.55;pointer-events:none}.metric{align-items:center;background:#eef8f5;border-radius:999px;color:var(--accent-strong);display:inline-flex;font-weight:800;justify-content:center;min-height:34px;min-width:34px;padding:6px 10px}.metrics-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat{border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:8px;gap:8px;min-height:96px;padding:16px}.stat span{color:var(--muted);font-size:13px}.stat strong{font-size:30px}.top-assets-panel{display:grid;grid-gap:12px;gap:12px;margin-top:22px}.compact-heading{border-top:1px solid var(--soft-line);padding-top:18px}.qr-menu-admin-panel{margin-top:22px}.qr-menu-admin-actions{align-items:center;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr) auto auto auto;padding:14px}.qr-menu-admin-actions div{display:grid;grid-gap:4px;gap:4px;min-width:0}.qr-menu-admin-actions span,.qr-menu-admin-actions strong{overflow-wrap:anywhere}.qr-menu-admin-actions span{color:var(--muted);font-size:13px}.qr-menu-admin-table{margin-top:14px}.qr-menu-admin-table .publish-row{grid-template-columns:minmax(220px,1fr) 100px 140px minmax(160px,.7fr)}.restaurant-profile-preview{align-items:start;border:1px solid var(--soft-line);border-radius:8px;display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);padding:14px}.restaurant-profile-preview>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.restaurant-profile-preview dd,.restaurant-profile-preview span,.restaurant-profile-preview strong{overflow-wrap:anywhere}.restaurant-profile-preview span{color:var(--muted);font-size:13px;line-height:1.4}.restaurant-profile-preview dl{grid-template-columns:minmax(0,1fr)}.restaurant-scanner-actions{display:flex;gap:10px;grid-column:1/-1}.restaurant-scanner-actions .button-link{flex:1 1}dl{grid-gap:12px;gap:12px;margin:0}dl,dl div{display:grid}dl div{grid-gap:2px;gap:2px}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}dd{font-size:14px;margin:0;overflow-wrap:anywhere}.empty-state{border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:14px;margin:12px;padding:18px}.error,.success{font-size:13px;margin:0}.error{color:var(--danger)}.success{color:var(--success)}@media (max-width:1160px){.asset-editor-grid,.content-grid,.content-grid.wide,.food-review-grid,.food-review-lists,.metrics-grid,.pipeline-artifact,.pipeline-job,.pipeline-steps,.prompt-meta,.qa-check-grid,.review-notes,.viewer-workspace{grid-template-columns:1fr}.viewer-stage-panel{min-height:auto}.large-model-placeholder,.large-model-stage{min-height:520px}.viewer-header,.viewer-info-bar{align-items:stretch;flex-direction:column}.viewer-facts{justify-content:flex-start}}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;min-height:auto;padding:18px}.brand{margin-bottom:14px}.topbar,.topbar-actions,nav{align-items:stretch}nav{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.topbar{flex-direction:column;padding:18px}.review-actions,.section-actions,.section-heading{align-items:stretch;flex-direction:column}.topbar-actions{width:100%}.user-chip{flex:1 1}.content-grid{padding:18px}.viewer-shell{align-items:stretch;padding:16px}.viewer-stage h1{font-size:26px}.qr-menu-shell{max-width:100vw;overflow-x:hidden;padding:16px;width:100%}.qr-menu-page{max-width:100%;overflow:hidden}.analytics-filter-bar,.qr-menu-admin-actions,.qr-menu-header{grid-template-columns:1fr}.qr-menu-header{display:grid;min-width:0}.qr-menu-header .viewer-status{justify-self:start;max-width:100%;white-space:normal}.qr-menu-profile-lines{display:grid;grid-gap:6px;gap:6px}.qr-menu-readiness{align-items:flex-start;flex-direction:column}.qr-menu-category-nav{display:grid;grid-template-columns:minmax(0,1fr);max-width:100%;overflow:hidden;padding-bottom:2px}.qr-menu-category-nav a{justify-content:space-between;min-width:0;width:100%}.qr-menu-grid,.qr-menu-item,.qr-menu-item-main>div,.qr-menu-section{max-width:100%;min-width:0}.qr-menu-grid,.qr-menu-item{grid-template-columns:minmax(0,1fr)}.qr-menu-item{align-items:stretch}.qr-menu-item-main{grid-template-columns:60px minmax(0,1fr)}.qr-menu-thumb{height:60px;width:60px}.qr-menu-title-row{display:grid;grid-gap:6px;gap:6px;justify-items:start}.qr-menu-item dd,.qr-menu-item h3,.qr-menu-item p,.qr-menu-unavailable small{overflow-wrap:anywhere}.qr-menu-item-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.public-model-stage{height:58vh;min-height:420px}.viewer-qr-card{grid-template-columns:92px minmax(0,1fr);max-width:none;position:static;transform:translateY(-1px)}.viewer-ar-control{margin-bottom:10px;max-width:none;position:static}.viewer-qr-card img{height:92px;width:92px}.viewer-qr-close{grid-column:1/-1;justify-self:stretch}.viewer-qr-toggle{margin-top:10px;position:static;width:100%}.viewer-platform-bar{grid-template-columns:1fr}.ar-launch-button{bottom:12px;left:12px;max-width:calc(100% - 24px)}.details-grid,.field-grid.four,.field-grid.two,.food-review-grid,.food-review-lists,.image-instruction-grid,.ingredient-row-grid,.profile-switch,.provider-brief-grid,.qa-check-grid,.restaurant-profile-preview{grid-template-columns:1fr}.span-two{grid-column:auto}.asset-row,.asset-row.header,.publish-row,.qr-menu-admin-table .publish-row{grid-template-columns:1fr}}