/* ═══════════ DESIGN SYSTEM ═══════════ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --navy:#0f1b2d;--navy-light:#1a2d47;--gold:#c9a96e;--gold-light:#e0c992;
  --gold-dark:#a88a4e;--emerald:#10b981;--coral:#ef4444;
  --surface:#faf9f7;--card:#ffffff;--border:rgba(0,0,0,.08);
  --text:#1a1a2e;--text-muted:#7a7a8e;--text-faint:#b0b0be;
  --radius:16px;--radius-sm:10px;--radius-xs:6px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 8px 24px rgba(0,0,0,.08);
  --shadow-lg:0 16px 48px rgba(0,0,0,.12);--shadow-glow:0 0 0 0 rgba(201,169,110,.5);
  --ease:cubic-bezier(.4,0,.2,1);--bounce:cubic-bezier(.175,.885,.32,1.275);
}
body{font-family:'Inter',system-ui,sans-serif;background:var(--surface);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased}
.bg-grain{position:fixed;inset:0;opacity:.03;pointer-events:none;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}

/* ═══════════ APP SHELL ═══════════ */
.app-shell{max-width:1100px;margin:0 auto;padding:1rem}
.nav-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}
.nav-brand{display:flex;align-items:center;gap:.4rem}
.brand-logo{height:22px;width:auto;display:block;transition:all .3s var(--ease);mix-blend-mode:multiply}
.brand-logo:hover{opacity:.8}
.brand-info{display:flex;flex-direction:column;gap:0}
.brand-text{font-family:'Inter',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.02em;color:var(--navy);line-height:1.1}
.nav-tagline{font-size:.55rem;color:var(--gold);font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.8}

/* ═══════════ MAIN CONTENT ═══════════ */
.main-content{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:2.5rem;overflow:hidden}
.step-section{animation:fadeUp .5s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Section Headers */
.section-header{text-align:center;margin-bottom:2.5rem}
.step-chip{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--navy);color:var(--gold);font-size:.75rem;font-weight:700;border-radius:50%;margin-bottom:1rem}
.section-title{font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:var(--navy);margin-bottom:.5rem}
.section-subtitle{color:var(--text-muted);font-size:.95rem;max-width:500px;margin:0 auto}

/* ═══════════ UPLOAD ZONE ═══════════ */
.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s var(--ease);background:rgba(250,249,247,.5)}
.upload-zone:hover,.upload-zone.drag-over{border-color:var(--gold);background:rgba(201,169,110,.04);transform:translateY(-2px)}
.upload-icon-wrap{width:64px;height:64px;margin:0 auto 1.5rem;background:linear-gradient(135deg,var(--navy),var(--navy-light));border-radius:16px;display:flex;align-items:center;justify-content:center}
.upload-icon-wrap svg{width:28px;height:28px;color:var(--gold)}
.btn-upload{background:var(--navy);color:#fff;border:none;padding:.75rem 2rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s var(--ease);font-family:inherit}
.btn-upload:hover{background:var(--navy-light);box-shadow:0 4px 12px rgba(15,27,45,.3)}
.upload-hint{margin-top:.75rem;color:var(--text-faint);font-size:.8rem}

/* Divider */
.divider{display:flex;align-items:center;margin:2rem 0;color:var(--text-faint);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--border)}
.divider span{padding:0 1rem}

/* Sample Gallery */
.sample-gallery{display:flex;gap:1.25rem;justify-content:center;flex-wrap:wrap}
.sample-card{width:220px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .3s var(--ease);box-shadow:var(--shadow-sm);position:relative}
.sample-card:hover,.sample-card.selected{border-color:var(--gold);transform:translateY(-4px);box-shadow:var(--shadow-md)}
.sample-card img{width:100%;height:140px;object-fit:cover;display:block}
.sample-label{padding:.6rem;text-align:center;background:var(--card);font-weight:600;font-size:.8rem;color:var(--navy)}

