/* Hide default WooCommerce quantity + add to cart button */
.single-product .quantity,
.single-product .single_add_to_cart_button {
  display: none !important;
}

/* Special Offers Pricing */
.snap-pack-pricing {
  position: relative;
  margin-top: 8px;
}

.snap-offer-badge {
  background: linear-gradient(45deg, #ff6b6b, #ee5a24);
  color: white;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  text-align: center;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

.snap-offer-price {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.snap-original-price {
  text-decoration: line-through;
  color: #999;
  font-size: 14px;
  font-weight: 400;
}

.snap-current-price {
  color: #D00A1D;
  font-size: 18px;
  font-weight: 700;
  font-weight: bold;
}

.snap-savings {
  background: #4CAF50;
  color: white;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 12px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

/* Hide regular price when offers are enabled */
.snap-offers-enabled .snap-pack-price {
  display: none;
}

/* Hide offer elements when offers are disabled */
.snap-offers-disabled .snap-offer-badge,
.snap-offers-disabled .snap-offer-price {
  display: none;
}

.snap-offers-disabled .snap-pack-price {
  display: block;
}

/* Upload Sources Styles */
.snap-upload-sources {
  margin-bottom: 20px;
}

.snap-source-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 5px;
  margin-bottom: 0px;
}

.snap-source-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0px;
  background: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
  margin: 0 !important;

}

.snap-source-btn:hover {
  background-color: transparent !important;
  transform: translateY(-2px);
}

.snap-source-btn.active {
    background-color: transparent !important;

}
.snap-source-btn:focus-visible {
    outline: none !important;
    background-color: transparent !important;
}
.snap-source-icon {
  font-size: 24px;
  margin-bottom: 8px;
  line-height: 1;
  display: block;
  width: 24px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.snap-icon-dropbox {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/dropbox.png");
}

.snap-icon-google-drive {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/google-drive.png");
}

.snap-icon-google-photos {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/Google-Photos.png");
}

.snap-icon-facebook {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/Facebook.png");
}

.snap-icon-camera {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/Camera.png");
}

.snap-icon-url {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/url.png");
}

.snap-icon-instagram {
  background-image: url("https://snap.digitalservicescorp.com/wp-content/uploads/2026/03/instagram.png");
}

.snap-source-label {
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  line-height: 1.2;
  color: #000;
}

/* URL Upload Modal */
.snap-url-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.snap-url-content {
  background: #fff;
  padding: 30px;
  border-radius: 12px;
  max-width: 400px;
  width: 90%;
  text-align: center;
}

.snap-url-content h4 {
  margin-bottom: 20px;
  color: #333;
}

.snap-url-input {
  width: 100%;
  padding: 12px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  margin-bottom: 20px;
  font-size: 14px;
}

.snap-url-input:focus {
  outline: none;
  border-color: #D00A1D;
}

.snap-url-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.snap-url-actions .button {
  padding: 10px 20px;
  border-radius: 6px;
  font-weight: 600;
}

/* Responsive Design */
@media (max-width: 768px) {
  .snap-source-buttons {
    grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
    gap: 5px;
  }
  
  .snap-source-btn {
    padding: 12px 8px;
    min-height: 85px;
  }
  
  .snap-source-icon {
    font-size: 20px;
    margin-bottom: 6px;
  }
  
  .snap-source-label {
    font-size: 11px;
  }
}

.snap-builder{
  border:1px solid #eee;
  border-radius:14px;
  padding:18px;
  margin:18px 0;
  background:#fff;
  width: 100%;
}
div#snap-builder button#snap-upload-modal-btn {
    width: 100%;
}
.snap-product-preview {
    display: grid;
}
.snap-title{
  margin:0 0 20px;
  font-family:"Cormorant", Sans-serif;
  font-size:28px;
  font-weight:600;
  color:#1C2127;
  text-align:center;
}

.snap-pack{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  padding:12px;
  background:#fafafa;
  border-radius:12px;
  margin-bottom:12px;
}
.snap-pack-title{ width:100%; font-family:"Switzer Medium",Sans-serif; font-weight:500; margin-bottom:6px; color:#1C2127; }

.snap-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:10px;
}
#snap-files{ display:none; }

.snap-hint{ font-size:14px; opacity:.8; }
.snap-pack-image {
    display: none;
}

/* Loading spinner animation */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

#snap-edit-apply.loading {
  pointer-events: none;
  opacity: 0.7;
}

#snap-edit-apply.loading .snap-apply-text {
  display: none;
}

