@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600&display=swap";:root{--bg:#fafafa;--panel:#fff;--ink:#374151;--muted:#9ca3af;--line:#f3f4f6;--line-strong:#e5e7eb;--primary:#d23a3b;--primary-dark:#b02e2f;--primary-light:#fef2f2;--primary-grad:linear-gradient(145deg, #d23a3b 0%, #d23a3bd1 100%);--ok:#059669;--ok-dark:#047857;--ok-bg:#ecfdf5;--review:#d97706;--review-dark:#b45309;--review-bg:#fffbeb;--danger:#c23b3b;--danger-bg:#fef2f2;--code:"JetBrains Mono", ui-monospace, Menlo, monospace;--sans:"Inter", system-ui, sans-serif;--r-sm:8px;--r:14px;--r-lg:20px;--shadow:0 1px 4px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 4px 16px #00000014, 0 2px 6px #0000000d}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;padding:0;font-size:14px;line-height:1.5}#root{text-align:left;width:100%}.wrap{max-width:1280px;margin:0 auto;padding:0 24px 80px}.top-header{border-radius:var(--r-lg);border:1.5px solid var(--line);background:linear-gradient(135deg,#fff8f8 0%,#fff 60%,#fff5f5 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin:24px 0 28px;padding:20px 28px;display:flex;box-shadow:0 2px 12px #d23a3b14,0 1px 3px #0000000a}.header-brand{align-items:center;gap:14px;display:flex}.header-brand-icon{background:linear-gradient(145deg,#d23a3b 0%,#d23a3bd1 100%);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 12px #d23a3b59}.header-brand-icon svg{width:22px;height:22px}.header-brand-text{flex-direction:column;gap:3px;display:flex}h1{font-family:var(--sans);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:20px;font-weight:700}h1 .dot-light{color:var(--primary)}.header-sub{font-family:var(--sans);color:var(--muted);font-size:12px}.header-nav{align-items:center;gap:8px;display:flex}.nav-link{font-family:var(--sans);color:var(--muted);border:1.5px solid var(--line-strong);cursor:pointer;background:#fff;border-radius:99px;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;transition:color .15s,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.nav-link:hover:not(.active){color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.nav-link.active{color:var(--primary);background:var(--primary-light);border-color:var(--primary);font-weight:600;box-shadow:0 2px 8px #d23a3b26}.nav-link-icon{background:var(--primary);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:flex}.input-card{background:var(--panel);border:2px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:28px;padding:24px 28px}.input-row{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.input-group{flex-direction:column;flex:1;gap:6px;min-width:240px;display:flex}.input-label{font-family:var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11px;font-weight:600}.locationInput{font-family:var(--code);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);width:100%;max-width:420px;padding:10px 14px;font-size:13px;transition:border-color .15s,box-shadow .15s}.locationInput:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #d23a3b33}.locationInput::placeholder{color:var(--line-strong)}.input-actions{align-items:center;gap:8px;padding-bottom:1px;display:flex}button.go{font-family:var(--sans);color:#fff;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;background:linear-gradient(145deg,#d23a3b 0%,#d23a3bd1 100%);border:0;padding:10px 22px;font-size:13px;font-weight:600;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 12px #d23a3b59}button.go:disabled{background:var(--line-strong);box-shadow:none;cursor:not-allowed}button.go:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #d23a3b73}button.alt{font-family:var(--sans);background:var(--panel);color:var(--muted);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;padding:9px 16px;font-size:12px;font-weight:500;transition:color .15s,border-color .15s}button.alt:hover:not(:disabled){color:var(--primary);border-color:var(--primary)}button.alt:disabled{opacity:.45;cursor:not-allowed}.error{color:var(--danger);font-family:var(--code);margin-top:10px;font-size:12px}.summary{background:var(--panel);border:2px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:20px;padding:20px 22px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;display:grid}.stat-card{background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:16px 18px}.stat-card.stat-ok{background:var(--ok-bg);border-color:#6ee7b7}.stat-card.stat-review{background:var(--review-bg);border-color:#fcd34d}.stat-icon{margin-bottom:8px;font-size:22px;line-height:1}.stat-val{font-family:var(--code);color:var(--ink);margin-bottom:5px;font-size:26px;font-weight:700;line-height:1}.stat-card.stat-ok .stat-val{color:var(--ok-dark)}.stat-card.stat-review .stat-val{color:var(--review-dark)}.stat-lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.list{background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.list .head{border-bottom:1px solid var(--line);background:snow;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;display:flex}.list .head h3{font-family:var(--sans);color:var(--ink);margin:0;font-size:13px;font-weight:600}.list .head .counts{font-family:var(--code);color:var(--muted);align-items:center;gap:4px;font-size:11px;display:flex}.ok-pill{font-size:10px;font-weight:600;font-family:var(--code);background:var(--ok-bg);color:var(--ok);border:1.5px solid #0596694d;border-radius:99px;align-items:center;padding:3px 10px;display:inline-flex}.rv-pill{font-size:10px;font-weight:600;font-family:var(--code);background:var(--review-bg);color:var(--review);border:1.5px solid #d977064d;border-radius:99px;align-items:center;padding:3px 10px;display:inline-flex}.list .head .toggle{font-family:var(--sans);color:var(--primary);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0;font-size:12px;text-decoration:underline}.list.collapsed .tableWrap,.list.collapsed .empty-state{display:none}.tableWrap{max-height:540px;overflow:auto}table{border-collapse:collapse;width:100%;font-family:var(--code);font-size:12px}thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:left;border-bottom:1px solid var(--line);background:#fff5f5;padding:8px 14px;font-size:10px;font-weight:600;position:sticky;top:0}tbody td{border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap;padding:9px 14px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fff5f5}td.wrap-col{white-space:normal;max-width:340px}.tag{letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:600;font-family:var(--code);border:1.5px solid #0000;border-radius:99px;padding:3px 10px;display:inline-block}.tag.ok{background:var(--ok-bg);color:var(--ok);border-color:#0596694d}.tag.review{background:var(--review-bg);color:var(--review);border-color:#d977064d}.tag.true{background:var(--ok-bg);color:var(--ok);border-color:#0596694d}.tag.false{background:var(--danger-bg);color:var(--danger);border-color:#dc26264d}.muted{color:var(--muted)}td .miniTag{letter-spacing:.04em;text-transform:uppercase;background:var(--primary-light);color:var(--primary-dark);font-size:9px;font-weight:600;font-family:var(--code);white-space:nowrap;border:1px solid #d23a3b33;border-radius:99px;padding:2px 8px;display:inline-block}.empty-state{text-align:center;color:var(--muted);font-family:var(--code);padding:28px;font-size:12px}.critical{background:var(--panel);border:2px solid var(--review);border-radius:var(--r);margin-bottom:16px;overflow:hidden}.critical .head{background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom:1px solid #d9770633;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;display:flex}.critical .head h3{font-family:var(--sans);color:#92400e;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:700;display:flex}.critical .head h3:before{content:"⚠️";font-style:normal}.critical .head .counts{font-family:var(--code);color:#92400e;font-size:11px;font-weight:600}.critical .head .sub{font-family:var(--sans);color:#92400e;opacity:.75;font-size:12px}.allClean{border-radius:var(--r);box-shadow:var(--shadow);background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:2px solid #34d399;align-items:center;gap:16px;margin-bottom:16px;padding:20px 24px;display:flex}.allClean .icon{flex-shrink:0;font-size:32px;line-height:1}.allClean .body{font-family:var(--sans)}.allClean .body .t{color:#065f46;margin-bottom:4px;font-size:15px;font-weight:700}.allClean .body .d{color:#047857;font-size:13px}.fullLists{margin-top:20px}.fullListsHeader{font-family:var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);align-items:center;gap:10px;margin-bottom:12px;padding-left:2px;font-size:11px;font-weight:600;display:flex}.fullListsHeader:after{content:"";background:var(--line);flex:1;height:1px}.reports-wrap{flex-direction:column;gap:0;display:flex}.report-section{border:2px solid var(--line);border-radius:var(--r);background:var(--panel);box-shadow:var(--shadow);margin-bottom:16px;transition:box-shadow .2s;overflow:hidden}.report-section:hover{box-shadow:var(--shadow-lg)}.report-header{border-left:4px solid var(--order-accent,#ef4444);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--line);background:snow;padding:15px 20px;transition:background .1s}.report-header:hover{background:#fff0f0}.report-header-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.report-title-row{align-items:center;gap:10px;display:flex}.report-title{font-family:var(--sans);color:var(--order-accent,var(--ink));margin:0;font-size:15px;font-weight:700}.report-icon{margin-right:6px;font-size:18px}.report-toggle{font-family:var(--sans);color:var(--muted);border:1.5px solid var(--line-strong);cursor:pointer;white-space:nowrap;background:#fff;border-radius:99px;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.report-toggle:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.report-status-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report-status-label{font-family:var(--sans);color:var(--muted);font-size:12px}.report-status-sep{color:var(--line-strong)}.report-body{padding:20px}.report-loading{font-family:var(--sans);color:var(--muted);text-align:center;padding:24px 0;font-size:13px}.chip{font-family:var(--code);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.chip-idle{color:var(--muted);background:#fff5f5}.chip-fetch{color:#a52a2b;background:linear-gradient(135deg,#fde8e8,#fff1f1);border:1px solid #d23a3b33}.chip-done{background:var(--ok-bg);color:var(--ok);border:1px solid #05966933}.chip-error{background:var(--danger-bg);color:var(--danger);border:1px solid #dc262633}.badge-review{font-family:var(--code);background:var(--review-bg);color:var(--review);border:1.5px solid #d9770666;border-radius:99px;padding:3px 10px;font-size:11px;font-weight:600}.badge-ok{font-family:var(--code);background:var(--ok-bg);color:var(--ok);border:1.5px solid #05966966;border-radius:99px;padding:3px 10px;font-size:11px;font-weight:600}.fetch-error-banner{font-family:var(--code);color:var(--danger);background:var(--danger-bg);border-radius:var(--r-sm);border:1px solid #dc26264d;margin-bottom:14px;padding:10px 14px;font-size:12px}.export-btn{margin-left:auto;padding:5px 12px;font-size:11px}.copy-btn{padding:5px 12px;font-size:11px}.ordertype-manager{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.ordertype-chips{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.ot-chip{font-family:var(--code);color:var(--ink);background:var(--panel);border:1.5px solid var(--line-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:500;display:inline-flex}.ot-chip.removable{padding-right:6px}.ot-chip-x{width:16px;height:16px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:10px;line-height:1;transition:color .15s,background .15s;display:inline-flex}.ot-chip-x:hover:not(:disabled){color:#fff;background:#f07575}.ot-chip-x:disabled{opacity:.4;cursor:not-allowed}.ot-chip-note{color:var(--muted);font-size:12px}.report-header-actions{align-items:center;gap:8px;display:flex}.report-remove{font-family:var(--sans);background:var(--panel);color:var(--muted);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;width:30px;height:30px;font-size:13px;line-height:1;transition:color .15s,border-color .15s}.report-remove:hover{color:#f07575;border-color:#f07575}.rules-page{padding-top:4px}.rules-hero{max-width:720px;margin-bottom:32px}.rules-hero h2{font-family:var(--sans);letter-spacing:-.02em;color:var(--ink);margin:0 0 10px;font-size:22px;font-weight:700}.rules-hero p{color:var(--muted);margin:0;font-size:14px;line-height:1.65}.rule-grid{flex-direction:column;gap:16px;display:flex}.rule-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);border-top:3px solid #d23a3b;flex-direction:column;gap:0;padding:22px 24px;display:flex}.rule-card:first-child{border-top-color:#d23a3b}.rule-card:nth-child(2){border-top-color:#f97316}.rule-card:nth-child(3){border-top-color:#10b981}.rule-card:nth-child(4){border-top-color:#f59e0b}.rule-card:nth-child(5){border-top-color:#ec4899}.rule-badge{font-family:var(--code);text-transform:uppercase;letter-spacing:.1em;color:#6366f1;margin-bottom:8px;font-size:10px;font-weight:700}.rule-card:first-child .rule-badge{color:#d23a3b}.rule-card:nth-child(2) .rule-badge{color:#f97316}.rule-card:nth-child(3) .rule-badge{color:#10b981}.rule-card:nth-child(4) .rule-badge{color:#f59e0b}.rule-card:nth-child(5) .rule-badge{color:#ec4899}.rule-title{font-family:var(--sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 8px;font-size:14px;font-weight:700}.rule-desc{color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.6}.rule-fields{flex-direction:column;gap:5px;margin-bottom:16px;display:flex}.rule-field{align-items:baseline;gap:8px;font-size:12px;display:flex}.rule-field-name{font-family:var(--code);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;flex-shrink:0;min-width:130px;font-size:10px}.rule-field-value{font-family:var(--code);background:var(--primary-light);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:2px 7px;font-size:11px}.rule-outcomes{flex-direction:column;gap:8px;margin-top:auto;display:flex}.rule-outcome{border-radius:var(--r-sm);padding:10px 14px;font-size:12px;line-height:1.5}.rule-valid{background:var(--ok-bg);border:1px solid #05966933}.rule-review{background:var(--review-bg);border:1px solid #d9770633}.outcome-label{font-family:var(--code);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px;font-size:10px;font-weight:700}.rule-valid .outcome-label{color:var(--ok)}.rule-review .outcome-label{color:var(--review)}.outcome-text{color:var(--ink);font-family:var(--sans)}footer{color:var(--muted);font-family:var(--sans);border-top:1px solid var(--line);margin-top:48px;padding-top:14px;font-size:12px}@media (width<=600px){.wrap{padding:0 16px 60px}.top-header{margin:16px 0 20px;padding:16px 18px}.input-card{padding:18px 16px}.input-row{flex-direction:column;align-items:stretch}.locationInput{max-width:100%}.input-actions{justify-content:flex-start}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