/* Preview */
.preview-wrap{margin-top:2rem;text-align:center;position:relative;display:inline-block;width:100%}
.preview-wrap img{max-width:100%;max-height:420px;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.btn-change{position:absolute;top:.75rem;right:.75rem;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border:1px solid var(--border);padding:.45rem .9rem;border-radius:var(--radius-xs);font-weight:600;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:.35rem;transition:all .2s}
.btn-change:hover{background:#fff;box-shadow:var(--shadow-sm)}

/* Primary Button */
.btn-primary-full{width:100%;background:linear-gradient(135deg,var(--navy),var(--navy-light));color:#fff;border:none;padding:1rem 2rem;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;margin-top:2rem;transition:all .3s var(--ease);display:flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit}
.btn-primary-full:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,27,45,.25)}
.btn-primary-full:disabled{opacity:.4;cursor:not-allowed}

/* ═══════════ LOADER ═══════════ */
.loader-wrap{text-align:center;padding:4rem 2rem}
.loader-ring{width:56px;height:56px;margin:0 auto 1.5rem;position:relative}
.loader-ring-inner{width:100%;height:100%;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loader-logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;opacity:.7;animation:logoPulse 2s infinite ease-in-out}
@keyframes logoPulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.7}50%{transform:translate(-50%,-50%) scale(.9);opacity:.4}}
.loader-title{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:600;color:var(--navy);margin-bottom:.5rem}
.loader-sub{color:var(--text-muted);font-size:.9rem}
.loader-dots{display:flex;gap:6px;justify-content:center;margin-top:1.5rem}
.loader-dots span{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:dotPulse 1.4s infinite ease-in-out both}
.loader-dots span:nth-child(2){animation-delay:.16s}
.loader-dots span:nth-child(3){animation-delay:.32s}
@keyframes dotPulse{0%,80%,100%{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}

/* ═══════════ RESULTS ═══════════ */
.results-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--text-muted);padding:.5rem 1rem;border-radius:var(--radius-xs);font-weight:600;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .2s;font-family:inherit}
.btn-ghost:hover{border-color:var(--navy);color:var(--navy)}

/* Canvas Container */
.canvas-container{position:relative;margin-bottom:1.5rem}
.canvas-hint{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,rgba(201,169,110,.08),rgba(201,169,110,.03));border:1px solid rgba(201,169,110,.2);padding:.6rem 1rem;border-radius:var(--radius-xs);font-size:.8rem;color:var(--gold-dark);margin-bottom:1rem;font-weight:500}
#interactive-overlays{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20}

/* ═══════════ MAIN VIEWPORT ═══════════ */
.main-view-container{position:relative;width:100%;min-height:500px;border-radius:var(--radius);overflow:hidden;background:#0f1b2d;box-shadow:var(--shadow-lg);display:flex;justify-content:center;align-items:center}
.selection-view,.visualization-view{width:100%;height:100%;transition:all .5s var(--ease);display:flex;justify-content:center;align-items:center}
.selection-view.hidden,.visualization-view.hidden{display:none}

.analyzed-image-wrapper{position:relative;display:inline-block;max-width:100%;border-radius:var(--radius);overflow:hidden}
.analyzed-image-wrapper img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto}

