/* Shared presentation for the native Filament shell and business pages. */
.fi-body {
    background: #f6f8fb;
    color: #1e293b;
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.fi-topbar { border-bottom: 1px solid #e8edf3; box-shadow: none; }
.fi-sidebar { background: #fff; border-right: 1px solid #e8edf3; }
.fi-sidebar-nav { padding: .75rem .75rem; }
.fi-sidebar-nav-groups { gap: .65rem; margin-inline: 0; }
.fi-sidebar-group-btn { padding: .35rem .75rem; }
.fi-sidebar-group-label { color: #8993a3; font-size: .75rem; letter-spacing: .06em; font-weight: 600; }
.fi-sidebar-item-btn { min-height: 2.5rem; border-radius: .5rem; padding: .55rem .75rem; }
.fi-sidebar-item-label { font-size: .875rem; font-weight: 500; }
.fi-sidebar-item-btn > .fi-icon { color: #94a3b8; width: 1.2rem; height: 1.2rem; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background: #eff6ff; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn > .fi-icon,
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn > .fi-sidebar-item-label { color: #2563eb; }
.admin-sidebar-toggle { display: none; }
@media (min-width: 64rem) {
    .fi-main-sidebar .fi-sidebar-group-items { gap: .125rem; }
    .fi-main-sidebar .fi-sidebar-item-btn { min-height: 2.125rem; padding-block: .375rem; }
    .fi-main-sidebar .fi-sidebar-group-btn { padding-block: .25rem; }
    .fi-topbar .fi-topbar-collapse-sidebar-btn-ctn { display: none; }
    .admin-sidebar-toggle { display: inline-flex; flex-shrink: 0; align-items: center; gap: .4rem; min-height: 2.25rem; margin-inline-end: .75rem; padding: .4rem .6rem; border: 1px solid #e4e9f0; border-radius: .5rem; background: #fff; color: #475569; font-size: .8125rem; cursor: pointer; white-space: nowrap; }
    .admin-sidebar-toggle svg { width: 1.15rem; height: 1.15rem; }
    .admin-sidebar-toggle:hover { color: #2563eb; background: #eff6ff; border-color: #bfdbfe; }
    .admin-sidebar-toggle:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
}
.admin-brand { display: flex; align-items: center; gap: .65rem; white-space: nowrap; }
.admin-brand-mark { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: .65rem; background: #2563eb; color: #fff; }
.admin-brand-mark svg { width: 1.35rem; height: 1.35rem; }
.admin-brand-name { display: flex; align-items: baseline; gap: .3rem; font-size: 1.02rem; font-weight: 700; letter-spacing: -.025em; color: #172b4d; }
.admin-brand-name > span { font-size: .75rem; font-weight: 500; color: #64748b; }
.fi-main { padding-inline: 1.75rem; }
.fi-page { row-gap: 1.5rem; padding-block: 1.5rem; }
.fi-header-heading { font-size: 1.5rem; line-height: 2rem; font-weight: 650; letter-spacing: -.025em; }
.fi-section:not(.fi-section-not-contained):not(.fi-aside) { border: 1px solid #e4e9f0; border-radius: .75rem; box-shadow: 0 1px 3px #172b4d04; --tw-ring-shadow: 0 0 transparent; }
.fi-section-header { min-height: 4rem; }
.fi-section-header-heading { font-size: .95rem; font-weight: 600; }
.fi-section-header-description { font-size: .8125rem; line-height: 1.65; color: #7a8799; }
.fi-main .fi-section-content > p { color: #64748b; font-size: .875rem; line-height: 1.8; margin-block: .65rem; }
.fi-main .fi-section-content > .fi-btn { margin-bottom: 1rem; }
.fi-main .fi-section-content > .fi-section { margin-block: 1rem; }
.fi-input-wrp { border-radius: .5rem; }
.fi-modal-window { border-radius: .85rem; }
.fi-modal-header { border-bottom: 1px solid #edf0f5; }
.fi-modal-footer { border-top: 1px solid #edf0f5; background: #fafbfd; }
.fi-modal-heading { font-size: 1.05rem; }

.admin-approval-preview { display:grid; gap:1rem; min-width:0; color:#334155; font-size:.875rem; }
.admin-approval-identity, .admin-approval-balances { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem 1rem; }
.admin-approval-identity dt, .admin-approval-balances dt, .admin-approval-caption { color:#64748b; font-size:.75rem; }
.admin-approval-identity dd, .admin-approval-balances dd { margin-top:.25rem; font-weight:600; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.admin-approval-table { width:100%; font-variant-numeric:tabular-nums; }
.admin-approval-table th, .admin-approval-table td { padding:.65rem .75rem; text-align:start; border-bottom:1px solid #e2e8f0; }
.admin-approval-table thead { background:#f8fafc; color:#64748b; }
.admin-approval-table th { font-weight:500; }
.admin-approval-table td:last-child { font-weight:650; color:#1d4ed8; }
.admin-approval-table small { display:block; color:#64748b; font-size:.75rem; font-weight:400; }
.admin-approval-adjustment { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; padding:.8rem 1rem; border-radius:.5rem; background:#eff6ff; color:#1d4ed8; }
.admin-approval-errors { padding:.8rem 1rem; border:1px solid #fecaca; border-radius:.5rem; background:#fef2f2; color:#b91c1c; line-height:1.7; }
.admin-approval-errors ul { margin-top:.35rem; padding-inline-start:1.2rem; list-style:disc; }
.admin-approval-explanation { color:#64748b; font-size:.75rem; line-height:1.7; }
@media (max-width:500px) { .admin-approval-identity, .admin-approval-balances { grid-template-columns:1fr; }.admin-approval-table th, .admin-approval-table td { padding:.6rem .4rem; } }

.admin-workspace[hidden] { display: none; }
.admin-workspace {
    --workspace-border: #e4e9f0;
    --workspace-surface: #fff;
    --workspace-text: #64748b;
    --workspace-active: #eff6ff;
    --workspace-accent: #2563eb;
    display: flex;
    align-items: stretch;
    gap: .75rem;
    min-width: 0;
    min-height: 3rem;
    padding: 0 1.75rem;
    border-bottom: 1px solid var(--workspace-border);
    background: var(--workspace-surface);
    color: var(--workspace-text);
    position: sticky;
    top: var(--topbar-height, 4rem);
    z-index: 20;
}
.admin-workspace-tabs { display: flex; flex: 1; min-width: 0; gap: .25rem; overflow-x: auto; scrollbar-width: thin; }
.admin-workspace-tab { display: flex; flex-shrink: 0; align-items: center; border-bottom: 2px solid transparent; }
.admin-workspace-tab > a { padding: .8rem .9rem; white-space: nowrap; font-size: .8125rem; font-weight: 500; }
.admin-workspace-tab[data-active="true"] { border-color: var(--workspace-accent); background: var(--workspace-active); color: var(--workspace-accent); }
.admin-workspace-tab:hover { background: var(--workspace-active); }
.admin-workspace-close { margin-right: .35rem; width: 1.35rem; height: 1.35rem; border-radius: .35rem; font-size: 1.05rem; line-height: 1; }
.admin-workspace-close:hover { background: var(--workspace-border); }
.admin-workspace-tools { display: flex; flex-shrink: 0; align-items: center; gap: .3rem; font-size: .75rem; }
.admin-workspace-tools > button, .admin-workspace-menu > summary { padding: .45rem .6rem; border-radius: .4rem; cursor: pointer; white-space: nowrap; }
.admin-workspace-menu { position: relative; }
.admin-workspace-menu > summary { list-style: none; }
.admin-workspace-menu > summary::-webkit-details-marker { display: none; }
.admin-workspace-menu > div { position: absolute; right: 0; top: calc(100% + .55rem); min-width: 9rem; padding: .3rem; background: var(--workspace-surface); border: 1px solid var(--workspace-border); border-radius: .55rem; box-shadow: 0 8px 24px #0f172a14; }
.admin-workspace-menu button { display: block; width: 100%; text-align: left; padding: .6rem .8rem; border-radius: .35rem; white-space: nowrap; }
.admin-workspace button:not(:disabled), .admin-workspace a { cursor: pointer; }
.admin-workspace button:disabled { opacity: .4; cursor: default; }
.admin-workspace-tools button:not(:disabled):hover, .admin-workspace-menu summary:hover { background: var(--workspace-active); }
.admin-workspace a:focus-visible, .admin-workspace button:focus-visible, .admin-workspace summary:focus-visible { outline: 2px solid var(--workspace-accent); outline-offset: -3px; }

.admin-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.admin-search { width: min(100%, 23rem); }
.admin-toolbar-label { display: inline-flex; align-items: center; gap: .5rem; color: #64748b; font-size: .8125rem; cursor: pointer; }
.admin-toolbar-label input { accent-color: #2563eb; width: 1rem; height: 1rem; }
.admin-toolbar.admin-date-shortcuts { justify-content:flex-start; gap:.5rem; }
.admin-table-scroll, .fi-main .fi-ta-content { max-width: 100%; overflow-x: auto; }
.admin-table-scroll, .fi-main .fi-ta-content { max-height: 68vh; scrollbar-width:thin; scrollbar-gutter:stable; }
.fi-main .fi-ta-table thead { position:sticky; top:0; z-index:3; }
.admin-table-overflow:focus-visible { outline:2px solid #3b82f6; outline-offset:-2px; }
.admin-table-top-scroll { height:12px; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; background:#f8fafc; }
.admin-table-top-scroll[hidden] { display:none; }
.admin-table-top-scroll > div { height:1px; }
.fi-main .fi-ta-table td { font-variant-numeric:tabular-nums; vertical-align:top; }
.fi-main .fi-ta-table > tbody > tr > td:not(.fi-ta-cell) { padding:.9rem 1rem; border-bottom:1px solid #edf0f5; }
.fi-main .fi-ta-table td.admin-market-name { min-width:160px; max-width:320px; white-space:normal; overflow-wrap:anywhere; }
.fi-main .fi-ta-table td.admin-customer-id > .admin-meta { display:block; margin-top:4px; }
.fi-main .fi-ta-table .admin-row-actions { flex-wrap:wrap; row-gap:.5rem; }
.fi-main .fi-ta-table .fi-link { margin-inline-end:.45rem; }
.admin-menu-search { position:fixed; inset:0; margin:auto; width:min(570px,calc(100vw - 32px)); max-height:80dvh; padding:22px; border:1px solid #dce5f2; border-radius:16px; background:#fff; color:#1e293b; box-shadow:0 24px 70px #0f172a26; }
.admin-menu-search::backdrop { background:#0f172a66; backdrop-filter:blur(2px); }
.admin-menu-search-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.admin-menu-search-heading h2 { font-size:1.1rem; font-weight:650; }
.admin-menu-search-heading button { min-width:30px; height:30px; font-size:24px; border-radius:6px; }
.admin-menu-search-label { display:block; color:#64748b; font-size:.8rem; margin-bottom:8px; }
.admin-menu-search input { width:100%; padding:12px 14px; border:1px solid #cbd5e1; border-radius:9px; font-size:.9rem; }
.admin-menu-search input:focus { outline:2px solid #93c5fd; border-color:#3b82f6; }
.admin-menu-search-results { display:grid; gap:4px; max-height:45dvh; overflow-y:auto; margin:12px 0; }
.admin-menu-search-results a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px; border-radius:7px; text-decoration:none; }
.admin-menu-search-results a:hover,.admin-menu-search-results a:focus-visible { background:#eff6ff; outline:2px solid #bfdbfe; outline-offset:-2px; }
.admin-menu-search-results a span { color:#94a3b8; font-size:.75rem; }
.admin-update-status { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:100001; display:flex; align-items:center; gap:10px; padding:11px 18px; border:1px solid #bfdbfe; border-radius:10px; background:#eff6ff; color:#1d4ed8; font-size:.8rem; box-shadow:0 5px 20px #1d4ed81a; pointer-events:none; }
.admin-update-status[hidden] { display:none; }
.admin-update-status::before { content:''; width:14px; height:14px; border:2px solid #bfdbfe; border-top-color:#2563eb; border-radius:50%; animation:admin-loading-spin .8s linear infinite; }
@keyframes admin-loading-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .admin-update-status::before { animation:none; } }
.fi-main .fi-ta-table { width: 100%; border-collapse: collapse; font-size: .8125rem; text-align: left; }
.fi-main .fi-ta-table thead { background: #f8fafc; border-block: 1px solid #edf0f5; }
.fi-main .fi-ta-table th { padding: .85rem 1rem; text-align: left; font-weight: 600; color: #64748b; font-size: .75rem; white-space: nowrap; }
.fi-main .fi-ta-table > tbody > tr > td.fi-ta-cell { padding: 1rem; border-bottom: 1px solid #edf0f5; white-space: nowrap; color: #475569; }
.fi-main .fi-ta-table > tbody > tr:last-child > td { border-bottom: 0; }
.fi-main .fi-ta-table > tbody > tr:hover { background: #fafcff; }
.fi-main .fi-ta-table > tbody > tr > td[colspan] { text-align: center; padding-block: 3rem; color: #94a3b8; }
.admin-table-card > .fi-section-content-ctn > .fi-section-content { padding: 0 !important; }
.admin-table-card .admin-toolbar { margin: 0; padding: 1rem 1.25rem; }
.admin-table-footer { padding: 1rem 1.25rem; border-top: 1px solid #edf0f5; color: #94a3b8; font-size: .75rem; }
.admin-table-footer:empty { display: none; }
.admin-audit-pagination { display: grid; gap: 1rem; color: #64748b; }
.admin-audit-pagination .fi-pagination { width: 100%; }
.admin-page-jump { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; font-size: .8125rem; }
.admin-page-jump > .fi-input-wrp { width: 5rem; }
.admin-page-error { color: #dc2626; }
.admin-row-actions { display: flex; align-items: center; gap: .85rem; }
.admin-customer-name { display: flex; align-items: center; gap: .7rem; color: #1e293b; font-weight: 500; }
.admin-avatar { display: grid; place-items: center; width: 2rem; height: 2rem; flex-shrink: 0; border-radius: .6rem; color: #3b82f6; background: #eff6ff; font-size: .75rem; font-weight: 650; }
.admin-meta { color: #94a3b8; font-size: .75rem; }
.admin-notice { padding: 1rem; margin-bottom: 1rem; border: 1px solid #bfdbfe; background: #eff6ff; border-radius: .6rem; color: #1e40af; line-height: 1.8; overflow-wrap: anywhere; }
.fi-main .fi-empty-state { border: 0; box-shadow: none; --tw-ring-shadow: 0 0 transparent; padding-block: 3.5rem; }
.fi-main .fi-ta-cell .fi-badge { display: inline-flex; width: max-content; max-width: none; }
.fi-main .fi-ta-cell .fi-badge-label-ctn { min-width: max-content; }
@media (min-width: 1024px) {
    .fi-sidebar { background: #fff; }
}
@media (max-width: 767px) {
    .fi-main { padding-inline: 1rem; }
    .fi-header-heading { font-size: 1.25rem; }
    .admin-workspace { padding-inline: .5rem; gap: .25rem; }
    .admin-workspace-tab > a { padding: .8rem .6rem; }
    .admin-workspace-tools { gap: 0; }
    .admin-brand-name > span { display: none; }
}

/* Dashboard and access console. */
.admin-dashboard { display: grid; gap: 1.5rem; }
.admin-dashboard-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.admin-dashboard-heading h2 { font-size: 1.05rem; font-weight: 650; color: #1e293b; }
.admin-dashboard-heading p { font-size: .8rem; color: #8491a4; margin-top: .4rem; line-height: 1.6; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.admin-stat-card { background: white; border: 1px solid #e4e9f0; border-radius: .75rem; padding: 1.35rem; display: flex; align-items: center; gap: 1rem; }
.admin-stat-card p { color: #748297; font-size: .8rem; margin-bottom: .3rem; }
.admin-stat-card strong { font-size: 1.8rem; font-weight: 650; color: #1e293b; font-variant-numeric: tabular-nums; }
.admin-stat-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .75rem; flex-shrink: 0; }
.admin-stat-icon svg { width: 1.5rem; height: 1.5rem; }
.admin-stat-icon.blue { background: #eff6ff; color: #3b82f6; }
.admin-stat-icon.green { background: #ecfdf5; color: #10b981; }
.admin-stat-icon.violet { background: #f5f3ff; color: #8b5cf6; }
.admin-stat-icon.orange { background: #fff7ed; color: #f59e0b; }
.admin-chart svg { width: 100%; height: 230px; }
.admin-chart text { fill: #94a3b8; font: 10px sans-serif; }
.admin-chart-legend { color: #3b82f6; font-size: .75rem; }
.admin-chart-data { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .7rem; color: #94a3b8; font-size: .75rem; padding-top: .75rem; border-top: 1px solid #f1f5f9; }
.admin-chart-data strong { color: #64748b; margin-left: .35rem; font-weight: 500; }
.admin-currency-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.admin-currency-card { border: 1px solid #e4e9f0; border-radius: .75rem; background: #fff; overflow: hidden; }
.admin-currency-title { padding: 1rem 1.25rem; background: #fafbfd; border-bottom: 1px solid #edf0f5; display: flex; justify-content: space-between; align-items: center; }
.admin-currency-title strong { font-size: .875rem; letter-spacing: .04em; }
.admin-currency-title span { font-size: .7rem; color: #94a3b8; }
.admin-money-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1.25rem; font-variant-numeric: tabular-nums; }
.admin-money-grid p { font-size: .75rem; color: #7a8799; }
.admin-money-grid strong { display: block; font-size: 1.4rem; font-weight: 650; margin: .6rem 0; overflow-wrap: anywhere; }
.admin-money-grid small { color: #94a3b8; font-size: .7rem; }
.admin-money-in { color: #059669; }
.admin-dashboard-footer { font-size: .75rem; color: #94a3b8; }
.admin-permission-tree { border: 1px solid #e2e8f0; border-radius: .6rem; overflow: hidden; max-height: 30rem; overflow-y: auto; font-size: .85rem; }
.admin-tree-toolbar { display: flex; align-items: center; gap: 1.5rem; padding: 1rem; border-bottom: 1px solid #edf0f5; background: #f8fafc; position: sticky; top: 0; z-index: 1; }
.admin-permission-tree input { appearance: auto; accent-color: #2563eb; width: 1rem; height: 1rem; vertical-align: middle; cursor: pointer; }
.admin-tree-help { padding: .8rem 1rem; color: #94a3b8; font-size: .75rem; line-height: 1.65; }
.admin-tree-node summary { padding: .65rem .9rem; cursor: pointer; background: #fafbfd; border-top: 1px solid #f1f5f9; }
.admin-tree-node summary label { display: inline-flex; align-items: center; gap: .55rem; cursor: pointer; margin-right: .5rem; }
.admin-tree-children { margin: 0 .8rem .5rem 1.6rem; border-left: 1px solid #e2e8f0; padding-left: .6rem; }
.admin-tree-leaf { display: flex; align-items: center; gap: .55rem; padding: .6rem .9rem; cursor: pointer; }
.admin-tree-disabled { color: #94a3b8; cursor: default; }
.admin-rule-icon { width: 1.15rem; height: 1.15rem; color: #7a8799; }
.admin-filter-row { display: flex; gap: .6rem; flex-wrap: wrap; }
.admin-audit-detail { font-size: .875rem; line-height: 1.65; }
.admin-audit-detail dl { display: grid; grid-template-columns: 7rem minmax(0,1fr); gap: .75rem 1rem; }
.admin-audit-detail dt { color: #94a3b8; }.admin-audit-detail dd { overflow-wrap: anywhere; }
.admin-audit-detail h3 { font-weight: 600; margin-top: 1.5rem; margin-bottom: .75rem; }
.admin-audit-detail pre { white-space: pre-wrap; overflow-wrap: anywhere; background: #f8fafc; padding: 1rem; border: 1px solid #e2e8f0; border-radius: .5rem; font-size: .75rem; max-height: 25rem; overflow-y: auto; }
@media (max-width: 1100px) { .admin-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.admin-currency-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .admin-stat-card { padding: 1rem; gap: .65rem; }.admin-stat-icon { width: 2.25rem; height: 2.25rem; }.admin-stat-card strong { font-size: 1.5rem; }.admin-currency-grid { grid-template-columns: 1fr; }.admin-chart svg { height: 190px; }.admin-tree-toolbar { gap: .8rem; flex-wrap: wrap; } }

/* Two-stage administrator sign-in. */
.admin-auth-page { min-height:100dvh; background:#f5f7fb; color:#1e293b; }
.admin-auth-topbar { height:76px; padding:0 40px; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#fff; border-bottom:1px solid #e8edf5; }
.admin-auth-brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:20px; font-weight:750; color:#1d2c4b; }
.admin-auth-brand small { font-size:14px; color:#64748b; margin-left:5px; font-weight:550; }
.admin-auth-brand-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:#3459ff; color:white; }
.admin-auth-brand-icon svg { width:25px; height:25px; }
.admin-auth-account { display:flex; align-items:center; gap:22px; font-size:13px; color:#8c99ac; }
.admin-auth-username { color:#64748b; }.admin-auth-username strong { color:#253453; font-weight:650; }
.admin-auth-exit { padding:9px 20px; border:1px solid #dfe5ef; background:#fff; border-radius:9px; color:#617089; cursor:pointer; }
.admin-auth-exit:hover { background:#f5f7ff; color:#3459ff; }
.admin-auth-main { padding:64px 32px; display:flex; justify-content:center; align-items:center; min-height:calc(100dvh - 76px); }
.admin-auth-card { width:1120px; max-width:100%; display:grid; grid-template-columns:42% 58%; border:1px solid #e7edf7; border-radius:23px; overflow:hidden; background:#fff; box-shadow:0 24px 60px -45px #7291c1; }
.admin-auth-aside { position:relative; overflow:hidden; display:flex; flex-direction:column; padding:62px 45px 40px; background:#3459ff; color:#fff; }
.admin-auth-aside::before,.admin-auth-aside::after { content:''; position:absolute; width:390px; height:390px; border:1px solid #ffffff14; border-radius:50%; right:-260px; top:150px; pointer-events:none; }
.admin-auth-aside::after { width:480px; height:480px; right:-305px; top:105px; }
.admin-auth-eyebrow { font-size:12px; letter-spacing:2px; font-weight:650; color:#e1e7ff; display:flex; align-items:center; gap:9px; }
.admin-auth-eyebrow > span { width:7px; height:7px; border-radius:50%; background:#81edcb; }
.admin-auth-aside h1 { font-size:35px; line-height:1.6; font-weight:650; letter-spacing:1px; margin:38px 0 22px; }
.admin-auth-aside > p { color:#e0e7ff; font-size:15px; line-height:1.95; margin:0; max-width:330px; }
.admin-auth-steps { list-style:none; padding:0; margin:48px 0; display:flex; flex-direction:column; gap:28px; }
.admin-auth-steps li { display:flex; gap:15px; align-items:flex-start; }
.admin-auth-steps li > span { width:34px; height:34px; border:1px solid #ffffff65; border-radius:11px; display:grid; place-items:center; flex:none; font-size:13px; }
.admin-auth-steps strong { display:block; font-size:14px; margin-top:2px; font-weight:650; }
.admin-auth-steps p { font-size:12px; line-height:1.7; color:#dce5ff; margin-top:7px; }
.admin-auth-aside-footer { margin-top:auto; padding-top:26px; border-top:1px solid #ffffff40; color:#dce5ff; font-size:12px; }
.admin-auth-content { padding:62px 54px 40px; min-width:0; }
.admin-auth-kicker { font-size:12px; font-weight:750; color:#3459ff; letter-spacing:1.4px; }
.admin-auth-content h2 { font-size:28px; font-weight:750; margin:17px 0 18px; letter-spacing:-.5px; color:#182235; }
.admin-auth-intro { font-size:13px; line-height:1.8; color:#8c99ae; margin-bottom:34px; }
.admin-auth-form { display:flex; flex-direction:column; gap:23px; }
.admin-auth-field label { display:flex; align-items:center; justify-content:space-between; gap:10px; font-weight:650; color:#3b475a; font-size:13px; margin-bottom:11px; }
.admin-auth-field label small { font-size:11px; font-weight:450; color:#96a1b3; }
.admin-auth-field input { width:100%; min-width:0; height:50px; background:#fbfcff; color:#1e293b; padding:0 16px; border:1px solid #dfe5ef; border-radius:10px; font-size:14px; outline:none; box-shadow:none; }
.admin-auth-field input:focus { border-color:#3459ff; box-shadow:0 0 0 3px #3459ff15; }
.admin-auth-field input::placeholder { color:#a8b3c4; }
.admin-auth-field input[aria-invalid=true] { border-color:#e35e6a; }
.admin-auth-field input.admin-auth-otp { height:57px; text-align:center; font-size:27px; font-weight:650; letter-spacing:10px; padding-left:26px; }
.admin-auth-captcha-row { display:flex; gap:12px; align-items:stretch; }
.admin-auth-captcha { overflow:hidden; width:142px; flex:none; height:50px; border:1px solid #dfe5ef; border-radius:10px; padding:0; cursor:pointer; background:#f6f8fe; }
.admin-auth-captcha img { display:block; width:100%; height:100%; object-fit:fill; }
.admin-auth-hint { margin-top:9px; color:#96a1b3; font-size:11px; }
.admin-auth-submit { background:#3459ff; color:#fff; border:0; border-radius:10px; height:52px; font-size:14px; font-weight:650; cursor:pointer; margin-top:8px; transition:background .15s; }
.admin-auth-submit:hover { background:#2548e9; }.admin-auth-submit:disabled,.admin-auth-exit:disabled { opacity:.65; cursor:wait; }
.admin-auth-security-note { font-size:11px; color:#96a1b3; line-height:1.9; text-align:center; margin-top:26px; }
.admin-auth-error,.admin-auth-alert { color:#d5394b; font-size:12px; line-height:1.7; margin-top:8px; }.admin-auth-alert { padding:10px 14px; background:#fff1f2; border-radius:8px; margin-bottom:20px; }
.admin-auth-binding { display:flex; flex-direction:column; align-items:center; text-align:center; background:#fbfcff; border:1px solid #e5eaf4; border-radius:13px; padding:20px; margin-bottom:25px; }
.admin-auth-qr { width:170px; height:170px; padding:7px; background:white; border:1px solid #e5eaf4; border-radius:8px; margin-bottom:15px; }
.admin-auth-binding strong { font-size:13px; color:#3b475a; }.admin-auth-binding > p { color:#96a1b3; font-size:11px; margin-top:8px; }
.admin-auth-manual-key { width:100%; margin-top:16px; font-size:12px; }.admin-auth-manual-key summary { cursor:pointer; color:#3459ff; list-style:none; }.admin-auth-manual-key code { display:block; user-select:all; overflow-wrap:anywhere; padding:12px; margin-top:10px; border-radius:7px; background:#eef2ff; font-size:13px; letter-spacing:1px; color:#2b4ed6; }.admin-auth-manual-key small { display:block; color:#8592a7; margin-top:8px; }
@media (max-height:800px) and (min-width:651px) { .admin-auth-main { padding-block:24px; }.admin-auth-content { padding-block:32px; }.admin-auth-aside { padding-top:40px; }.admin-auth-content h2 { margin:12px 0 15px; }.admin-auth-intro { margin-bottom:24px; }.admin-auth-form { gap:17px; }.admin-auth-field label { margin-bottom:9px; }.admin-auth-aside h1 { margin:28px 0 20px; }.admin-auth-steps { margin:32px 0; gap:22px; } }
@media (max-width:900px) { .admin-auth-topbar { padding:0 22px; }.admin-auth-center { display:none; }.admin-auth-main { padding:32px 20px; }.admin-auth-aside { padding:45px 28px 32px; }.admin-auth-aside h1 { font-size:29px; }.admin-auth-content { padding:45px 32px 32px; }.admin-auth-steps { gap:24px; }.admin-auth-steps p { font-size:11px; } }
@media (max-width:650px) { .admin-auth-topbar { padding:0 16px; height:66px; }.admin-auth-brand { font-size:16px; }.admin-auth-brand small { display:none; }.admin-auth-account { gap:12px; font-size:12px; }.admin-auth-exit { padding:7px 12px; }.admin-auth-main { min-height:calc(100dvh - 66px); padding:24px 16px; }.admin-auth-card { display:block; border-radius:17px; max-width:460px; }.admin-auth-aside { display:none; }.admin-auth-content { padding:32px 24px; }.admin-auth-content h2 { font-size:25px; }.admin-auth-intro { margin-bottom:26px; }.admin-auth-captcha { width:118px; }.admin-auth-captcha-row { gap:9px; }.admin-auth-field input { font-size:13px; padding:0 12px; } }

.admin-record-search { width:min(640px,100%); }.admin-money-cell { min-width:150px; font-variant-numeric:tabular-nums; white-space:nowrap; }.admin-money-cell > div { padding:3px 0; }.admin-money-cell span { display:inline-block; width:42px; color:#64748b; font-size:11px; }.admin-money-cell small { display:block; color:#94a3b8; font-size:11px; }.admin-customer-table th { white-space:nowrap; }.admin-customer-table td { vertical-align:top; }.admin-nowrap { white-space:nowrap; }.admin-customer-id { min-width:84px; }.admin-restriction-label { display:block; color:#d97706; font-size:11px; margin-top:4px; }.admin-deleted-toggle { margin-bottom:14px; }.admin-message-content { min-width:260px; max-width:440px; white-space:normal; }.admin-message-content p { margin-top:6px; color:#64748b; white-space:pre-wrap; overflow-wrap:anywhere; }.admin-config-summary { display:grid; grid-template-columns:150px 1fr; gap:16px; padding:8px 0 24px; }.admin-config-summary dt { color:#64748b; }.admin-config-summary dd { font-weight:600; }

@media (min-width:1100px) {
    .admin-customer-table { border-collapse:separate; border-spacing:0; }
    .admin-customer-table th:nth-child(1),.admin-customer-table td:nth-child(1) { position:sticky; left:0; min-width:80px; width:80px; z-index:2; background:#fff; }
    .admin-customer-table th:nth-child(2),.admin-customer-table td:nth-child(2) { position:sticky; left:80px; min-width:160px; width:160px; z-index:2; background:#fff; }
    .admin-customer-table th:nth-child(3),.admin-customer-table td:nth-child(3) { position:sticky; left:240px; min-width:155px; width:155px; z-index:2; background:#fff; box-shadow:3px 0 5px -4px #64748b; }
    .admin-customer-table th:last-child,.admin-customer-table td:last-child { position:sticky; right:0; min-width:135px; background:#fff; z-index:3; box-shadow:-3px 0 5px -4px #64748b; }
    .admin-customer-table thead th:nth-child(1),.admin-customer-table thead th:nth-child(2),.admin-customer-table thead th:nth-child(3),.admin-customer-table thead th:last-child { background:#f8fafc; }
}

/* Nested market groups retain native Filament navigation and collapse independently. */
.fi-sidebar-item[data-market-branch] > .fi-sidebar-item-btn { cursor: pointer; font-weight: 600; }
.fi-sidebar-item[data-market-branch] > .fi-sidebar-item-btn::after { content: '▾'; font-size: .8rem; color: #94a3b8; }
.fi-sidebar-item[data-branch-expanded="false"] > .fi-sidebar-sub-group-items { display: none; }
.fi-sidebar-item[data-branch-expanded="false"] > .fi-sidebar-item-btn::after { transform: rotate(-90deg); }
.admin-market-name > span { display: block; max-width: 22rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-table-footer .fi-pagination { flex: 1; min-width: 0; }
.admin-finance-date { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: #64748b; }
.admin-finance-date > .fi-input-wrp { width: 10rem; }

.admin-stock-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 1rem; border: 1px solid #e2e8f0; border-radius: .75rem; background: #f8fafc; }
.admin-stock-summary dt { color: #64748b; font-size: .8rem; margin-bottom: .35rem; }
.admin-stock-summary dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
@media(max-width: 640px) { .admin-stock-summary { grid-template-columns: 1fr; } }

.fi-main .admin-positions-table th:first-child, .fi-main .admin-positions-table td:first-child { position:sticky; left:0; z-index:2; background:#fff; }
.fi-main .admin-positions-table th:last-child, .fi-main .admin-positions-table td:last-child:not([colspan]) { position:sticky; right:0; z-index:2; background:#fff; box-shadow:-3px 0 5px -4px #64748b; }
.fi-main .admin-positions-table thead th:first-child, .fi-main .admin-positions-table thead th:last-child { background:#f8fafc; }

.admin-locale-switcher { display:flex; align-items:center; gap:.45rem; font-size:.8rem; margin-inline:.6rem; }
.admin-locale-switcher select { border:1px solid #dce3ee; background:#fff; border-radius:.5rem; padding:.4rem 1.6rem .4rem .6rem; color:#526581; max-width:8rem; }
.admin-locale-switcher button { color:#315eec; cursor:pointer; white-space:nowrap; }
.admin-auth-account { flex-wrap:wrap; justify-content:flex-end; gap:14px; }
.admin-auth-account .admin-locale-switcher { margin:0; }
.admin-auth-account .admin-locale-switcher label { display:none; }
.admin-auth-topbar { min-height:76px; height:auto; padding-block:14px; }
html[lang="en"] .admin-config-summary { grid-template-columns:minmax(200px,260px) 1fr; }
@media (max-width:650px) { .admin-auth-topbar { flex-wrap:wrap; gap:12px; }.admin-auth-account { flex:1 1 100%; }.admin-config-summary, html[lang="en"] .admin-config-summary { grid-template-columns:minmax(100px,45%) 1fr; } }

.admin-window-controls{display:flex;gap:5px;margin-inline-start:auto;margin-inline-end:32px;align-items:center}.admin-window-controls button{border:1px solid #cbd5e1;border-radius:5px;padding:0 8px;min-width:30px;color:#475569;background:#fff}.fi-modal-header{cursor:move;touch-action:pan-y}.fi-modal-header input,.fi-modal-header button{cursor:pointer}.fi-modal-window.admin-window-maximized{width:calc(100vw - 24px)!important;max-width:none!important;height:calc(100dvh - 24px)!important;max-height:none!important;margin:0!important;transform:none!important}.admin-window-minimized{visibility:hidden!important;pointer-events:none!important}.admin-window-tray{position:fixed;bottom:12px;right:12px;z-index:100000;display:flex;gap:8px;flex-wrap:wrap}.admin-window-tray button{background:#2563eb;color:white;border-radius:7px;padding:10px 16px;box-shadow:0 3px 12px #0002}.admin-watermark{position:fixed;inset:0;z-index:99990;pointer-events:none;user-select:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));overflow:hidden;opacity:.075}.admin-watermark span{display:flex;align-items:center;justify-content:center;transform:rotate(-24deg);color:#172554;font-size:15px;min-height:120px}

/* Market calendar: source health, local sessions and manual overrides. */
.admin-calendar { display:grid; gap:1.25rem; }
.admin-calendar-panel { min-width:0; background:#fff; border:1px solid #e4e9f0; border-radius:.85rem; overflow:hidden; box-shadow:0 2px 5px #172b4d03; }
.admin-calendar-panel-header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem 1.5rem; }
.admin-calendar-panel-header h2 { display:flex; align-items:center; gap:.65rem; color:#1e293b; font-size:.95rem; font-weight:650; }
.admin-calendar-panel-header p { color:#64748b; font-size:.8125rem; line-height:1.7; margin-top:.35rem; }
.admin-calendar-panel-header > .fi-btn { flex-shrink:0; }
.admin-calendar-markets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding:0 1.5rem 1.25rem; }
.admin-calendar-market { min-width:0; border:1px solid #e7ecf3; border-radius:.65rem; padding:1.15rem 1.25rem; background:linear-gradient(125deg,#fbfdff,#fff 65%); }
.admin-calendar-market-header,.admin-calendar-market-title { display:flex; align-items:center; gap:.85rem; }
.admin-calendar-market-header { justify-content:space-between; flex-wrap:wrap; gap:.75rem; }
.admin-calendar-market-code { display:grid; place-items:center; width:2.7rem; height:2.7rem; flex-shrink:0; background:#eef4ff; border:1px solid #e2ebff; color:#315fcb; border-radius:.65rem; font-size:.85rem; font-weight:750; }
.admin-calendar-market-title h3 { color:#1e293b; font-size:.95rem; font-weight:650; }
.admin-calendar-market-title p { color:#64748b; font-size:.75rem; margin-top:.2rem; }
.admin-calendar-badge { display:inline-flex; align-items:center; gap:.4rem; width:max-content; max-width:100%; padding:.3rem .6rem; border-radius:.4rem; font-size:.75rem; line-height:1.5; font-weight:550; white-space:nowrap; }
.admin-calendar-badge > span { width:.375rem; height:.375rem; border-radius:50%; background:currentColor; flex-shrink:0; }
.admin-calendar-badge--success { background:#edf9f2; color:#17754d; }
.admin-calendar-badge--primary { background:#eff5ff; color:#275ac4; }
.admin-calendar-badge--warning { background:#fff6e5; color:#98640a; }
.admin-calendar-badge--danger { background:#fff0ef; color:#bd3434; }
.admin-calendar-badge--neutral { background:#f0f3f7; color:#65748b; }
.admin-calendar-market-data { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding-top:1.2rem; margin-top:1rem; border-top:1px solid #edf1f6; font-variant-numeric:tabular-nums; }
.admin-calendar-market-data dt { color:#7a8799; font-size:.75rem; margin-bottom:.45rem; }
.admin-calendar-market-data dd { color:#334155; font-size:.875rem; font-weight:550; line-height:1.7; }
.admin-calendar-market-data dd.admin-calendar-coverage { color:#203554; font-size:1.35rem; letter-spacing:-.035em; line-height:1.25; }
.admin-calendar-note { display:flex; align-items:flex-start; gap:.5rem; padding:.8rem 1.5rem; border-top:1px solid #edf1f6; background:#fafcff; color:#64748b; font-size:.75rem; line-height:1.8; }
.admin-calendar-note svg,.admin-calendar-footnote svg { width:1rem; height:1rem; margin-top:.15rem; flex-shrink:0; color:#7e97bc; }
.admin-calendar-alert { margin-top:1rem; padding:.85rem; border:1px solid #f2dfb2; border-radius:.5rem; background:#fffaf0; color:#8d6216; font-size:.8125rem; line-height:1.7; }
.admin-calendar-alert ul { margin:.5rem 0 .8rem; padding-left:1rem; list-style:disc; }
.admin-calendar-alert a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.admin-calendar-warning { margin-top:1rem; color:#98640a; font-size:.8rem; line-height:1.7; }
.admin-calendar-error { margin-top:.65rem; color:#64748b; font-size:.75rem; }
.admin-calendar-error summary { cursor:pointer; }
.admin-calendar-error code { display:block; margin-top:.5rem; overflow-wrap:anywhere; }
.admin-calendar-loading { opacity:.6; }
.admin-calendar-expired { color:#bb3d3d; }
.admin-calendar-footnote { display:flex; align-items:flex-start; gap:.5rem; color:#7b899d; font-size:.75rem; line-height:1.8; padding:0 .25rem; }
.admin-calendar-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media (max-width:1150px) { .admin-calendar-markets { grid-template-columns:1fr; } }
@media (max-width:650px) { .admin-calendar-panel-header { padding:1rem; }.admin-calendar-markets { padding:0 1rem 1rem; }.admin-calendar-market { padding:1rem; }.admin-calendar-market-data { grid-template-columns:1fr; gap:1rem; }.admin-calendar-note { padding:.8rem 1rem; } }

/* Monthly trading calendar. Each cell uses the selected market's local date. */
.admin-month-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding:1.2rem 1.5rem; }
.admin-month-title h2 { color:#1e293b; font-size:1.35rem; font-weight:650; letter-spacing:-.025em; }
.admin-month-title p { color:#64748b; font-size:.8rem; margin-top:.25rem; }
.admin-month-tools { display:flex; align-items:center; flex-wrap:wrap; gap:.85rem; }
.admin-month-markets { display:flex; padding:.25rem; border:1px solid #e4e9f0; background:#f5f7fb; border-radius:.6rem; }
.admin-month-markets button { display:flex; align-items:center; gap:.4rem; padding:.5rem .9rem; border-radius:.4rem; color:#64748b; font-size:.8125rem; font-weight:550; cursor:pointer; }
.admin-month-markets button span { font-size:.7rem; opacity:.75; }
.admin-month-markets button.is-active { background:#fff; color:#2563eb; box-shadow:0 1px 4px #172b4d15; }
.admin-month-markets button:focus-visible { outline:2px solid #2563eb; outline-offset:1px; }
.admin-month-navigation { display:flex; align-items:center; gap:.5rem; }
.admin-month-picker { width:10.25rem; }
.admin-month-picker input { font-size:.8125rem; }
.admin-month-legend { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.65rem; padding:.8rem 1.5rem; border-top:1px solid #edf1f6; background:#fcfdff; }
.admin-month-legend > div { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; }
.admin-month-legend > p { color:#64748b; font-size:.75rem; }
.admin-calendar-badge--closed { background:#fff0f0; color:#b44343; }
.admin-month-scroll { max-width:100%; overflow-x:auto; transition:opacity .15s; }
.admin-month-grid { border-collapse:collapse; width:100%; table-layout:fixed; min-width:740px; }
.admin-month-grid th { width:14.2857%; padding:.8rem .6rem; text-align:center; background:#f8fafc; color:#64748b; font-size:.75rem; font-weight:550; border-block:1px solid #e7ecf3; }
.admin-month-grid td { position:relative; border-right:1px solid #e7ecf3; border-bottom:1px solid #e7ecf3; vertical-align:top; background:#fff; }
.admin-month-grid td:last-child { border-right:0; }
.admin-month-grid tr:last-child td { border-bottom:0; }
.admin-month-day-button { display:flex; align-items:flex-start; flex-direction:column; gap:.3rem; padding:.65rem .9rem; min-height:108px; width:100%; text-align:left; cursor:pointer; border-radius:0; }
.admin-month-day-button:not(:disabled):hover { background:#f3f7ff; }
.admin-month-day-button:focus-visible { outline:2px solid #2563eb; outline-offset:-3px; }
.admin-month-day-button:disabled { cursor:default; }
.admin-month-day-heading { display:flex; align-items:center; justify-content:space-between; width:100%; gap:.4rem; margin-bottom:.1rem; }
.admin-month-number { display:grid; place-items:center; width:1.8rem; height:1.8rem; color:#334155; font-weight:650; font-size:1rem; font-variant-numeric:tabular-nums; }
.admin-month-today { color:#2563eb; font-size:.7rem; font-weight:550; }
.admin-month-hours { color:#53627a; font-size:.75rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.admin-month-grid td.is-closed { background:#fffcfc; }
.admin-month-grid td.is-past { background:#fafbfd; }
.admin-month-grid td.is-past .admin-month-number { color:#718096; }
.admin-month-grid td.is-outside { background:#f8fafc; }
.admin-month-outside-date { display:block; padding:1.1rem; min-height:108px; color:#b5bfce; font-size:.875rem; }
.admin-month-grid td.is-today { box-shadow:inset 0 0 0 2px #80a7f5; background:#f8fbff; }
.admin-month-grid td.is-today .admin-month-number { border-radius:50%; background:#316ae2; color:#fff; }
.admin-month-missing { color:#8090a7; font-size:.72rem; }
.admin-month-manual { display:inline-flex; align-items:center; gap:.25rem; font-size:.7rem; color:#6f55b6; }
.admin-month-manual svg { width:.8rem; height:.8rem; }
.admin-month-expiry { font-size:.7rem; }
.admin-month-resume { padding:0 1rem .7rem; }
.admin-month-resume .fi-link { font-size:.7rem; max-width:100%; white-space:normal; text-align:left; }
.admin-month-resume .fi-link-label { min-width:0; white-space:normal; overflow-wrap:anywhere; }
.admin-month-error { padding:0 1.5rem .8rem; color:#be3535; font-size:.8rem; }
@media (max-width:1050px) { .admin-month-header { align-items:flex-start; }.admin-month-tools { flex:1 1 100%; }.admin-month-day-button { padding:.65rem .55rem; }.admin-month-day-button .admin-calendar-badge { padding:.25rem .4rem; font-size:.7rem; } }
@media (max-width:650px) { .admin-month-header { padding:1rem; }.admin-month-legend { padding:.8rem 1rem; }.admin-month-tools { gap:.65rem; }.admin-month-picker { flex:1 1 100%; width:auto; }.admin-month-markets button { padding:.5rem .7rem; } }

.admin-sidebar-groups { display: flex; gap: .5rem; padding: 0 .5rem .5rem; }
.admin-sidebar-groups button { flex: 1; border: 1px solid #e4e9f0; border-radius: .375rem; background: #fff; color: #64748b; padding: .375rem .25rem; font-size: .75rem; cursor: pointer; }
.admin-sidebar-groups button:hover { color: #2563eb; background: #eff6ff; }
.admin-sidebar-groups button:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
