.cv-header-top{align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.cv-header-icon{background:#f0effe;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;display:flex}.cv-upload-zone{cursor:pointer;text-align:center;background:#fafafa;border:2px dashed #d1d5db;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:12px;margin-bottom:24px;padding:64px 40px;transition:all .2s;display:flex}.cv-upload-zone:hover,.cv-upload-zone.drag-over{background:#f0effe;border-color:#5b4fe8}.cv-upload-icon{font-size:56px;line-height:1}.cv-upload-title{color:#111827;margin:0;font-size:22px;font-weight:700}.cv-upload-sub{color:#6b7280;max-width:480px;margin:0;font-size:13.5px}.cv-upload-btn{margin-top:4px;padding:10px 28px;font-size:14px}.cv-upload-feats{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.cv-upload-feat{color:#6b7280;background:#f3f4f6;border-radius:20px;padding:4px 12px;font-size:12px}.cv-workspace{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.cv-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.cv-toolbar-stats{color:#374151;font-size:13.5px}.cv-toolbar-stats strong{color:#111827}.cv-stat-detail{color:#6b7280}.cv-toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.cv-stale-notice{border-radius:var(--radius,10px);color:#92400e;background:#fffbeb;border:1.5px solid #fcd34d;align-items:center;gap:8px;margin-bottom:10px;padding:10px 14px;font-size:13px;display:flex}.cv-main-layout{grid-template-columns:272px 1fr;align-items:start;gap:10px;display:grid}.cv-left-panel{flex-direction:column;gap:10px;display:flex}.cv-panel-card{padding:16px}.cv-panel-hdr{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cv-seg{flex-wrap:wrap;gap:4px;display:flex}.cv-seg-btn{white-space:nowrap;color:#6b7280;cursor:pointer;text-align:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;flex:1;padding:6px 8px;font-size:12px;font-weight:600;transition:all .15s}.cv-seg-btn:hover:not(:disabled):not(.active){color:#5b4fe8;border-color:#5b4fe8}.cv-seg-btn.active{color:#fff;background:#5b4fe8;border-color:#5b4fe8}.cv-seg-btn:disabled{opacity:.4;cursor:not-allowed}.cv-field{margin-top:4px}.cv-field-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cv-field-label{color:#374151;font-size:12.5px;font-weight:600}.cv-field-val{color:#111827;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.cv-field-note{color:#9ca3af;margin-top:8px;font-size:11.5px;line-height:1.5}.cv-bg-swatch{cursor:pointer;border:1px solid #e5e7eb;border-radius:10px;justify-content:center;align-items:center;height:56px;margin-bottom:10px;display:flex;position:relative;overflow:hidden}.cv-color-overlay{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.cv-color-dots{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.cv-color-dot{cursor:pointer;border:2px solid #0000;border-radius:8px;flex-shrink:0;width:26px;height:26px;transition:transform .15s,border-color .15s}.cv-color-dot:hover{transform:scale(1.15)}.cv-color-dot.active{border-color:#111827}.cv-hex-row{align-items:center;gap:8px;display:flex}.cv-hex-input{color:#111827;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:8px;outline:none;flex:1;padding:6px 10px;font-family:monospace;font-size:12.5px}.cv-hex-input:focus{background:#fff;border-color:#5b4fe8}.cv-ico-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.cv-ico-chip{white-space:nowrap;color:#6b7280;cursor:pointer;text-align:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;padding:8px 6px;font-size:12px;font-weight:600;transition:all .15s}.cv-ico-chip:hover{color:#5b4fe8;border-color:#5b4fe8}.cv-ico-chip.active{color:#fff;background:#5b4fe8;border-color:#5b4fe8}.cv-dims{flex-direction:column;gap:10px;margin-top:12px;display:flex}.cv-dims-row{gap:8px;display:flex}.cv-dims-field{flex-direction:column;flex:1;gap:4px;display:flex}.cv-dims-field span{color:#6b7280;font-size:11.5px;font-weight:600}.cv-dims-field .input{padding:8px 10px;font-size:13px}.cv-grid-wrap{border-radius:12px;min-width:0;transition:background .15s}.cv-grid-wrap.drag-over{outline-offset:4px;background:#f0effe;outline:2px dashed #5b4fe8}.cv-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.cv-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000d}.cv-add-card{cursor:pointer;color:#6b7280;border:2px dashed #d1d5db;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:170px;font-size:13px;font-weight:600;transition:all .15s}.cv-add-card:hover{color:#5b4fe8;background:#f0effe;border-color:#5b4fe8}.cv-add-card span:first-child{font-size:30px;font-weight:400;line-height:1}.cv-card-thumb{aspect-ratio:4/3;background:#f3f4f6;position:relative;overflow:hidden}.cv-card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.cv-card-thumb.clickable{cursor:pointer}.cv-card-thumb.clickable:hover img{opacity:.85}.cv-card-overlay{background:#ffffffa6;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cv-spinner{border:3px solid #e5e7eb;border-top-color:#5b4fe8;border-radius:50%;width:24px;height:24px;animation:.8s linear infinite cv-spin}@keyframes cv-spin{to{transform:rotate(360deg)}}.cv-card-badge{color:#fff;background:#5b4fe8;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;top:6px;right:6px}.cv-card-body{flex-direction:column;flex:1;gap:5px;padding:10px 12px;display:flex}.cv-card-name{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.cv-card-sizes{color:#9ca3af;flex-wrap:wrap;align-items:center;gap:5px;font-size:11.5px;display:flex}.cv-card-sizes .cv-after{color:#5b4fe8;font-weight:700}.cv-delta{color:#10b981;font-weight:700}.cv-delta.warn{color:#9ca3af}.cv-card-status{color:#6b7280;font-size:11px}.cv-card-status.error{color:#ef4444}.cv-card-actions{gap:6px;margin-top:auto;padding-top:4px;display:flex}.cv-icon-btn{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12.5px;transition:all .15s;display:flex}.cv-icon-btn:hover{color:#5b4fe8;background:#f0effe;border-color:#5b4fe8}.cv-modal-overlay{z-index:1000;background:#0f0e2a99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.cv-modal{width:100%;max-width:720px;max-height:90vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;padding:18px;overflow-y:auto}.cv-modal-hdr{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.cv-modal-title{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.cv-modal-close{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;flex-shrink:0;width:30px;height:30px;font-size:13px}.cv-modal-close:hover{color:#5b4fe8;border-color:#5b4fe8}.cv-compare{aspect-ratio:4/3;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:#f3f4f6;border-radius:10px;width:100%;position:relative;overflow:hidden}.cv-compare-img{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.cv-compare-before-wrap{position:absolute;inset:0}.cv-compare-line{background:#fff;width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.cv-compare-handle{color:#5b4fe8;background:#fff;border:2px solid #5b4fe8;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000040}.cv-compare-tag{color:#fff;background:#0f0e2aa6;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;position:absolute;bottom:10px}.cv-compare-tag-before{left:10px}.cv-compare-tag-after{right:10px}.cv-modal-stats{gap:10px;margin-top:14px;display:flex}.cv-modal-stats>div{text-align:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;flex:1;padding:8px}.cv-modal-stats span{color:#9ca3af;margin-bottom:2px;font-size:11px;display:block}.cv-modal-stats strong{color:#111827;font-size:13px}.cv-modal-dl{width:100%;margin-top:14px}.cv-how{margin-bottom:20px;padding:24px}.cv-section-title{color:#111827;margin:0 0 20px;font-size:17px;font-weight:700}.cv-how-steps{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.cv-how-step{align-items:flex-start;gap:10px;display:flex}.cv-how-num{color:#fff;background:#5b4fe8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:2px;font-size:13px;font-weight:700;display:flex}.cv-how-body{align-items:flex-start;gap:10px;display:flex}.cv-how-icon{flex-shrink:0;font-size:22px;line-height:1.4}.cv-how-body strong{color:#111827;margin-bottom:4px;font-size:13.5px;font-weight:700;display:block}.cv-how-body p{color:#6b7280;margin:0;font-size:12.5px;line-height:1.5}.cv-features-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:24px;display:grid}.cv-feature-card{align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.cv-feature-icon{flex-shrink:0;font-size:22px;line-height:1.3}.cv-feature-body{flex-direction:column;gap:3px;display:flex}.cv-feature-body strong{color:#111827;font-size:13px;font-weight:700}.cv-feature-body span{color:#6b7280;font-size:12px;line-height:1.5}@media (width<=960px){.cv-main-layout{grid-template-columns:1fr}.cv-left-panel{grid-template-columns:repeat(2,1fr);display:grid}.cv-how-steps{grid-template-columns:1fr}}@media (width<=640px){.cv-toolbar{flex-direction:column;align-items:stretch}.cv-toolbar-actions{justify-content:stretch}.cv-toolbar-actions .btn{flex:1}.cv-left-panel{grid-template-columns:1fr}.cv-upload-zone{padding:36px 20px}.cv-features-grid{grid-template-columns:1fr}.cv-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.cv-modal{padding:14px}.cv-modal-stats{flex-wrap:wrap}.cv-ico-grid{grid-template-columns:repeat(3,1fr)}}
