.app-shell{position:relative;min-height:100vh;overflow-x:hidden}.app-content{position:relative;z-index:2}.float-cards-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.float-card{position:absolute;top:-140px;width:min(200px,42vw);aspect-ratio:1.586;animation:card-fall linear infinite;opacity:0;filter:blur(.3px)}.float-card-inner{position:relative;width:100%;height:100%;border-radius:14px;padding:1rem 1.1rem;box-shadow:0 12px 40px #00000073;border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.float-card-chip{width:36px;height:26px;border-radius:5px;opacity:.85}.float-card-shine{position:absolute;top:-40%;right:-30%;width:80%;height:120%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.18) 50%,transparent 60%);transform:rotate(-12deg);pointer-events:none}.float-card-bank{font-size:.75rem;font-weight:700;color:#fffffff2;letter-spacing:.02em;margin-top:auto}.float-card-network{font-size:.65rem;font-weight:600;color:#ffffffa6;text-transform:uppercase;letter-spacing:.12em;align-self:flex-end}@keyframes card-fall{0%{transform:translateY(-20vh) rotate(-14deg) scale(.92);opacity:0}8%{opacity:.22}50%{opacity:.14}92%{opacity:.04}to{transform:translateY(115vh) rotate(10deg) scale(.88);opacity:0}}.app-header{margin-bottom:1.75rem}.brand-lockup{display:flex;align-items:center;gap:.85rem;margin-bottom:1.25rem}.brand-icon{flex-shrink:0;filter:drop-shadow(0 0 12px rgba(225,29,72,.4))}.brand-icon-svg{width:clamp(34px,10vw,40px);height:auto}.brand-lockup .logo{margin-bottom:.1rem}.brand-lockup .logo-tag{margin-bottom:0}.trust-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:.65rem}.bureau-logo-wrap{display:block;flex-shrink:1;min-width:0}.bureau-logo{display:block;width:100%;height:auto;vertical-align:middle;border-radius:6px;box-shadow:0 2px 8px #00000059;transition:transform .2s,box-shadow .2s}.bureau-logo-wrap:hover .bureau-logo{transform:translateY(-2px);box-shadow:0 4px 16px #e11d4840}.bureau-logo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;align-items:stretch;width:100%}.bureau-logo-wrap--strip{width:100%}@media(min-width:520px){.bureau-logo-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}.bureau-logo-strip--hero{gap:.6rem}.bureau-logo-wrap--hero,.bureau-logo-wrap--card{width:100%}.bureau-card-logo{width:100%;margin-bottom:.65rem}.bureau-logo-wrap--default{width:100%;max-width:7.5rem}@media(max-width:380px){.brand-lockup{gap:.6rem}.brand-icon svg{width:34px;height:34px}.brand-lockup .logo{font-size:1.15rem}.trust-label{font-size:.65rem;letter-spacing:.1em}}@media(max-width:359px){.bureau-logo-strip{gap:.35rem}}.bureau-card h3{margin-top:0}.hero-trust{margin:1.25rem 0 1.5rem;padding:1rem;background:#14101abf;border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.hero-trust p{font-size:clamp(.72rem,2.5vw,.8rem);color:var(--muted);margin-bottom:.75rem;text-align:center}.hero-trust .bureau-logo-strip--hero{width:100%}.credibility-note{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--muted);margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.credibility-note:before{content:"✓";color:var(--success);font-weight:700}@media(prefers-reduced-motion:reduce){.float-card{animation:none;display:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0f;--surface: #14101a;--surface2: #1f1528;--border: #3d2a4a;--text: #f5f0fa;--muted: #a894b8;--accent: #e11d48;--accent-hover: #be123c;--gold: #fbbf24;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--spotlight: rgba(225, 29, 72, .15);--radius: 12px}body{font-family:DM Sans,system-ui,sans-serif;background:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(225,29,72,.12) 0%,transparent 50%),radial-gradient(ellipse at top,#1a0a14 0%,var(--bg) 55%);color:var(--text);line-height:1.6;min-height:100vh}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;border-radius:8px;font-weight:600;transition:background .15s,transform .1s}button:active{transform:scale(.98)}input,select,textarea{font-family:inherit;font-size:1rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0}label{display:block;font-size:.875rem;font-weight:500;color:var(--muted);margin-bottom:.35rem}.form-group{margin-bottom:1rem}.btn-primary{background:linear-gradient(135deg,var(--accent),#9f1239);color:#fff;padding:.85rem 1.5rem;font-size:1rem;width:100%;box-shadow:0 4px 20px #e11d4859}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface2);color:var(--text);padding:.75rem 1.25rem;border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.container{max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem}.app-content .card,.app-content h1,.app-content .subtitle,.app-content .hero-trust,.app-content .steps-bar,.app-content .nav-row,.app-content .btn-primary,.app-content .bureau-grid{position:relative}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem}.card.spotlight{background:linear-gradient(145deg,var(--surface) 0%,#2a1020 100%);border-color:var(--accent);box-shadow:0 0 40px var(--spotlight)}.steps-bar{display:flex;gap:.5rem;margin-bottom:2rem}.step-dot{flex:1;height:4px;border-radius:2px;background:var(--border)}.step-dot.active{background:var(--accent)}.step-dot.done{background:var(--gold)}h1{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.subtitle{color:var(--muted);margin-bottom:1.5rem}.logo{font-weight:800;font-size:1.35rem;margin-bottom:.25rem;background:linear-gradient(90deg,var(--gold),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-tag{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.15em;margin-bottom:2rem}.bureau-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem}@media(max-width:400px){.bureau-grid{grid-template-columns:1fr}}@media(min-width:600px){.bureau-grid{gap:1rem}}.bureau-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-align:left;color:var(--text);transition:border-color .15s,box-shadow .15s;display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0}.bureau-card.selected{box-shadow:0 0 24px var(--spotlight)}.bureau-card:hover,.bureau-card.selected{border-color:var(--accent)}.bureau-card h3{font-size:1rem;margin-bottom:.25rem}.bureau-card span{font-size:.8rem;color:var(--muted)}.guide-steps{list-style:none;counter-reset:step}.guide-steps li{counter-increment:step;padding:.75rem 0 .75rem 2.5rem;position:relative;border-bottom:1px solid var(--border);font-size:.95rem}.guide-steps li:last-child{border-bottom:none}.guide-steps li:before{content:counter(step);position:absolute;left:0;top:.75rem;width:1.75rem;height:1.75rem;background:var(--accent);color:#fff;border-radius:50%;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:2rem;text-align:center;cursor:pointer;transition:border-color .15s}.upload-zone:hover,.upload-zone.has-file{border-color:var(--accent)}.upload-zone input{display:none}.error{color:var(--danger);font-size:.9rem;margin-top:.5rem}.verdict-banner{text-align:center;padding:1.5rem}.verdict-emoji{font-size:3rem;line-height:1;margin-bottom:.5rem}.verdict-label{font-size:1.75rem;font-weight:800;letter-spacing:.08em;color:var(--gold);text-transform:uppercase}.verdict-line{color:var(--muted);margin-top:.75rem;font-style:italic}.roast-title{font-size:1.1rem;color:var(--accent);font-weight:600;margin-bottom:.5rem}.opening-roast{font-size:1.05rem;border-left:3px solid var(--gold);padding-left:1rem;margin:1rem 0;color:var(--text)}.roast-line{padding:1rem;margin-bottom:.75rem;background:var(--surface2);border-radius:8px;border-left:4px solid var(--accent)}.roast-line .target{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin-bottom:.35rem}.redeem-box{background:linear-gradient(135deg,#0f2a1a,var(--surface2));border:1px solid #166534;border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}.share-box{background:var(--surface2);border:1px dashed var(--border);border-radius:8px;padding:1rem;font-size:.95rem;color:var(--muted);margin-bottom:1rem}.action-item{border-left:3px solid var(--border);padding:1rem;margin-bottom:.75rem;background:var(--surface2);border-radius:0 8px 8px 0}.action-item.high{border-left-color:var(--danger)}.action-item.medium{border-left-color:var(--warning)}.action-item.low{border-left-color:var(--success)}.action-item .priority{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.25rem}.score-big{font-size:3rem;font-weight:800;color:var(--gold);text-align:center}.nav-row{display:flex;gap:.75rem;margin-top:1.5rem}.nav-row button{flex:1}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tab{flex:1;padding:.6rem;background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:8px;font-size:.9rem}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.loading-roast{text-align:center;padding:2rem;color:var(--muted)}.loading-roast span{display:block;margin-top:.5rem;font-size:.9rem;color:var(--accent)}.admin-wrap{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem;min-height:100vh}.admin-login{max-width:400px;margin:4rem auto}.admin-login h1{margin-bottom:.25rem}.admin-sub{color:var(--muted);font-size:.9rem;margin-bottom:1.5rem}.admin-back{display:inline-block;margin-top:1rem;color:var(--muted);font-size:.9rem;text-decoration:none}.admin-back:hover{color:var(--accent)}.admin-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.admin-header h1{font-size:1.5rem;margin-bottom:.25rem}.admin-header p{color:var(--muted);font-size:.9rem}.admin-header-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-header-actions .btn-secondary{width:auto;padding:.5rem 1rem;font-size:.85rem;text-decoration:none;display:inline-flex;align-items:center}.admin-search{width:100%;margin-bottom:1rem}.admin-table-wrap{overflow-x:auto;padding:0}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th{text-align:left;padding:.75rem 1rem;color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.admin-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border)}.admin-row-click{cursor:pointer;transition:background .1s}.admin-row-click:hover{background:var(--surface2)}.mono{font-family:ui-monospace,monospace;font-size:.85rem}.verdict-pill{display:inline-block;background:#e11d4826;color:var(--accent);padding:.2rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600}.admin-muted{color:var(--muted);font-size:.85rem}.admin-empty{padding:2rem;text-align:center}.admin-detail h2{margin-bottom:.25rem}.admin-back-btn{width:auto;margin-bottom:1rem;padding:.5rem 1rem}.admin-sub-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.admin-sub-card{text-align:left;width:100%;color:inherit;cursor:pointer}.admin-sub-card-top{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;color:var(--muted)}.admin-verdict-card .admin-meta{font-size:.8rem;color:var(--muted);margin-bottom:.75rem}.admin-dl{display:inline-block;width:auto;margin-bottom:1rem;text-decoration:none;text-align:center}.admin-s3-warn{background:#f59e0b1a;border-color:#92400e;color:var(--warning);font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.admin-s3-warn code{font-size:.85em}.admin-pdf-link{display:inline-block;margin-top:.5rem;color:var(--gold);font-size:.85rem;font-weight:600;text-decoration:none}.admin-pdf-link:hover{text-decoration:underline}.admin-pre{background:var(--surface2);padding:1rem;border-radius:8px;overflow-x:auto;font-size:.8rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow-y:auto}