#snap-edit-apply.loading .snap-apply-loader {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}

.snap-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
@media (max-width: 768px){
  .snap-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

.snap-card{
  position:relative;
  border-radius:12px;
  overflow:hidden;
  border:1px solid #eee;
  background:#f6f6f6;
}
.snap-card img{
  width:100%;
  height:190px;
  object-fit:cover;
  display:block;
}

.snap-card-actions{
  position:absolute;
  left:10px;
  bottom:10px;
  display:flex;
  gap:8px;
}
.snap-mini{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.6);
  background:rgba(0,0,0,.55);
  color:#fff;
  cursor:pointer;
  position: relative;
  transition: all 0.3s ease;
}

.snap-mini:hover {
  background: rgba(0,0,0,.8);
  transform: scale(1.1);
}

.snap-mini[title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0,0,0,.9);
  color: #fff;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  z-index: 1000;
  pointer-events: none;
  margin-bottom: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.snap-mini[title]:hover::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: rgba(0,0,0,.9);
  z-index: 1000;
  pointer-events: none;
  margin-bottom: 4px;
}

.snap-mini[data-action="crop"]:hover::after {
  left: -10px;
  transform: translateX(0);
}

.snap-mini[data-action="crop"]:hover::before {
  left: -10px;
  transform: translateX(0);
}

.snap-mini[data-action="remove"]:hover::after {
  left: auto;
  right: -10px;
  transform: translateX(0);
}

.snap-mini[data-action="remove"]:hover::before {
  left: auto;
  right: -10px;
  transform: translateX(0);
}

.snap-validation{
  margin-top:15px;
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  font-weight:400;
  line-height:2em;
  color:#000000DE;
  text-align:center;
}
.snap-ok{ font-family:"Switzer Medium",Sans-serif; font-weight:500; color:#D00A1D; }

/* Loading state */
.snap-loading{
  display:inline-block;
  width:16px;
  height:16px;
  border:2px solid #f3f3f3;
  border-top:2px solid #0073aa;
  border-radius:50%;
  animation:snap-spin 1s linear infinite;
  margin-right:8px;
}
@keyframes snap-spin{
  0%{ transform:rotate(0deg); }
  100%{ transform:rotate(360deg); }
}

/* Image Loading Overlay */
.snap-image-loading{
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.9);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3;
}
.snap-image-loading .snap-loading{
  width:24px;
  height:24px;
  border:3px solid #f3f3f3;
  border-top:3px solid #0073aa;
  margin:0;
}

/* Upload Placeholders */
.snap-card.uploading{
  position:relative;
  pointer-events:none;
  background:#f8f9fa;
  border:2px dashed #0073aa;
  aspect-ratio:1;
  min-height:200px;
}
.snap-card-placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.9);
}
.snap-card[data-placeholder]{
  aspect-ratio:1;
  min-height:200px;
}

/* Modal */
.snap-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.7);
  display:none;
  z-index:99999;
}
.snap-modal.open,
.snap-modal[aria-hidden="false"]{
  display:flex !important;
  align-items:center;
  justify-content:center;
}

/* Modal Inner */
.snap-modal-inner {
  width:min(900px, 95vw);
  height:min(85vh, 800px);
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
  min-height: 400px !important;
  min-width: 600px !important;
  max-width: 900px !important;
  max-height: 90vh !important;
}
.snap-modal-head{
  padding:24px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#fff;
  border-bottom:1px solid #f0f0f0;
}
.snap-modal-head h3{
  margin:0;
  font-family:"Cormorant", Sans-serif;
  font-size:32px;
  font-weight:600;
  color:#1C2127;
}
.snap-modal-body{
  flex:1;
  overflow-y:auto;
  padding:0;
  min-height: 300px !important;
}

