:root{--bg:#f3efe6;--bg-deep:#e8e0d0;--panel:#fffaf2;--ink:#1c241c;--muted:#5e6a5c;--line:#d2c8b4;--accent:#1f6b4a;--accent-soft:#d7eee2;--good:#1f6b4a;--warn:#9a6b16;--bad:#9b2f2f;--sidebar:#15241b;--sidebar-ink:#e8f2eb;--radius:12px;--font:"Segoe UI", "IBM Plex Sans", system-ui, sans-serif;--mono:"Consolas", "IBM Plex Mono", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 10% 0%, #fff8ea 0%, transparent 45%), linear-gradient(160deg, var(--bg), var(--bg-deep))}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);flex-direction:column;gap:1.5rem;padding:1.5rem 1.1rem;display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand-mark{background:#2f8f63;border-radius:10px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.brand strong{font-size:1.05rem;display:block}.brand small{color:#9fb5a7}.sidebar nav{flex-direction:column;gap:.35rem;display:flex}.sidebar nav a{color:#c5d6cb;border-radius:8px;padding:.7rem .85rem}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#ffffff14}.sidebar-note{color:#8ea397;margin-top:auto;font-size:.78rem;line-height:1.4}.main{padding:1.5rem 1.75rem 2.5rem;overflow-x:auto}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.65rem}.page-header p{color:var(--muted);margin:0}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:.65rem 1rem}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:.9rem 1rem;display:flex}.stat-card.good{background:#f2faf5;border-color:#b7dcc9}.stat-card.warn{background:#fff8e8;border-color:#e6d3a2}.stat-card.bad{background:#fff4f4;border-color:#e3b6b6}.stat-label{color:var(--muted);font-size:.8rem}.stat-value{font-size:1.35rem}.stat-hint{color:var(--muted);font-size:.75rem}.filters{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;padding:.9rem;display:flex}.filters label{color:var(--muted);flex-direction:column;gap:.35rem;min-width:140px;font-size:.8rem;display:flex}.filters label.grow{flex:1;min-width:200px}.filters input,.filters select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:.55rem .65rem}.panel{margin-top:1rem}.panel h2{margin:0 0 .65rem;font-size:1.05rem}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.7rem .8rem}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f7f1e6;font-size:.75rem;position:sticky;top:0}tr.clickable{cursor:pointer}tr.clickable:hover,tbody tr:hover{background:#faf6ee}.mono{font-family:var(--mono);font-size:.85rem}.muted{color:var(--muted);font-size:.85rem}.block{display:block}.empty{text-align:center;color:var(--muted);padding:1.5rem!important}.badge{text-transform:capitalize;background:#ece7dc;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;display:inline-block}.badge-delivered,.badge-good,.badge-received{background:var(--accent-soft);color:var(--good)}.badge-pending,.badge-average,.badge-warn{color:var(--warn);background:#f7e7c2}.badge-returned,.badge-bad,.badge-cancelled{color:var(--bad);background:#f5d6d6}.badge-other{color:#555;background:#e7e7e7}.pagination{align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.pagination button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:.45rem .8rem}.pagination button:disabled{opacity:.45;cursor:not-allowed}.app-loader{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(#fffaf2f5,#f3efe6eb);justify-content:center;align-items:center;min-height:220px;margin:.75rem 0;display:flex;position:relative;overflow:hidden}.app-loader-page{min-height:min(52vh,420px)}.app-loader-block{min-height:160px}.app-loader-inline{background:0 0;border:0;min-height:0;margin:0;padding:.25rem 0;display:inline-flex}.app-loader-bar{background:#1f6b4a1f;height:3px;position:absolute;top:0;left:0;right:0;overflow:hidden}.app-loader-bar:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:40%;height:100%;animation:1.15s ease-in-out infinite loader-bar;position:absolute;top:0;left:-40%}.app-loader-inline .app-loader-bar{display:none}.app-loader-inner{z-index:1;flex-direction:column;align-items:center;gap:.85rem;padding:1.5rem 1rem;display:flex}.app-loader-text{color:var(--muted);letter-spacing:.01em;margin:0;font-size:.92rem}.app-spinner{width:44px;height:44px;position:relative}.app-spinner span{border:3px solid #0000;border-top-color:var(--accent);border-radius:50%;animation:.9s linear infinite loader-spin;position:absolute;inset:0}.app-spinner span:nth-child(2){opacity:.85;border-top-color:#3d9a6d;animation-duration:1.15s;animation-direction:reverse;inset:5px}.app-spinner span:nth-child(3){opacity:.7;border-top-color:#7fc2a0;animation-duration:.75s;inset:10px}.app-spinner span:nth-child(4){display:none}.app-loader-inline .app-spinner{width:22px;height:22px}.app-loader-inline .app-spinner span{border-width:2px}.app-loader-inline .app-loader-text{font-size:.82rem}.app-loader-inline .app-loader-inner{flex-direction:row;gap:.55rem;padding:0}@keyframes loader-spin{to{transform:rotate(360deg)}}@keyframes loader-bar{0%{left:-40%}to{left:100%}}.state-box{border-radius:var(--radius);border:1px dashed var(--line);background:var(--panel);color:var(--muted);margin:.75rem 0;padding:1.25rem}.state-box.error{color:var(--bad);background:#fff4f4;border-style:solid;border-color:#e3b6b6}.state-box button{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:8px;margin-top:.5rem;padding:.4rem .75rem}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 .85rem;font-size:.85rem;display:flex}.dot{border-radius:50%;width:10px;height:10px;margin-right:.25rem;display:inline-block}.dot.good{background:var(--good)}.dot.bad{background:var(--bad)}.ratio-bar{vertical-align:middle;background:#e7dfd0;border-radius:999px;width:70px;height:6px;margin-right:.4rem;display:inline-block;overflow:hidden}.ratio-bar span{background:var(--accent);height:100%;display:block}.meta-endpoints{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.meta-tab{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:999px;padding:.45rem .85rem}.meta-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.json-meta{align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.http-badge{border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.http-badge.ok{background:var(--accent-soft);color:var(--good)}.http-badge.fail{color:var(--bad);background:#f5d6d6}.json-view{color:#d7e8dc;border-radius:var(--radius);max-height:70vh;font-family:var(--mono);background:#1a231c;margin:0;padding:1rem;font-size:.82rem;line-height:1.45;overflow:auto}.meta-help ul{margin:.5rem 0;padding-left:1.2rem}.meta-help li{margin-bottom:.35rem}.meta-help code{font-family:var(--mono);background:#f0ebe0;border-radius:4px;padding:.1rem .35rem;font-size:.85em}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{padding:1rem}.sidebar nav{flex-flow:wrap}.sidebar-note{display:none}.main{padding:1rem}}
