:root{--bg: #0a0a0a;--panel: #141414;--border: #2a2a2a;--text: #e5e5e5;--muted: #888;--green: #22c55e;--green-soft: rgba(34, 197, 94, .15);--red: #ef4444;--red-soft: rgba(239, 68, 68, .12);--amber: #f59e0b;--amber-soft: rgba(245, 158, 11, .15);--blue: #3b82f6;--blue-soft: rgba(59, 130, 246, .15);--mono: "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}h1,h2,h3{margin:0 0 .5rem;font-weight:600}h1{font-size:1.5rem}h2{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.app{max-width:960px;margin:0 auto;padding:2rem 1rem}header{flex-wrap:wrap;display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}header .status{display:flex;align-items:center;gap:.5rem;margin-left:auto;font-size:.8rem;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.ok{background:var(--green)}.dot.bad{background:var(--red)}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.25rem;margin-bottom:1rem}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login .card{width:380px;max-width:90%;margin:0}.session-loading{display:flex;align-items:center;gap:.6rem;animation:fade-in .2s ease .4s both}label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--muted)}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;color:var(--text);font-size:.9rem;font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green)}button{background:var(--green);color:#0a0a0a;border:none;border-radius:6px;padding:.5rem 1.2rem;font-weight:600;cursor:pointer;font-family:inherit;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem}button:disabled{opacity:.65;cursor:not-allowed}button.secondary{background:transparent;border:1px solid var(--border);color:var(--text);font-weight:500;padding:.35rem .75rem;font-size:.85rem}button.secondary.active{border-color:var(--green);color:var(--green)}button.danger{background:var(--red);color:#0a0a0a}.mint-form{display:grid;grid-template-columns:1.6fr 1fr 1.2fr 1.3fr .7fr auto;gap:.75rem;align-items:end}.amount-unit{display:flex;gap:.4rem}.amount-unit input{flex:1 1 auto;min-width:0}.amount-unit select{flex:0 0 auto;width:auto}@media (max-width: 720px){.mint-form{grid-template-columns:1fr 1fr}.mint-form button{grid-column:1 / -1;justify-content:center}}.error{color:var(--red);margin:.75rem 0 0;font-size:.85rem}.muted{color:var(--muted);font-size:.85rem}.keys-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.key-row{background:var(--bg);border:1px solid var(--border);border-radius:6px}.key-row.highlight{border-color:#22c55e66}.key-row-head{display:flex;align-items:center;gap:.75rem;padding:.75rem;flex-wrap:wrap}.key-row-head code{flex:1 1 220px;font-family:var(--mono);font-size:.9rem;color:var(--text);word-break:break-all}.key-row-detail{padding:.75rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem}.key-row-detail .row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.badge{padding:.2rem .55rem;border-radius:3px;font-size:.7rem;text-transform:uppercase;font-weight:600;letter-spacing:.05em;display:inline-block}.badge.active{background:var(--green-soft);color:var(--green)}.badge.revoked{background:var(--red-soft);color:var(--red)}.badge.expired{background:var(--amber-soft);color:var(--amber)}.badge.platform{background:var(--blue-soft);color:var(--blue)}.badge.domain{background:#a855f726;color:#c084fc;font-family:var(--mono);text-transform:none;letter-spacing:0}.filter-bar{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}.toasts{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:100;max-width:360px}.toast{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;border-radius:6px;font-size:.85rem;box-shadow:0 4px 12px #0006;cursor:pointer}.toast.success{background:var(--green-soft);border:1px solid var(--green);color:var(--green)}.toast.error{background:var(--red-soft);border:1px solid var(--red);color:var(--red)}.toast .icon{width:16px;height:16px;border-radius:50%;background:currentColor;color:var(--bg);text-align:center;line-height:16px;font-weight:700;font-size:.75rem;flex-shrink:0}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.spinner.inverse{border-color:#0a0a0a;border-top-color:transparent;width:12px;height:12px}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:fade-in .12s ease}.modal{width:420px;max-width:100%;margin:0;animation:pop-in .12s ease}.modal h3{margin:0 0 .75rem;font-size:1rem}.modal p{margin:0 0 1.25rem;font-size:.9rem;line-height:1.45;color:var(--muted);white-space:pre-wrap}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.extension-history{padding:0}.extension-history summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem;-webkit-user-select:none;user-select:none;padding:.15rem 0}.extension-history summary:hover{color:var(--text)}.extension-history summary::-webkit-details-marker{display:none}.extension-history summary:before{content:"▸";display:inline-block;width:.7em;transition:transform .15s ease}.extension-history[open] summary:before{transform:rotate(90deg)}.extension-history ul{margin:.5rem 0 0 1.5rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.extension-history .empty{margin:.5rem 0 0 1.5rem;font-size:.85rem}.key-history{margin:.5rem 0 0 1.5rem;border-collapse:collapse;width:calc(100% - 1.5rem);font-size:.85rem}.key-history th,.key-history td{text-align:left;padding:.35rem .6rem;border-bottom:1px solid var(--border)}.key-history th{color:var(--muted);font-weight:500;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.key-history td code{font-family:var(--mono);font-size:.85rem}.key-history tr:last-child td{border-bottom:none}header .tabs{display:flex;gap:.4rem}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}.summary-strip .stat{margin:0;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.4rem;font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 720px){.summary-strip{grid-template-columns:1fr 1fr}}.filter-bar .feed-search{flex:1 1 200px;width:auto;min-width:160px;padding:.35rem .75rem;font-size:.85rem}.fleet-table,.bet-feed{width:100%;border-collapse:collapse;font-size:.85rem}.fleet-table th,.fleet-table td,.bet-feed th,.bet-feed td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}.fleet-table th,.bet-feed th{color:var(--muted);font-weight:500;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.fleet-table tbody tr:last-child td,.bet-feed tbody.bet-item.is-last tr:last-child td{border-bottom:none}.bet-feed{table-layout:fixed;min-width:760px}.bet-feed col.col-time{width:80px}.bet-feed col.col-license{width:96px}.bet-feed col.col-platform{width:116px}.bet-feed col.col-market,.bet-feed col.col-pick{width:15%}.bet-feed col.col-odds{width:60px}.bet-feed col.col-stake{width:100px}.bet-feed td{overflow:hidden;text-overflow:ellipsis}.bet-feed .bet-spacer td{padding:0;border:none}.fleet-table .num,.bet-feed .num{text-align:right;font-variant-numeric:tabular-nums}.fleet-table code,.bet-feed code{font-family:var(--mono);font-size:.85rem}.fleet-row{cursor:pointer}.fleet-row:hover td{background:#ffffff08}.fleet-row.selected td{background:var(--green-soft)}.fleet-row .dot{display:inline-block}.fleet-notes{margin-left:.5rem}.bet-feed .text{white-space:normal;overflow-wrap:break-word}.bet-row.expandable{cursor:pointer}.bet-row.expandable:hover td{background:#ffffff08}.bet-row .expander{display:inline-block;width:1em;color:var(--muted)}.bet-row.fresh td{animation:fresh-fade 6s ease-out forwards}@keyframes fresh-fade{0%{background:var(--green-soft)}to{background:transparent}}.badge.kind{background:var(--amber-soft);color:var(--amber)}.badge.live{background:var(--red-soft);color:var(--red)}.bet-legs td{padding:.25rem .6rem .6rem 2.2rem;background:var(--bg)}.bet-legs ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.bet-legs li{display:grid;grid-template-columns:2fr 1.5fr 1.5fr auto auto;gap:.75rem;align-items:center}.feed-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.feed-head h2{margin:0 0 .75rem}.feed-head h2 code{font-family:var(--mono);text-transform:none;letter-spacing:0}.feed-footer{display:flex;justify-content:center;padding-top:.75rem}.feed-status{display:inline-flex;align-items:center;gap:.5rem;text-align:center}header .account{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}header .whoami{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem}.whoami-name{font-weight:600}.badge.role.superadmin{background:var(--amber-soft);color:var(--amber)}.badge.role.admin{background:var(--blue-soft);color:var(--blue)}.badge.role.viewer{background:#ffffff0f;color:var(--muted)}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.9rem}.field>label{font-size:.75rem;color:var(--muted)}.password-field{display:flex;gap:.4rem}.password-field input{flex:1 1 auto;min-width:0;font-family:var(--mono)}.password-field button{flex:0 0 auto}.field-hint{font-size:.75rem;color:var(--muted)}.field-hint.invalid{color:var(--red)}input[aria-invalid=true]{border-color:var(--red)}.user-form{display:grid;grid-template-columns:1.2fr .8fr 2fr auto;gap:.75rem;align-items:start}.user-form .field{margin-bottom:0}.user-form>button{margin-top:1.1rem}@media (max-width: 720px){.user-form{grid-template-columns:1fr}.user-form>button{margin-top:0;justify-content:center}}.modal form .field{margin-bottom:.9rem}.modal .modal-note{margin:0 0 1.25rem;font-size:.8rem}.table-scroll{overflow-x:auto}.users-table,.audit-table{width:100%;border-collapse:collapse;font-size:.85rem}.users-table th,.users-table td,.audit-table th,.audit-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}.users-table th,.audit-table th{color:var(--muted);font-weight:500;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.users-table tbody tr:last-child td,.audit-table tbody tr:last-child td{border-bottom:none}.user-row.disabled td:not(:last-child){opacity:.7}.user-actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.user-actions button{padding:.3rem .7rem;font-size:.8rem}.user-actions .role-select{width:auto;padding:.3rem .5rem;font-size:.8rem}.user-actions :disabled{cursor:not-allowed}.secret-reveal{border:1px solid var(--amber);background:var(--amber-soft);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.secret-reveal-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem}.secret-reveal p{margin:0 0 .6rem}.secret-reveal-row{display:grid;grid-template-columns:5rem 1fr auto;gap:.75rem;align-items:center;padding:.25rem 0}.secret-reveal-row code{font-family:var(--mono);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.audit-row{cursor:pointer}.audit-row:hover td{background:#ffffff08}.audit-row.fresh td{animation:fresh-fade 6s ease-out forwards}.audit-row .expander{display:inline-block;width:1em;color:var(--muted)}.audit-table code{font-family:var(--mono);font-size:.8rem}.audit-table .text{overflow-wrap:anywhere}.audit-raw td{background:var(--bg)}.audit-raw pre{margin:0;font-family:var(--mono);font-size:.78rem;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.card>.filter-bar:last-child{margin-bottom:0}@media (max-width: 720px){.app{padding:1rem .75rem 2rem}.card{padding:1rem}input,select,textarea{font-size:16px}.toasts{left:.75rem;right:.75rem;max-width:none}header{gap:.6rem;margin-bottom:1rem}header h1{order:1;margin:0;font-size:1.25rem}header .status{order:2}header .tabs{order:3;flex:1 1 100%}header .tabs button{flex:1 1 0;justify-content:center}header .account{order:4;flex:1 1 100%}header .account .whoami{margin-right:auto}header .account button{padding:.3rem .6rem;font-size:.8rem}.filter-bar.chips{flex-wrap:nowrap;overflow-x:auto;margin-left:-1rem;margin-right:-1rem;padding:0 1rem;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 1rem,#000 calc(100% - 1.5rem),transparent);mask-image:linear-gradient(to right,transparent 0,#000 1rem,#000 calc(100% - 1.5rem),transparent)}.filter-bar.chips::-webkit-scrollbar{display:none}.filter-bar.chips button{flex:0 0 auto}.filter-bar .feed-search{min-width:0}.fleet-table,.fleet-table tbody{display:block}.fleet-table thead{display:none}.fleet-table tr.fleet-row{display:block;padding:.65rem .5rem;border-bottom:1px solid var(--border)}.fleet-table tbody tr.fleet-row:last-child{border-bottom:none}.fleet-table tr.fleet-row td{display:inline-block;padding:0 .5rem 0 0;border:none;background:none;text-align:left}.fleet-table tr.fleet-row td.fleet-seen{display:block;padding:.35rem 0 .15rem}.fleet-table td[data-label]:before{content:attr(data-label) " ";color:var(--muted)}.fleet-table td.fleet-bets{padding-right:1rem}.fleet-row.selected{background:var(--green-soft);border-radius:6px}.bet-feed,.bet-feed tbody{display:block;min-width:0}.bet-feed thead,.bet-feed colgroup{display:none}.bet-feed .bet-spacer tr,.bet-feed .bet-spacer td{display:block}.bet-feed tbody.bet-item{border-bottom:1px solid var(--border)}.bet-feed tbody.bet-item.is-last{border-bottom:none}.bet-feed tr.bet-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;column-gap:.6rem;row-gap:.2rem;align-items:center;padding:.75rem .25rem}.bet-feed tr.bet-row td{padding:0;border:none;background:none;max-width:none;animation:none}.bet-feed tr.bet-row.fresh{animation:fresh-fade 6s ease-out forwards}.bet-feed td.bet-platform{grid-column:1;grid-row:1}.bet-feed td.bet-license{grid-column:2;grid-row:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.bet-feed td.bet-time{grid-column:3 / 5;grid-row:1;justify-self:end;color:var(--muted);font-size:.8rem}.bet-feed td.bet-match{grid-column:1 / -1;grid-row:2;padding-top:.35rem;font-weight:600;font-size:.9rem}.bet-feed td.bet-market{grid-column:1 / -1;grid-row:3;color:var(--muted)}.bet-feed td.bet-pick{grid-column:1 / 3;grid-row:4}.bet-feed td.bet-odds{grid-column:3;grid-row:4;color:var(--muted)}.bet-feed td.bet-stake{grid-column:4;grid-row:4;font-weight:600}.bet-feed td.is-empty{display:none}.bet-feed tr.bet-legs{display:block}.bet-feed tr.bet-legs td{display:block;padding:0 0 .75rem;border:none;background:none}.bet-legs li{grid-template-columns:minmax(0,1fr) auto auto;row-gap:.1rem;padding:.45rem .6rem;background:var(--bg);border-radius:6px}.bet-legs li>:nth-child(1){grid-column:1 / -1;font-weight:600}.bet-legs li>:nth-child(2){grid-column:1 / -1}.bet-legs li>:nth-child(3){grid-column:1}.bet-legs li>:nth-child(4){grid-column:2}.bet-legs li>:nth-child(5){grid-column:3}}