/* Step Indicator */
.snap-steps{
  display:flex;
  justify-content:center;
  padding:32px 0 24px;
  background:#fafafa;
  border-bottom:1px solid #f0f0f0;
}
.snap-step{
  display:flex;
  flex-direction:column;
  align-items:center;
  margin:0 32px;
  position:relative;
}
.snap-step:not(:last-child)::after{
  content:'';
  position:absolute;
  top:20px;
  left:60px;
  width:64px;
  height:2px;
  background:#e0e0e0;
}
.snap-step.active:not(:last-child)::after{
  background:#D00A1D;
}
.snap-step-number{
  width:40px;
  height:40px;
  border-radius:50%;
  background:#e0e0e0;
  color:#999;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:"Switzer Medium", Sans-serif;
  font-size:16px;
  font-weight:500;
  margin-bottom:8px;
  transition:all 0.3s;
}
.snap-step.active .snap-step-number{
  background:#D00A1D;
  color:#fff;
}
.snap-step-label{
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  color:#666;
  text-align:center;
}
.snap-step.active .snap-step-label{
  color:#1C2127;
  font-family:"Switzer Medium", Sans-serif;
}

/* Step Content */
.snap-step-content{
  padding:40px 32px;
  min-height:400px;
}
.snap-step-buttons{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid #f0f0f0;
}

/* Pack Selection */
.snap-pack-selection h4{
  font-family:"Cormorant", Sans-serif;
  font-size:24px;
  color:#1C2127;
  margin:0 0 24px;
  text-align:center;
}
.snap-pack-options{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap:24px;
  margin-bottom:32px;
}
.snap-pack-option{
  border:2px solid #f0f0f0;
  border-radius:12px;
  padding:20px;
  cursor:pointer;
  transition:all 0.3s;
  text-align:center;
}
.snap-pack-option:hover{
  border-color:#D00A1D;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(208,10,29,0.15);
}
.snap-pack-option.selected{
  border-color:#D00A1D;
  background:#fff5f5;
}
.snap-pack-preview{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:4px;
  margin-bottom:16px;
  padding:16px;
  background:#fafafa;
  border-radius:8px;
}
.snap-mini-magnet{
  width:30px;
  height:30px;
  background:#e0e0e0;
  border-radius:4px;
  border:1px dashed #999;
}
.snap-pack-info h5{
  font-family:"Switzer Medium", Sans-serif;
  font-size:18px;
  color:#1C2127;
  margin:0 0 8px;
}
.snap-pack-info p{
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  color:#666;
  margin:0 0 12px;
}
.snap-pack-price{
  font-family:"Switzer Medium", Sans-serif;
  font-size:20px;
  color:#D00A1D;
  font-weight:600;
}

/* Upload Section */
.snap-upload-header{
  text-align:center;
  margin-bottom:32px;
}
.snap-upload-header h4{
  font-family:"Cormorant", Sans-serif;
  font-size:24px;
  color:#1C2127;
  margin:0 0 8px;
}
.snap-upload-header p{
  font-family:"Switzer Regular", Sans-serif;
  font-size:16px;
  color:#666;
  margin:0;
}
.snap-upload-area{
  border:2px dashed #D00A1D;
  border-radius:12px;
  padding:60px 40px;
  text-align:center;
  background:#fafafa;
  cursor:pointer;
  transition:all 0.3s;
  margin-bottom:32px;
}
.snap-upload-area:hover,
.snap-upload-area.dragover{
  background:#fff5f5;
  border-color:#D00A1D;
}
.snap-upload-icon{
  font-size:48px;
  margin-bottom:16px;
}
.snap-upload-content h5{
  font-family:"Switzer Medium", Sans-serif;
  font-size:18px;
  color:#1C2127;
  margin:0 0 8px;
}
.snap-upload-content p{
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  color:#666;
  margin:0;
}

/* Photo Grid */
.snap-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:16px;
  margin-bottom:32px;
}

/* Progress Bar */
.snap-progress{
  margin-bottom:24px;
}
.snap-progress-bar{
  height:8px;
  background:#f0f0f0;
  border-radius:4px;
  overflow:hidden;
  margin-bottom:8px;
}
.snap-progress-fill{
  height:100%;
  background:#D00A1D;
  width:0%;
  transition:width 0.3s;
}
.snap-progress-text{
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  color:#666;
}