/* ═══════════ COMPARISON SLIDER ═══════════ */
.comparison-container{position:relative;display:inline-block;max-width:100%;height:auto;overflow:hidden;cursor:ew-resize;user-select:none;box-shadow:var(--shadow-lg);border-radius:var(--radius-sm)}
.comparison-img.original{display:block;line-height:0}
.comparison-img.original img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto}
.comparison-img.generated{position:absolute;top:0;left:0;width:50%;height:100%;overflow:hidden;z-index:2;line-height:0;border-right:1px solid rgba(255,255,255,.4)}
.comparison-img.generated img{display:block;height:100%;width:auto;max-width:none;object-fit:cover;object-position:left top}
.comparison-slider{position:absolute;top:0;bottom:0;left:50%;width:2px;background:rgba(255,255,255,.5);z-index:10;transform:translateX(-50%);pointer-events:auto}
.slider-line{height:100%;width:1px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,.5)}
.slider-button{position:absolute;top:50%;left:50%;width:44px;height:44px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);box-shadow:var(--shadow-md);color:var(--navy);transition:transform .2s}
.slider-button:hover{transform:translate(-50%,-50%) scale(1.1)}
.comparison-label{position:absolute;bottom:20px;padding:.5rem 1rem;background:rgba(15,27,45,.7);backdrop-filter:blur(10px);color:#fff;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-xs);z-index:5;pointer-events:none}
.comparison-label.before{right:20px}
.comparison-label.after{left:20px}

.viz-loading-overlay{position:absolute;inset:0;background:rgba(15,27,45,.8);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;color:#fff}
.viz-loading-overlay p{margin-top:1.5rem;font-weight:600;letter-spacing:.02em;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}

/* ═══════════ HOTSPOT MARKERS ═══════════ */
.hotspot{position:absolute;width:28px;height:28px;background:var(--gold);border:2px solid #fff;border-radius:50%;cursor:pointer;pointer-events:auto;display:flex;align-items:center;justify-content:center;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.3);transform:translate(-50%,-50%);transition:all .3s var(--bounce)}
.hotspot::before{content:'';width:6px;height:6px;background:#fff;border-radius:50%}
.hotspot::after{content:attr(data-label);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:.35rem .75rem;border-radius:var(--radius-xs);font-size:.7rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:all .25s var(--ease);box-shadow:var(--shadow-sm)}
.hotspot:hover{transform:translate(-50%,-50%) scale(1.2);background:var(--navy)}
.hotspot:hover::after{opacity:1;bottom:calc(100% + 14px)}
.hotspot.pulse{animation:markerPulse 2s infinite}
@keyframes markerPulse{0%{box-shadow:0 0 0 0 rgba(201,169,110,.6)}70%{box-shadow:0 0 0 16px rgba(201,169,110,0)}100%{box-shadow:0 0 0 0 rgba(201,169,110,0)}}
.hotspot.selected{background:var(--emerald);animation:none;transform:translate(-50%,-50%) scale(1.05)}

/* ═══════════ SUGGESTION POPUP ═══════════ */
.suggestion-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--card);border-radius:20px;box-shadow:0 32px 64px rgba(0,0,0,.25);padding:0;width:720px;max-width:92vw;max-height:85vh;z-index:2000;animation:modalIn .35s var(--ease);display:flex;flex-direction:column;overflow:hidden}
@keyframes modalIn{from{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.popup-backdrop{position:fixed;inset:0;background:rgba(15,27,45,.45);backdrop-filter:blur(4px);z-index:1999;animation:fadeIn .2s}
.popup-header{display:flex;align-items:center;gap:1rem;padding:1.5rem 2rem;border-bottom:1px solid var(--border);background:linear-gradient(135deg,rgba(15,27,45,.02),rgba(201,169,110,.04))}
.popup-header-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}
.popup-header-icon{width:36px;height:36px;min-width:36px;background:rgba(16,185,129,.1);border-radius:50%;display:flex;align-items:center;justify-content:center}
.popup-header-icon svg{width:18px;height:18px;color:var(--emerald)}
.popup-header h3{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--navy);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.popup-header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.popup-crop{width:44px;height:44px;object-fit:cover;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface)}
.btn-custom{background:var(--card);border:1.5px solid var(--navy);color:var(--navy);padding:.4rem .9rem;border-radius:var(--radius-xs);font-weight:600;font-size:.78rem;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-custom:hover{background:var(--navy);color:#fff}
.popup-close{width:32px;height:32px;background:transparent;border:none;font-size:1.5rem;color:var(--text-faint);cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}
.popup-close:hover{background:rgba(0,0,0,.05);color:var(--text)}
 
 /* Popup Search */
 .popup-search-container{padding:1rem 2rem;background:rgba(201,169,110,.04);border-bottom:1px solid var(--border);display:flex;gap:.75rem;align-items:center}
 .popup-search-input-wrap{position:relative;flex:1}
 .popup-search-input{width:100%;padding:.65rem 1rem .65rem 2.5rem;border:1.5px solid var(--border);border-radius:var(--radius-xs);font-family:inherit;font-size:.9rem;transition:all .2s;background:var(--card)}
 .popup-search-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,169,110,.1)}
 .popup-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}
 .btn-search{background:var(--navy);color:#fff;border:none;padding:.65rem 1.25rem;border-radius:var(--radius-xs);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s;font-family:inherit;display:flex;align-items:center;gap:.4rem}
 .btn-search:hover{background:var(--navy-light);transform:translateY(-1px)}
 .btn-search:disabled{opacity:.5;cursor:not-allowed}
 .btn-reset-original{background:transparent;border:1.5px solid var(--border);color:var(--text-faint);padding:.65rem;border-radius:var(--radius-xs);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
 .btn-reset-original:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,169,110,.05)}
 .btn-reset-original.hidden{display:none}

/* Popup Body */
.popup-body{flex:1;overflow-y:auto;padding:1.25rem 2rem}
.popup-body::-webkit-scrollbar{width:4px}
.popup-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}

