@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");

:root { --bg:#07100f; --surface:#0d1816; --surface-2:#12221f; --line:#213a35; --text:#eef8f4; --muted:#89a39b; --green:#56e3a1; --green-2:#1d9868; --red:#ff6d75; --amber:#f7bd63; --shadow:0 18px 50px #0006; font-family:"DM Sans",system-ui,sans-serif; color-scheme:dark; }
[data-theme="light"] { --bg:#edf4f1; --surface:#fff; --surface-2:#f4f8f6; --line:#d4e2dc; --text:#11241e; --muted:#647c74; --shadow:0 18px 50px #183b2c18; color-scheme:light; }
* { box-sizing:border-box; }
body { margin:0; background:radial-gradient(circle at 78% -10%,#173f32 0,transparent 31%),var(--bg); color:var(--text); min-height:100vh; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.skip-link { position:fixed; left:16px; top:-50px; background:var(--green); color:#032118; padding:10px 16px; z-index:100; border-radius:8px; }
.skip-link:focus { top:10px; }
.topbar { height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 24px; position:fixed; inset:0 0 auto 0; z-index:20; border-bottom:1px solid var(--line); background:#07100feb; backdrop-filter:blur(18px); }
[data-theme="light"] .topbar { background:#ffffffeb; }
.brand,.operator { display:flex; align-items:center; gap:12px; }
.brand-mark { display:grid; place-items:center; width:40px; height:40px; border:1px solid #56e3a177; border-radius:12px; color:var(--green); font:700 14px "Space Grotesk"; box-shadow:inset 0 0 20px #56e3a11c; }
.brand strong,.brand small { display:block; }.brand strong { font:600 16px "Space Grotesk"; }.brand small { color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.environment { color:var(--green); font-size:11px; letter-spacing:.12em; border:1px solid #56e3a133; padding:8px 12px; border-radius:999px; }.environment span { display:inline-block; width:7px; height:7px; background:var(--green); border-radius:50%; margin-right:7px; box-shadow:0 0 12px var(--green); }
.operator { font-size:13px; }.operator strong { width:34px; height:34px; display:grid; place-items:center; background:var(--surface-2); border-radius:50%; color:var(--green); }.icon-button { background:transparent; border:1px solid var(--line); color:var(--text); width:34px; height:34px; border-radius:9px; }
.sidebar { width:220px; position:fixed; left:0; top:72px; bottom:0; padding:28px 14px; display:flex; flex-direction:column; gap:7px; border-right:1px solid var(--line); background:#081210c7; }
[data-theme="light"] .sidebar { background:#f8fcfacf; }
.nav { text-align:left; border:0; border-radius:10px; background:transparent; color:var(--muted); padding:11px 12px; display:flex; align-items:center; gap:11px; font-weight:600; }.nav span { width:19px; color:#6b8b81; }.nav b { margin-left:auto; background:#ff6d7522; color:var(--red); border-radius:999px; padding:2px 7px; font-size:10px; }.nav:hover,.nav.active { color:var(--text); background:var(--surface-2); }.nav.active { box-shadow:inset 2px 0 var(--green); }.nav.active span { color:var(--green); }
.sidebar-foot { margin-top:auto; border:1px solid var(--line); background:var(--surface); padding:13px; border-radius:12px; }.sidebar-foot span,.sidebar-foot strong,.sidebar-foot small { display:block; }.sidebar-foot span,.sidebar-foot small { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }.sidebar-foot strong { color:var(--green); font-size:12px; margin:5px 0; }
main { margin-left:220px; padding:106px 34px 50px; max-width:1660px; }
.view { display:none; animation:enter .22s ease; }.view.active { display:block; }@keyframes enter { from { opacity:0; transform:translateY(5px); } }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:24px; gap:20px; }.page-heading h1 { margin:1px 0 5px; font:700 clamp(25px,3vw,36px) "Space Grotesk"; letter-spacing:-.04em; }.page-heading p { color:var(--muted); margin:0; }.eyebrow { color:var(--green)!important; font-size:10px!important; font-weight:700; letter-spacing:.15em; margin:0 0 5px!important; }
.primary,.secondary,.danger,.text-button { border-radius:9px; padding:10px 14px; font-weight:700; }.primary { background:var(--green); color:#052319; border:0; box-shadow:0 8px 24px #56e3a123; }.secondary { background:var(--surface); color:var(--text); border:1px solid var(--line); }.danger { background:#ff6d7517; border:1px solid #ff6d7555; color:var(--red); }.text-button { background:transparent; border:0; color:var(--green); font-size:11px; }
.kpi-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:14px; }.kpi,.panel { min-width:0; background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface-2) 55%,var(--surface))); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }.kpi { padding:16px; position:relative; overflow:hidden; }.kpi::after { content:""; position:absolute; width:80px; height:80px; border-radius:50%; background:#56e3a10a; right:-28px; top:-28px; }.kpi.warning::after { background:#ff6d7510; }.kpi span,.kpi small { display:block; color:var(--muted); font-size:11px; }.kpi strong { display:block; font:600 27px "Space Grotesk"; margin:7px 0 4px; }.kpi strong i { color:var(--muted); font-style:normal; font-size:17px; }.good { color:var(--green)!important; }
.dashboard-grid { display:grid; grid-template-columns:1fr 1fr .72fr; gap:14px; }.panel { padding:18px; }.span-two { grid-column:span 2; }.panel-head { display:flex; justify-content:space-between; align-items:flex-start; }.panel h2 { font:600 17px "Space Grotesk"; margin:0; }.legend { color:var(--muted); font-size:10px; }.legend span { display:inline-block; width:6px; height:6px; border-radius:50%; margin:0 4px 1px 10px; }.red { background:var(--red); }.amber { background:var(--amber); }.live-pill { color:var(--green); font-size:10px; letter-spacing:.1em; }
.chart { height:220px; padding:12px 0 0 38px; position:relative; }.chart svg { width:100%; height:180px; overflow:visible; }.gridline { stroke:var(--line); stroke-width:1; }.trend { fill:none; stroke:var(--green); stroke-width:2.5; vector-effect:non-scaling-stroke; }.area { fill:url(#area); }.chart-y { position:absolute; left:0; top:17px; bottom:30px; display:flex; flex-direction:column; justify-content:space-between; color:var(--muted); font-size:9px; }.chart-x { display:flex; justify-content:space-between; color:var(--muted); font-size:9px; }
.alert-list { margin-top:10px; }.alert { display:grid; grid-template-columns:auto 1fr auto; gap:10px; padding:12px 0; border-top:1px solid var(--line); align-items:center; }.alert .signal { width:8px; height:8px; border-radius:50%; background:var(--amber); box-shadow:0 0 10px #f7bd6355; }.alert.critical .signal { background:var(--red); }.alert strong,.alert small { display:block; }.alert strong { font-size:12px; }.alert small { color:var(--muted); font-size:10px; margin-top:2px; }.alert time { color:var(--muted); font-size:9px; }
.table-wrap { overflow:auto; margin-top:10px; }table { width:100%; border-collapse:collapse; font-size:12px; }th { color:var(--muted); text-align:left; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }th,td { padding:10px 7px; border-bottom:1px solid var(--line); }td strong { color:var(--green); }.risk-low { color:var(--green); }.risk-watch { color:var(--amber); }.risk-high { color:var(--red); }
.ledger-card { text-align:center; }.donut { width:126px; height:126px; border-radius:50%; margin:20px auto; display:grid; place-items:center; background:conic-gradient(var(--green) 0 99.8%,var(--line) 99.8%); position:relative; }.donut::after { content:""; position:absolute; inset:10px; border-radius:50%; background:var(--surface); }.donut span { z-index:1; font:700 30px "Space Grotesk"; }.donut small { color:var(--muted); font-size:13px; }.ledger-card dl div { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding:9px 0; font-size:11px; }.ledger-card dt { color:var(--muted); }.ledger-card dd { margin:0; font-weight:700; }
.case-board { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.case-column { background:#0002; border:1px solid var(--line); border-radius:14px; padding:14px; }.case-column h2 { display:flex; justify-content:space-between; font-size:13px; }.case-column h2 span { color:var(--muted); }.case-card { display:block; width:100%; color:var(--text); text-align:left; font:inherit; background:var(--surface); border:1px solid var(--line); border-left:2px solid var(--amber); border-radius:10px; padding:13px; margin-top:10px; cursor:pointer; transition:border-color .18s ease,transform .18s ease,background .18s ease; }.case-card:hover,.case-card:focus-visible { border-color:var(--green); background:var(--surface-2); transform:translateY(-1px); outline:none; }.case-card.high { border-left-color:var(--red); }.case-card p { font-size:12px; margin:5px 0; }.case-card small { color:var(--muted); }.case-card footer { display:flex; justify-content:space-between; margin-top:12px; font-size:9px; color:var(--muted); }
.case-detail-form { gap:18px; }.case-detail-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-right:30px; }.case-detail-heading h2 { margin:3px 0 5px; }.case-detail-heading strong { color:var(--green); }.case-detail-summary { margin:0; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); color:var(--muted); line-height:1.55; }.case-detail-form section h3 { margin:0 0 9px; font-size:12px; }.case-evidence-list { display:grid; gap:7px; margin:0; padding-left:20px; color:var(--muted); font-size:11px; }.case-related-hands { display:grid; gap:8px; }.case-related-hands button { display:flex; justify-content:space-between; align-items:center; gap:14px; text-align:left; }.case-related-hands button span { color:var(--muted); font-size:10px; }
.integrity-account-control { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); padding:12px; }.integrity-account-control small,.integrity-account-control p { display:block; margin:4px 0 0; color:var(--muted); font-size:10px; }.integrity-account-control .partner-actions { display:flex; flex-wrap:wrap; gap:6px; }.integrity-account-control button { justify-content:center; font-size:10px; padding:8px 10px; }
@media (max-width:760px){.integrity-account-control{grid-template-columns:1fr}.integrity-account-control .partner-actions{display:grid;grid-template-columns:1fr}.integrity-account-control button{width:100%}}
.replayer-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,.7fr); gap:14px; align-items:start; }.hand-stage { min-height:520px; }.felt { max-width:760px; height:390px; margin:12px auto 28px; border:9px solid #162c26; border-radius:46%; position:relative; background:radial-gradient(circle,#0d6b4b,#06412f 65%,#052b22); box-shadow:inset 0 0 80px #0008,0 20px 50px #0006; }.felt::after { content:""; position:absolute; inset:25px; border:1px solid #8ad8b122; border-radius:45%; }.seat { position:absolute; z-index:2; background:#0b1715; border:1px solid #29463e; border-radius:10px; padding:8px 12px; font-weight:700; font-size:11px; min-width:100px; text-align:center; }.seat small { display:block; color:var(--muted); margin-top:3px; }.seat.flagged { border-color:#ff6d7588; }.seat.bot { border-color:#56e3a166; }.s1 { top:-22px; left:42%; }.s2 { bottom:-22px; left:15%; }.s3 { bottom:-22px; right:15%; }.board { position:absolute; inset:42% auto auto 50%; transform:translate(-50%,-50%); display:flex; gap:6px; z-index:3; white-space:nowrap; }.board b { background:#f3f6f4; color:#17221f; width:42px; height:58px; border-radius:5px; display:grid; place-items:center; box-shadow:0 5px 12px #0005; }.board span { position:absolute; top:68px; width:100%; text-align:center; color:#fff; font-size:12px; }.timeline { display:flex; align-items:center; gap:10px; }.timeline input { flex:1; accent-color:var(--green); }.timeline button { background:var(--surface-2); border:1px solid var(--line); color:var(--text); border-radius:8px; width:34px; height:34px; }.timeline span { width:180px; color:var(--muted); font-size:11px; }.event-log { max-height:620px; overflow-y:auto; scrollbar-color:var(--green-2) var(--surface); }.event-log ol { padding:0; list-style:none; }.event-log li { border-left:1px solid var(--line); padding:0 0 18px 16px; position:relative; font-size:11px; }.event-log li::before { content:""; width:7px; height:7px; background:var(--green); border-radius:50%; position:absolute; left:-4px; top:4px; }.event-log li.future { opacity:.3; }.event-log small { color:var(--muted); display:block; }
.hand-audit-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:14px; }
.hand-journal { margin-bottom:14px; }
.hand-journal .table-wrap { max-height:min(46vh,520px); overflow:auto; border:1px solid var(--line); border-radius:10px; }
.hand-journal thead { position:sticky; top:0; z-index:3; background:var(--surface-2); }
.hand-journal td small { display:block; color:var(--muted); margin-top:3px; }
.hand-journal tr[data-hand-row]:hover { background:#56e3a108; }
.hand-journal tr[data-hand-row].is-selected { background:#56e3a118; box-shadow:inset 3px 0 var(--green); }
.hand-journal tr[data-hand-row].is-selected .inspect-hand { color:var(--green); }
.inspect-hand[aria-busy="true"] { opacity:.7; cursor:progress; }
.hand-analysis-heading { scroll-margin-top:84px; display:flex; align-items:center; justify-content:space-between; gap:16px; margin:20px 2px 10px; padding:14px 16px; border-left:3px solid var(--green); border-radius:8px; background:linear-gradient(90deg,#56e3a112,transparent); outline:none; }
.hand-analysis-heading:focus-visible { box-shadow:0 0 0 2px var(--green); }
.hand-analysis-heading h2 { margin:2px 0 3px; }
.hand-analysis-heading p:last-child { margin:0; color:var(--muted); }
.hand-analysis-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
#hands:not(.analysis-mode) > .hand-analysis-heading,#hands:not(.analysis-mode) > .replayer-layout,#hands:not(.analysis-mode) > .hand-analysis-grid { display:none; }
#hands.analysis-mode > .page-heading,#hands.analysis-mode > .hand-audit-kpis,#hands.analysis-mode > .hand-journal { display:none; }
#hands.analysis-mode > .hand-analysis-heading { margin-top:0; box-shadow:0 0 0 1px #56e3a144,0 12px 35px #0004; }
.audit-badge.warning { color:#ffd36a; border-color:#ffd36a66; }
.hand-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
.audit-badge { color:var(--amber); border:1px solid #f7bd6344; background:#f7bd6310; border-radius:999px; padding:5px 8px; font-size:9px; font-weight:700; letter-spacing:.08em; }
.analysis-note { color:var(--muted); font-size:11px; line-height:1.55; }
.flow-list { list-style:none; padding:0; margin:12px 0 0; }
.flow-list li { display:grid; grid-template-columns:1fr auto; gap:4px 12px; border-top:1px solid var(--line); padding:12px 0; font-size:11px; }
.flow-list li b { color:var(--green); }
.flow-list li small { grid-column:1/-1; color:var(--muted); }
.integrity-findings { display:grid; gap:9px; margin-top:12px; }
.integrity-finding { display:grid; gap:4px; border:1px solid #f7bd6344; border-left:3px solid var(--amber); background:#f7bd6308; border-radius:10px; padding:11px; font-size:11px; }
.integrity-finding.high { border-color:#ff6d7555; border-left-color:var(--red); background:#ff6d7508; }
.integrity-finding span,.integrity-finding small { color:var(--muted); }
.replay-seat.rp0 { top:-22px; left:50%; transform:translateX(-50%); }
.replay-seat.rp1 { top:12px; left:8%; }
.replay-seat.rp2 { top:36%; left:-28px; }
.replay-seat.rp3 { bottom:12%; left:-12px; }
.replay-seat.rp4 { bottom:-22px; left:18%; }
.replay-seat.rp5 { bottom:-22px; right:18%; }
.replay-seat.rp6 { bottom:12%; right:-12px; }
.replay-seat.rp7 { top:36%; right:-28px; }
.replay-seat.rp8 { top:12px; right:8%; }
.replay-seat.rp9 { top:-22px; right:25%; }
.money-map { min-height:460px; position:relative; overflow:auto; }.money-node { position:absolute; width:170px; padding:18px; border-radius:14px; border:1px solid var(--line); background:var(--surface-2); font-weight:700; }.money-node small { display:block; color:var(--muted); margin-top:5px; }.source { left:5%; top:70px; }.player { left:29%; top:190px; border-color:#56e3a166; }.table { left:54%; top:70px; }.target { right:5%; top:220px; border-color:#ff6d7566; }.edge { position:absolute; color:var(--green); font-size:11px; }.e1 { left:20%; top:155px; transform:rotate(25deg); }.e2 { left:44%; top:160px; transform:rotate(-24deg); }.e3 { left:69%; top:175px; transform:rotate(30deg); }.risk-note { position:absolute; bottom:25px; left:5%; right:5%; background:#ff6d7510; border:1px solid #ff6d7544; color:var(--red); padding:12px; border-radius:10px; font-size:11px; }
.bot-toolbar { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:14px; padding:14px 18px; }.bot-toolbar label { display:grid; width:min(420px,100%); gap:6px; color:var(--muted); font-size:10px; text-transform:uppercase; }.bot-toolbar input { padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); color:var(--text); }.bot-toolbar strong { color:var(--green); font-size:12px; }.bot-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.bot-card { padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--surface); display:grid; gap:12px; }.bot-card header { display:flex; justify-content:space-between; }.bot-card .status { color:var(--green); font-size:10px; }.bot-card .status-draining { color:var(--amber); }.bot-card .status-disabled { color:var(--muted); }.bot-card dl div { display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid var(--line); font-size:11px; }.bot-card dt { color:var(--muted); }.bot-card dd { margin:0; }.bot-card label { color:var(--muted); font-size:10px; display:grid; gap:7px; }.bot-card label output { color:var(--green); font-weight:700; }.bot-card input[type="range"] { width:100%; accent-color:var(--green); }.bot-card select,.bot-card input:not([type="range"]) { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:9px; }.bot-card .save-bot { width:100%; }.disclosure { margin-top:14px; border-color:#56e3a155; }.disclosure p { color:var(--green); font-size:18px; }.disclosure small { color:var(--muted); }
.integrity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:14px; }.integrity-card { display:grid; align-content:start; gap:10px; min-height:190px; }.integrity-card > strong { color:var(--green); font:600 19px "Space Grotesk"; }.integrity-card > p:not(.eyebrow) { color:var(--muted); font-size:11px; line-height:1.55; margin:0; }.integrity-card .secondary { margin-top:auto; justify-self:start; }.integrity-lock { justify-self:start; color:var(--amber); border:1px solid #f7bd6344; background:#f7bd6310; border-radius:999px; padding:5px 8px; font-size:9px; font-weight:700; letter-spacing:.08em; }
.bot-risk-shell { display:grid; gap:14px; margin:14px 0 22px; }
.bot-risk-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.bot-risk-heading p:not(.eyebrow) { color:var(--muted); font-size:11px; margin:5px 0 0; }
.bot-risk-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.bot-risk-kpis .kpi strong { font-size:20px; }
.bot-risk-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr); gap:14px; align-items:start; }
.bot-risk-form { display:grid; gap:15px; }
.risk-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.bot-risk-form label { color:var(--muted); font-size:10px; display:grid; gap:7px; }
.bot-risk-form input,.bot-risk-form textarea { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; }
.bot-risk-form textarea { min-height:76px; resize:vertical; }
.bot-risk-form .risk-check { display:flex; flex-direction:row; align-items:center; }
.bot-risk-form .risk-check input { width:auto; accent-color:var(--green); }
.bot-risk-form output { color:var(--green); font-size:11px; }
.bot-risk-status { display:grid; gap:14px; }
.risk-breach-list { display:grid; gap:8px; }
.risk-breach { display:grid; gap:4px; padding:10px; border-radius:9px; border:1px solid #f7bd6344; border-left:3px solid var(--amber); background:#f7bd6308; font-size:10px; }
.risk-breach.high { border-color:#ff6d7555; border-left-color:var(--red); background:#ff6d7508; }
.risk-breach span,.risk-breach small { color:var(--muted); }
.risk-audit { border-top:1px solid var(--line); padding-top:14px; }
.risk-audit ol { list-style:none; padding:0; margin:8px 0 0; max-height:330px; overflow:auto; }
.risk-audit li { display:grid; gap:3px; border-top:1px solid var(--line); padding:9px 0; font-size:10px; }
.risk-audit li small { color:var(--muted); }
.config-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:850px; }.config-form label,dialog label { color:var(--muted); font-size:11px; display:flex; flex-direction:column; gap:7px; }.config-form input,.config-form select,.config-form textarea,dialog input,dialog textarea { background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; }.config-form .check { flex-direction:row; align-items:center; }.config-form textarea { min-height:80px; }.config-form output { grid-column:1/-1; color:var(--green); font-size:11px; }
.points-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr); gap:14px; }
.room-ops-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(330px,.45fr); gap:14px; }
.room-policy-form { display:grid; align-content:start; gap:14px; }
.room-policy-form label { color:var(--muted); font-size:11px; display:grid; gap:7px; }
.room-policy-form input,.room-policy-form select,.room-policy-form textarea { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; }
.room-policy-form textarea { min-height:92px; resize:vertical; }
.room-policy-form .room-check { display:flex; flex-direction:row; align-items:center; }
.room-policy-form .room-check input { width:auto; accent-color:var(--green); }
.room-policy-form output { color:var(--green); font-size:11px; }
.points-form { display:grid; gap:14px; }
.points-form label { color:var(--muted); font-size:11px; display:grid; gap:7px; }
.points-form input,.points-form select,.points-form textarea { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; }
.points-form textarea { min-height:92px; resize:vertical; }
.points-policy { margin:0; padding:10px; border:1px solid #56e3a133; border-radius:8px; color:var(--muted); font-size:10px; line-height:1.5; }
.points-form output { color:var(--green); font-size:11px; }
.points-history { margin-top:14px; }
.points-history ol { list-style:none; margin:14px 0 0; padding:0; }
.points-history li { display:grid; grid-template-columns:1fr auto; gap:4px 14px; padding:11px 0; border-top:1px solid var(--line); font-size:11px; }
.points-history li span { color:var(--green); font-weight:700; }
.points-history li small { grid-column:1/-1; color:var(--muted); }
.bankroll-shell { display:grid; gap:14px; margin-top:14px; }
.bankroll-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.bankroll-kpis .kpi strong { font-size:21px; }
.bankroll-ledger-panel { display:grid; gap:12px; }
.bankroll-ledger-panel td small { display:block; margin-top:3px; color:var(--muted); }
.bankroll-positive { color:var(--green); }
.bankroll-negative { color:var(--red); }
.bankroll-balanced { display:inline-flex; padding:4px 7px; border:1px solid #56e3a144; border-radius:999px; color:var(--green); background:#56e3a10c; font-size:8px; font-weight:800; letter-spacing:.06em; }
.bot-card .bot-bankroll { color:var(--green); font-weight:800; }
.bot-wallet-shell { display:grid; gap:14px; margin:14px 0 22px; }
.bot-wallet-kpis { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.bot-wallet-form { display:grid; gap:14px; }
.bot-wallet-fields { display:grid; grid-template-columns:2fr 1fr 1fr; gap:12px; }
.bot-wallet-form label { display:grid; gap:7px; color:var(--muted); font-size:11px; }
.bot-wallet-form input,.bot-wallet-form select,.bot-wallet-form textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.bot-wallet-form textarea { min-height:76px; resize:vertical; }
.bot-wallet-form output { color:var(--green); font-size:11px; }
.bot-wallet-ledger-panel { display:grid; gap:12px; }
.bot-wallet-ledger-filter { display:grid; gap:6px; min-width:230px; color:var(--muted); font-size:10px; }
.bot-wallet-ledger-filter select { width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.bot-wallet-ledger { min-width:980px; }
.bot-wallet-ledger td small { display:block; max-width:280px; margin-top:3px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bot-wallet-movement { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; padding:4px 8px; font-size:8px; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.bot-wallet-movement.funding { color:var(--green); border-color:#56e3a144; background:#56e3a10c; }
.bot-wallet-movement.recall { color:var(--amber); border-color:#f7bd6344; background:#f7bd630c; }
.bot-wallet-movement.game { color:#8eb7ff; border-color:#8eb7ff44; background:#8eb7ff0c; }
.bot-difficulty-guide { display:grid; grid-template-columns:minmax(280px,1.1fr) minmax(420px,1fr); gap:22px; align-items:center; margin-bottom:14px; }
.bot-difficulty-guide h2 { margin:3px 0 7px; }.bot-difficulty-guide p:not(.eyebrow) { margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.bot-difficulty-guide ol { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0; padding:0; list-style:none; }
.bot-difficulty-guide li { display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }.bot-difficulty-guide li strong { color:var(--green); }.bot-difficulty-guide li span { color:var(--muted); font-size:10px; }
.bot-wallet-allocation-fields { grid-template-columns:1.4fr 1fr 1fr; }
.bot-performance-shell { display:grid; gap:14px; margin:14px 0; }
.bot-performance-actions { display:flex; gap:8px; flex-wrap:wrap; }
.bot-performance-kpis { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.bot-performance-table { min-width:1040px; }.bot-performance-table td small { display:block; color:var(--muted); margin-top:3px; }
.bot-net-positive { color:var(--green); font-weight:800; }.bot-net-negative { color:var(--red); font-weight:800; }.bot-net-even { color:var(--muted); }
.bot-performance-detail summary { cursor:pointer; color:var(--green); }.bot-performance-detail dl { display:grid; gap:3px; margin:8px 0 0; }.bot-performance-detail dl div { display:flex; justify-content:space-between; gap:12px; color:var(--muted); }.bot-performance-detail dd { margin:0; color:var(--text); }
.tournament-admin-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.tournament-admin-layout { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(260px,.8fr); gap:14px; align-items:start; }
.tournament-create-form { display:grid; gap:14px; }
.tournament-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.tournament-create-form label { display:grid; gap:7px; color:var(--muted); font-size:10px; }
.tournament-create-form input,.tournament-create-form select,.tournament-create-form textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.tournament-create-form textarea { min-height:90px; resize:vertical; }
.tournament-create-form label small { color:var(--muted); font-size:9px; }
.tournament-create-form .check { display:flex; min-height:40px; align-items:center; gap:9px; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); }
.tournament-create-form .check input { width:auto; accent-color:var(--green); }
.tournament-structure-fields { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.tournament-create-form output { color:var(--green); font-size:11px; }
.tournament-guide { position:sticky; top:88px; }
.tournament-guide ol { display:grid; gap:12px; margin:16px 0 0; padding:0; list-style:none; counter-reset:tournament-flow; }
.tournament-guide li { display:grid; grid-template-columns:28px minmax(0,1fr); gap:2px 10px; counter-increment:tournament-flow; }
.tournament-guide li::before { grid-row:1/3; display:grid; width:26px; height:26px; place-items:center; border-radius:9px; background:var(--green-soft); color:var(--green); content:counter(tournament-flow); font-weight:800; }
.tournament-guide li strong { font-size:11px; }.tournament-guide li span { color:var(--muted); font-size:10px; line-height:1.45; }
.tournament-catalog { display:grid; gap:12px; margin-top:20px; }
.tournament-admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.tournament-admin-card { display:grid; gap:13px; }
.tournament-admin-card header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.tournament-admin-card header h3 { margin:3px 0 0; font-size:16px; }.tournament-admin-card header p { margin:0; }
.tournament-status { display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:5px 8px; color:var(--muted); font-size:8px; font-weight:850; letter-spacing:.05em; }
.tournament-status.registration,.tournament-status.running { color:var(--green); border-color:#56e3a155; background:#56e3a10c; }.tournament-status.scheduled { color:var(--amber); border-color:#f7bd6355; background:#f7bd630c; }
.tournament-admin-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }.tournament-admin-facts span { display:grid; gap:3px; padding:9px; border-radius:9px; background:var(--surface-2); }.tournament-admin-facts small { color:var(--muted); font-size:8px; text-transform:uppercase; }.tournament-admin-facts strong { font-size:11px; }
.tournament-level-preview { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:10px; }.tournament-level-preview strong { color:var(--text); }
.tournament-admin-actions { display:flex; flex-wrap:wrap; gap:7px; }.tournament-admin-actions button { flex:1 1 120px; }
.tournament-player-preview { color:var(--muted); font-size:9px; line-height:1.45; }
.network-kpis { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:14px; }
.network-report-panel { display:grid; gap:14px; margin-bottom:14px; }
.network-report-toolbar { display:flex; align-items:end; justify-content:space-between; gap:18px; }
.network-report-toolbar label { display:grid; min-width:min(380px,100%); gap:7px; color:var(--muted); font-size:10px; text-transform:uppercase; }
.network-report-toolbar select { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.network-report-toolbar p { max-width:680px; margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.network-report-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.network-report-kpis article { display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
.network-report-kpis span { color:var(--muted); font-size:9px; text-transform:uppercase; }
.network-report-kpis strong { color:var(--green); font-size:16px; }
.poker-report-toolbar { display:grid; grid-template-columns:repeat(2,minmax(130px,.65fr)) minmax(210px,1.2fr) auto minmax(190px,1fr) auto auto; gap:10px; align-items:end; padding:14px; border:1px solid var(--line); border-radius:11px; background:#0002; }
.poker-report-toolbar label { display:grid; gap:6px; color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.poker-report-toolbar input,.poker-report-toolbar select { min-width:0; width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.poker-report-toolbar .report-check { display:flex; flex-direction:row; align-items:center; align-self:center; white-space:nowrap; text-transform:none; font-size:11px; }
.poker-report-toolbar .report-check input { width:auto; accent-color:var(--green); }
.report-graph-button { padding:10px 15px; border:0; border-radius:8px; background:var(--amber); color:#261806; font-weight:800; }
.poker-report-wrap { max-height:620px; border:1px solid var(--line); border-radius:10px; }
.poker-report-table { min-width:1580px; font-variant-numeric:tabular-nums; }
.poker-report-table thead { position:sticky; top:0; z-index:4; background:#030706; }
.poker-report-table thead th { color:#fff; padding:13px 8px; font-size:9px; white-space:nowrap; }
.poker-report-table tbody tr:nth-child(even):not(.report-detail-row) { background:#ffffff03; }
.poker-report-table tbody tr:hover:not(.report-detail-row) { background:#56e3a10a; }
.poker-report-table td { white-space:nowrap; }
.poker-report-table td small { display:block; color:var(--muted); margin-top:3px; }
.poker-report-table tfoot { position:sticky; bottom:0; z-index:3; background:var(--surface-2); box-shadow:0 -8px 18px #0005; }
.poker-report-table tfoot td { border-top:2px solid var(--line); border-bottom:0; font-weight:700; }
.report-name { display:flex; align-items:center; gap:5px; padding-left:calc(var(--report-depth) * 15px); }
.report-name > span:last-child { display:block; min-width:110px; }
.report-tree-toggle { width:24px; height:24px; flex:0 0 24px; display:grid; place-items:center; border:0; border-radius:6px; color:var(--green); background:#56e3a112; font-weight:800; }
.report-tree-spacer { width:24px; flex:0 0 24px; }
.kind-bot_group { background:#f7bd6308!important; }
.kind-bot { background:#56e3a104; }
.report-detail-row td { padding:0 12px 14px 52px; background:#020807; }
.report-hand-details { padding:14px; border:1px solid #56e3a133; border-radius:9px; background:var(--surface); }
.report-hand-details > strong { color:var(--green); }
.report-hand-details .table-wrap { max-height:320px; }
.report-hand-details table { min-width:900px; }
.report-graph { display:grid; gap:9px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#0002; }
.report-graph[hidden] { display:none; }
.report-graph-row { display:grid; grid-template-columns:80px minmax(100px,1fr) 140px; gap:10px; align-items:center; font-size:11px; }
.report-graph-row > div { height:12px; border-radius:999px; background:var(--surface-2); overflow:hidden; }
.report-graph-row i { display:block; height:100%; border-radius:inherit; background:var(--green); }
.report-graph-row i.returned { background:#5ca9ff; }.report-graph-row i.negative { background:var(--red); }.report-graph-row i.rake { background:var(--amber); }
.report-graph-row strong { text-align:right; }
.network-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr); gap:14px; align-items:start; }
.hierarchy-panel { min-height:470px; }
.hierarchy-tree { margin-top:16px; overflow:auto; }
.hierarchy-tree ul { margin:0; padding:0; list-style:none; }
.hierarchy-tree ul ul { margin-left:22px; padding-left:17px; border-left:1px solid var(--line); }
.hierarchy-tree li { position:relative; }
.hierarchy-tree ul ul > li::before { position:absolute; top:25px; left:-17px; width:15px; border-top:1px solid var(--line); content:""; }
.hierarchy-node { position:relative; display:grid; width:100%; grid-template-columns:7px auto minmax(150px,1fr) auto; align-items:center; gap:10px; margin:5px 0; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface-2) 72%,transparent); color:var(--text); text-align:left; cursor:pointer; }
.hierarchy-node:hover,.hierarchy-node.selected { border-color:#56e3a166; background:#56e3a10b; }
.hierarchy-node.selected { box-shadow:inset 3px 0 var(--green); }
.network-branch-mark { width:7px; height:7px; border-radius:50%; background:var(--muted); box-shadow:0 0 10px transparent; }
.role-admin .network-branch-mark { background:var(--green); box-shadow:0 0 10px #56e3a166; }
.role-agent .network-branch-mark { background:#68a7ff; }.role-subagent .network-branch-mark { background:#9d8cff; }.role-room .network-branch-mark { background:var(--amber); }.role-player .network-branch-mark { background:#74d2c3; }
.network-role { display:inline-flex; justify-content:center; min-width:72px; padding:4px 7px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.network-node-copy { display:grid; gap:2px; min-width:0; }.network-node-copy strong { overflow:hidden; text-overflow:ellipsis; color:var(--text); font-size:11px; white-space:nowrap; }.network-node-copy small { overflow:hidden; text-overflow:ellipsis; color:var(--muted); font-size:9px; white-space:nowrap; }.hierarchy-node > b { color:var(--green); font-size:10px; white-space:nowrap; }
.hierarchy-detail { position:sticky; top:94px; display:grid; gap:13px; }.hierarchy-detail h2 { font-size:22px; }.hierarchy-detail code { width:max-content; max-width:100%; overflow:auto; padding:6px 8px; border:1px solid var(--line); border-radius:7px; color:var(--green); background:var(--surface-2); font-size:10px; }.network-detail-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }.network-detail-head .playable,.network-detail-head .locked { border-radius:999px; padding:5px 8px; font-size:8px; font-weight:800; letter-spacing:.07em; }.network-detail-head .playable { color:var(--green); border:1px solid #56e3a144; background:#56e3a10c; }.network-detail-head .locked { color:var(--amber); border:1px solid #f7bd6344; background:#f7bd630c; }.hierarchy-detail dl { margin:0; }.hierarchy-detail dl div { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--line); font-size:11px; }.hierarchy-detail dt { color:var(--muted); }.hierarchy-detail dd { margin:0; font-weight:700; text-align:right; }.network-muted { color:var(--muted); font-size:11px; line-height:1.55; }
.network-actions { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; align-items:start; }.network-form { display:grid; gap:14px; }.network-form label { display:grid; gap:7px; color:var(--muted); font-size:11px; }.network-form input,.network-form select,.network-form textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }.network-form textarea { min-height:84px; resize:vertical; }.network-form output { color:var(--green); font-size:11px; }
.network-permissions { display:grid; gap:10px; margin:0; padding:12px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface-2) 86%,transparent); }.network-permissions legend { padding:0 6px; color:var(--text); font-size:11px; font-weight:800; }.network-permissions .permission-check { display:flex; grid-template-columns:none; align-items:center; gap:9px; color:var(--text); }.network-permissions .permission-check input { width:17px; height:17px; flex:0 0 auto; padding:0; accent-color:var(--green); }.network-permissions .permission-check input:disabled + * { opacity:.5; }.network-permissions small { color:var(--muted); font-size:10px; line-height:1.5; }
.network-ledger { margin-top:14px; }.network-ledger .panel-head small { color:var(--muted); }.network-transfer-kind { display:inline-flex; border-radius:999px; padding:4px 7px; font-size:8px; font-weight:800; text-transform:uppercase; }.network-transfer-kind.distribute { color:var(--green); border:1px solid #56e3a144; background:#56e3a10c; }.network-transfer-kind.recall { color:var(--amber); border:1px solid #f7bd6344; background:#f7bd630c; }
.personal-table-shell { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); gap:14px; margin-bottom:14px; align-items:stretch; }
.personal-table-form { display:grid; gap:14px; }
.personal-table-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.personal-table-form label { display:grid; gap:7px; color:var(--muted); font-size:11px; }
.personal-table-form input,.personal-table-form select,.personal-table-form textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.personal-table-form textarea { min-height:78px; resize:vertical; }
.personal-table-submit { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.personal-table-submit output { color:var(--green); font-size:11px; }
.personal-table-preview { display:grid; align-content:start; gap:15px; overflow:hidden; }
.personal-felt { position:relative; display:grid; place-items:center; align-content:center; gap:5px; min-height:176px; padding:30px; overflow:hidden; border:9px solid #162a25; border-radius:50%; background:radial-gradient(circle at 50% 28%,#2c7c65,#15503f 48%,#0c342a); box-shadow:inset 0 0 0 2px #56e3a155,0 20px 40px #0005; text-align:center; }
.personal-felt::after { position:absolute; inset:12px; border:1px solid #ffffff18; border-radius:50%; content:""; }
.personal-felt span { z-index:1; color:#a8f3d1; font-size:9px; font-weight:800; letter-spacing:.15em; }.personal-felt strong { z-index:1; max-width:100%; overflow:hidden; text-overflow:ellipsis; font:600 18px "Space Grotesk"; white-space:nowrap; }.personal-felt small { z-index:1; color:#c7e6dc; font-size:10px; }
.personal-table-preview dl { margin:0; }.personal-table-preview dl div { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--line); font-size:11px; }.personal-table-preview dt { color:var(--muted); }.personal-table-preview dd { margin:0; font-weight:700; text-align:right; }
.personal-room-owner { color:var(--green)!important; font-weight:800; letter-spacing:.04em; }
.partner-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.partner-layout,.partner-detail-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.45fr); gap:14px; align-items:start; }
.partner-form,.credential-vault,.partner-detail,.partner-audit { display:grid; gap:14px; }
.partner-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.partner-form label,.partner-detail label { display:grid; gap:7px; color:var(--muted); font-size:10px; }
.partner-form input,.partner-form select,.partner-form textarea,.partner-detail input,.partner-detail textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); }
.partner-form textarea,.partner-detail textarea { min-height:76px; resize:vertical; font-family:inherit; }
.partner-form label small { color:var(--amber); line-height:1.45; }
.partner-scopes { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:0; padding:12px; border:1px solid var(--line); border-radius:10px; }
.partner-scopes legend { padding:0 6px; color:var(--text); font-size:11px; font-weight:800; }
.partner-scopes label { display:flex; align-items:center; gap:7px; padding:8px; border-radius:8px; background:var(--surface-2); color:var(--text); }
.partner-scopes input { width:auto; accent-color:var(--green); }
.partner-form output { color:var(--green); font-size:11px; }
.credential-vault { position:sticky; top:90px; border-color:#f7bd6344; }
.credential-vault > p { margin:0; color:var(--muted); font-size:10px; line-height:1.55; }
.credential-vault pre { min-height:230px; max-height:430px; margin:0; padding:13px; overflow:auto; border:1px solid var(--line); border-radius:9px; background:#010504; color:#bcebd5; white-space:pre-wrap; word-break:break-all; font:10px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; }
.partner-once { padding:5px 8px; border:1px solid #f7bd6355; border-radius:999px; color:var(--amber); font-size:8px; font-weight:850; }
.partner-actions { display:flex; gap:8px; }.partner-actions button { flex:1; }.partner-actions a { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.partner-catalog { margin:14px 0; }.partner-catalog table { min-width:930px; }
.partner-status { display:inline-flex; padding:5px 8px; border:1px solid var(--line); border-radius:999px; font-size:8px; font-weight:850; }
.partner-status.active { color:var(--green); border-color:#56e3a144; }.partner-status.suspended { color:var(--amber); border-color:#f7bd6344; }.partner-status.revoked { color:var(--red); border-color:#ff6f6f44; }
.partner-scope-list { display:flex; max-width:280px; flex-wrap:wrap; gap:4px; }.partner-scope-list span { padding:3px 5px; border-radius:5px; background:var(--surface-2); color:var(--muted); font-size:8px; }
.partner-detail dl { margin:0; }.partner-detail dl div { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid var(--line); font-size:10px; }.partner-detail dt { color:var(--muted); }.partner-detail dd { margin:0; text-align:right; }
.partner-control-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.partner-control-grid form { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#0002; }.partner-control-grid h3 { margin:0; font-size:12px; }.partner-state-actions { display:flex; flex-wrap:wrap; gap:7px; }.partner-state-actions button { flex:1 1 100px; }
.partner-audit ol { display:grid; max-height:530px; gap:8px; margin:0; padding:0; overflow:auto; list-style:none; }.partner-audit li { padding:9px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); font-size:10px; }.partner-audit li span { display:flex; justify-content:space-between; gap:8px; color:var(--muted); }.partner-audit li strong { display:block; margin-top:4px; color:var(--green); }
dialog { border:1px solid var(--line); background:var(--surface); color:var(--text); border-radius:16px; box-shadow:0 30px 100px #000b; width:min(460px,calc(100% - 32px)); }dialog::backdrop { background:#000a; backdrop-filter:blur(4px); }dialog form { display:grid; gap:14px; }.dialog-close { position:absolute; right:12px; top:10px; border:0; background:transparent; color:var(--muted); font-size:24px; }dialog menu { display:flex; justify-content:flex-end; gap:8px; margin:4px 0 0; padding:0; }
#toast { position:fixed; right:22px; bottom:22px; background:var(--green); color:#032218; padding:12px 16px; border-radius:10px; font-weight:700; transform:translateY(80px); opacity:0; transition:.2s; z-index:100; }#toast.show { transform:none; opacity:1; }
@media (max-width:1100px) { .bot-difficulty-guide { grid-template-columns:1fr; } }
@media (max-width:760px) { .bot-difficulty-guide ol { grid-template-columns:1fr 1fr; } }
@media (max-width:1100px) { .bot-performance-kpis { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) { .bot-performance-kpis { grid-template-columns:1fr 1fr; }.bot-performance-actions { width:100%; }.bot-performance-actions button { flex:1 1 180px; } }
@media (max-width:1100px) { .kpi-grid,.network-kpis { grid-template-columns:repeat(3,1fr); }.dashboard-grid { grid-template-columns:1fr 1fr; }.ledger-card { grid-column:span 2; }.bot-grid { grid-template-columns:1fr 1fr; }.integrity-grid { grid-template-columns:1fr; }.points-layout,.room-ops-layout,.bot-risk-layout,.network-layout,.personal-table-shell,.tournament-admin-layout { grid-template-columns:1fr; }.tournament-guide { position:static; }.tournament-admin-kpis { grid-template-columns:repeat(3,1fr); }.hierarchy-detail { position:static; }.hand-audit-kpis { grid-template-columns:1fr 1fr; }.bot-risk-kpis { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) { .topbar { padding:0 14px; }.environment,.operator span { display:none; }.sidebar { z-index:30; left:0; right:0; top:auto; bottom:0; width:auto; height:62px; padding:6px; flex-direction:row; justify-content:space-around; overflow-x:auto; border-right:0; border-top:1px solid var(--line); backdrop-filter:blur(18px); }.nav { position:relative; min-width:48px; flex:1 0 48px; justify-content:center; padding:10px 6px; }.nav:not(.active) { color:var(--muted); }.nav { font-size:0; }.nav span { font-size:18px; width:auto; }.nav b { position:absolute; top:2px; right:14%; margin:0; font-size:9px; }.sidebar-foot { display:none; }main { margin-left:0; width:100%; min-width:0; padding:96px 14px 88px; overflow:hidden; }.kpi-grid,.hand-audit-kpis,.bot-risk-kpis,.network-kpis,.bot-wallet-kpis,.network-report-kpis,.tournament-admin-kpis { grid-template-columns:1fr 1fr; }.dashboard-grid,.replayer-layout,.hand-analysis-grid,.network-actions,.tournament-admin-grid { grid-template-columns:minmax(0,1fr); }.dashboard-grid > * { min-width:0; }.span-two,.ledger-card { grid-column:auto; }.table-wrap { width:100%; overflow-x:auto; }.table-wrap table { min-width:520px; }.case-board,.bot-grid,.risk-fields,.personal-table-fields,.bot-wallet-fields,.tournament-fields,.tournament-structure-fields { grid-template-columns:1fr; }.page-heading,.bot-risk-heading,.network-report-toolbar { align-items:flex-start; flex-direction:column; }.poker-report-toolbar { grid-template-columns:1fr 1fr; }.poker-report-toolbar label:nth-of-type(3),.poker-report-toolbar label:nth-of-type(5) { grid-column:1/-1; }.hand-stage { min-height:430px; }.felt { height:300px; }.replay-seat { min-width:82px; padding:6px; font-size:9px; }.config-form { grid-template-columns:1fr; }.config-form output { grid-column:auto; }.hierarchy-tree ul ul { margin-left:10px; padding-left:10px; }.hierarchy-node { grid-template-columns:7px minmax(0,1fr) auto; }.hierarchy-node .network-role { display:none; }.hierarchy-node > b { font-size:9px; } }
@media (max-width:1100px) { .bankroll-kpis { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px) { .bankroll-kpis { grid-template-columns:1fr; } }
@media (max-width:760px) { .hand-analysis-heading { align-items:flex-start; flex-direction:column; }.hand-analysis-actions { width:100%; justify-content:space-between; } }
@media (max-width:1100px) { .partner-layout,.partner-detail-layout { grid-template-columns:1fr; }.credential-vault { position:static; }.partner-fields { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .partner-kpis,.partner-fields,.partner-control-grid { grid-template-columns:1fr; }.partner-scopes { grid-template-columns:1fr 1fr; } }
/* PostgreSQL-backed password + TOTP gate. It is mounted before any privileged
   API request is issued and remains above the complete command centre. */
.admin-auth-gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,rgba(42,115,91,.28),transparent 38%),rgba(4,8,10,.96);backdrop-filter:blur(16px)}
.admin-auth-card{width:min(460px,100%);padding:34px;border:1px solid rgba(86,227,161,.35);border-radius:22px;background:#101719;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.admin-auth-card h1{margin:.25rem 0 .65rem;font-size:clamp(1.7rem,5vw,2.4rem)}
.admin-auth-card>p{color:#9eb2ad;line-height:1.55}
.admin-auth-card form{display:grid;gap:16px;margin-top:24px}
.admin-auth-card [hidden],.admin-auth-card form[hidden]{display:none!important}
.admin-auth-card label{display:grid;gap:7px;color:#c8d7d3;font-weight:650}
.admin-auth-card input{min-height:48px;padding:0 14px;border:1px solid #31433f;border-radius:10px;background:#0a0f10;color:#fff;font:inherit}
.admin-auth-card input:focus{outline:2px solid #56e3a1;outline-offset:2px}
.admin-auth-card output{display:block;min-height:1.4em;margin-top:18px;color:#f3cb68}

.operations-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.operations-block{display:grid;gap:14px;margin-bottom:14px}
.operations-split{display:grid;grid-template-columns:minmax(340px,.75fr) minmax(0,1.25fr);gap:14px;margin-bottom:14px;align-items:start}
.operations-form{display:grid;gap:13px}
.operations-fields{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}
.operations-form label,.operations-inline-form label,.operations-toolbar label{display:grid;gap:6px;color:var(--muted);font-size:10px}
.operations-form input,.operations-form select,.operations-form textarea,.operations-inline-form input,.operations-inline-form select,.operations-toolbar input,.operations-toolbar select{width:100%;min-width:0;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text)}
.operations-form textarea{min-height:70px;resize:vertical}
.operations-checks{display:flex;gap:9px;flex-wrap:wrap}
.operations-checks label{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text)}
.operations-checks input{width:auto;accent-color:var(--green)}
.operations-actions{display:flex;align-items:center;gap:10px}.operations-form output{color:var(--green);font-size:10px}
.operations-feed{display:grid;max-height:260px;gap:7px;margin:0;padding:0;overflow:auto;list-style:none}
.operations-feed li{display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:10px}.operations-feed small{color:var(--muted)}
.operations-monitor{display:grid;gap:12px}.operations-toolbar{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.operations-toolbar label{min-width:140px;flex:1}.operations-toolbar .permission-check{display:flex;min-width:auto;flex:0 0 auto;align-items:center;gap:7px;padding-bottom:10px;color:var(--text)}.operations-toolbar .permission-check input{width:auto;accent-color:var(--green)}
.operations-log{max-height:360px}.operations-log table{min-width:660px}.operations-log td:last-child{white-space:normal;min-width:240px}
.operations-inline-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(220px,1.4fr) auto;gap:9px;align-items:end}
.operations-inline-form button{white-space:nowrap}
.operations-role-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:7px}.operations-role-grid label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text)}.operations-role-grid input{width:auto;accent-color:var(--green)}
.operations-jurisdiction-list{display:flex;gap:7px;flex-wrap:wrap}.operations-jurisdiction-list span{display:inline-flex;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:9px}.operations-jurisdiction-list b{color:var(--green)}
.operations-block table small{display:block;margin-top:3px;color:var(--muted)}
@media (max-width:1250px){.operations-fields{grid-template-columns:repeat(3,minmax(130px,1fr))}.operations-inline-form{grid-template-columns:repeat(3,minmax(120px,1fr))}.operations-inline-form button{align-self:end}.operations-role-grid{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.operations-split{grid-template-columns:1fr}.operations-kpis{grid-template-columns:1fr 1fr}.operations-fields,.operations-inline-form{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.operations-kpis,.operations-fields,.operations-inline-form,.operations-role-grid{grid-template-columns:1fr}.operations-toolbar{display:grid;grid-template-columns:1fr;width:100%}.operations-toolbar label{min-width:0}}

.bot-example-sessions { margin-bottom:14px; display:grid; gap:14px; }
.bot-example-sessions .panel-head p:not(.eyebrow) { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:1.5; max-width:72ch; }
.bot-example-session-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.bot-example-session-card { display:grid; gap:8px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); text-align:left; cursor:pointer; color:inherit; }
.bot-example-session-card[aria-pressed="true"] { border-color:var(--green); box-shadow:0 0 0 1px #56e3a155 inset; }
.bot-example-session-card strong { color:var(--green); font-size:14px; }
.bot-example-session-card small { color:var(--muted); font-size:10px; line-height:1.45; }
.bot-example-session-card dl { display:grid; gap:4px; margin:0; }
.bot-example-session-card dl div { display:flex; justify-content:space-between; gap:8px; font-size:10px; }
.bot-example-session-card dt { color:var(--muted); }
.bot-example-session-card dd { margin:0; font-weight:700; }
.bot-example-session-apply { display:grid; grid-template-columns:minmax(140px,180px) minmax(0,1fr) auto; gap:12px; align-items:end; }
.bot-example-session-apply label { display:grid; gap:6px; color:var(--muted); font-size:10px; text-transform:uppercase; }
.bot-example-session-apply input,.bot-example-session-apply textarea { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:9px; }
.bot-example-session-actions { display:grid; gap:8px; }
.bot-example-session-actions output { color:var(--muted); font-size:11px; }
.bot-card .bot-style-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.bot-card .bot-style-grid label { font-size:9px; }
@media (max-width:1100px) { .bot-example-session-grid { grid-template-columns:1fr 1fr; } .bot-example-session-apply { grid-template-columns:1fr; } }
@media (max-width:760px) { .bot-example-session-grid { grid-template-columns:1fr; } .bot-card .bot-style-grid { grid-template-columns:1fr; } }

.bot-situation-shell { display:grid; gap:14px; margin:18px 0 22px; }
.bot-situation-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.bot-situation-heading p:not(.eyebrow) { color:var(--muted); font-size:11px; margin:6px 0 0; max-width:62ch; }
.bot-situation-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.bot-situation-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.bot-situation-kpis .kpi strong { font-size:18px; }
.bot-situation-progress { display:grid; gap:12px; }
.bot-cap-meter { height:12px; border-radius:999px; background:var(--surface-2); border:1px solid var(--line); overflow:hidden; }
.bot-cap-meter > span { display:block; height:100%; width:0%; background:linear-gradient(90deg,#3d9a6a,#d4a017,#d64545); transition:width .25s ease; }
.field-hint { display:block; color:var(--muted); font-size:10px; margin-top:4px; }
@media (max-width:1100px) { .bot-situation-kpis { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) {
  .bot-situation-heading { flex-direction:column; }
  .bot-situation-kpis { grid-template-columns:1fr 1fr; }
}
/* Admin credit delegation toggle (Rete → dettaglio nodo) */
.network-delegation { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface-2) 86%,transparent); }
.network-delegation-head { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; }
.delegation-pill { border-radius:999px; padding:5px 8px; font-size:8px; font-weight:800; letter-spacing:.07em; }
.delegation-pill.on { color:var(--green); border:1px solid #56e3a144; background:#56e3a10c; }
.delegation-pill.off { color:var(--amber); border:1px solid #f7bd6344; background:#f7bd630c; }
.delegation-switch { display:flex !important; align-items:center; gap:10px; cursor:pointer; color:var(--text); font-weight:700; font-size:12px; position:relative; }
.delegation-switch input { position:absolute; opacity:0; width:1px; height:1px; }
.delegation-slider { position:relative; width:38px; height:21px; flex:0 0 auto; border-radius:999px; background:var(--surface-2); border:1px solid var(--line); transition:background .15s ease; }
.delegation-slider::after { content:""; position:absolute; top:2px; left:2px; width:15px; height:15px; border-radius:50%; background:var(--muted); transition:transform .15s ease, background .15s ease; }
.delegation-switch input:checked + .delegation-slider { background:#56e3a133; border-color:#56e3a188; }
.delegation-switch input:checked + .delegation-slider::after { transform:translateX(17px); background:var(--green); }
.delegation-switch input:focus-visible + .delegation-slider { outline:2px solid var(--green); outline-offset:2px; }
.network-delegation small { color:var(--muted); font-size:10px; line-height:1.5; }
.network-live-players { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.network-live-players li { display:flex; justify-content:space-between; gap:10px; padding:6px 8px; border:1px solid var(--line); border-radius:7px; font-size:11px; }
.live-player-leaf { cursor:default; opacity:.92; border-style:dashed; }
.network-delegation label:not(.delegation-switch) { display:grid; gap:7px; color:var(--muted); font-size:11px; }
.network-delegation select,.network-delegation textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); font:inherit; font-size:12px; }
.network-delegation textarea { min-height:64px; resize:vertical; }
/* Rake settlement (Contabilità rake) */
.settlement-toolbar { margin-bottom:14px; }
.settlement-kpis { grid-template-columns:repeat(6,minmax(0,1fr)); margin-bottom:14px; }
.settlement-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:14px; margin-top:14px; align-items:start; }
.settlement-table td small { display:block; color:var(--muted); font-size:10px; }
.settlement-table .settlement-node td { border-top:1px solid var(--line); }
.settlement-table .settlement-node.depth-0 { background:rgba(255,255,255,.03); }
.settlement-table .settlement-player td { color:var(--muted); font-size:11px; }
.settlement-table .negative { color:#f0a36b; }
.settlement-table .positive { color:var(--green); }
#network-rake-share-field small { color:var(--muted); font-size:10px; line-height:1.4; }
@media (max-width:1100px) { .settlement-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } .settlement-grid { grid-template-columns:minmax(0,1fr); } }

/* Giocatori directory */
.players-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.players-toolbar label { color:var(--muted); font-size:11px; display:grid; gap:7px; }
.players-search { flex:1 1 280px; }
.players-search input { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; }
.players-toolbar .players-online-toggle { display:flex; align-items:center; gap:8px; padding-bottom:10px; }
.players-table-wrap { max-height:min(62vh,720px); }
.players-table-wrap td small { display:block; color:var(--muted); font-size:10px; margin-top:3px; }
.player-state { font-weight:700; }
.player-state.at-table { color:var(--green); }
.player-state.online { color:var(--amber); }
.player-state.offline { color:var(--muted); }
.player-topup { padding:6px 12px; font-size:11px; }
.player-actions { white-space:nowrap; }
.player-actions button + button { margin-left:6px; }
.player-password { padding:6px 10px; font-size:11px; }
.player-password-form { display:grid; gap:10px; min-width:min(420px,86vw); }
.player-password-form label { display:grid; gap:6px; color:var(--muted); font-size:11px; }
.player-password-form input { background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; font-family:ui-monospace,monospace; }
.player-password-note { color:var(--muted); font-size:12px; line-height:1.45; margin:0; }
.player-password-form output { min-height:1.2em; font-size:12px; color:var(--amber); }
.player-password-form menu { display:flex; gap:10px; justify-content:flex-end; padding:0; margin:4px 0 0; }
.players-pager { display:flex; gap:14px; align-items:center; justify-content:flex-end; margin-top:10px; color:var(--muted); font-size:11px; }
.players-pager button:disabled { opacity:.35; cursor:default; }
.points-player-search { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:10px; }

/* ===== Tema Chiaro (default) / Scuro — 2026-09-30 =====
   theme-init.js sets <html data-theme> from localStorage "opera-admin-theme" (default light).
   Same accent hues as the dark theme, darkened only where they are used as text on white (contrast >= 4.5:1). */
.theme-switch { display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:2px; background:var(--surface-2); gap:2px; }
.theme-switch button { border:0; background:transparent; color:var(--muted); font-size:11px; font-weight:700; padding:6px 11px; border-radius:999px; letter-spacing:.02em; }
.theme-switch button[aria-pressed="true"] { background:var(--green); color:#052319; }
.network-delegation input[type="search"] { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--text); font:inherit; font-size:12px; }
.ops-live-player td:first-child strong { color:var(--green); }
[data-theme="light"] { --bg:#f3f6f5; --surface:#ffffff; --surface-2:#eef3f1; --line:#d3dfda; --text:#14241e; --muted:#566a63; --green:#0c8656; --green-2:#0a6b45; --red:#c42f3a; --amber:#9a6208; --shadow:0 8px 26px #1830261a; color-scheme:light; }
[data-theme="light"] body { background:radial-gradient(circle at 78% -10%,#dcefe6 0,transparent 31%),var(--bg); }
[data-theme="light"] .theme-switch button[aria-pressed="true"],
[data-theme="light"] .primary,
[data-theme="light"] .skip-link,
[data-theme="light"] #toast,
[data-theme="light"] .report-graph-button { color:#fff; }
[data-theme="light"] .primary { box-shadow:0 6px 18px #0c865629; }
[data-theme="light"] .nav span { color:#587269; }
[data-theme="light"] .kpi::after { background:#0c86560d; }
[data-theme="light"] .case-column,
[data-theme="light"] .poker-report-toolbar,
[data-theme="light"] .report-graph,
[data-theme="light"] .partner-control-grid form { background:var(--surface-2); }
[data-theme="light"] .seat { background:#ffffff; border-color:#b9cbc4; color:var(--text); box-shadow:0 4px 12px #0000001a; }
[data-theme="light"] .poker-report-table thead { background:#e3ebe7; }
[data-theme="light"] .poker-report-table thead th { color:var(--text); }
[data-theme="light"] .poker-report-table tfoot { box-shadow:0 -6px 14px #0000000f; }
[data-theme="light"] .report-detail-row td { background:#f6f9f8; }
[data-theme="light"] .credential-vault pre { background:#f1f6f4; color:#0e3b29; border-color:var(--line); }
[data-theme="light"] dialog { background:var(--surface); color:var(--text); box-shadow:0 30px 80px #0f1f1a33; }
[data-theme="light"] dialog::backdrop { background:#1b2b2566; }
[data-theme="light"] .audit-badge.warning { color:#7a4d00; }
[data-theme="light"] .bot-wallet-movement.game { color:#2a5fc4; }
[data-theme="light"] .settlement-table .negative { color:#b04a14; }
[data-theme="light"] .settlement-table .settlement-node.depth-0 { background:#0000000a; }
[data-theme="light"] #hands.analysis-mode > .hand-analysis-heading { box-shadow:0 0 0 1px #0c865644,0 10px 26px #0000001a; }
[data-theme="light"] .network-admin-only-note { background:#fff4e8!important; border-color:#e2b48d!important; color:#6b3a14!important; }
[data-theme="light"] .admin-auth-gate { background:radial-gradient(circle at 50% 20%,rgba(12,134,86,.14),transparent 38%),rgba(243,246,245,.97); }
[data-theme="light"] .admin-auth-card { background:#fff; border-color:#0c865655; box-shadow:0 26px 70px rgba(20,36,30,.16); color:var(--text); }
[data-theme="light"] .admin-auth-card>p { color:var(--muted); }
[data-theme="light"] .admin-auth-card label { color:#2c3f38; }
[data-theme="light"] .admin-auth-card input { background:#f7faf9; border-color:#c3d3cc; color:var(--text); }
[data-theme="light"] .admin-auth-card input:focus { outline-color:var(--green); }
[data-theme="light"] .admin-auth-card output { color:#8a5a00; }
[data-theme="light"] input,[data-theme="light"] select,[data-theme="light"] textarea { color-scheme:light; }
[data-theme="light"] ::placeholder { color:#7c8f88; }

/* FIVE PK brand (2026-10-01): logo mark in the topbar and on the login card. */
.brand-mark.brand-logo-mark { display:block; padding:0; overflow:hidden; border-color:rgba(212,166,74,.6); background:#000; object-fit:cover; box-shadow:0 2px 10px rgba(0,0,0,.18); }
.brand .brand-name { margin-right:.3em; letter-spacing:.04em; }
.brand .brand-name b, .admin-auth-brand b { color:#d7191f; font-weight:inherit; }
.admin-auth-brand { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.admin-auth-brand img { width:72px; height:72px; border-radius:16px; background:#000; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.admin-auth-brand strong { display:block; font-size:1.35rem; letter-spacing:.06em; }
.admin-auth-brand small { display:block; margin-top:3px; color:#b8892f; font-size:.68rem; font-weight:700; letter-spacing:.22em; }