/* Review Section */
.snap-review-section h4{
  font-family:"Cormorant", Sans-serif;
  font-size:24px;
  color:#1C2127;
  margin:0 0 24px;
  text-align:center;
}
.snap-review-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(100px, 1fr));
  gap:12px;
  margin-bottom:32px;
}
.snap-order-summary{
  background:#fff;
  border-radius:12px;
  padding:24px;
  margin-bottom:32px;
  border:2px solid #f0f0f0;
  box-shadow:0 2px 8px rgba(0,0,0,0.05);
}
.snap-summary-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 0;
  font-family:"Switzer Regular", Sans-serif;
  font-size:16px;
  color:#666;
}
.snap-summary-item span:first-child{
  font-family:"Switzer Medium", Sans-serif;
  color:#1C2127;
}
.snap-summary-item span:last-child{
  font-family:"Switzer Medium", Sans-serif;
  color:#1C2127;
  font-weight:500;
}
.snap-summary-item.total{
  border-top:2px solid #D00A1D;
  margin-top:16px;
  padding-top:20px;
  font-family:"Switzer Medium", Sans-serif;
  font-size:20px;
  color:#1C2127;
  font-weight:600;
}
.snap-summary-item.total span:first-child{
  font-size:20px;
  font-weight:600;
}
.snap-summary-item.total span:last-child{
  color:#D00A1D;
  font-size:28px;
  font-weight:700;
  font-family:"Cormorant", Sans-serif;
}

/* Left Panel */
.snap-modal-left{
  flex:1;
  padding:24px;
  overflow-y:auto;
  border-right:1px solid #eee;
}

/* Right Panel */
.snap-modal-right{
  width:320px;
  padding:24px;
  background:#f8f9fa;
  display:flex;
  flex-direction:column;
}

/* Pack Selection */
.snap-pack{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:20px;
}
.snap-pack-title{ 
  width:100%; 
  font-family:"Switzer Medium", Sans-serif;
  font-weight:500; 
  margin-bottom:8px; 
  font-size:16px;
  color:#1C2127;
}
.snap-pack label{
  display:flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  padding:8px 12px;
  border:1px solid #ddd;
  border-radius:8px;
  background:#fff;
  font-family:"Switzer Regular", Sans-serif;
  font-size:15px;
  color:#000000DE;
  transition:all 0.2s;
}
.snap-pack label:hover{
  border-color:#D00A1D;
  background:#fff5f5;
}
.snap-pack input[type="radio"]{
  margin:0;
}

/* Upload Zone */
.snap-upload-zone{
  border:2px dashed #ccc;
  border-radius:12px;
  padding:40px 20px;
  text-align:center;
  background:#fafafa;
  cursor:pointer;
  transition:all 0.3s;
  margin-bottom:24px;
}
.snap-upload-zone:hover,
.snap-upload-zone.dragover{
  border-color:#D00A1D;
  background:#e7f3ff;
}
.snap-upload-zone.uploading{
  border-color:#D00A1D;
  background:#e7f3ff;
  pointer-events:none;
  opacity:0.7;
}
.snap-upload-zone.uploading .snap-upload-content::after{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  width:32px;
  height:32px;
  border:3px solid #f3f3f3;
  border-top:3px solid #D00A1D;
  border-radius:50%;
  animation:snap-spin 1s linear infinite;
}
.snap-upload-icon{
  font-size:48px;
  margin-bottom:12px;
}
.snap-upload-zone h4{
  margin:0 0 8px;
  font-size:18px;
  color:#333;
}
.snap-upload-zone p{
  margin:0;
  color:#666;
  font-size:14px;
}
#snap-files{
  display:none;
}

/* Preview Grid */
.snap-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
}
@media (max-width: 768px){
  .snap-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

.snap-card{
  position:relative;
  border-radius:12px;
  overflow:hidden;
  border:1px solid #eee;
  background:#f6f6f6;
  aspect-ratio:1;
}
.snap-card img{
  width:100%;
  height:100% !important;
  object-fit:cover;
  display:block;
}

/* Bleed Line Overlay */
.snap-card::before{
  content:'';
  position:absolute;
  inset:8px;
  border:1px dashed rgba(255,255,255,0.8);
  border-radius:8px;
  pointer-events:none;
  z-index:1;
}

.snap-card-actions{
  position:absolute;
  bottom:15px;
  left:15px;
  z-index:2;
  display:flex;
  gap:4px;
}
.snap-mini{
  font-size:16px;
  padding:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.6);
  background:rgba(0,0,0,.7);
  color:#fff;
  cursor:pointer;
  transition:all 0.2s;
  min-width:40px;
  text-align:center;
  min-height:40px;
}
.snap-mini:hover{
  background:rgba(0,0,0,.9);
  transform:scale(1.1);
}

/* Product Preview Panel */
.snap-product-preview h4{
  margin:0 0 16px;
  font-family:"Cormorant", Sans-serif;
  font-size:22px;
  font-weight:600;
  color:#1C2127;
}