/* Match Row */
.match-row{display:flex;align-items:center;gap:1.25rem;padding:1.25rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .25s var(--ease);margin-bottom:.75rem}
.match-row:hover{border-color:var(--gold);background:rgba(201,169,110,.03);transform:translateX(2px)}
.match-row.active{border-color:var(--gold);background:rgba(201,169,110,.06);box-shadow:0 0 0 3px rgba(201,169,110,.15)}
.match-row-check{width:22px;height:22px;border:2px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.match-row.active .match-row-check{background:var(--gold);border-color:var(--gold)}
.match-row.active .match-row-check::after{content:'✓';color:#fff;font-size:.7rem;font-weight:700}
.match-row-img{width:72px;height:72px;object-fit:cover;border-radius:8px;flex-shrink:0;box-shadow:var(--shadow-sm)}
.match-row-info{flex:1;min-width:0}
.match-row-meta{font-size:.7rem;color:var(--text-faint);margin-bottom:.2rem}
.match-row-name{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;color:var(--navy);margin-bottom:.3rem}
.match-row-desc{font-size:.8rem;color:var(--text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.match-row-price{font-size:.85rem;font-weight:700;color:var(--navy);margin-top:.3rem}
.match-row-score{text-align:center;flex-shrink:0;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius-xs);min-width:60px}
.match-row-score strong{display:block;font-size:1.1rem;font-weight:800;color:var(--navy)}
.match-row-score span{font-size:.6rem;text-transform:uppercase;font-weight:700;color:var(--text-faint);letter-spacing:.05em}

/* Popup Footer */
.popup-footer{padding:1rem 2rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;background:var(--surface)}
.btn-confirm{background:var(--navy);color:#fff;border:none;padding:.65rem 1.75rem;border-radius:var(--radius-xs);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-confirm:hover{background:var(--navy-light);transform:translateY(-1px);box-shadow:var(--shadow-sm)}

/* ═══════════ FLOATING BAR ═══════════ */
.floating-bar{position:sticky;bottom:1rem;background:var(--card);padding:1rem 1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;justify-content:space-between;align-items:center;margin-top:2rem;z-index:100;border:1px solid var(--border)}
.floating-bar-info{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem;color:var(--text-muted)}
.info-dot{width:8px;height:8px;background:var(--gold);border-radius:50%;animation:dotPulse 2s infinite}
.floating-bar-actions{display:flex;gap:.6rem}
.btn-action{border:none;padding:.6rem 1.25rem;border-radius:var(--radius-xs);font-weight:600;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .25s var(--ease);font-family:inherit;text-decoration:none}
.btn-action--primary{background:var(--navy);color:#fff}
.btn-action--primary:hover{background:var(--navy-light);transform:translateY(-1px)}
.btn-action--gold{background:var(--gold);color:#fff}
.btn-action--gold:hover{background:var(--gold-dark);transform:translateY(-1px)}
.btn-action--dark{background:#111;color:#fff}
.btn-action--dark:hover{background:#000;transform:translateY(-1px)}
.btn-action--ghost{background:transparent;border:1.5px solid var(--border);color:var(--text-muted)}
.btn-action--ghost:hover{border-color:var(--navy);color:var(--navy);background:rgba(15,27,45,.03)}

/* ═══════════ MODALS ═══════════ */
.modal-overlay{position:fixed;inset:0;background:rgba(15,27,45,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:3000;padding:1rem;animation:fadeIn .25s}
.modal-panel{background:var(--card);border-radius:20px;padding:2.5rem;width:100%;max-height:90vh;overflow-y:auto;position:relative}
.modal-panel--lg{max-width:640px}
.modal-panel--xl{max-width:900px}
.modal-close{position:absolute;top:1rem;right:1.25rem;background:transparent;border:none;font-size:1.75rem;cursor:pointer;color:var(--text-faint);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}
.modal-close:hover{background:rgba(0,0,0,.05);color:var(--text)}
.modal-title{font-family:'Playfair Display',serif;font-size:1.75rem;font-weight:700;color:var(--navy);margin-bottom:.5rem}
.modal-desc{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem}

/* Catalog */
.catalog-search-bar{display:flex;gap:.75rem;margin-bottom:1.5rem}
.catalog-search-bar input{flex:1;padding:.65rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-xs);font-family:inherit;font-size:.9rem;transition:border-color .2s}
.catalog-search-bar input:focus{outline:none;border-color:var(--gold)}
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;max-height:400px;overflow-y:auto;padding:.25rem}
.catalog-card{border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:all .25s var(--ease)}
.catalog-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.catalog-card img{width:100%;height:120px;object-fit:cover;display:block}
.catalog-card-info{padding:.75rem}
.catalog-card-info h4{font-size:.85rem;font-weight:600;color:var(--navy);margin-bottom:.2rem}
.catalog-card-info span{font-size:.7rem;color:var(--text-faint)}
.catalog-card-info .cat-price{font-weight:700;color:var(--navy);display:block;margin-top:.3rem;font-size:.8rem}

/* ═══════════ TOAST / WARNINGS ═══════════ */
.toast-warning{display:flex;align-items:center;gap:.5rem;background:rgba(252,211,77,.1);border:1px solid rgba(252,211,77,.3);color:#92400e;padding:.6rem 1rem;border-radius:var(--radius-xs);font-size:.8rem;margin-bottom:1rem}
.status-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:1rem;border-radius:var(--radius-xs);margin-bottom:1rem;font-size:.9rem}

/* ═══════════ UTILITIES ═══════════ */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.hidden{display:none !important}

/* ═══════════ RESPONSIVE ═══════════ */
@media(max-width:768px){
  .app-shell{padding:.5rem}
  .main-content{padding:1.5rem}
  .nav-bar{padding:.75rem 1rem}
  .nav-tagline{display:none}
  .section-title{font-size:1.5rem}
  .suggestion-popup{width:95vw;max-height:90vh}
  .popup-header{flex-wrap:wrap;padding:1rem 1.25rem}
  .popup-body{padding:1rem 1.25rem}
  .match-row{padding:1rem;gap:.75rem}
  .match-row-img{width:56px;height:56px}
  .match-row-name{font-size:1rem}
  .floating-bar{flex-direction:column;gap:.75rem;text-align:center}
}
