:root{--color-primary: #00bd7d;--color-primary-hover: #00a76f;--color-primary-active: #008f5e;--color-primary-muted: #00845a;--color-text: #111827;--color-muted: #6b7280;--color-muted-light: #9ca3af;--color-border: #dde3e1;--color-surface: #ffffff;--color-bg: #f4f7f6;--radius-sm: 4px;--radius-md: 8px;--font-display: Oswald, sans-serif;--font-body: Poppins, system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg)}a{color:var(--color-primary-hover);text-decoration:none}a:hover{color:var(--color-primary-active);text-decoration:underline}::selection{background:#00bd7d38}input:focus-visible,button:focus-visible,label:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}@keyframes pvRow{0%{opacity:0;transform:perspective(900px) rotateX(-16deg) translate3d(0,22px,-40px)}to{opacity:1;transform:perspective(900px) rotateX(0) translateZ(0)}}@keyframes pvRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pvBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes pvScan{0%{transform:translateZ(-30px);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translateZ(150px);opacity:0}}@keyframes pvFloat{0%,to{transform:translateZ(0)}50%{transform:translateZ(16px)}}@keyframes pvSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pvBar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.app{height:100%;min-height:540px;overflow:hidden;background:radial-gradient(1200px 700px at 78% -10%,#e4f5ee,#f4f7f6 55%);color:var(--color-text);font-family:var(--font-body);display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 24px;height:72px;background:var(--color-surface);box-shadow:0 1px #11182712,0 8px 24px -18px #11182766;flex:none;position:relative;z-index:3}.header-brand{display:flex;align-items:center;gap:12px}.header-logo{width:24px;height:24px;background:var(--color-primary);border-radius:var(--radius-sm);transform:rotate(45deg) skew(-8deg);box-shadow:4px 4px #00bd7d38}.header-title{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:.08em;text-transform:uppercase;margin-left:6px}.main{display:grid;grid-template-columns:420px minmax(0,1fr);gap:24px;padding:24px;flex:1;min-height:0;align-items:stretch}.panel-wrap{position:relative;min-height:0}.panel-shadow{position:absolute;inset:16px -10px -12px 10px;background:var(--color-surface);border-radius:var(--radius-md);opacity:.55;box-shadow:0 18px 40px -24px #11182773;pointer-events:none}.panel-shadow-right{inset:16px 10px -12px -10px}.panel{position:relative;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 1px 2px #1118270f,0 24px 48px -28px #11182780;padding:24px;display:flex;flex-direction:column;gap:20px;height:100%;overflow:auto}.panel-right{padding:0;overflow:hidden;display:flex;flex-direction:column}.section-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary-hover)}.section-label-muted{color:var(--color-muted)}.section-title{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1.08;letter-spacing:.005em;margin:8px 0 0}.section-desc{margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--color-muted);max-width:36ch}.form-fields{display:flex;flex-direction:column;gap:16px}.field-label{display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin-bottom:6px}.field-input{width:100%;font-family:var(--font-body);font-size:14px;color:var(--color-text);padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);caret-color:var(--color-primary)}.field-input:hover:not(:disabled){border-color:var(--color-primary)}.field-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #00bd7d29;outline:none}.field-input:disabled{opacity:.7}.field-resolved{border-radius:var(--radius-sm);background:#f0fbf6;border:1px solid #bbebd8;padding:8px 12px;display:flex;flex-direction:column;gap:2px;animation:pvRise .4s ease both}.field-before{font-size:12px;color:var(--color-muted-light);text-decoration:line-through}.field-after{font-size:14px;font-weight:600;color:var(--color-text)}.merchant-select{appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.form-actions{margin-top:auto;display:flex;flex-direction:column;gap:8px}.btn-check{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:0;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-family:var(--font-display);font-size:16px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 24px -10px #00bd7dd9}.btn-check:hover:not(:disabled){background:var(--color-primary-hover)}.btn-check:active:not(:disabled){background:var(--color-primary-active);transform:translateY(1px)}.btn-check:disabled{cursor:default;opacity:.85}.btn-check-label{flex:1;text-align:left}.btn-reset{align-self:flex-start;background:none;border:0;padding:4px;cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.btn-reset:hover:not(:disabled){color:var(--color-primary-hover)}.btn-reset:disabled{cursor:default;opacity:.6}.form-secondary-actions{display:flex;flex-wrap:wrap;gap:12px 16px}.form-action-error{margin:0;font-size:12px;line-height:1.45;color:#b91c1c}.idle-panel,.checking-panel{padding:32px;display:flex;flex-direction:column;height:100%;gap:24px;position:relative;overflow:hidden}.idle-grid-bg{position:absolute;right:-190px;bottom:-180px;width:320px;height:320px;transform-style:preserve-3d;transform:rotateX(58deg) rotate(-45deg);opacity:.22;pointer-events:none}.idle-grid-bg div:nth-child(1){position:absolute;inset:0;border:2px solid #cfe9de;border-radius:var(--radius-md);transform:translateZ(0)}.idle-grid-bg div:nth-child(2){position:absolute;inset:0;border:2px solid #9fd9c2;border-radius:var(--radius-md);transform:translateZ(40px)}.idle-grid-bg div:nth-child(3){position:absolute;inset:0;border:2px solid var(--color-primary);border-radius:var(--radius-md);background:#00bd7d0f;transform:translateZ(80px)}.idle-headline{position:relative;font-family:var(--font-display);font-weight:600;font-size:clamp(36px,4.4vw,64px);line-height:1.02;max-width:15ch}.idle-desc{position:relative;margin:0;font-size:15px;line-height:1.6;max-width:46ch;color:var(--color-muted)}.idle-stats{position:relative;margin-top:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat-card{background:#f6faf9;border-radius:var(--radius-md);padding:16px;border:1px solid #e7eeeb}.stat-value{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1;color:var(--color-text)}.stat-label{margin-top:8px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted)}.checking-grid-bg{position:absolute;right:-60px;top:90px;width:420px;height:420px;transform-style:preserve-3d;transform:rotateX(58deg) rotate(-45deg);pointer-events:none}.checking-grid-bg .layer-1{position:absolute;inset:0;border:2px solid #e1eae7;border-radius:var(--radius-md);transform:translateZ(0)}.checking-grid-bg .layer-2{position:absolute;inset:0;border:2px solid #cfe9de;border-radius:var(--radius-md);transform:translateZ(45px);animation:pvFloat 2.4s ease-in-out infinite}.checking-grid-bg .layer-3{position:absolute;inset:0;border:2px solid #9fd9c2;border-radius:var(--radius-md);transform:translateZ(90px);animation:pvFloat 2.4s ease-in-out .3s infinite}.checking-grid-bg .layer-scan{position:absolute;inset:0;border-radius:var(--radius-md);border:2px solid var(--color-primary);background:linear-gradient(135deg,#00bd7d3d,#00bd7d05);animation:pvScan 1.9s cubic-bezier(.4,0,.6,1) infinite}.checking-header{position:relative;display:flex;align-items:center;gap:16px}.spinner{width:44px;height:44px;border-radius:var(--radius-md);border:3px solid #e1eae7;border-top-color:var(--color-primary);animation:pvSpin .9s linear infinite;flex:none}.checking-title{font-family:var(--font-display);font-weight:600;font-size:34px;line-height:1.05}.checking-sub{margin-top:6px;font-family:var(--font-mono);font-size:12px;color:var(--color-muted)}.stages{position:relative;display:flex;flex-direction:column;gap:8px;max-width:620px}.stage-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;background:#f6faf9;border:1px solid #e7eeeb;border-radius:var(--radius-sm);padding:12px 14px;animation:pvRise .32s ease both}.stage-code{font-family:var(--font-mono);font-size:12px;color:var(--color-primary-hover)}.stage-text{font-size:14px;line-height:1.35}.stage-state{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;color:var(--color-muted-light)}.progress-wrap{position:relative;margin-top:auto;max-width:620px}.progress-bar-bg{height:6px;border-radius:var(--radius-sm);background:#e7eeeb;overflow:hidden}.progress-bar{height:100%;background:var(--color-primary);transform-origin:left;animation:pvBar 2.9s cubic-bezier(.3,.7,.2,1) both}.progress-note{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--color-muted-light)}.error-panel{padding:32px;display:flex;flex-direction:column;gap:16px;height:100%}.error-title{font-family:var(--font-display);font-weight:600;font-size:28px;color:#dc2626}.error-msg{font-size:14px;color:var(--color-muted);max-width:40ch}.result-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden auto}.result-header{padding:14px 24px;border-bottom:1px solid #edf1f0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(180deg,#f7fcfa,#fff)}.monogram{flex:none;width:44px;height:44px;border-radius:var(--radius-md);background:#0f1f1a;color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:.04em;box-shadow:6px 6px #00bd7d2e,0 12px 24px -18px #111827cc;animation:pvRow .55s cubic-bezier(.2,.7,.2,1) both}.merchant-meta{min-width:120px;flex:1}.merchant-name{font-family:var(--font-display);font-weight:600;font-size:19px;line-height:1.2;overflow-wrap:anywhere}.merchant-source{margin-top:3px;font-family:var(--font-mono);font-size:11px;letter-spacing:.02em;color:var(--color-muted);overflow-wrap:anywhere}.score-wrap{flex:none;display:flex;align-items:baseline;gap:6px}.score-value{font-family:var(--font-display);font-weight:600;font-size:42px;line-height:1;color:var(--color-primary);font-variant-numeric:tabular-nums}.score-unit{font-family:var(--font-display);font-weight:500;font-size:18px;color:var(--color-primary)}.score-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--color-muted)}.confidence-badge{margin-left:8px;padding:4px 8px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent}.confidence-high{color:var(--color-primary-muted);background:#e6f8f1;border-color:#bbebd8}.confidence-medium{color:#b45309;background:#fff7ed;border-color:#fed7aa}.confidence-low{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.confidence-na{color:var(--color-muted);background:#f3f4f6;border-color:#e5e7eb}.summary-bar{padding:8px 24px;border-bottom:1px solid #edf1f0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.summary-item b{font-family:var(--font-display);font-size:15px;color:var(--color-text);margin-right:5px}.btn-json{margin-left:auto;flex:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:var(--radius-sm);border:1px solid #bbebd8;background:var(--color-surface);color:var(--color-primary-muted);cursor:pointer}.btn-json:hover{background:#e6f8f1}.btn-json:active{background:#cff0e2}.compare-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:0 20px;padding:8px 24px;background:#fafcfb;border-bottom:1px solid #edf1f0;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted-light)}.rows-scroll{flex:1 0 auto;overflow:auto;min-height:260px}.result-row{padding:12px 24px 14px;border-bottom:1px solid #edf1f0;animation:pvRow .5s cubic-bezier(.2,.7,.2,1) both}.row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:22px}.row-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.badge{flex:none;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:var(--radius-sm)}.badge-corrected{background:#fef3e2;color:#b45309}.badge-added{background:#e6f8f1;color:var(--color-primary-muted)}.badge-verified{background:#eaf6ec;color:#16a34a}.row-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:4px 20px;margin-top:6px;align-items:start}.row-before{font-size:15px;line-height:1.35;color:var(--color-muted-light);text-decoration:line-through;text-decoration-color:#dc2626;text-decoration-thickness:2px;overflow-wrap:anywhere}.row-missing{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;color:#c4cbc9}.row-after-wrap{min-width:0;display:flex;gap:8px;align-items:baseline}.row-arrow{font-size:14px;color:var(--color-primary);flex:none}.row-after{font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.caret{display:inline-block;width:8px;height:15px;border-radius:1px;background:var(--color-primary);margin-left:2px;transform:translateY(2px);animation:pvBlink .7s step-end infinite}.row-note{margin-top:5px;font-size:12px;line-height:1.45;color:var(--color-muted)}.benefit-panel{flex:none;padding:18px 24px;border-top:1px solid #edf1f0;background:#fafcfb;animation:pvRise .5s ease both}.benefit-body{margin-top:12px}.benefit-headline{font-family:var(--font-display);font-weight:600;font-size:44px;line-height:1;color:var(--color-primary)}.benefit-subline{margin-top:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--color-text)}.benefit-secondary{margin-top:10px;font-size:13px;color:var(--color-muted)}.benefit-note{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--color-muted);max-width:56ch}.savings-desc{margin-top:6px;font-size:13px;line-height:1.45;color:var(--color-muted)}.savings-worst{margin-top:8px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--color-muted-light)}.closing{flex:none;background:var(--color-primary);color:#fff;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;animation:pvRise .5s ease both}.closing-line{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:1.15}.closing-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.9}.json-dialog::backdrop{background:#0f1f1a8c}.json-dialog{border:0;padding:0;background:transparent;max-width:min(760px,calc(100% - 64px));width:100%;max-height:calc(100% - 64px)}.json-dialog-inner{display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 40px 80px -30px #0f1f1ab3;animation:pvRow .35s cubic-bezier(.2,.7,.2,1) both;max-height:calc(100vh - 64px)}.json-dialog-head{padding:16px 20px;border-bottom:1px solid #edf1f0;display:flex;align-items:center;gap:12px}.json-dialog-title{font-family:var(--font-display);font-weight:600;font-size:18px}.json-dialog-sub{margin-top:2px;font-family:var(--font-mono);font-size:11px;color:var(--color-muted)}.json-dialog-actions{margin-left:auto;display:flex;gap:8px}.btn-copy{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:7px 12px;border-radius:var(--radius-sm);border:1px solid #bbebd8;background:var(--color-surface);color:var(--color-primary-muted);cursor:pointer}.btn-copy:hover{background:#e6f8f1}.btn-close{width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);cursor:pointer;font-size:16px;line-height:1}.btn-close:hover{background:var(--color-bg);color:var(--color-text)}.json-pre{margin:0;flex:1;overflow:auto;padding:18px 20px;background:#0f1f1a;color:#c9f5e3;font-family:var(--font-mono);font-size:12px;line-height:1.6;white-space:pre;tab-size:2}.header-actions{display:flex;align-items:center;gap:16px}.header-subtitle{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.admin-main{display:block;max-width:1120px;width:100%;margin:0 auto;padding:24px;overflow:auto;min-height:0;-webkit-overflow-scrolling:touch}.admin-panel-wrap{width:100%;min-height:min-content}.admin-panel{height:auto;min-height:320px;overflow:visible}.admin-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.admin-btn-inline{width:auto;padding:12px 16px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-family:var(--font-body);font-weight:600;font-size:14px;border:0}.admin-btn-inline:hover{background:var(--color-primary-hover)}.admin-btn-check{max-width:320px}.admin-table-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{padding:12px 14px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.admin-table th{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);background:var(--color-bg)}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table code{font-family:var(--font-mono);font-size:12px}.admin-table-actions{display:flex;gap:12px;white-space:nowrap}.admin-form{display:flex;flex-direction:column;gap:24px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-form-span-2{grid-column:span 2}.admin-fieldset{margin:0;padding:0;border:0}.admin-fieldset .section-label{margin-bottom:12px}.admin-rows{display:flex;flex-direction:column;gap:16px}.admin-row-card{padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.admin-row-remove{margin-top:12px}.admin-add-row{margin-top:8px}.admin-form-actions{display:flex;align-items:center;gap:16px}.admin-error{margin:0;color:#dc2626;font-size:14px}.btn-danger{background:none;border:0;padding:4px;cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#dc2626}.btn-danger:hover:not(:disabled){color:#b91c1c}.btn-danger:disabled{cursor:default;opacity:.5}@media(max-width:768px){.admin-form-grid{grid-template-columns:1fr}.admin-form-span-2{grid-column:span 1}.admin-list-head{flex-direction:column}}