/* Legend */
.snap-legend{
  margin-bottom:24px;
}
.snap-legend-item{
  display:flex;
  align-items:center;
  gap:12px;
}
.snap-legend-box{
  width:40px;
  height:40px;
  border:1px solid #ddd;
  border-radius:6px;
  position:relative;
  background:#fff;
}
.snap-legend-bleed{
  position:absolute;
  inset:4px;
  border:1px dashed #999;
  border-radius:3px;
}
.snap-legend-item span{
  font-family:"Switzer Regular", Sans-serif;
  font-size:13px;
  color:#000000DE;
  line-height:2em;
}

/* Counter */
.snap-counter{
  margin-bottom:24px;
  padding:16px;
  background:#fff;
  border-radius:8px;
  border:1px solid #ddd;
  text-align:center;
}
.snap-counter-label{
  display:block;
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  font-weight:400;
  color:#000000DE;
  margin-bottom:4px;
}
.snap-counter-value{
  display:block;
  font-family:"Cormorant", Sans-serif;
  font-size:28px;
  font-weight:700;
  color:#D00A1D;
}

/* Add to Cart Button */
.snap-add-to-cart{
  width:100%;
  padding:16px;
  font-family:"Switzer Medium", Sans-serif;
  font-size:16px;
  font-weight:500;
  margin-bottom:24px;
  background:#D00A1D;
  color:#fff;
  border:none;
  border-radius:8px;
  cursor:pointer;
  transition:all 0.2s;
}
.snap-add-to-cart:hover{
  background:#a80818;
}
.snap-add-to-cart:disabled{
  opacity:0.5;
  cursor:not-allowed;
}

/* Requirements */
.snap-requirements{
  font-family:"Switzer Regular", Sans-serif;
  font-size:14px;
  font-weight:400;
  line-height:2em;
  color:#000000DE;
}
.snap-requirements p{
  margin:0 0 8px;
  font-family:"Switzer Medium", Sans-serif;
  color:#1C2127;
}
.snap-requirements ul{
  margin:0;
  padding-left:16px;
}
.snap-requirements li{
  margin-bottom:4px;
}

/* Loading state */
.snap-loading{
  display:inline-block;
  width:16px;
  height:16px;
  border:2px solid #f3f3f3;
  border-top:2px solid #D00A1D;
  border-radius:50%;
  animation:snap-spin 1s linear infinite;
  margin-right:8px;
}
@keyframes snap-spin{
  0%{ transform:rotate(0deg); }
  100%{ transform:rotate(360deg); }
}

/* Close button */
.snap-close{
  border:none;
  background:transparent;
  font-size:24px;
  cursor:pointer;
  padding:4px;
  border-radius:4px;
  transition:background 0.2s;
}
.snap-close:hover{
  background:#e0e0e0;
}

/* Edit Modal Styles */
.snap-edit-container{
  flex:1;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

/* Ensure edit modal content is visible */
#snap-crop-modal[aria-hidden="false"] .snap-edit-container {
  display: flex !important;
}
#snap-crop-modal[aria-hidden="false"] .snap-edit-tabs {
  display: flex !important;
}
#snap-crop-modal[aria-hidden="false"] .snap-edit-content {
  display: block !important;
}
#snap-crop-modal[aria-hidden="false"] .snap-edit-panel {
  display: none !important;
}
#snap-crop-modal[aria-hidden="false"] .snap-edit-panel.active {
  display: flex !important;
}

