*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;background:#0a0a0a;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.auth-page{background:#000;justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-input{color:#fff;letter-spacing:8px;text-align:center;background:0 0;border:none;border-bottom:1px solid #333;outline:none;width:200px;padding:12px 16px;font-size:20px;transition:border-color .2s}.auth-input:focus{border-color:#555}.auth-input.shake{border-color:#f87171;animation:.3s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.layout{min-height:100vh;display:flex}.sidebar{z-index:20;background:#111;border-right:1px solid #1e1e1e;flex-direction:column;width:280px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid #1e1e1e;padding:20px 16px 12px}.logo{letter-spacing:3px;color:#fff;font-size:15px;font-weight:600}.search-wrap{padding:12px;position:relative}.search-icon{color:#555;pointer-events:none;position:absolute;top:50%;left:22px;transform:translateY(-50%)}.search-input{color:#e0e0e0;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;outline:none;width:100%;padding:9px 12px 9px 34px;font-size:13px;transition:border-color .2s}.search-input:focus{border-color:#444}.search-input::placeholder{color:#555}.filter-check{color:#666;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 16px 10px;font-size:12px;display:flex}.filter-check input[type=checkbox]{accent-color:#c4c4ff;cursor:pointer;width:14px;height:14px}.product-list{flex:1;padding:4px 8px;overflow-y:auto}.product-list::-webkit-scrollbar{width:4px}.product-list::-webkit-scrollbar-track{background:0 0}.product-list::-webkit-scrollbar-thumb{background:#333;border-radius:2px}.product-item{cursor:pointer;border-radius:6px;flex-direction:column;gap:2px;padding:10px 12px;transition:background .15s;display:flex}.product-item:hover{background:#1a1a1a}.product-item.active{background:#1a1a2e}.product-code{color:#ccc;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.product-item.active .product-code{color:#c4c4ff}.product-name{color:#666;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.empty{color:#444;text-align:center;padding:24px 12px;font-size:13px}.main{flex:1;min-height:100vh;margin-left:280px}.top-bar{z-index:10;background:#0a0a0a;border-bottom:1px solid #1e1e1e;justify-content:space-between;align-items:center;padding:16px 28px;display:flex;position:sticky;top:0}.top-bar h2{color:#fff;font-size:18px;font-weight:600}.subtitle{color:#666;margin-top:2px;font-size:13px}.save-btn{color:#666;cursor:pointer;background:#222;border:1px solid #333;border-radius:6px;align-items:center;gap:6px;padding:8px 20px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.save-btn.dirty{color:#000;background:#fff;border-color:#fff}.save-btn.dirty:hover{opacity:.9}.save-btn.saving{opacity:.7;cursor:wait}.save-btn:disabled{cursor:not-allowed}.save-spinner{border:2px solid #999;border-top-color:#333;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}.sections{padding-bottom:40px}.image-section{border-bottom:1px solid #1e1e1e}.variant-section{border-left:3px solid #2a2a3e;margin-left:12px}.section-label{color:#888;text-transform:uppercase;letter-spacing:1px;justify-content:space-between;align-items:center;padding:14px 28px;font-size:12px;font-weight:600;display:flex}.variant-code{color:#c4c4ff;margin-right:8px}.variant-chars{color:#666;text-transform:none;letter-spacing:0;font-weight:400}.image-count{color:#555;text-transform:none;letter-spacing:0;font-size:12px;font-weight:400}.placeholder{color:#444;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;font-size:14px;display:flex}.image-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;padding:4px 28px 24px;display:grid}.add-card{aspect-ratio:3/4;cursor:pointer;color:#444;border:2px dashed #333;border-radius:10px;justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:flex}.add-card:hover{color:#888;border-color:#666}.image-card{aspect-ratio:3/4;cursor:grab;background:#151515;border:2px solid #1e1e1e;border-radius:10px;transition:border-color .15s,opacity .15s,transform .15s;position:relative;overflow:hidden}.image-card:active{cursor:grabbing}.image-card.dragging{opacity:.3}.image-card.drag-over{border-color:#c4c4ff;transform:scale(1.02)}.image-card img{object-fit:cover;pointer-events:none;width:100%;height:100%}.image-pos-badge{color:#aaa;opacity:0;background:#0009;border-radius:4px;padding:2px 6px;font-size:11px;transition:opacity .2s;position:absolute;bottom:6px;left:6px}.image-card:hover .image-pos-badge{opacity:1}.select-checkbox{cursor:pointer;opacity:0;z-index:2;background:#0000004d;border:2px solid #fff6;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .2s,background .15s,border-color .15s;display:flex;position:absolute;top:6px;left:6px}.image-card:hover .select-checkbox,.select-checkbox.checked{opacity:1}.select-checkbox.checked{color:#000;background:#c4c4ff;border-color:#c4c4ff}.image-card.selected{border-color:#c4c4ff;box-shadow:0 0 0 1px #c4c4ff}.top-actions{align-items:center;gap:8px;display:flex}.download-selected-btn{color:#c4c4ff;cursor:pointer;background:0 0;border:1px solid #c4c4ff;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:500;transition:all .2s}.download-selected-btn:hover{background:#c4c4ff1a}.download-selected-btn:disabled{opacity:.6;cursor:wait}.delete-selected-btn{color:#f87171;cursor:pointer;background:0 0;border:1px solid #f87171;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:500;transition:all .2s}.delete-selected-btn:hover{background:#f871711a}.delete-selected-btn:disabled{opacity:.6;cursor:wait}.lightbox{z-index:100;cursor:pointer;background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;cursor:default;border-radius:8px;max-width:90vw;max-height:90vh}.lightbox-close{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;font-size:32px;line-height:1;transition:opacity .2s;position:absolute;top:16px;right:24px}.lightbox-close:hover{opacity:1}.add-card.uploading{pointer-events:none;border-color:#555}.upload-spinner{border:2px solid #333;border-top-color:#888;border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
