.navbar-dark{background-color:#6f42c1!important}.hero-section{background:linear-gradient(135deg,#6f42c1,#e83e8c);color:#fff;transition:background .5s ease;min-height:200px;display:flex;align-items:center}.hero-title,.hero-subtitle{color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.upload-area{border:3px dashed #6c757d;border-radius:.375rem;padding:3rem 1rem;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#f8f9fa}.upload-area:hover{border-color:#0d6efd;background-color:#e7f3ff}.upload-area.dragover{border-color:#198754;background-color:#d1e7dd}.upload-area.has-image{padding:1.5rem 1rem}.file-input{display:none}.preview-image{max-width:100%;max-height:400px;border-radius:.375rem;box-shadow:0 .125rem .25rem #00000013}.preview-image.picker-active{cursor:crosshair}.picker-indicator{position:absolute;width:20px;height:20px;border:2px solid white;border-radius:50%;pointer-events:none;box-shadow:0 0 0 1px #00000080;transform:translate(-50%,-50%);display:none}.color-swatch{width:60px;height:60px;border-radius:50%;border:2px solid #dee2e6;cursor:pointer;transition:transform .2s ease}.color-swatch:hover{transform:scale(1.1);border-color:#0d6efd}.color-group{background-color:#f8f9fa;border-radius:.375rem;padding:1rem;margin-bottom:.5rem;border:1px solid #dee2e6}.color-group-colors{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.color-group-swatch{width:40px;height:40px;border-radius:50%;cursor:pointer;transition:transform .2s ease;border:2px solid #dee2e6;position:relative}.color-group-swatch:hover{transform:scale(1.1);border-color:#0d6efd}.color-group-swatch:after{content:attr(data-hex);position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background:#212529;color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:10}.color-group-swatch:hover:after{opacity:1}.color-rectangle{height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-weight:600;font-size:.9rem;text-shadow:1px 1px 2px rgba(0,0,0,.7)}.color-rectangle:hover{transform:scale(1.02);box-shadow:0 .25rem .5rem #0000001a}.spinner-border-sm{width:1.5rem;height:1.5rem}.toast-container{position:fixed;top:20px;right:20px;z-index:1055}.no-image-state{color:#6c757d;font-style:italic;text-align:center;padding:2rem}.variation-swatch{width:30px;height:30px;border-radius:4px;cursor:pointer;transition:transform .2s ease;border:1px solid #dee2e6}.variation-swatch:hover{transform:scale(1.15);border-color:#0d6efd;box-shadow:0 2px 4px #0003}.variations-row{display:flex;gap:4px;align-items:center;margin-top:.5rem}.variation-label{font-size:.75rem;color:#6c757d;min-width:50px;font-weight:500}.contrast-pair{display:flex;align-items:center;justify-content:space-between;padding:.75rem;margin-bottom:.5rem;border:1px solid #dee2e6;border-radius:.375rem;background-color:#fff}.contrast-colors{display:flex;align-items:center;gap:.5rem}.contrast-swatch-small{width:24px;height:24px;border-radius:4px;border:1px solid #dee2e6}.contrast-info{display:flex;align-items:center;gap:.5rem}.contrast-ratio{font-weight:600;font-size:.9rem}.wcag-badge{font-size:.7rem;padding:.2rem .4rem;border-radius:.25rem;font-weight:600}.wcag-aaa{background-color:#198754;color:#fff}.wcag-aa{background-color:#0d6efd;color:#fff}.wcag-fail{background-color:#dc3545;color:#fff}.saved-palette-item{padding:.5rem;margin-bottom:.5rem;border:1px solid #dee2e6;border-radius:.375rem;background-color:#fff;cursor:pointer;transition:all .2s ease}.saved-palette-item:hover{border-color:#0d6efd;box-shadow:0 2px 4px #0000001a}.saved-palette-colors{display:flex;gap:3px;margin-top:.25rem}.saved-palette-swatch{width:20px;height:20px;border-radius:3px;border:1px solid #dee2e6}.saved-palette-name{font-size:.85rem;font-weight:500;margin-bottom:.25rem}.saved-palette-date{font-size:.7rem;color:#6c757d}body.dark-mode{background-color:#1a1a1a;color:#e0e0e0}body.dark-mode .bg-light{background-color:#2d2d2d!important}body.dark-mode .card{background-color:#2d2d2d;border-color:#404040;color:#e0e0e0}body.dark-mode .card-header{background-color:#252525;border-color:#404040}body.dark-mode .upload-area{background-color:#2d2d2d;border-color:#505050;color:#e0e0e0}body.dark-mode .upload-area:hover{background-color:#3a3a3a;border-color:#0d6efd}body.dark-mode .upload-area.dragover{background-color:#2a4a3a;border-color:#198754}body.dark-mode .text-muted{color:#9a9a9a!important}body.dark-mode .no-image-state{color:#9a9a9a}body.dark-mode .color-group{background-color:#252525;border-color:#404040}body.dark-mode .contrast-pair,body.dark-mode .saved-palette-item{background-color:#2d2d2d;border-color:#404040}body.dark-mode .saved-palette-item:hover{border-color:#0d6efd}body.dark-mode .form-range{background-color:#404040}body.dark-mode .form-check-input{background-color:#404040;border-color:#505050}body.dark-mode .btn-outline-primary{color:#6ea8fe;border-color:#6ea8fe}body.dark-mode .btn-outline-primary:hover{background-color:#0d6efd;border-color:#0d6efd;color:#fff}body.dark-mode .btn-outline-success{color:#75b798;border-color:#75b798}body.dark-mode .btn-outline-success:hover{background-color:#198754;border-color:#198754;color:#fff}body.dark-mode .btn-outline-secondary{color:#adb5bd;border-color:#6c757d}body.dark-mode .btn-outline-secondary:hover{background-color:#6c757d;border-color:#6c757d;color:#fff}.mockup-page{min-height:600px;overflow-y:auto}.mockup-navbar{padding:1rem 2rem;border-bottom:1px solid rgba(0,0,0,.1)}.mockup-hero{padding:4rem 2rem;text-align:center}.mockup-content{padding:3rem 2rem}.mockup-card{border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem;border:1px solid rgba(0,0,0,.1)}.mockup-button{padding:.5rem 1.5rem;border-radius:.375rem;border:none;font-weight:500;cursor:pointer;transition:all .2s}.mockup-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.mockup-footer{padding:2rem;text-align:center;border-top:1px solid rgba(0,0,0,.1)}.mockup-sidebar{padding:1.5rem;border-right:1px solid rgba(0,0,0,.1);min-height:400px}.mockup-badge{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:500}.mockup-input{padding:.5rem 1rem;border-radius:.375rem;border:1px solid rgba(0,0,0,.2);width:100%;margin-bottom:1rem}