/* Force modal content visibility */
.snap-modal[aria-hidden="false"] .snap-modal-body {
  display: block !important;
  visibility: visible !important;
}
.snap-modal[aria-hidden="false"] .snap-edit-container {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.snap-modal[aria-hidden="false"] .snap-edit-tabs {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.snap-modal[aria-hidden="false"] .snap-edit-content {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.snap-modal[aria-hidden="false"] .snap-edit-panel {
  display: none !important;
  visibility: visible !important;
}
.snap-modal[aria-hidden="false"] .snap-edit-panel.active {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Additional force visibility - FIXED */
#snap-crop-modal.open .snap-modal-inner,
#snap-crop-modal[aria-hidden="false"] .snap-modal-inner {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: min(900px, 95vw) !important;
  height: min(85vh, 800px) !important;
  background: #fff !important;
  border-radius: 12px !important;
}
#snap-crop-modal.open .snap-modal-head,
#snap-crop-modal[aria-hidden="false"] .snap-modal-head {
  display: flex !important;
  visibility: visible !important;
  flex-shrink: 0 !important;
}
#snap-crop-modal.open .snap-modal-body,
#snap-crop-modal[aria-hidden="false"] .snap-modal-body {
  display: flex !important;
  visibility: visible !important;
  flex: 1 !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
#snap-crop-modal.open .snap-edit-container,
#snap-crop-modal[aria-hidden="false"] .snap-edit-container {
  display: flex !important;
  visibility: visible !important;
  flex: 1 !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
#snap-crop-modal.open .snap-edit-tabs,
#snap-crop-modal[aria-hidden="false"] .snap-edit-tabs {
  display: flex !important;
  visibility: visible !important;
  flex-shrink: 0 !important;
}
#snap-crop-modal.open .snap-edit-content,
#snap-crop-modal[aria-hidden="false"] .snap-edit-content {
  display: block !important;
  visibility: visible !important;
  flex: 1 !important;
  position: relative !important;
  overflow: hidden !important;
}
#snap-crop-modal.open .snap-edit-panel,
#snap-crop-modal[aria-hidden="false"] .snap-edit-panel {
  display: none !important;
}
#snap-crop-modal.open .snap-edit-panel.active,
#snap-crop-modal[aria-hidden="false"] .snap-edit-panel.active {
  display: flex !important;
  visibility: visible !important;
  flex-direction: column !important;
  position: absolute !important;
  inset: 0 !important;
}
#snap-crop-modal.open .snap-edit-footer,
#snap-crop-modal[aria-hidden="false"] .snap-edit-footer {
  display: block !important;
  visibility: visible !important;
  flex-shrink: 0 !important;
}

/* Edit Tabs */
.snap-edit-tabs{
  display:flex;
  background:#fafafa;
  border-bottom:1px solid #eee;
}
.snap-edit-tab{
  flex:1;
  padding:16px;
  border:none;
  background:transparent;
  font-family:"Switzer Medium", Sans-serif;
  font-size:16px;
  color:#666;
  cursor:pointer;
  transition:all 0.3s;
  border-bottom:3px solid transparent;
}
.snap-edit-tab:hover{
  color:#1C2127;
  background:#f0f0f0;
}
.snap-edit-tab.active{
  color:#D00A1D;
  border-bottom-color:#D00A1D;
  background:#fff;
}

/* Edit Panels */
.snap-edit-content{
  flex:1;
  position:relative;
  overflow:hidden;
}
.snap-edit-panel{
  position:absolute;
  inset:0;
  display:none;
  flex-direction:column;
}
.snap-edit-panel.active{
  display:flex;
}

/* Crop Panel */
.snap-crop-container{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8f9fa;
  padding:20px;
  max-height:60vh;
  overflow:hidden;
}
.snap-crop-container img{
  max-width:100%;
  max-height:100%;
  display:block;
}
.snap-crop-controls{
  padding:20px;
  background:#fff;
  border-top:1px solid #eee;
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}

/* Filter Panel */
.snap-filter-container{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8f9fa;
  padding:20px;
  max-height:50vh;
  overflow:hidden;
}
.snap-filter-container img{
  max-width:100%;
  max-height:100%;
  display:block;
}
.snap-filter-options{
  padding:20px;
  background:#fff;
  border-top:1px solid #eee;
}
.snap-filter-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(100px, 1fr));
  gap:12px;
}
.snap-filter-btn{
  padding:12px 16px;
  border:2px solid #f0f0f0;
  border-radius:8px;
  background:#fff;
  font-family:"Switzer Medium", Sans-serif;
  font-size:14px;
  color:#666;
  cursor:pointer;
  transition:all 0.3s;
  text-align:center;
}
.snap-filter-btn:hover{
  border-color:#D00A1D;
  color:#D00A1D;
  transform:translateY(-2px);
}
.snap-filter-btn.active{
  border-color:#D00A1D;
  background:#fff5f5;
  color:#D00A1D;
}

