:root{--primary: #1e40af;--primary-hover: #1d4ed8;--danger: #dc2626;--success: #16a34a;--bg: #f8fafc;--surface: #ffffff;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.app-root{display:contents}.container{max-width:1200px;margin:0 auto;padding:2rem}h1,h2{margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:600;margin-bottom:.25rem;font-size:.875rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font:inherit;background:#fff}.form-group textarea{resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1e40af1a}.page-hint,.hint{font-size:.875rem;color:var(--text-muted)}.page-hint{margin:-.5rem 0 1rem}.hint{font-size:.75rem;margin-top:.5rem}.test-cards{margin-bottom:1rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.test-cards ul{list-style:none;display:grid;gap:.5rem;margin-top:.5rem}.test-cards li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:.875rem}.test-cards code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.test-cards .btn{margin-left:auto;padding:.25rem .6rem;font-size:.75rem}.tokenizer-frame{display:block;width:100%;height:280px;border:0;background:transparent}.field-error{color:var(--danger);font-size:.875rem;margin-top:.35rem}.table-wrap{overflow-x:auto}.auth-cards{display:none}.auth-card{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;display:grid;gap:.35rem}.auth-card h3{font-size:1rem;margin-bottom:0}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border)}.btn-danger:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible,a:focus-visible,iframe:focus-visible,.sort-button:focus-visible,.sort-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sort-button{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer}.sort-bar{display:none;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.sort-chip{background:#fff;border:1px solid var(--border);border-radius:999px;padding:.25rem .7rem;font:inherit;font-size:.75rem;font-weight:600;cursor:pointer}.sort-chip[aria-pressed=true]{border-color:var(--primary);color:var(--primary)}.dialog-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}dialog{border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;max-width:28rem;width:calc(100% - 2rem);margin:auto;color:var(--text)}dialog::backdrop{background:#0f172a73}dialog p+p{margin-top:.75rem}table{width:100%;border-collapse:collapse;font-size:.875rem}table th,table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}table th{font-weight:600;background:var(--bg)}.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.875rem}.alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.pill{display:inline-block;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:700}.pill-authorized{background:#dbeafe;color:#1e3a8a}.pill-captured{background:#dcfce7;color:#166534}.pill-voided,.pill-refunded{background:#f1f5f9;color:#334155}.pill-capturing,.pill-voiding,.pill-refunding,.pill-authorizing{background:#fef9c3;color:#854d0e}.pill-unknown{background:#ffedd5;color:#9a3412}nav{background:var(--surface);border-bottom:1px solid var(--border);padding:1rem 2rem;display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.5rem}nav .brand{font-weight:700;font-size:1.125rem;color:var(--primary);text-decoration:none}nav a{text-decoration:none;color:var(--text-muted);font-weight:500;font-size:.875rem;padding:.25rem 0;border-bottom:2px solid transparent;white-space:nowrap}nav a:hover,nav a.active{color:var(--primary);border-bottom-color:var(--primary)}nav .who{margin-left:auto;color:var(--text-muted);font-size:.875rem}.signing-in{min-height:40vh;display:flex;align-items:center;justify-content:center}.task-list{margin:.75rem 0 0 1.25rem}.task-list li+li{margin-top:.35rem}@media (max-width: 800px){.auth-table.replaced-by-cards{display:none}.auth-cards{display:grid;gap:.75rem}.sort-bar{display:flex}}.spinner{display:inline-block;width:1em;height:1em;margin-right:.5em;vertical-align:-.125em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-turn .8s linear infinite}@keyframes spinner-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner,.busy-lock:disabled dialog .btn-primary:disabled:before,.busy-lock:disabled dialog .btn-danger:disabled:before{animation-duration:3s}}.busy-banner{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;background:var(--primary);color:#fff;border-radius:999px;padding:.25rem 1rem;font-size:.875rem;font-weight:600;pointer-events:none}.busy-banner:empty{display:none}.busy-lock{border:0;min-width:0}.busy-lock:disabled dialog .btn-primary:disabled:before,.busy-lock:disabled dialog .btn-danger:disabled:before{content:"";display:inline-block;width:.9em;height:.9em;margin-right:.5em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-turn .8s linear infinite}
