:root{--lobo-red: #cb0d15;--lobo-dark: #2A3542;--lobo-bg: #1e2a36;--lobo-card: #2A3542;--lobo-border: #3a4a5a;--lobo-text: #e0e0e0;--lobo-text-muted: #8a9aaa;--lobo-accent: #cb0d15}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Open Sans,sans-serif;background:var(--lobo-bg);color:var(--lobo-text);min-height:100vh;-webkit-font-smoothing:antialiased}#app{max-width:1200px;margin:0 auto;padding:20px}.wrap-header{text-align:center;padding:32px 0 24px}.wrap-header h1{font-size:28px;font-weight:700;color:#fff;letter-spacing:1px}.wrap-header h1 span{color:var(--lobo-red)}.wrap-header p{color:var(--lobo-text-muted);font-size:14px;margin-top:6px}.upload-area{border:2px dashed var(--lobo-border);border-radius:16px;padding:60px 40px;text-align:center;cursor:pointer;transition:all .2s;background:var(--lobo-card)}.upload-area:hover,.upload-area.drag-over{border-color:var(--lobo-red);background:#cb0d150f}.upload-area .upload-icon{font-size:48px;margin-bottom:16px;opacity:.6}.upload-area h3{font-size:18px;margin-bottom:8px;color:#fff}.upload-area p{color:var(--lobo-text-muted);font-size:13px}.upload-buttons{display:flex;gap:12px;justify-content:center;margin-top:20px}.btn-primary{background:var(--lobo-red);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-family:Open Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#a80a11}.btn-primary:disabled{background:#555;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--lobo-text);border:1px solid var(--lobo-border);padding:12px 24px;border-radius:8px;font-family:Open Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{border-color:var(--lobo-text-muted);background:#ffffff0d}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center}.spinner{width:48px;height:48px;border:3px solid var(--lobo-border);border-top-color:var(--lobo-red);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{color:var(--lobo-text-muted);font-size:14px}.editor-layout{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}@media(max-width:900px){.editor-layout{grid-template-columns:1fr}}.canvas-container{background:var(--lobo-card);border-radius:12px;overflow:hidden;position:relative}.canvas-container canvas{display:block;width:100%;height:auto}.before-after{position:relative;overflow:hidden;cursor:ew-resize;touch-action:none;border-radius:12px;background:var(--lobo-card)}.before-after canvas,.before-after .ba-img{display:block;width:100%;height:auto}.before-after .after-layer .ba-img{width:100%;height:100%;object-fit:fill}.before-after-wrap{position:relative}.original-preview{position:relative;border-radius:12px;overflow:hidden;background:var(--lobo-card)}.original-preview .ba-img{display:block;width:100%;height:auto}.pick-color-hint{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,#000000b3);text-align:center}.pick-color-hint p{color:#fff;font-size:15px;font-weight:600}.recolor-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#141c26d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;border-radius:12px;z-index:20}.loader-card{display:flex;flex-direction:column;align-items:center;padding:32px 40px;max-width:320px;width:100%}.loader-color-preview{width:64px;height:64px;border-radius:50%;border:3px solid rgba(255,255,255,.2);margin-bottom:16px;box-shadow:0 0 24px #0000004d;animation:loader-pulse 2s ease-in-out infinite}@keyframes loader-pulse{0%,to{transform:scale(1);box-shadow:0 0 24px #0000004d}50%{transform:scale(1.08);box-shadow:0 0 32px #ffffff1a}}.loader-title{color:#fff;font-size:16px;font-weight:700;margin-bottom:4px}.loader-color-name{color:var(--lobo-text-muted);font-size:13px;margin-bottom:16px}.loader-progress-track{width:100%;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden;margin-bottom:8px}.loader-progress-bar{height:100%;background:var(--lobo-red);border-radius:2px;transition:width 1s ease-out}.loader-time{color:var(--lobo-text-muted);font-size:12px;margin-bottom:16px}.loader-tip{color:#fff9;font-size:12px;text-align:center;line-height:1.4;min-height:34px;animation:loader-tip-fade 4s ease-in-out infinite}@keyframes loader-tip-fade{0%,to{opacity:1}45%{opacity:1}50%{opacity:0}55%{opacity:1}}.before-after .after-layer{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.before-after .slider-handle{position:absolute;top:0;bottom:0;width:4px;background:#fff;cursor:ew-resize;z-index:10;box-shadow:0 0 8px #00000080}.before-after .slider-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;background:#fff;border-radius:50%;box-shadow:0 2px 8px #0000004d}.before-after .slider-handle .arrows{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;font-size:14px;color:var(--lobo-dark);font-weight:700;pointer-events:none;letter-spacing:4px}.before-after .label{position:absolute;top:12px;padding:4px 12px;background:#0009;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;border-radius:4px;pointer-events:none}.before-after .label-before{left:12px}.before-after .label-after{right:12px}.color-sidebar{background:var(--lobo-card);border-radius:12px;padding:16px;max-height:calc(100vh - 120px);overflow-y:auto}.color-sidebar h3{font-size:14px;font-weight:700;margin-bottom:12px;color:#fff}.category-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:16px}.category-tab{padding:6px 10px;border:1px solid var(--lobo-border);border-radius:6px;background:transparent;color:var(--lobo-text-muted);font-family:Open Sans,sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.5px}.category-tab:hover{border-color:var(--lobo-text-muted);color:var(--lobo-text)}.category-tab.active{border-color:var(--lobo-red);color:var(--lobo-red);background:#cb0d151f}.color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}.color-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:6px 2px;border-radius:8px;border:2px solid transparent;transition:all .15s}.color-swatch:hover{background:#ffffff0d}.color-swatch.active{border-color:#fff;background:#ffffff1a}.swatch-circle{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,.15);box-shadow:inset 0 -2px 4px #0003;position:relative}.swatch-circle.color-shift{background-size:200% 200%}.swatch-circle .finish-badge{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;border-radius:50%;font-size:7px;display:flex;align-items:center;justify-content:center;background:var(--lobo-dark);border:1px solid var(--lobo-border);color:var(--lobo-text-muted)}.swatch-name{font-size:9px;color:var(--lobo-text-muted);text-align:center;line-height:1.2;max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-info{margin-top:16px;padding:12px;background:#ffffff08;border-radius:8px;border:1px solid var(--lobo-border)}.selected-info .color-name{font-size:14px;font-weight:700;color:#fff;margin-bottom:4px}.selected-info .color-finish{font-size:12px;color:var(--lobo-text-muted)}.selected-info .color-preview{width:100%;height:32px;border-radius:6px;margin-top:8px;border:1px solid rgba(255,255,255,.1)}.action-bar{display:flex;gap:10px;margin-top:16px}.action-bar .btn-primary,.action-bar .btn-secondary{flex:1;text-align:center;padding:10px 16px;font-size:13px}@media(max-width:600px){#app{padding:12px}.wrap-header{padding:16px 0}.wrap-header h1{font-size:22px}.upload-area{padding:40px 20px}.color-sidebar{max-height:none;border-radius:12px 12px 0 0}.color-grid{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px}.swatch-circle{width:34px;height:34px}}.color-sidebar::-webkit-scrollbar{width:6px}.color-sidebar::-webkit-scrollbar-track{background:transparent}.color-sidebar::-webkit-scrollbar-thumb{background:var(--lobo-border);border-radius:3px}
