/* Central bank dashboard (/admin/central-bank/, admin/economy/central-bank.js). Full width: a hero with headline
   numbers, a sticky section bar, then panels on a 12-column grid (wide screens two panels per row, phones one).
   Money numbers never wrap (their size follows the card width), tables scroll inside their own box, the page never
   scrolls sideways. The admin's global styles make inputs/selects/buttons 100 % wide: inside the bank they size to content. */
.bank-admin{min-width:0;--bank-line:#e4d6b8;--bank-paper:#fffdf8;--bank-ink:#3b2f1c;--bank-soft:#7a6a4d;--bank-gold:#c8a767;--bank-green:#2f7a3a;--bank-red:#a8402f}
.bank-admin [hidden]{display:none!important}
.bank-hero,.bank-panel{background:var(--bank-paper);border:1px solid var(--bank-line);border-radius:16px;box-shadow:0 1px 2px #6b4f2010,0 6px 18px #6b4f200d;min-width:0}
.bank-hero{padding:18px 22px 14px}
.bank-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:0}
.bank-head>div:first-child{flex:1 1 420px;min-width:0}
.bank-head h2{display:flex;align-items:center;gap:8px;margin:2px 0 4px}
.bank-head p{margin:0;color:var(--bank-soft)}
.bank-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.bank-updated{font-size:13px;color:var(--bank-soft);white-space:nowrap}
.bank-admin .bank-tools select,.bank-admin .bank-tools button,.bank-admin .bank-form select,.bank-admin .bank-form button,.bank-admin .bank-buttons button{width:auto;flex:0 0 auto;margin:0;min-height:40px}
.bank-admin .bank-tools button,.bank-admin .bank-form button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.bank-check{margin:12px 0 0;padding:10px 14px;border-radius:12px;border:1px solid;display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}
.bank-check.is-ok{background:#eef8ef;border-color:#7fb98a;color:#1f5a2a}
.bank-check.is-bad{background:#fff0ee;border-color:#d9776a;color:#7a1f14}
.bank-low{color:var(--bank-red);font-weight:700}
/* headline strip */
.bank-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:12px}
.bank-kpis .bank-card{padding:14px 16px}
.bank-kpis .bank-card-value{font-size:clamp(16px,12.5cqi,30px)}
.bank-card.is-out{border-left:4px solid var(--bank-green)}
.bank-card.is-in{border-left:4px solid #c08a2c}
.bank-card.is-up .bank-card-value{color:var(--bank-green)}
.bank-card.is-down .bank-card-value{color:#9a6a12}
/* section bar */
.bank-nav{position:sticky;top:0;z-index:20;display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;margin:14px 0;padding:8px;border:1px solid var(--bank-line);border-radius:14px;background:#fffaf0ee;backdrop-filter:blur(6px);box-shadow:0 4px 14px #6b4f2012}
.bank-admin .bank-nav-link{flex:0 0 auto;width:auto;margin:0;min-height:34px;padding:4px 14px;border:1px solid #c8a76788;border-radius:999px;background:#fffdf7;color:#4a3b25;font-weight:600;box-shadow:none;white-space:nowrap}
.bank-admin .bank-nav-link:hover{background:#f6ecd6}
/* panels */
.bank-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}
.bank-panel{grid-column:span 12;padding:16px 18px;container-type:inline-size;scroll-margin-top:72px}
.bank-admin .bank-panel-head{display:block;margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid #efe4cc}
.bank-panel-head h3{margin:0;font-size:18px;color:var(--bank-ink)}
.bank-panel-head p{margin:3px 0 0;font-size:13px}
@media (min-width:1400px){
 #bank-sec-players{grid-column:span 7}#bank-sec-trade{grid-column:span 5}
 #bank-sec-history{grid-column:span 8}#bank-sec-spread{grid-column:span 4}
 #bank-sec-promises,#bank-sec-owner,#bank-sec-actions{grid-column:span 4}
}
@media (min-width:1000px) and (max-width:1399px){
 #bank-sec-spread,#bank-sec-promises,#bank-sec-owner,#bank-sec-actions{grid-column:span 6}
}
@media (max-width:1100px){.bank-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* data checks */
.bank-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:8px}
.bank-check-row{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;border:1px solid var(--bank-line);background:#fff}
.bank-check-row div{display:flex;flex-direction:column;min-width:0}
.bank-check-row strong{font-size:14px;color:var(--bank-ink)}
.bank-check-row small{font-size:12.5px;color:var(--bank-soft);overflow-wrap:anywhere}
.bank-check-icon{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;background:#8a7a5c}
.bank-check-row.is-ok .bank-check-icon{background:#3f8a4a}
.bank-check-row.is-warn{background:#fff8e6;border-color:#e4c37a}.bank-check-row.is-warn .bank-check-icon{background:#c8901e}
.bank-check-row.is-bad{background:#fff0ee;border-color:#d9776a}.bank-check-row.is-bad .bank-check-icon{background:#b23c2c}
.bank-check-row.is-info .bank-check-icon{background:#4a6a9a}
/* cards */
.bank-cards,.bank-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0}
#bank-trade-cards,.bank-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@container (min-width:1000px){#bank-cards{grid-template-columns:repeat(6,minmax(0,1fr))}}
@container (max-width:640px){#bank-trade-cards,.bank-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:520px){
 #bank-cards,#bank-players-sum{grid-template-columns:repeat(2,minmax(0,1fr))}
 #bank-cards>.bank-card.is-main,#bank-cards>.bank-card:last-child,#bank-players-sum>.bank-card.is-main{grid-column:1/-1}
 #bank-players-sum>.bank-card.is-name{grid-column:1/-1}
}
.bank-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;background:#fffaf0;border:1px solid var(--bank-line);min-width:0;container-type:inline-size}
.bank-card-label{color:var(--bank-soft);font-size:13px}
.bank-card-value{font-size:22px;font-size:clamp(14px,13cqi,24px);line-height:1.25;color:var(--bank-ink);white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.bank-card.is-name .bank-card-value{white-space:normal;overflow-wrap:anywhere;font-size:19px}
.bank-card small{color:#8a7a5c;font-size:12px;overflow-wrap:anywhere}
.bank-card.is-main{background:linear-gradient(135deg,#fff3d6,#ffe9b8);border-color:var(--bank-gold)}
.bank-card.is-bad strong{color:var(--bank-red)}
.bank-admin .bank-card-button{display:flex;flex-direction:column;align-items:stretch;width:auto;height:auto;margin:0;padding:12px 14px;text-align:left;font:inherit;font-weight:400;color:inherit;background:#fffaf0;border:1px solid var(--bank-line);border-radius:14px;cursor:pointer;box-shadow:none;min-height:0;text-shadow:none}
.bank-admin .bank-card-button:hover{border-color:var(--bank-gold);background:#fff6e2}
.bank-admin .bank-card-button:focus-visible{outline:3px solid var(--bank-gold);outline-offset:2px}
.bank-admin .bank-card-button.is-active{border-color:#a8843e;background:#fff0cc;box-shadow:inset 0 0 0 1px #a8843e}
.bank-equation{margin:6px 0 0;padding:8px 12px;border-radius:10px;background:#fffaf0;border:1px dashed #c8a76799;color:#4a3b25;overflow-wrap:anywhere}
/* tables */
.bank-table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--bank-line);border-radius:12px;background:#fff}
.bank-tall{max-height:560px;overflow-y:auto}
.bank-table{width:100%;border-collapse:collapse;font-size:14px}
.bank-table th,.bank-table td{padding:7px 10px;border-bottom:1px solid #efe4cc;text-align:right;white-space:nowrap;vertical-align:middle;font-variant-numeric:tabular-nums}
.bank-table .is-text{text-align:left}
.bank-table thead th{background:#f6ecd6;color:#4a3b25;position:sticky;top:0;z-index:1}
.bank-table tbody tr:hover>*{background:#fffaf0}
.bank-table tbody tr:last-child>*{border-bottom:0}
.bank-table tr.is-top>*{background:#fff6dc;font-weight:700}
.bank-admin .bank-mini{width:auto;margin:0;min-height:30px;padding:3px 12px;font-size:13px}
.bank-online{margin-left:6px;padding:1px 8px;border-radius:999px;background:#e3f3e5;color:#2f6b39;font-size:11px;font-weight:600}
.bank-share{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end;min-width:150px}
.bank-share i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,#d9b56a,#a8843e);max-width:90px;flex:0 0 auto}
.bank-share b{font-weight:600;min-width:58px;text-align:right}
/* chart */
.bank-spread{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.bank-chart{border:1px solid var(--bank-line);border-radius:14px;background:#fff;padding:8px 8px 4px;margin-bottom:10px}
.bank-svg{display:block;width:100%;height:auto}
.bank-grid-line{stroke:#efe4cc;stroke-width:1}
.bank-base-line{stroke:#c8b48a;stroke-width:1.5}
.bank-axis{font-size:12px;fill:#8a7a5c}
.bank-bar-paid{fill:#4f9a5a}
.bank-bar-received{fill:#d29b3c}
.bank-legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:#6b5b3d;margin:4px 8px}
.bank-legend span::before{content:'';display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.bank-legend .is-paid::before{background:#4f9a5a}
.bank-legend .is-received::before{background:#d29b3c}
/* forms */
.bank-owner{display:grid;gap:10px}
.bank-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:6px 0 10px}
.bank-form label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:#6b5b3d;min-width:0;margin:0}
.bank-admin .bank-form input{width:100%;min-width:0;max-width:100%;margin:0}
.bank-reason{flex:1 1 240px;max-width:520px}
.bank-buttons{display:flex;gap:8px;flex-wrap:wrap}
.bank-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 4px}
.bank-admin .bank-tab{width:auto;margin:0;padding:6px 16px;border:1px solid #c8a76799;border-radius:999px;background:#fffaf0;color:#4a3b25;font-weight:700;box-shadow:none}
.bank-admin .bank-tab.active{background:var(--bank-gold);color:#1f2a1f}
.bank-since{margin:6px 10px}
.bank-pad{margin:10px}
.bank-who{margin:4px 0 12px;padding:10px;border:1px solid var(--bank-gold);border-radius:14px;background:#fffaf0;display:grid;gap:8px;min-width:0}
.bank-who-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.bank-trail{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin-top:8px}
.bank-in{color:var(--bank-green);font-weight:700}
.bank-out{color:var(--bank-red);font-weight:700}
.bank-note{margin:14px 4px 0}
#bank-players-more{margin-top:8px}
@media (max-width:700px){
 .bank-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .bank-kpis>.bank-card.is-main,.bank-kpis>.bank-card:last-child{grid-column:1/-1}
 .bank-hero{padding:14px 12px}
 .bank-panel{padding:12px 10px}
 .bank-grid{gap:12px}
 .bank-form{align-items:stretch}
 .bank-form label{flex:1 1 100%;max-width:none}
}
.bank-row-actions{display:inline-flex;gap:6px;align-items:center}
.bank-admin a.bank-mini{display:inline-flex;align-items:center;text-decoration:none}
