@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Variable.woff2)format("woff2");font-weight:400 800;font-display:swap}:root{--accent:#ff5a00;--accent-hover:#f24e00;--accent-contrast:#fff;--accent-tint:#ffefe6;--accent-glow:#ff5a0080;--sidebar-bg:#fff;--sidebar-bg-hover:#f5f5f5;--sidebar-text:#555;--sidebar-text-muted:#8f8f8f;--sidebar-border:#eaeaea;--content-bg:#fff;--surface:#fff;--surface-2:#fafafa;--border:#eaeaea;--border-strong:#d8d8d8;--text:#0a0a0a;--text-muted:#666;--text-faint:#8f8f8f;--danger:#e5484d;--danger-bg:#fff0f0;--danger-border:#f7d4d6;--success-bg:#eaf6ee;--success-text:#137a3b;--warning-bg:#fff3e6;--warning-text:#b45309;--neutral-bg:#f2f2f2;--neutral-text:#5a5a5a;--radius:8px;--radius-sm:6px;--radius-lg:12px;--control-h:38px;--shadow:0 1px 2px #0a0a0a0a, 0 10px 30px -14px #0a0a0a24;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--content-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;letter-spacing:-.011em;margin:0}h1,h2,h3{letter-spacing:-.025em;font-weight:700}.app-loading{min-height:100vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);width:240px;color:var(--sidebar-text);border-right:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;padding:18px 14px;transition:width .16s;display:flex}.sidebar-collapsed .sidebar{width:68px;padding:18px 10px}.sidebar-collapsed .sidebar-label{display:none}.sidebar-collapsed .sidebar-brand{justify-content:center;margin-left:0;margin-right:0}.sidebar-collapsed .sidebar-link,.sidebar-collapsed .sidebar-collapse-toggle,.sidebar-collapsed .btn-logout{justify-content:center;padding-left:0;padding-right:0}.sidebar-brand{letter-spacing:-.03em;color:var(--text);align-items:center;gap:10px;margin:6px 10px 26px;font-size:19px;font-weight:800;display:flex}.sidebar-brand .brand-mark{background:var(--text);border-radius:7px;flex-shrink:0;width:26px;height:26px;position:relative}.sidebar-brand .brand-mark:after{content:"";background:var(--accent);width:9px;height:9px;box-shadow:0 0 9px 1px var(--accent-glow);border-radius:50%;margin:auto;position:absolute;inset:0}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar-link{border-radius:var(--radius);color:var(--sidebar-text);align-items:center;gap:10px;padding:9px 12px;font-size:14px;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--sidebar-bg-hover);color:var(--text)}.sidebar-link.active{background:var(--text);color:#fff;font-weight:600}.sidebar-catalog-nav{border-top:1px solid var(--sidebar-border);flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;display:flex}.sidebar-catalog-nav .sidebar-link{padding-left:22px}.sidebar-collapsed .sidebar-catalog-nav .sidebar-link{padding-left:0}.sidebar-catalog-name{text-transform:uppercase;letter-spacing:.04em;color:var(--sidebar-text-muted);text-overflow:ellipsis;white-space:nowrap;padding:0 12px 4px;font-size:11px;font-weight:700;overflow:hidden}.sidebar-footer{border-top:1px solid var(--sidebar-border);flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.sidebar-collapse-toggle{border-radius:var(--radius);color:var(--sidebar-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}.sidebar-collapse-toggle:hover{background:var(--sidebar-bg-hover);color:var(--text)}.sidebar-email{color:var(--sidebar-text-muted);overflow-wrap:anywhere;padding:0 4px;font-size:13px}.btn-logout{border:1px solid var(--sidebar-border);color:var(--sidebar-text);border-radius:var(--radius);cursor:pointer;font:inherit;background:0 0;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.btn-logout:hover:not(:disabled){background:var(--sidebar-bg-hover);color:#fff}.btn-logout:disabled{opacity:.6;cursor:not-allowed}.content{flex:1;padding:32px 40px;overflow-y:auto}.spin{animation:.9s linear infinite ui-spin}@keyframes ui-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn{font:inherit;letter-spacing:-.01em;height:var(--control-h);border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:0 6px 20px -8px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 8px 26px -8px var(--accent-glow)}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-faint)}.btn-icon{width:var(--control-h);padding:0}.btn-danger{color:var(--danger)}.field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.field input,.field select{font:inherit;height:var(--control-h);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);padding:0 12px;font-size:14px}.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);outline:none}.field-row{gap:12px;display:flex}.field-row .field{flex:1;min-width:0}.field-row .field span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.form-error{color:var(--danger);margin:0;font-size:13px}.error-banner{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:14px;display:flex}.back-link{color:var(--accent);align-items:center;gap:6px;margin-top:4px;font-size:14px;text-decoration:none;display:inline-flex}.back-link:hover{text-decoration:underline}.login-screen{background:var(--surface-2);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:34px 30px;display:flex}.login-card h1{letter-spacing:-.03em;margin:0 0 4px;font-size:24px;font-weight:800}.page{width:100%}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-header h1{letter-spacing:-.035em;margin:0;font-size:30px;font-weight:800}.placeholder-notice{color:var(--text-muted);margin-bottom:12px;font-size:16px}.section-loading{min-height:200px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.photo-source-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:24px;padding:16px 20px}.photo-source-section h2{align-items:center;gap:8px;margin:0 0 12px;font-size:16px;font-weight:700;display:flex}.photo-source-connected{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.photo-source-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.photo-source-form .field{min-width:220px}.revision-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:24px;padding:16px 20px}.revision-section h2{align-items:center;gap:8px;margin:0 0 12px;font-size:16px;font-weight:700;display:flex}.revision-link-empty p{color:var(--text-muted);margin:0 0 12px;font-size:14px}.revision-link-active{flex-direction:column;gap:10px;display:flex}.revision-link-url{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-wrap:anywhere;padding:8px 12px;font-size:13px;display:block}.revision-link-actions{flex-wrap:wrap;gap:8px;display:flex}.revision-link-meta{color:var(--text-muted);margin:0;font-size:13px}.revision-annotations-list{margin-top:12px}.sync-status{color:var(--text-muted);align-items:center;gap:8px;margin-bottom:16px;font-size:14px;display:flex}.data-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}.data-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border-strong);background:0 0;font-size:12px;font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#fafafa}.actions-cell{justify-content:flex-end;gap:8px;display:flex}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-draft{background:var(--neutral-bg);color:var(--neutral-text)}.badge-review{background:var(--warning-bg);color:var(--warning-text)}.badge-final{background:var(--success-bg);color:var(--success-text)}.empty-state{color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:80px 20px;display:flex}.empty-state p{margin:0;font-size:15px}dialog.catalog-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:460px;padding:0}dialog.catalog-dialog::backdrop{background:#14141673}dialog.catalog-dialog form{flex-direction:column;gap:16px;padding:28px;display:flex}dialog.catalog-dialog h2{margin:0;font-size:18px}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.header-actions{align-items:center;gap:10px;display:flex}.btn-small{padding:5px 10px;font-size:13px}.text-muted{color:var(--text-muted)}.text-right{text-align:right}.warning-banner{color:var(--warning-text);background:var(--warning-bg);border:1px solid var(--warning-text);border-color:color-mix(in srgb, var(--warning-text) 35%, transparent);border-radius:var(--radius);align-items:center;gap:8px;margin:8px 0;padding:10px 14px;font-size:14px;display:flex}.import-wizard{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:720px;padding:28px}.wizard-step-indicator{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 16px;font-size:12px}.wizard-step h2{margin:0 0 16px;font-size:18px}.dropzone{border:2px dashed var(--border);color:var(--text-muted);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:36px 20px;display:flex}.dropzone p{margin:0;font-size:14px}.dropzone.drag-active{border-color:var(--accent);color:var(--text);background:var(--content-bg)}.dropzone-input{display:none}.wizard-or{text-align:center;color:var(--text-muted);margin:14px 0;font-size:13px}.import-wizard textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);resize:vertical;padding:9px 10px;font-size:14px}.wizard-hint{color:var(--text-muted);margin:0 0 12px;font-size:13px}.wizard-header-row-field{max-width:420px;margin-bottom:16px}.wizard-preview-wrapper{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow-x:auto}.wizard-preview-table{border:none;border-radius:0}.wizard-preview-table th,.wizard-preview-table td{white-space:nowrap;font-size:13px}.wizard-preview-table select{font:inherit;border:1px solid var(--border);background:var(--surface);text-transform:none;letter-spacing:normal;color:var(--text);border-radius:4px;padding:4px 6px;font-size:12px}tr.wizard-header-row td{background:var(--warning-bg);font-weight:600}.wizard-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.wizard-progress,.wizard-result p{align-items:center;gap:8px;font-size:14px;display:flex}.curation-table-area{flex-direction:column;gap:10px;display:flex}.curation-table-wrapper{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.curation-table{border:none;border-radius:0;font-size:13px}.curation-table th,.curation-table td{white-space:nowrap;padding:8px 10px}.editable-display{text-overflow:ellipsis;min-width:60px;max-width:220px;font:inherit;color:var(--text);cursor:text;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:5px 6px;font-size:13px;display:inline-flex;overflow:hidden}.editable-display:hover{border-color:var(--border);background:var(--content-bg)}.editable-display.has-error{border-color:var(--danger)}.editable-placeholder{color:var(--text-muted)}.editable-cell{flex-direction:column;gap:2px;display:flex}.editable-input{font:inherit;border:1px solid var(--accent);color:var(--text);background:var(--surface);border-radius:4px;min-width:90px;padding:5px 6px;font-size:13px}.editable-cell.has-error .editable-input{border-color:var(--danger)}.cell-spinner{color:var(--text-muted);flex-shrink:0}.cell-error{color:var(--danger);font-size:11px}.raw-text-cell{text-overflow:ellipsis;max-width:200px;color:var(--text-muted);vertical-align:bottom;display:inline-block;overflow:hidden}.cell-select{font:inherit;height:var(--control-h);border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface);color:var(--text);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;max-width:160px;padding:0 30px 0 10px;font-size:13px}.cell-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);outline:none}.badges-cell{display:inline-block;position:relative}.badges-trigger{height:var(--control-h);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-size:13px;display:inline-flex}.badges-trigger:hover{border-color:var(--border-strong)}.badges-trigger.has-active{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.badges-trigger-count{background:var(--accent);min-width:16px;height:16px;color:var(--accent-contrast);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.badges-popover{z-index:20;background:var(--surface);border:1px solid var(--border);width:200px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.badges-popover-option{border-radius:var(--radius-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.badges-popover-option:hover{background:var(--surface-2)}.badges-popover-option .check{border:1px solid var(--border-strong);color:#0000;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.badges-popover-option.active .check{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.star-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.star-toggle[aria-pressed=true]{color:#e0a300}.status-chip{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-chip-pending{background:var(--neutral-bg);color:var(--neutral-text)}.status-chip-applied{background:var(--success-bg);color:var(--success-text)}.status-chip-discarded{background:var(--danger-bg);color:var(--danger)}.status-chip-alert{color:var(--warning-text);display:inline-flex}.curation-toast{justify-content:space-between;margin-bottom:0}.toast-dismiss{color:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:16px;line-height:1}.photo-cell{display:inline-block;position:relative}.photo-cell-empty{color:var(--text-muted)}.photo-thumb-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:4px;padding:0;line-height:0}.photo-thumb{object-fit:cover;border-radius:3px;width:40px;height:40px;display:block}.photo-missing-btn{color:var(--text-muted)}.photo-popover{z-index:20;background:var(--surface);border:1px solid var(--border);width:340px;max-height:420px;box-shadow:var(--shadow);border-radius:8px;padding:12px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.photo-popover-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.photo-popover-tabs{gap:4px;display:flex}.photo-popover-tabs button{font:inherit;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:6px 9px;font-size:12px;display:inline-flex}.photo-popover-tabs button.active{background:var(--neutral-bg);color:var(--text)}.photo-popover-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.photo-popover-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius);margin:0 0 10px;padding:6px 10px;font-size:12px}.photo-popover-empty{color:var(--text-muted);margin:8px 0;font-size:13px}.photo-search-form{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:8px;margin-bottom:10px;padding:6px 10px;display:flex}.photo-search-form input{font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.photo-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.photo-grid-item{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;flex-direction:column;gap:4px;padding:4px;display:flex;overflow:hidden}.photo-grid-item:hover{border-color:var(--accent)}.photo-grid-item img{object-fit:cover;border-radius:3px;width:100%;height:60px}.photo-score-bar{background:var(--neutral-bg);border-radius:2px;height:3px;display:block;overflow:hidden}.photo-score-bar-fill{background:var(--accent);height:100%;display:block}.photo-source-domain{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.photo-upload-label{cursor:pointer;position:relative}.photo-upload-input{opacity:0;cursor:pointer;position:absolute;inset:0}.bulk-bar{background:var(--surface);border:1px solid var(--border);z-index:60;width:max-content;max-width:min(100vw - 48px,960px);box-shadow:var(--shadow);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.bulk-bar-count{font-size:13px;font-weight:600}.bulk-bar-field{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.bulk-bar-field select{font:inherit;height:var(--control-h);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:0 8px;font-size:13px}.bulk-bar-progress{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.bulk-bar-error{color:var(--danger);font-size:13px}dialog.apply-result-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:560px;padding:0}dialog.apply-result-dialog::backdrop{background:#14141673}.apply-result-body{flex-direction:column;gap:10px;padding:28px;display:flex}.apply-result-body h2{margin:0;font-size:18px}.apply-result-body p{margin:0}.apply-anomalies table{margin-top:8px}.editor-page{background:var(--content-bg);flex-direction:row;height:100vh;margin:-32px -40px;display:flex;overflow:hidden}.editor-page--loading{justify-content:center;align-items:center}.editor-toolbar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:center;gap:10px;width:64px;padding:14px 8px;display:flex;overflow-y:auto}.editor-toolbar-group{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.editor-toolbar-group+.editor-toolbar-group{border-top:1px solid var(--border);width:100%;padding-top:10px}.editor-rail-btn{flex-shrink:0;width:40px;height:40px;position:relative}.editor-toolbar-actions{scrollbar-width:thin;flex:1;min-height:0;overflow:hidden auto}.editor-toolbar-actions::-webkit-scrollbar{width:4px}.editor-toolbar-actions::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.editor-zoom-value{color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums;font-size:11px}.editor-zoom-fit-active{background:var(--neutral-bg)}.editor-toolbar-status{margin-top:auto}.editor-save-indicator{width:40px;height:24px;color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.editor-save-indicator--saved{color:var(--success-text)}.editor-save-indicator--error{color:var(--danger)}.editor-rail-btn .problems-count{border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:10px;line-height:14px;position:absolute;top:2px;right:2px}.editor-body{flex:1;min-width:0;min-height:0;display:flex}.editor-rail{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:156px;display:flex}.editor-rail-list{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.editor-thumb-canvas{border:1px solid var(--border);cursor:pointer;background:#fff;border-left:3px solid #0000;border-radius:3px;padding:0;display:block;position:relative;overflow:hidden}.editor-thumb--current .editor-thumb-canvas{outline:2px solid var(--accent);outline-offset:1px}.editor-thumb-scale{transform-origin:0 0;pointer-events:none}.editor-thumb-placeholder{color:var(--text-muted);justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.editor-thumb-meta{justify-content:space-between;align-items:center;min-height:26px;margin-top:2px;display:flex}.editor-thumb-number{color:var(--text-muted);padding-left:2px;font-size:12px}.editor-thumb-actions{gap:0;display:inline-flex}.editor-thumb-actions .btn{border:none;padding:4px}.editor-rail-add{flex-shrink:0;margin:0 12px 12px}.editor-viewport{flex:1;min-width:0;padding:24px;display:flex;overflow:auto}.editor-canvas-outer{flex-shrink:0;margin:auto;position:relative}.editor-empty{margin:auto}.editor-canvas-scale{transform-origin:0 0}.editor-no-template{color:var(--text-muted);padding:40px}.editor-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.editor-empty p{margin:0;font-size:15px}.editor-empty-controls{align-items:flex-end;gap:12px;display:flex}.editor-empty-controls .field{text-align:left}.editor-empty-hint{color:var(--text-muted);max-width:360px;font-size:13px}.editor-unplaced{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;display:flex}.editor-unplaced--collapsed{align-items:center;width:44px;padding-top:10px}.editor-unplaced-toggle{color:var(--text-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:6px;display:inline-flex}.editor-unplaced-toggle:hover{background:var(--neutral-bg);color:var(--text)}.editor-unplaced-header{align-items:center;gap:8px;padding:12px 14px 8px;display:flex}.editor-unplaced-header h2{margin:0;font-size:14px}.editor-unplaced-header .editor-unplaced-toggle{margin-left:auto}.editor-unplaced-count{background:var(--neutral-bg);min-width:20px;height:20px;color:var(--neutral-text);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.editor-unplaced-search{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:6px;margin:0 14px 10px;padding:6px 8px;display:flex}.editor-unplaced-search input{font:inherit;width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:13px}.editor-unplaced-body{flex:1;padding:0 14px 14px;overflow-y:auto}.editor-unplaced-empty{color:var(--text-muted);font-size:13px}.editor-unplaced-group h3{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);align-items:center;gap:8px;margin:14px 0 6px;font-size:12px;display:flex}.editor-unplaced-group-count{font-weight:400}.editor-unplaced-group ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.editor-unplaced-item{border:1px solid var(--border);border-radius:var(--radius);background:#fff;align-items:center;gap:8px;padding:5px 6px;font-size:12.5px;display:flex}.editor-unplaced-item img,.editor-unplaced-nophoto{object-fit:cover;background:var(--neutral-bg);width:30px;height:30px;color:var(--text-muted);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.editor-unplaced-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;display:-webkit-box;overflow:hidden}.editor-unplaced-price{color:var(--accent);white-space:nowrap;font-weight:600}.editor-toast{border-radius:var(--radius);background:var(--sidebar-bg);color:#fff;box-shadow:var(--shadow);z-index:40;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.dnd-canvas-stack{position:relative}.dnd-overlay-wrap{pointer-events:none;position:absolute;top:0;left:0}.dnd-overlay-canvas{position:relative}.dnd-drop-layer{z-index:4}.dnd-drag-layer{z-index:5}.dnd-drop-cell{border-radius:1mm;transition:background-color .1s}.dnd-drop-cell--over{outline:.4mm solid var(--accent);outline-offset:-.2mm;background:#2f6fed2e}.dnd-slot-cell{pointer-events:none;position:relative}.dnd-slot-cell--dragging{opacity:.35}.dnd-slot-handle,.dnd-slot-menu-btn{color:#fff;cursor:grab;opacity:0;pointer-events:auto;background:#1c1e22b8;border:none;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;transition:opacity .12s;display:flex;position:absolute;top:2px}.dnd-slot-handle{left:2px}.dnd-slot-menu-btn{cursor:pointer;right:2px}.dnd-slot-cell:hover .dnd-slot-handle,.dnd-slot-cell:hover .dnd-slot-menu-btn,.dnd-slot-handle:focus-visible,.dnd-slot-menu-btn:focus-visible{opacity:1}.dnd-slot-handle:active{cursor:grabbing}.dnd-preview-card{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);cursor:grabbing;align-items:center;gap:8px;max-width:220px;padding:6px 10px;font-size:12px;display:flex}.dnd-preview-card img{object-fit:cover;border-radius:4px;flex-shrink:0;width:28px;height:28px}.dnd-preview-nophoto{background:var(--neutral-bg);width:28px;height:28px;color:var(--text-muted);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dnd-preview-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dnd-preview-price{color:var(--accent);white-space:nowrap;font-weight:600}.dnd-dragging{opacity:.4}.editor-unplaced--over,.editor-thumb--over .editor-thumb-canvas{outline:.15rem solid var(--accent);outline-offset:-.15rem}.dnd-remove-bar{background:var(--sidebar-bg);color:#fff;width:320px;box-shadow:var(--shadow);z-index:60;border-radius:10px 10px 0 0;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:13px;font-weight:600;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.dnd-remove-bar--over{background:var(--danger)}.dnd-context-menu{z-index:100;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);width:180px;box-shadow:var(--shadow);padding:8px;font-size:13px;position:fixed}.dnd-context-menu-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding:4px 6px;font-size:11px}.dnd-context-menu-sizes{grid-template-columns:repeat(4,1fr);gap:4px;padding:0 4px 6px;display:grid}.dnd-context-menu-size{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:4px;padding:6px 0;font-size:12px}.dnd-context-menu-size:hover:not(:disabled){background:var(--neutral-bg)}.dnd-context-menu-size--active{border-color:var(--accent);color:var(--accent);font-weight:600}.dnd-context-menu-size:disabled{cursor:default}.dnd-context-menu-item{border:none;border-top:1px solid var(--border);text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;padding:8px 6px;font-size:13px;display:block}.dnd-context-menu-item:hover:not(:disabled){background:var(--neutral-bg)}.dnd-context-menu-item:disabled{color:var(--text-muted);cursor:not-allowed}.dnd-context-menu-item--danger{color:var(--danger)}dialog.dnd-overflow-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:380px;padding:24px}dialog.dnd-overflow-dialog::backdrop{background:#14141673}dialog.dnd-overflow-dialog h2{margin:0 0 12px;font-size:16px}.dnd-overflow-list{max-height:200px;color:var(--text-muted);margin:0 0 16px;padding:0 0 0 18px;font-size:13px;overflow-y:auto}.dnd-overflow-list li{margin-bottom:4px}.free-handles{pointer-events:none;z-index:22;position:absolute;inset:0}.free-handle{pointer-events:auto;background:var(--surface);border:1px solid var(--border);width:12px;height:12px;box-shadow:var(--shadow);border-radius:3px;position:absolute}.free-handle--move{cursor:grab}.free-handle--move:active{cursor:grabbing}.free-handle--scale{cursor:nwse-resize}.row-weight-handles{pointer-events:none;z-index:21;position:absolute;inset:0}.row-weight-handle{pointer-events:auto;cursor:col-resize;background:var(--border);opacity:.45;border-radius:3px;width:6px;position:absolute}.row-weight-handle:hover,.row-weight-handle:active{opacity:1;background:var(--border-strong)}.ctxbar{background:var(--surface);border-left:1px solid var(--border);width:420px;max-width:100vw;box-shadow:var(--shadow);z-index:100;cursor:default;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.ctxbar-body{flex-direction:column;gap:10px;font-size:12.5px;display:flex}.ctxbar-section{flex-direction:column;gap:8px;display:flex;position:relative}.ctxbar-field{flex-direction:column;gap:4px;display:flex}.ctxbar-field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.ctxbar-field input[type=number]{border:1px solid var(--border);width:100%;font:inherit;border-radius:4px;padding:4px 6px}.ctxbar-field input[type=range]{width:100%}.ctxbar-color-row{align-items:center;gap:8px;display:flex}.ctxbar-color-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:28px;height:24px;padding:0}.ctxbar-swatches{flex-wrap:wrap;gap:4px;display:flex}.ctxbar-swatch{border:1px solid var(--border);cursor:pointer;border-radius:50%;width:18px;height:18px;padding:0}.ctxbar-scale-row{align-items:center;gap:6px;display:flex}.ctxbar-scale-row input[type=number]{width:52px}.ctxbar-nudge-pad{flex-direction:column;align-items:center;gap:2px;display:flex}.ctxbar-nudge-row{gap:20px;display:flex}.ctxbar-nudge-pad button,.ctxbar-button-row button,.ctxbar-corner-pad button{border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.ctxbar-button-row{gap:6px;display:flex}.ctxbar-button-row button{width:auto;padding:4px 8px;font-size:12px}.ctxbar-nudge-pad button:hover,.ctxbar-button-row button:hover,.ctxbar-corner-pad button:hover{background:var(--neutral-bg)}.ctxbar-nudge-pad button.active,.ctxbar-button-row button.active,.ctxbar-corner-pad button.active{border-color:var(--accent);color:var(--accent)}.ctxbar-corner-pad{grid-template-columns:repeat(2,1fr);gap:4px;width:60px;display:grid}.ctxbar-photo-actions{flex-direction:column;gap:6px;display:flex}.ctxbar-scope{border:none;border-top:1px solid var(--border);margin:0;padding:8px 0 0}.ctxbar-scope legend{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;padding:0;font-size:11px}.ctxbar-scope-options{flex-direction:column;gap:4px;margin-top:4px;display:flex}.ctxbar-scope-option{cursor:pointer;align-items:center;gap:6px;display:flex}.ctxbar-scope-option:has(input:disabled){color:var(--text-muted);cursor:not-allowed}.ctxbar-photo-popover{z-index:21;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);width:220px;box-shadow:var(--shadow);margin-top:6px;padding:8px;position:absolute;top:100%;left:0}.ctxbar-photo-popover-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.ctxbar-photo-popover-tabs{gap:4px;display:flex}.ctxbar-photo-popover-tabs button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:inline-flex}.ctxbar-photo-popover-tabs button.active{background:var(--neutral-bg);border-color:var(--accent);color:var(--accent)}.ctxbar-photo-popover-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none}.ctxbar-photo-popover-error{color:var(--danger);margin:0 0 6px;font-size:11px}.ctxbar-photo-popover-empty{color:var(--text-muted);font-size:11px}.ctxbar-photo-search-form{border:1px solid var(--border);color:var(--text-muted);border-radius:4px;align-items:center;gap:6px;margin-bottom:6px;padding:4px 6px;display:flex}.ctxbar-photo-search-form input{font:inherit;width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:12px}.ctxbar-photo-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.ctxbar-photo-grid-item{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:0;overflow:hidden}.ctxbar-photo-grid-item img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.ctxbar-photo-upload-label{position:relative;overflow:hidden}.ctxbar-photo-upload-input{opacity:0;cursor:pointer;position:absolute;inset:0}dialog.background-picker-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:460px;max-height:85vh;padding:24px;overflow-y:auto}dialog.background-picker-dialog[open]{flex-direction:column;gap:16px;display:flex}dialog.background-picker-dialog::backdrop{background:#14141673}.bgp-header{justify-content:space-between;align-items:center;display:flex}.bgp-header h2{margin:0;font-size:18px}.bgp-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.bgp-target{gap:6px}.bgp-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding-bottom:10px;display:flex}.bgp-tabs button{font:inherit;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:7px 10px;font-size:12.5px;display:inline-flex}.bgp-tabs button.active{background:var(--neutral-bg);color:var(--text)}.bgp-tab-panel{flex-direction:column;gap:12px;display:flex}.bgp-color-panel,.bgp-gradient-panel,.bgp-image-panel,.bgp-ai-panel,.bgp-none-panel{flex-direction:column;gap:10px;display:flex}.bgp-color-row{align-items:center;gap:10px;display:flex}.bgp-color-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:36px;height:32px;padding:0}.bgp-swatches{flex-wrap:wrap;gap:8px;display:flex}.bgp-swatch{border:1px solid var(--border);cursor:pointer;border-radius:50%;width:26px;height:26px;padding:0}.bgp-swatch:hover{outline:2px solid var(--accent);outline-offset:1px}.bgp-upload-label{align-self:flex-start;position:relative;overflow:hidden}.bgp-upload-input{opacity:0;cursor:pointer;position:absolute;inset:0}.bgp-ai-panel textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);resize:vertical;padding:9px 10px;font-size:14px}.bgp-ai-hint{margin:-4px 0 0;font-size:12px}.bgp-ai-preview{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.bgp-ai-preview img{border-radius:var(--radius);border:1px solid var(--border);width:100%;max-width:240px}.bgp-zones{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.bgp-zones h3{align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.bgp-zones-header{justify-content:space-between;align-items:center;display:flex}.bgp-zone-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.bgp-zone-item{border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.bgp-zone-item--editing{padding:12px;display:block}.bgp-zone-item-band{color:var(--text-muted)}.bgp-zone-item-actions{flex-shrink:0;gap:4px;display:flex}.bgp-zone-form{flex-direction:column;gap:10px;display:flex}.bgp-checkbox-field{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.style-panel{background:var(--surface);border-left:1px solid var(--border);width:420px;max-width:100vw;box-shadow:var(--shadow);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.stp-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.stp-header h2{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.stp-close{cursor:pointer;color:var(--text-muted);border-radius:var(--radius);background:0 0;border:none;padding:4px;display:flex}.stp-close:hover{background:var(--content-bg)}.stp-subnav{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.stp-subnav button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:13px}.stp-subnav button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.stp-body{flex:1;padding:16px 20px 24px;overflow-y:auto}.stp-list{flex-direction:column;gap:12px;display:flex}.stp-set-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.stp-set-item{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.stp-set-item-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.stp-set-item-name{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.stp-set-item-actions{flex-wrap:wrap;gap:4px;display:flex}.badge-default{background:var(--success-bg);color:var(--success-text);align-items:center;gap:3px;display:inline-flex}.stp-duplicate-form{gap:6px;margin-top:8px;display:flex}.stp-duplicate-form input{border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:4px 8px}.stp-empty{padding:8px 0}.stp-edit-view{flex-direction:column;gap:12px;display:flex}.stp-back{align-self:flex-start}.stp-editor{flex-direction:column;gap:14px;display:flex}.stp-name-field input{font-size:15px;font-weight:600}.stp-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding-bottom:8px;display:flex}.stp-tabs button{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-muted);border-radius:999px;padding:6px 10px;font-size:12px}.stp-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.stp-tab-panel{flex-direction:column;gap:4px;display:flex}.stp-variant-actions{justify-content:flex-end;display:flex}.stp-field-list{flex-direction:column;gap:2px;display:flex}.stp-field-row{border-bottom:1px solid var(--content-bg);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:6px 0;display:grid}.stp-field-row--inherited{opacity:.55}.stp-field-row-label{color:var(--text);font-size:12.5px}.stp-field-row-control{justify-content:flex-end;display:flex}.stp-field-row-control input[type=number]{border:1px solid var(--border);border-radius:4px;width:64px;padding:3px 6px}.stp-field-row-control select{border:1px solid var(--border);border-radius:4px;padding:3px 6px}.stp-field-row-control input[type=color]{border:1px solid var(--border);border-radius:4px;width:30px;height:24px;padding:0}.stp-reset-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:2px;display:flex}.stp-reset-btn:hover{color:var(--accent)}.stp-field-row-checkbox{cursor:pointer;align-items:center;gap:6px;font-size:12.5px;display:flex}.stp-field-row-inherit-note{color:var(--text-muted);font-size:11px;font-style:italic}.stp-color-control{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.stp-swatches{flex-wrap:wrap;justify-content:flex-end;gap:3px;display:flex}.stp-swatch{border:1px solid var(--border);cursor:pointer;border-radius:3px;width:14px;height:14px;padding:0}.stp-nullable-color{align-items:center;gap:6px;display:flex}.stp-nullable-color-checkbox{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:11px;display:flex}.stp-radio-row{gap:10px;display:flex}.stp-radio-option{align-items:center;gap:4px;font-size:12px;display:flex}.stp-toggle{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.stp-slider-row{align-items:center;gap:8px;display:flex}.stp-slider-value{color:var(--text-muted);text-align:right;width:34px;font-size:12px}.stp-hint{margin:4px 0 0;font-size:11px}.stp-preview-grid{border-top:1px solid var(--border);grid-template-columns:repeat(2,1fr);gap:10px;padding-top:8px;display:grid}.stp-preview-card{flex-direction:column;align-items:center;gap:4px;display:flex}.stp-preview-label{color:var(--text-muted);text-align:center;font-size:10px}.stp-preview-box{border:1px solid var(--border);background:#fff;border-radius:4px;overflow:hidden}.stp-editor-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding-top:8px;display:flex}.stp-editor-actions-save{gap:8px;margin-left:auto;display:flex}.problems-panel{background:var(--surface);border-left:1px solid var(--border);width:420px;max-width:100vw;box-shadow:var(--shadow);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.prp-body{flex-direction:column;gap:4px;display:flex}.prp-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 0;display:flex}.prp-empty svg{color:var(--success-text)}.prp-summary{color:var(--text-muted);margin:0 0 12px;font-size:13px}.prp-page-group+.prp-page-group{margin-top:16px}.prp-page-group h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:11px;font-weight:700}.prp-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.prp-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.prp-row:hover{background:var(--content-bg)}.prp-row svg{flex-shrink:0;margin-top:1px}.prp-row--info svg{color:var(--text-muted)}.prp-row--warn svg{color:var(--warning-text)}.prp-row--error svg{color:var(--danger)}.prp-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.prp-row-message{color:var(--text);font-size:13px}.prp-row-desc{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.problems-count{border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.problems-count--zero{background:var(--neutral-bg);color:var(--neutral-text)}.problems-count--warn{background:var(--warning-bg);color:var(--warning-text)}.problems-count--error{background:var(--danger-bg);color:var(--danger)}dialog.export-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:520px;max-height:85vh;padding:24px;overflow-y:auto}dialog.export-dialog[open]{flex-direction:column;gap:16px;display:flex}dialog.export-dialog::backdrop{background:#14141673}.exp-header{justify-content:space-between;align-items:center;display:flex}.exp-header h2{align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.exp-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.exp-profiles{flex-direction:column;gap:8px;display:flex}.exp-profile{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:12px;display:flex}.exp-profile--active{border-color:var(--accent);background:var(--content-bg)}.exp-profile input[type=radio]{margin-top:3px}.exp-profile-body{flex-direction:column;gap:2px;display:flex}.exp-profile-title{font-size:14px;font-weight:600}.exp-profile-desc{color:var(--text-muted);font-size:12px}.exp-warning{background:var(--warning-bg);color:var(--warning-text);border-radius:8px;align-items:flex-start;gap:10px;padding:12px;display:flex}.exp-warning-text{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.exp-warning-text p{margin:0;font-size:13px}.exp-job{flex-direction:column;gap:12px;display:flex}.exp-progress{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 0;display:flex}.exp-progress progress{width:100%}.exp-error{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 0;display:flex}.exp-error svg{color:var(--danger)}.exp-preflight{flex-direction:column;gap:12px;display:flex}.exp-checks{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:12px;display:flex}.exp-check{align-items:center;gap:8px;font-size:13px;display:flex}.exp-check--ok svg{color:var(--success-text)}.exp-check--warn svg{color:var(--warning-text)}.exp-pages-checked{color:var(--text-muted);margin:4px 0 0;font-size:12px}.exp-problem-list{flex-direction:column;gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.exp-problem-row{background:var(--content-bg);border-radius:6px;align-items:center;gap:8px;padding:8px;display:flex}.exp-problem-row--info svg{color:var(--text-muted)}.exp-problem-row--warn svg{color:var(--warning-text)}.exp-problem-row--error svg{color:var(--danger)}.exp-problem-message{flex:1;min-width:0;font-size:13px}.exp-no-problems{color:var(--success-text);align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.exp-history{border-top:1px solid var(--border);padding-top:12px}.exp-history h3{color:var(--text-muted);align-items:center;gap:6px;margin:0 0 8px;font-size:13px;display:flex}.exp-history-list{flex-direction:column;gap:4px;max-height:160px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.exp-history-row{align-items:center;gap:10px;padding:6px 4px;font-size:12px;display:flex}.exp-history-profile{flex-shrink:0;width:60px;font-weight:600}.exp-history-date{color:var(--text-muted);flex:1}.exp-history-status{color:var(--text-muted)}.exp-history-status--done{color:var(--success-text)}.exp-history-status--error{color:var(--danger)}.exp-history-spacer{width:68px;display:inline-block}dialog.layout-assistant-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:640px;max-height:85vh;padding:24px;overflow-y:auto}dialog.layout-assistant-dialog[open]{flex-direction:column;gap:16px;display:flex}dialog.layout-assistant-dialog::backdrop{background:#14141673}.la-header{justify-content:space-between;align-items:center;display:flex}.la-header h2{align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.la-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.la-summary{flex-direction:column;gap:12px;display:flex}.la-pairings h3,.la-discards h3{color:var(--text-muted);margin:0 0 6px;font-size:13px;font-weight:600}.la-pairings ul,.la-discards ul{flex-direction:column;gap:4px;max-height:160px;margin:0;padding:0;font-size:13px;list-style:none;display:flex;overflow-y:auto}.la-replace-checkbox{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.la-success{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:24px 0;display:flex}.la-success p{color:var(--success-text);align-items:center;gap:8px;margin:0;display:flex}dialog.gama-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:520px;max-height:85vh;padding:24px;overflow-y:auto}dialog.gama-dialog[open]{flex-direction:column;gap:16px;display:flex}dialog.gama-dialog::backdrop{background:#14141673}.gd-header{justify-content:space-between;align-items:center;display:flex}.gd-header h2{align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.gd-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.gd-candidate-list{max-height:240px;overflow-y:auto}.gd-remember{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.history-panel{background:var(--surface);border-left:1px solid var(--border);width:420px;max-width:100vw;box-shadow:var(--shadow);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.hvp-body{flex-direction:column;display:flex}.hvp-loading{color:var(--text-muted);justify-content:center;padding:24px 0;display:flex}.hvp-empty{color:var(--text-muted);padding:8px 0;font-size:13px}.hvp-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hvp-item{border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.hvp-item-info{flex-direction:column;gap:2px;min-width:0;display:flex}.hvp-item-label{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.hvp-item-meta{color:var(--text-muted);font-size:12px}.annotations-panel{background:var(--surface);border-left:1px solid var(--border);width:420px;max-width:100vw;box-shadow:var(--shadow);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.anp-body{flex-direction:column;gap:4px;display:flex}.anp-loading{color:var(--text-muted);justify-content:center;padding:24px 0;display:flex}.anp-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 0;display:flex}.anp-empty svg{color:var(--success-text)}.anp-page-group+.anp-page-group{margin-top:16px}.anp-page-group h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:11px;font-weight:700}.anp-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.anp-row{border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.anp-row-main{cursor:pointer;text-align:left;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;align-items:flex-start;gap:8px;padding:0;display:flex}.anp-row-main svg{color:var(--accent);flex-shrink:0;margin-top:1px}.anp-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.anp-row-meta{color:var(--text-muted);font-size:11px}.anp-row-message{color:var(--text);overflow-wrap:break-word;font-size:13px}.anp-row-actions{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.chat-panel{background:var(--surface);border-left:1px solid var(--border);width:420px;max-width:100vw;box-shadow:var(--shadow);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.chp-body{flex-direction:column;flex:1;min-height:0;display:flex}.chp-messages{flex-direction:column;flex:1;gap:10px;min-height:0;padding:16px 20px;display:flex;overflow-y:auto}.chp-empty{color:var(--text-muted);padding:8px 0;font-size:13px}.chp-bubble{white-space:pre-wrap;overflow-wrap:break-word;border-radius:12px;max-width:85%;padding:8px 12px;font-size:13px;line-height:1.4}.chp-bubble--user{background:var(--accent);color:var(--accent-contrast);border-bottom-right-radius:4px;align-self:flex-end}.chp-bubble--assistant{background:var(--content-bg);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}.chp-action{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-self:stretch;gap:4px;padding:8px 12px;font-size:12px;display:flex}.chp-action-summary{color:var(--text);font-weight:600}.chp-action-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chp-undo-link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;display:inline-flex}.chp-undo-link:disabled{opacity:.6;cursor:not-allowed}.chp-status{color:var(--text-muted);align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.chp-status--error{color:var(--danger)}.chp-confirm-card{border:1px solid var(--border);background:var(--content-bg);border-radius:10px;flex-direction:column;gap:8px;margin:0 20px 12px;padding:12px;font-size:13px;display:flex}.chp-confirm-card p{margin:0}.chp-confirm-affected{color:var(--text-muted);font-size:12px}.chp-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.chp-error{margin:0 20px 8px}.chp-composer{border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:12px 20px;display:flex}.chp-composer input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);flex:1;padding:9px 10px;font-size:14px}.chp-composer input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.chp-composer input:disabled{opacity:.6}.diff-screen{flex-direction:column;gap:16px;display:flex}.dfs-summary{color:var(--text-muted);margin:0;font-size:14px}.dfs-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.dfs-section-header{align-items:center;gap:12px;display:flex}.dfs-section-toggle{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.dfs-section-toggle h3{margin:0;font-size:15px}.dfs-select-all{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;margin:8px 0 0;font-size:13px;display:flex}.dfs-item-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.dfs-item{border-top:1px solid var(--border);padding-top:8px}.dfs-item:first-child{border-top:none;padding-top:0}.dfs-item label{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.dfs-item-desc{font-weight:600}.dfs-item-code{color:var(--text-muted);font-size:12px}.dfs-item-price,.dfs-item-change{color:var(--text-muted)}.dfs-field-list{flex-direction:column;gap:2px;margin:4px 0 0 26px;padding:0;list-style:none;display:flex}.dfs-field-change{color:var(--text-muted);font-size:12px}.dfs-actions{background:var(--content-bg);border-top:1px solid var(--border);z-index:5;justify-content:flex-end;gap:10px;padding:12px 0;display:flex;position:sticky;bottom:0}.dfs-result{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;padding:20px;display:flex}.dfs-result h3{margin:0;font-size:16px}.dfs-result p{margin:0}.rv-status-screen{text-align:center;min-height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px 24px;display:flex}.rv-status-screen h1{color:var(--text);margin:0;font-size:18px}.rv-status-screen p{max-width:320px;margin:0;font-size:14px}.rv-status-screen--inactive{color:var(--danger)}.rv-status-screen--inactive p{color:var(--text-muted)}.rv-shell{background:var(--content-bg);flex-direction:column;min-height:100vh;display:flex}.rv-header{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.rv-header-title{flex-direction:column;gap:2px;min-width:0;display:flex}.rv-header-title h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:600;overflow:hidden}.rv-header-validity{color:var(--text-muted);font-size:12px}.rv-header-count{color:var(--text-muted);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-size:13px;display:flex}.rv-pages{flex-direction:column;flex:1;align-items:center;gap:20px;padding:20px 12px 48px;display:flex}.rv-page-outer{margin:0 auto;position:relative}.rv-page-frame{transform-origin:0 0;box-shadow:var(--shadow);position:absolute;top:0;left:0}.rv-hit-layer{z-index:10;cursor:pointer;position:absolute;inset:0}.rv-slot-hit{cursor:pointer;background:0 0;border:none;border-radius:4px;width:100%;height:100%;padding:0;position:relative}.rv-slot-hit:hover,.rv-slot-hit:focus-visible{outline-offset:-2px;background:#2f6fed1f;outline:2px solid #2f6fed66}.rv-badge,.rv-page-badge{background:var(--accent);min-width:20px;height:20px;color:var(--accent-contrast);z-index:12;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:4px;right:4px}.rv-page-badge{z-index:11;top:8px;right:8px}.rv-name-overlay{z-index:100;background:#1a1b1e8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.rv-name-card{background:var(--surface);width:100%;max-width:340px;box-shadow:var(--shadow);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:28px 24px;display:flex}.rv-name-card h1{margin:0;font-size:16px}.rv-name-card p{color:var(--text-muted);margin:0;font-size:13px}.rv-name-card input{width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius);margin-top:8px;padding:10px 12px;font-size:15px}.rv-name-card .btn{width:100%;margin-top:4px}.rv-sheet-backdrop{z-index:200;background:#1a1b1e73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.rv-sheet{background:var(--surface);width:100%;max-height:82vh;box-shadow:var(--shadow);border-radius:16px 16px 0 0;flex-direction:column;gap:12px;padding:20px 20px 24px;display:flex;position:relative;overflow-y:auto}.rv-sheet-close{background:var(--neutral-bg);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px}.rv-sheet-product{align-items:center;gap:12px;padding-right:32px;display:flex}.rv-sheet-product img,.rv-sheet-product-nophoto{object-fit:cover;background:var(--neutral-bg);border-radius:8px;flex-shrink:0;width:56px;height:56px}.rv-sheet-product-info{min-width:0}.rv-sheet-product-desc{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.rv-sheet-product-price{color:var(--text-muted);margin-top:2px;font-size:13px}.rv-sheet-page-target{padding-right:32px;font-size:14px;font-weight:600}.rv-sheet-types{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.rv-sheet-type{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-muted);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:11px;display:flex}.rv-sheet-type:hover{background:var(--neutral-bg)}.rv-sheet-type--active{border-color:var(--accent);background:var(--danger-bg);color:var(--accent)}.rv-sheet-message{width:100%;min-height:72px;font:inherit;border:1px solid var(--border);border-radius:var(--radius);resize:vertical;padding:10px 12px;font-size:14px}.rv-sheet-error{color:var(--danger);margin:0;font-size:13px}.rv-sheet-submit{width:100%}@media (width>=768px){.rv-pages{padding:28px 16px 64px}.rv-header{padding:14px 24px}.rv-sheet-backdrop{background:0 0;justify-content:flex-start;align-items:flex-start}.rv-sheet{top:min(var(--rv-anchor-y,40vh), calc(100vh - 440px));left:min(var(--rv-anchor-x,40vw), calc(100vw - 380px));border-radius:12px;width:360px;max-height:70vh;position:fixed}}.bp-filters{align-items:flex-end;margin-bottom:20px}.bp-checkbox-field{color:var(--text);height:var(--control-h);white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:flex}.bp-articles-table tbody tr{cursor:pointer}.bp-row-open{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.bp-row-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.bp-row-selected td{background:var(--accent-tint)}.bp-pagination{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}dialog.article-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:720px;max-height:88vh;padding:24px;overflow-y:auto}dialog.article-dialog[open]{flex-direction:column;gap:16px;display:flex}dialog.article-dialog::backdrop{background:#14141673}.ad-header{justify-content:space-between;align-items:center;display:flex}.ad-header h2{align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.ad-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.ad-section{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.ad-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:600}.ad-inline-form{align-items:center;gap:6px;display:flex}.ad-inline-form input{border:1px solid var(--border);border-radius:var(--radius);min-width:0;font:inherit;color:var(--text);background:var(--surface);flex:1;padding:4px 8px;font-size:14px}dialog.mgd-dialog{box-shadow:var(--shadow);border:none;border-radius:10px;width:100%;max-width:760px;max-height:88vh;padding:24px;overflow-y:auto}dialog.mgd-dialog[open]{flex-direction:column;gap:16px;display:flex}dialog.mgd-dialog::backdrop{background:#14141673}.mgd-header{justify-content:space-between;align-items:center;display:flex}.mgd-header h2{align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.mgd-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.mgd-section{flex-direction:column;gap:10px;display:flex}.mgd-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:600}.mgd-compare{align-items:stretch;gap:16px;display:flex}.mgd-card{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;flex:1;gap:10px;min-width:0;padding:14px;display:flex}.mgd-card-selected{border-color:var(--accent);background:var(--accent-tint)}.mgd-card-head{justify-content:space-between;align-items:center;display:flex}.mgd-card-title{overflow-wrap:break-word;margin:0;font-size:15px;font-weight:600}.mem-section>.dfs-section-header h3{margin:0;font-size:15px}.mem-blocks{flex-direction:column;gap:20px;display:flex}.mem-rule-row{flex-direction:column;gap:6px;display:flex}.mem-rule-main{align-items:center;gap:10px;display:flex}.mem-rule-active{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.mem-rule-text{margin:0;font-size:14px}.mem-rule-edit{flex-direction:column;gap:8px;display:flex}.mem-rule-edit textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);resize:vertical;padding:8px 12px;font-size:14px}.mem-rule-hint{margin:0;font-size:12px}.mem-signal-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.mem-signal-main{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.mem-signal-label{font-size:14px;font-weight:600}.mem-signal-total{color:var(--text-muted);align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.mem-signal-positive{color:var(--success-text)}.mem-signal-negative{color:var(--danger)}.mem-preset-row{align-items:center;gap:12px;display:flex}.mem-preset-thumb{border-radius:var(--radius-sm);background:var(--surface-2);width:40px;height:40px;color:var(--text-faint);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.mem-preset-thumb img{object-fit:cover;width:100%;height:100%}.mem-preset-main{flex-direction:column;flex:1;gap:2px;display:flex}