/* Adjust Panel */
.snap-adjust-container{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8f9fa;
  padding:20px;
  max-height:50vh;
  overflow:hidden;
}
.snap-adjust-container img{
  max-width:100%;
  max-height:100%;
  display:block;
}
.snap-adjust-controls{
  padding:20px;
  background:#fff;
  border-top:1px solid #eee;
  max-height:30vh;
  overflow-y:auto;
}
.snap-adjust-item{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
}
.snap-adjust-item label{
  font-family:"Switzer Medium", Sans-serif;
  font-size:14px;
  color:#1C2127;
  min-width:80px;
}
.snap-adjust-item input[type="range"]{
  flex:1;
  height:6px;
  border-radius:3px;
  background:#f0f0f0;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
}
.snap-adjust-item input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#D00A1D;
  cursor:pointer;
  border:2px solid #fff;
  box-shadow:0 2px 4px rgba(0,0,0,0.2);
}
.snap-adjust-item input[type="range"]::-moz-range-thumb{
  width:18px;
  height:18px;
  border-radius:50%;
  background:#D00A1D;
  cursor:pointer;
  border:2px solid #fff;
  box-shadow:0 2px 4px rgba(0,0,0,0.2);
}
.snap-adjust-value{
  font-family:"Switzer Medium", Sans-serif;
  font-size:14px;
  color:#D00A1D;
  min-width:40px;
  text-align:right;
}
.snap-adjust-buttons{
  display:flex;
  justify-content:center;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #f0f0f0;
}

/* Edit Footer */
.snap-edit-footer{
  padding:20px;
  background:#fafafa;
  border-top:1px solid #eee;
  text-align:center;
}

/* Common Button Styles */
.snap-crop-controls .button,
.snap-adjust-buttons .button,
.snap-edit-footer .button{
  font-family:"Switzer Medium", Sans-serif;
  font-size:14px;
  padding:8px 16px;
  border:1px solid #ddd;
  border-radius:6px;
  background:#fff;
  color:#000000DE;
  cursor:pointer;
  transition:all 0.2s;
}
.snap-crop-controls .button:hover,
.snap-adjust-buttons .button:hover{
  border-color:#D00A1D;
  color:#D00A1D;
}
.snap-edit-footer .button-primary{
  background:#D00A1D;
  color:#fff;
  border-color:#D00A1D;
  font-size:16px;
  padding:12px 24px;
}
.snap-edit-footer .button-primary:hover{
  background:#a80818;
  border-color:#a80818;
}

/* Crop Modal Styles */
.snap-crop-container{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8f9fa;
  padding:20px;
  max-height:60vh;
  overflow:hidden;
}
.snap-crop-container img{
  max-width:100%;
  max-height:100%;
  display:block;
}
.snap-crop-controls{
  padding:20px;
  background:#fff;
  border-top:1px solid #eee;
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.snap-crop-controls .button{
  font-family:"Switzer Medium", Sans-serif;
  font-size:14px;
  padding:8px 16px;
  border:1px solid #ddd;
  border-radius:6px;
  background:#fff;
  color:#000000DE;
  cursor:pointer;
  transition:all 0.2s;
}
.snap-crop-controls .button:hover{
  border-color:#D00A1D;
  color:#D00A1D;
}
.snap-crop-controls .button-primary{
  background:#D00A1D;
  color:#fff;
  border-color:#D00A1D;
}
.snap-crop-controls .button-primary:hover{
  background:#a80818;
  border-color:#a80818;
}

/* Filter Effects */
.filter-grayscale { filter: grayscale(100%); }
.filter-sepia { filter: sepia(100%); }
.filter-vintage { filter: sepia(50%) contrast(120%) brightness(90%); }
.filter-cold { filter: hue-rotate(180deg) saturate(120%); }
.filter-warm { filter: hue-rotate(-30deg) saturate(130%) brightness(110%); }
.filter-dramatic { filter: contrast(150%) brightness(90%) saturate(120%); }
.filter-vivid { filter: saturate(200%) contrast(110%); }

/* Mobile Responsive */
@media (max-width: 768px){
  .snap-modal-inner{
    width:95vw;
    height:95vh;
    border-radius:12px;
  }
  .snap-modal-body{
    flex-direction:column;
  }
  .snap-modal-left{
    border-right:none;
    border-bottom:1px solid #eee;
    max-height:60vh;
  }
  .snap-modal-right{
    width:100%;
  }
  .snap-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .snap-crop-controls{
    padding:15px;
    gap:8px;
  }
  .snap-crop-controls .button{
    font-size:13px;
    padding:6px 12px;
  }
  .snap-edit-tabs{
    flex-direction:column;
  }
  .snap-edit-tab{
    border-bottom:1px solid #eee;
    border-right:none;
  }
  .snap-filter-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}