*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Inter,Arial,sans-serif;background:#f3f4f6;color:#111827}.adminPage{min-height:100vh;padding:16px;display:grid;grid-gap:12px;gap:12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h1{margin:0;font-size:1.4rem}.topbarActions{display:flex;align-items:center;gap:10px}.topbarActions button{height:36px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 12px;cursor:pointer}.toggle{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.filters{display:grid;grid-template-columns:1fr 220px 240px;grid-gap:8px;gap:8px}.filters button,.filters input,.filters select{height:38px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 10px}.filters button{cursor:pointer}.grid{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:12px;gap:12px;min-height:72vh}.detailsPanel,.listPanel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.listPanel{overflow:auto}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #eef0f3;text-align:left;padding:10px;font-size:13px;vertical-align:top}th{background:#f9fafb;position:-webkit-sticky;position:sticky;top:0;z-index:1}td small{display:block;color:#6b7280;margin-top:3px}tbody tr{cursor:pointer}tbody tr:hover{background:#f9fafb}.selectedRow{background:#ecfeff}.detailsPanel{padding:14px;overflow:auto}.authPanel{max-width:640px;margin:40px auto}.createPanel,.productMappingPanel{display:grid;grid-gap:10px;gap:10px}.productsAdminGrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,1fr);grid-gap:12px;gap:12px}.productsTableWrap{overflow:auto}.productEditor,.productsTableWrap{border:1px solid #e5e7eb;border-radius:12px}.productEditor{display:grid;grid-gap:12px;gap:12px;padding:12px;background:#fafaf8}.productEditorHeader{display:grid;grid-gap:4px;gap:4px}.productEditorHeader span{color:#6b7280;font-size:12px}.productFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.productFormGrid input,.productFormGrid textarea{border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:10px;font:inherit}.productFormGrid textarea{min-height:120px;grid-column:1/-1;resize:vertical}.productCheckbox{height:38px;display:inline-flex;align-items:center;gap:8px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 10px}.productEditorActions{display:flex;flex-wrap:wrap;gap:8px}.productEditorActions button{height:38px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 12px;cursor:pointer}.productMappingControls{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,1fr) auto;grid-gap:8px;gap:8px}.productMappingControls button,.productMappingControls input,.productMappingControls select{height:38px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 10px}.productMappingControls button{cursor:pointer}.mappingMeta{font-size:13px;color:#4b5563}.createGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.createGrid button,.createGrid input,.createGrid select{height:38px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 10px}.createGrid button{cursor:pointer}.createActions{grid-column:span 4;display:flex;gap:8px}.detailsPanel h2{margin:0}.detailsPanel p{margin:6px 0;color:#374151}@media (max-width:1100px){.productsAdminGrid{grid-template-columns:1fr}}.placeholder{color:#6b7280}.pipeline{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px;margin:12px 0}.stage{height:34px;border-radius:999px;border:1px solid #d1d5db;display:grid;place-items:center;font-size:12px;background:#f9fafb}.stage.done{border-color:#10b981;background:#dcfce7}.stats{display:grid;grid-gap:6px;gap:6px;font-size:14px;margin-bottom:12px}.strong{font-weight:700}.statusActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:12px}.statusActions button{height:36px;border:1px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer}.events{display:grid;grid-gap:8px;gap:8px}.eventItem{border:1px solid #e5e7eb;border-radius:8px;padding:8px}.eventHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.eventItem pre{margin:0;font-size:11px;overflow:auto;background:#f8fafc;padding:8px;border-radius:6px}.errorBar{border:1px solid #fecaca;color:#991b1b;background:#fef2f2;border-radius:8px;padding:10px}@media (max-width:1200px){.filters,.grid{grid-template-columns:1fr}.pipeline{grid-template-columns:repeat(2,1fr)}.createGrid,.productMappingControls{grid-template-columns:1fr}.createActions{grid-column:span 1;flex-direction:column}}.constructorPage{max-width:1180px;margin:0 auto}.constructorPage a{color:#2563eb;text-decoration:none}.constructorCard{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;display:grid;grid-gap:12px;gap:12px}.constructorCardHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.constructorCardHeader h3,.constructorCardHeader h4{margin:0}.skuBadge{font-size:.8rem;font-weight:500;color:#6b7280;border:1px solid #d1d5db;border-radius:6px;padding:2px 6px;margin-left:8px}.warnBadge{font-size:.8rem;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;padding:4px 8px}.slugRow{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.slugRow label{display:grid;grid-gap:4px;gap:4px;font-size:.85rem}.slugRow input{height:34px;border:1px solid #d1d5db;border-radius:8px;padding:0 10px;min-width:240px}.constructorActions button,.slugRow button,.uploadButton{height:36px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.uploadButton input[type=file]{display:none}.primaryButton{background:#111827!important;color:#fff;border-color:#111827!important}.dangerButton{color:#b91c1c;border-color:#fca5a5!important}.linkButton{border:none;background:none;color:#2563eb;cursor:pointer;padding:0;font-size:.85rem;justify-self:start}.constructorStatus{margin:0;font-size:.9rem;color:#374151;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px}.constructorErrors{margin:0;padding:8px 10px 8px 28px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:.85rem;display:grid;grid-gap:4px;gap:4px}.constructorEmpty{margin:0;color:#6b7280;font-size:.9rem}.constructorHint{margin:0;color:#6b7280;font-size:.82rem}.galleryGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px}.galleryItem{border:1px solid #e5e7eb;border-radius:10px;padding:8px;display:grid;grid-gap:6px;gap:6px;background:#fafafa}.galleryItem.isCover{border-color:#111827;box-shadow:0 0 0 1px #111827}.galleryThumb{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:#e5e7eb}.galleryThumbMissing{display:grid;place-items:center;color:#9ca3af;font-size:.8rem}.galleryItemMeta{display:grid;grid-gap:4px;gap:4px;font-size:.78rem;color:#6b7280}.galleryItemMeta input{height:28px;border:1px solid #d1d5db;border-radius:6px;padding:0 8px;font-size:.8rem}.galleryItemActions{display:flex;gap:4px}.galleryItemActions button{flex:1 1;height:28px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:.8rem;padding:0}.galleryItemActions button:disabled{opacity:.4;cursor:default}.boxControls{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:12px;gap:12px}.boxControlGroup{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;display:grid;grid-gap:8px;gap:8px;margin:0}.boxControlGroup legend{font-size:.82rem;color:#6b7280;padding:0 4px}.boxControlGroup label{display:grid;grid-gap:4px;gap:4px;font-size:.82rem}.boxControlGroup input[type=number]{height:30px;border:1px solid #d1d5db;border-radius:6px;padding:0 8px;width:110px}.faceRotButtons{display:flex;flex-wrap:wrap;gap:6px}.faceRotButtons button{border-width:2px;border-style:solid;border-radius:6px;background:#fff;padding:4px 8px;cursor:pointer;font-size:.78rem}.regionPickerViewport{overflow:auto;max-height:72vh;border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb}.regionPickerCanvas{position:relative}.regionPickerImage{position:absolute;inset:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.regionRect{position:absolute;border-width:2px;border-style:solid;border-radius:2px;cursor:-webkit-grab;cursor:grab;touch-action:none}.regionRect.isDragging{cursor:-webkit-grabbing;cursor:grabbing;z-index:5}.regionRect.isInvalid{outline:3px dashed #dc2626}.regionRectLabel{position:absolute;top:-1px;left:-1px;color:#fff;font-size:.68rem;padding:1px 5px;border-radius:0 0 4px 0;white-space:nowrap}.compressionPanel{display:grid;grid-gap:8px;gap:8px}.compressionPanel h4{margin:0}.compressionPanel table,.mediaSettingsTable{border-collapse:collapse;font-size:.85rem}.compressionPanel td,.compressionPanel th,.mediaSettingsTable td,.mediaSettingsTable th{border-bottom:1px solid #e5e7eb;padding:6px 10px;text-align:left}.compressionPanel input,.compressionPanel select,.mediaSettingsTable input,.mediaSettingsTable select{height:30px;border:1px solid #d1d5db;border-radius:6px;padding:0 8px;width:100px}.constructorActions{display:flex;gap:10px}.boxPreviewSection{display:grid;grid-gap:8px;gap:8px}.boxPreviewCanvas{width:420px;height:420px;max-width:100%;background:radial-gradient(circle at 50% 40%,#ffffff 0,#eef0f4 100%);border:1px solid #e5e7eb;border-radius:12px}.constructorLink{color:#2563eb;text-decoration:none;font-size:.85rem;white-space:nowrap}.slugRow select{height:34px;border:1px solid #d1d5db;border-radius:8px;padding:0 8px;background:#fff}.slugRow .sortOrderInput{min-width:80px;width:80px}.textsGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.specRowsEditor label,.textsGrid label{display:grid;grid-gap:4px;gap:4px;font-size:.85rem;color:#374151}.specRowEdit input,.specRowEdit textarea,.textsGrid input,.textsGrid textarea{border:1px solid #d1d5db;border-radius:8px;padding:6px 10px;font:inherit;font-size:.9rem}.textsGrid .textsWide{grid-column:1/-1}.specRowsEditor{display:grid;grid-gap:8px;gap:8px;font-size:.85rem}.specRowEdit{display:grid;grid-template-columns:240px 1fr 36px;grid-gap:8px;gap:8px;align-items:start}.specRowEdit .dangerButton{height:34px;border:1px solid #fca5a5;border-radius:8px;background:#fff;cursor:pointer}