/* Control dimensions and alignment, shared by public and operational pages. */
:root {
  --ns-control-height:44px;
  --ns-control-radius:2px;
  --ns-control-gap:8px;
  --ns-control-label-size:12px;
  --ns-control-mobile-select-size:14px;
  --ns-accent-bg:#f2bc45;
  --ns-accent-ink:#171208;
  --ns-success-bg:var(--ns-mint);
  --ns-success-ink:#171208;
  --ns-danger-ink:#e27572;
  --ns-menu-bg:var(--ns-surface-raised);
}
html[data-theme="light"] {
  --ns-accent-bg:#d9aa3e;
  --ns-success-ink:#f9fff8;
  --ns-danger-ink:#a62e2e;
}
/* Gold marks selection and primary actions; green confirms, red marks destructive actions. */
html[data-theme] .ns-btn-primary,html[data-theme] .ns-btn-sm.ns-btn-primary,
html[data-theme] .auth-submit,html[data-theme] .auth-tab.active,
html[data-theme] .role-toggle-btn.selected,html[data-theme] .platform-tag.selected {
  color:var(--ns-accent-ink) !important;
  background:var(--ns-accent-bg) !important;
  border-color:var(--ns-accent-bg) !important;
}
html[data-theme] .ns-btn-success,html[data-theme] .ns-btn-sm.ns-btn-success {
  color:var(--ns-success-ink) !important;background:var(--ns-success-bg) !important;border-color:var(--ns-success-bg) !important;
}
html[data-theme] #module-calc #btn-submit-order,html[data-theme] #module-calculator #btn-submit-order {
  color:var(--ns-success-ink) !important;background:var(--ns-success-bg) !important;border-color:var(--ns-success-bg) !important;
}
html[data-theme] .ns-btn-danger,html[data-theme] .ns-btn-sm.ns-btn-danger {
  color:var(--ns-danger-ink) !important;background:color-mix(in srgb,var(--ns-danger-ink) 8%,var(--ns-surface)) !important;
  border-color:var(--ns-danger-ink) !important;
}
.ns-dropdown-layer {
  box-sizing:border-box;overscroll-behavior:contain;overflow:auto;
  color:var(--ns-text);background:var(--ns-menu-bg) !important;
  border:1px solid var(--ns-border-strong) !important;border-radius:var(--ns-control-radius) !important;
  padding:4px !important;box-shadow:var(--shadow-sm) !important;
}
.ns-dropdown-layer::backdrop { background:transparent; }
.ns-dropdown-layer .ns-select-option,.ns-dropdown-layer .ns-person-option,.ns-dropdown-layer .time-option {
  min-height:44px;color:var(--ns-text-dim);font-size:var(--text-sm);line-height:1.4;
  border-radius:var(--ns-control-radius);overflow-wrap:anywhere;
}
html[data-theme] .ns-select-option.is-selected,html[data-theme] .ns-person-option.is-active,
html[data-theme] .time-option.active,html[data-theme] .ns-person-option:hover,
html[data-theme] .ns-select-option:focus-visible,html[data-theme] .time-option:focus-visible {
  color:var(--ns-accent-ink) !important;background:var(--ns-accent-bg) !important;border-color:var(--ns-accent-bg) !important;
}
.ns-dropdown-layer .ns-person-option__name { min-width:0;overflow-wrap:anywhere; }
.ns-dropdown-layer .ns-person-option__meta { flex-shrink:0; }
html[data-theme] .ns-person-option.is-active .ns-person-option__meta,
html[data-theme] .ns-person-option:hover .ns-person-option__meta { color:var(--ns-accent-ink); }
.ns-select-option.is-selected::after,.time-option.active::after { content:'✓';margin-left:auto;padding-left:12px;font-weight:800; }
.ns-btn,.ns-btn-sm,.auth-tab,.auth-submit,.role-toggle-btn,.platform-tag {
  min-height:var(--ns-control-height);
  border-radius:var(--ns-control-radius);
  line-height:1.4;
}
.ns-btn,.ns-btn-sm { display:inline-flex;align-items:center;justify-content:center;gap:var(--ns-control-gap);font-size:var(--text-sm); }
html[data-theme] :is(button,input,select,textarea,a):focus-visible { outline:2px solid var(--ns-gold);outline-offset:3px; }
html[data-theme] .profile-field>label,
html[data-theme] .recharge-tools label { color:var(--ns-muted);font-size:var(--ns-control-label-size);line-height:1.5;margin-bottom:6px; }
.profile-field input,.profile-field select,.recharge-tools input,.recharge-tools select {
  min-height:var(--ns-control-height);
  font-size:13px;
}
.profile-field input:not([type="checkbox"]):not([type="range"]) { height:var(--ns-control-height); }
.profile-field input,.auth-field input { line-height:1.5; }
.profile-field { margin-bottom:16px; }
.profile-field:last-child { margin-bottom:0; }
.platform-tag {
  display:inline-flex;align-items:center;justify-content:center;
  min-width:76px;padding:8px 12px;
  border:1px solid var(--ns-border-strong);
  border-radius:var(--ns-control-radius);
  background:var(--ns-bg-soft);color:var(--ns-text-dim);
  font-size:13px;font-weight:700;
}
.platform-tag.selected {
  background:var(--ns-gold);color:var(--ns-on-accent);border-color:var(--ns-gold);
}
.platform-tag:hover { color:var(--ns-text);border-color:var(--ns-gold); }
.platform-tag.selected:hover { color:var(--ns-on-accent); }
#players-tabs button { border-radius:var(--ns-control-radius) !important; }
.recharge-tools { gap:12px; }
.recharge-tools>div:first-child { min-width:0 !important;flex:1 1 240px !important; }
.recharge-tools>button { flex:none; }
.page-admin .recharge-ledger-actions button { min-height:var(--ns-control-height);font-size:var(--ns-control-label-size); }
#module-players table { min-width:1280px !important; }
#module-players th,#module-players td { vertical-align:middle;white-space:nowrap; }
#module-players td:nth-child(7) { white-space:normal;min-width:160px;max-width:240px;overflow-wrap:anywhere; }
#module-players .recharge-sort-th { min-height:36px; }
#finance-ledger-pager { align-items:flex-start;margin-top:16px; }
#finance-ledger-pager>p { flex:1 1 280px;margin:0;color:var(--ns-muted);font-size:var(--ns-control-label-size);line-height:1.6; }
#finance-ledger-pager .ns-history-pager { margin-left:auto; }
#finance-history-pager { margin-top:16px; }
.confirm-dialog {
  max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;
}
.confirm-dialog .profile-field input { margin-bottom:0; }
.confirm-dialog .profile-field { margin-bottom:16px; }
.confirm-dialog input[type="checkbox"] { margin:0;flex:none;vertical-align:middle;accent-color:var(--ns-gold); }
.confirm-dialog label:has(>input[type="checkbox"]) { display:flex;align-items:center;gap:8px;min-height:32px;line-height:1.5; }
.confirm-dialog>h3 { margin-bottom:16px; }
.confirm-dialog .ns-btn-sm { font-size:13px; }
.calc-setting input[type="number"] { height:var(--ns-control-height); }
#module-calc #btn-submit-order,#module-calculator #btn-submit-order,
#module-calc #btn-copy,#module-calculator #btn-copy {
  min-height:var(--ns-control-height);padding:10px 16px;line-height:1.4;
  display:inline-flex;align-items:center;justify-content:center;gap:var(--ns-control-gap);
}
#module-calc .relative:has(>#order-text),#module-calculator .relative:has(>#order-text) {
  display:flex;flex-direction:column;align-items:stretch;gap:12px;
}
#module-calc #order-text,#module-calculator #order-text { margin:0;line-height:1.65; }
#bar-net,#bar-cut { transition-property:width !important; }
#module-calc #btn-copy,#module-calculator #btn-copy { position:static;align-self:flex-end; }
@media (max-width:768px) {
  .page-admin .recharge-ledger-actions button { min-width:52px; }
  .recharge-drag-handle { min-height:44px;min-width:36px; }
  #module-players .recharge-sort-th { min-height:44px; }
  #players-tabs,.admin-section-tabs { display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px; }
  #players-tabs button,.admin-section-tabs button { width:100%;min-width:0;padding-inline:6px;white-space:nowrap; }
  #module-recharges .ns-page-header-right { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible; }
  #module-recharges .ns-page-header-right button { width:100%;padding-inline:6px; }
  .recharge-tools { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end; }
  .recharge-tools>div:first-child { grid-column:1; }
  .recharge-tools>button { grid-column:2; }
  .recharge-tools>span { grid-column:1/-1; }
  .recharge-tools input[type="search"] { padding-inline:10px; }
  .finance-month-nav { display:grid;grid-template-columns:minmax(0,1fr);gap:12px; }
  .finance-month-group { display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px; }
  .finance-month-nav #finance-month { width:100%; }
  .finance-ledger-filter { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;order:0; }
  .finance-ledger-filter .finance-date-range { grid-column:1/-1;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px; }
  .finance-month-nav .finance-date-range input[type="date"] { width:100%;min-width:0; }
  .finance-ledger-filter .ns-person-select { width:100%;min-width:0; }
  .finance-ledger-actions { margin:0;justify-content:flex-end; }
  .ns-history-controls { gap:12px; }
  .ns-history-pager { justify-content:space-between;gap:8px; }
  .ns-history-filter { display:grid;grid-template-columns:minmax(0,1fr) auto; }
  .ns-history-filter label { min-width:0;flex-wrap:wrap;gap:6px; }
  .ns-history-filter input { width:100%;min-width:0;max-width:none; }
  .ns-history-filter>button { align-self:end; }
  .ns-history-pager>span { flex:1;text-align:center;font-size:var(--ns-control-label-size); }
  .confirm-dialog { padding:20px; }
  .ns-content input:is([type="text"],[type="password"],[type="search"],[type="number"],[type="date"],[type="month"]) { font-size:16px; }
  .ns-select-button,.ns-person-select-input { font-size:var(--ns-control-mobile-select-size); }
  .ns-content input::placeholder { font-size:13px; }
  .finance-month-nav #finance-month { font-size:var(--ns-control-mobile-select-size); }
  .finance-month-nav .finance-date-range input[type="date"] { font-size:13px; }
}
@media (max-width:640px) {
  .ns-dropdown-layer .ns-person-option { display:grid;grid-template-columns:minmax(0,1fr);gap:2px; }
  .ns-dropdown-layer .ns-person-option__meta { margin:0;max-width:100%; }
  :where(body:not(.page-home)) .ns-topbar-right { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px; }
  :where(body:not(.page-home)) .ns-topbar-right>.ns-nav-links { grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;gap:8px; }
  :where(body:not(.page-home)) .ns-topbar-right>.ns-theme-toggle { grid-column:2;grid-row:1; }
  :where(body:not(.page-home)) .ns-topbar-right>.ns-nav-auth { grid-column:1/-1;min-width:0; }
  .ns-nav-links .ns-link { width:auto;min-width:68px;padding:8px 12px; }
  .ns-nav-auth>.ns-link { width:auto;flex:none; }
  .ns-history-controls { margin-top:16px; }
}
@media (max-width:360px) {
  #players-tabs button,.admin-section-tabs button { font-size:var(--ns-control-label-size); }
  .recharge-tools { padding:10px;gap:8px; }
  .recharge-tools button { padding-inline:8px; }
  .finance-ledger-filter .finance-date-range { grid-template-columns:minmax(0,1fr); }
  .finance-date-range>span { display:none; }
}
