:root{--bg: #f8f7f4;--surface: #ffffff;--border: #e2e0dc;--text: #1a1a1a;--text-secondary: #6b6966;--accent: #2c5f2d;--accent-light: #e8f0e8;--danger: #c0392b;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}h1,h2,h3{font-weight:600}button{cursor:pointer;border:none;font-family:inherit;font-size:.875rem;padding:.5rem 1rem;border-radius:var(--radius);transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#224b23}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#a93226}.btn-sm{padding:.25rem .5rem;font-size:.75rem}input,select{font-family:inherit;font-size:.875rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%}input:focus,select:focus{outline:none;border-color:var(--accent)}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:1.5rem 0;position:fixed;top:0;left:0;height:100vh;display:flex;flex-direction:column}.sidebar-logo{padding:0 1.25rem 1.5rem;font-size:1rem;font-weight:700;color:var(--accent);border-bottom:1px solid var(--border)}.sidebar-nav{list-style:none;padding:.75rem 0;flex:1}.sidebar-nav a{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;transition:all .15s}.sidebar-nav a:hover,.sidebar-nav a.active{color:var(--accent);background:var(--accent-light)}.main{flex:1;margin-left:220px;padding:2rem;max-width:1600px}.page-header{margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;margin-bottom:.25rem}.page-header p{color:var(--text-secondary);font-size:.875rem}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.image-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .15s;cursor:pointer;position:relative}.image-card:hover{box-shadow:var(--shadow-lg)}.image-card.selected{border:2px solid var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.image-card img{width:100%;height:200px;object-fit:contain;background:#f5f5f5}.image-card-info{padding:.5rem .75rem}.image-card-info h4{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-card-info small{color:var(--text-secondary);font-size:.7rem}.image-card .delete-btn{position:absolute;top:.25rem;right:.25rem;background:#0009;color:#fff;border:none;border-radius:50%;width:24px;height:24px;font-size:14px;display:none;align-items:center;justify-content:center;padding:0}.image-card:hover .delete-btn{display:flex}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:2rem;text-align:center;color:var(--text-secondary);cursor:pointer;transition:all .15s;margin-bottom:1.5rem}.dropzone:hover,.dropzone.active{border-color:var(--accent);background:var(--accent-light)}.dropzone p{font-size:.875rem}.visualizer-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.panel h3{font-size:.9rem;margin-bottom:1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.result-container{grid-column:1 / -1;text-align:center}.toolbar{display:flex;gap:.5rem;margin-bottom:1rem;align-items:center;flex-wrap:wrap}.loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--text-secondary)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{background:#fdf0ef;color:var(--danger);padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;font-weight:500;margin-bottom:.25rem;color:var(--text-secondary)}.inline-form{display:flex;gap:.5rem;align-items:end}.inline-form .form-group{flex:1;margin-bottom:0}.selection-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.selection-slot{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.selection-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap}.selection-empty{font-size:.8rem;color:var(--text-secondary);font-style:italic}.selection-chip{display:flex;align-items:center;gap:.5rem;background:var(--accent-light);border:1px solid var(--accent);border-radius:20px;padding:.25rem .5rem .25rem .25rem;max-width:100%;min-width:0}.selection-chip img{width:28px;height:28px;border-radius:50%;object-fit:cover}.selection-chip span{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selection-chip button{background:none;border:none;color:var(--text-secondary);font-size:1rem;padding:0 .25rem;cursor:pointer;line-height:1}.selection-chip-pillow{background:#fff8e6;border-color:#c8922a}.selection-add-btn{background:none;border:1px dashed var(--border);color:var(--text-secondary);font-size:.78rem;padding:.25rem .65rem;border-radius:20px;white-space:nowrap;transition:all .15s}.selection-add-btn:hover{border-color:#c8922a;color:#c8922a;background:#fff8e6}.ai-only-tag{font-size:.65rem;font-weight:700;letter-spacing:.04em;background:#f0e8ff;color:#7c3aed;border-radius:4px;padding:1px 4px;margin-left:4px;vertical-align:middle}.selection-empty-active{color:#c8922a;font-style:normal;font-weight:600;font-size:.8rem;animation:pulse-text 1.2s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.55}}.pillow-mode-banner{background:#fff8e6;border:1px solid #c8922a;border-radius:var(--radius);padding:.6rem 1rem;font-size:.82rem;color:#7a5a10;margin-bottom:.75rem;line-height:1.4}.btn-sm{padding:.3rem .75rem;font-size:.78rem}.btn-visualize{padding:.625rem 1.5rem;font-size:.95rem;white-space:nowrap}.mode-toggle{display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:3px;gap:2px;flex-shrink:0}.mode-btn{background:transparent;color:var(--text-secondary);border:none;border-radius:16px;padding:.3rem .75rem;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s}.mode-btn:hover:not(:disabled){color:var(--text);background:#0000000d}.mode-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.mode-btn-ai.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 1px 4px #6366f166}.mode-btn:disabled{opacity:.35;cursor:not-allowed}.badge-ai{display:inline-block;margin-left:.5rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:.65rem;font-weight:700;padding:.15rem .45rem;border-radius:10px;vertical-align:middle;letter-spacing:.03em}.catalog-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.catalog-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.catalog-panel-header{display:flex;align-items:baseline;justify-content:space-between;padding:1rem 1.25rem 0}.catalog-panel-header h2{font-size:1.1rem}.catalog-count{font-size:.75rem;color:var(--text-secondary)}.catalog-toolbar{display:flex;gap:.5rem;padding:.75rem 1.25rem}.catalog-toolbar select{width:auto;min-width:120px}.retailer-tabs-wrapper{position:relative;display:flex;align-items:stretch;border-bottom:1px solid var(--border)}.retailer-tabs-arrow{display:flex;align-items:center;justify-content:center;width:28px;min-width:28px;background:var(--surface);border:none;cursor:pointer;color:var(--text-secondary);font-size:1rem;padding:0;z-index:1;transition:color .15s,background .15s}.retailer-tabs-arrow:hover{color:var(--text);background:var(--border)}.retailer-tabs{display:flex;gap:0;padding:0 .25rem;overflow-x:hidden;scroll-behavior:smooth;flex:1;min-width:0}.retailer-tab{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:.5rem .75rem;font-size:.85rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.retailer-tab:hover{color:var(--text)}.retailer-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;padding:0 1.25rem 1.25rem;max-height:65vh;overflow-y:auto}.pattern-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .15s}.pattern-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.pattern-card img{width:100%;aspect-ratio:1;object-fit:cover}.pattern-card-info{padding:.35rem .5rem}.pattern-card-info h4{font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pattern-card-info small{font-size:.65rem;color:var(--text-secondary)}.colorway-detail{padding:0 1.25rem 1.25rem}.btn-back{background:none;border:none;color:var(--accent);padding:.25rem 0;font-size:.8rem;cursor:pointer;margin-bottom:.5rem}.btn-back:hover{text-decoration:underline}.colorway-detail h3{font-size:1rem;margin-bottom:.25rem}.fabric-meta{font-size:.75rem;color:var(--text-secondary);margin-bottom:1rem}.colorway-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;max-height:55vh;overflow-y:auto}.colorway-card{border:2px solid transparent;border-radius:var(--radius);overflow:hidden;cursor:pointer;text-align:center;transition:all .15s}.colorway-card:hover{border-color:var(--border)}.colorway-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.colorway-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:calc(var(--radius) - 2px)}.colorway-card span{display:block;font-size:.65rem;padding:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.furniture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;padding:0 1.25rem 1.25rem;max-height:65vh;overflow-y:auto}.furniture-card{position:relative;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .15s;background:var(--bg)}.furniture-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.furniture-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.furniture-card img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f5f5f5}.furniture-card .no-image{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-secondary);background:var(--bg)}.furniture-card-info{padding:.4rem .6rem}.furniture-card-info h4{font-size:.7rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.15rem}.furniture-card-info .price{font-size:.7rem;font-weight:600;color:var(--accent)}.furniture-card-info .price s{font-weight:400;color:var(--text-secondary);margin-left:.35rem;font-size:.6rem}.furniture-card-info .collection{display:block;font-size:.6rem;color:var(--text-secondary)}.furniture-card-link{position:absolute;top:.3rem;right:.3rem;width:24px;height:24px;background:#0000008c;color:#fff;border-radius:50%;display:none;align-items:center;justify-content:center;font-size:13px;line-height:1;text-decoration:none;z-index:2;transition:background .15s}.furniture-card-link:hover{background:var(--accent);color:#fff}.furniture-card:hover .furniture-card-link{display:flex}.furniture-detail-modal{position:fixed;inset:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.furniture-detail-content{background:var(--surface);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d}.furniture-detail-close{position:absolute;top:.5rem;right:.75rem;z-index:2;background:#00000080;color:#fff;border:none;border-radius:50%;width:32px;height:32px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.furniture-detail-close:hover{background:#000c}.furniture-detail-content img{width:100%;max-height:55vh;object-fit:contain;background:#f5f5f5;border-radius:12px 12px 0 0}.furniture-detail-info{padding:1.25rem 1.5rem}.furniture-detail-info h2{font-size:1.2rem;font-weight:600;margin-bottom:.6rem}.furniture-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.furniture-detail-price{font-size:1.1rem;font-weight:700;color:var(--accent)}.furniture-detail-price s{font-weight:400;color:var(--text-secondary);margin-left:.4rem;font-size:.9rem}.furniture-detail-tag{background:var(--bg);color:var(--text-secondary);font-size:.75rem;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--border)}.furniture-detail-link{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;background:var(--accent);color:#fff;border-radius:var(--radius);text-decoration:none;font-size:.85rem;font-weight:500;transition:background .15s}.furniture-detail-link:hover{background:var(--accent-dark, #2d6b3f);color:#fff}.result-container{text-align:center;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem}.result-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem;text-align:left}.result-container img{max-width:100%;max-height:500px;border-radius:var(--radius);box-shadow:var(--shadow-lg)}.refine-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);text-align:left}.refine-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.refine-row{display:flex;gap:.5rem;align-items:center}.refine-input{flex:1;font-size:.875rem}.refine-btn{white-space:nowrap;display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem}.jacquard-filter{display:flex;gap:.25rem;flex-shrink:0}.jacquard-chip{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:.25rem .65rem;font-size:.75rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.jacquard-chip:hover{border-color:var(--accent);color:var(--accent)}.jacquard-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.badge-jacquard{display:inline-block;margin-left:.4rem;background:#f0f4ff;color:#3b5bdb;border:1px solid #bac8ff;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:8px;vertical-align:middle;letter-spacing:.02em}.badge-jacquard-sm{display:inline-block;margin-left:.25rem;background:#3b5bdb;color:#fff;font-size:.55rem;font-weight:700;padding:.05rem .3rem;border-radius:6px;vertical-align:middle}.retailer-tab-upload{margin-left:auto;color:var(--accent)!important;font-style:italic}.upload-frame-panel{padding:1rem 1.25rem 1.25rem}.upload-frame-hint{font-size:.8rem;color:var(--text-secondary);margin-bottom:.75rem}.upload-frame-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:2rem 1rem;text-align:center;cursor:pointer;transition:all .15s;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;gap:.4rem;min-height:180px;justify-content:center}.upload-frame-zone:hover,.upload-frame-zone.dragging{border-color:var(--accent);background:var(--accent-light)}.upload-frame-zone.loading{cursor:default;flex-direction:row;justify-content:center;gap:.5rem}.upload-frame-zone p{font-size:.875rem;margin:0}.upload-frame-zone small{font-size:.75rem}.upload-frame-icon{font-size:2rem;line-height:1}.upload-frame-preview{width:120px;height:90px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border)}.upload-frame-name{font-size:.8rem;font-weight:500;color:var(--text)}.upload-frame-change{font-size:.7rem;color:var(--text-secondary)}.load-more-container{display:flex;justify-content:center;padding:1rem 1.25rem}.btn-load-more{display:flex;align-items:center;gap:.5rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:.5rem 1.5rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-load-more:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.btn-load-more:disabled{opacity:.6;cursor:not-allowed}
