:root {
    --broker-primary: #08768a;
    --broker-primary-dark: #055665;
    --broker-accent: #12b7cf;
    --broker-primary-soft: #e7f8fb;
    --broker-navy: #102733;
    --broker-text: #17242e;
    --broker-muted: #5f6f7c;
    --broker-border: #d6e6eb;
    --broker-surface: #ffffff;
    --broker-bg: #f3f8fa;
    --broker-success: #177c53;
    --broker-warning: #94610a;
    --broker-danger: #b42334;
    --broker-focus: rgba(8, 118, 138, .24);
    --broker-shadow: 0 12px 35px rgba(16, 39, 51, .08);

    /* Keep legacy vendor themes on the same palette. */
    --primary-blue: var(--broker-primary);
    --secondary-blue: var(--broker-accent);
    --broker-accent-dark: var(--broker-primary-dark);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { width: 100%; min-width: 0; margin: 0; }
body { color: var(--broker-text); overflow-x: clip; }
a { color: var(--broker-primary); }
a:hover { color: var(--broker-primary-dark); }
img, svg { max-width: 100%; }
.skip-link {
    position: fixed; left: 14px; top: -80px; z-index: 2000; padding: 10px 14px;
    color: #fff; background: var(--broker-navy); border-radius: 8px; font-weight: 700;
}
.skip-link:focus { top: 14px; color: #fff; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--broker-focus); outline-offset: 2px;
}
.form-control:focus, .form-select:focus {
    border-color: var(--broker-primary) !important; box-shadow: 0 0 0 .2rem var(--broker-focus) !important;
}
.text-info { color: var(--broker-primary) !important; }
.bg-info, .badge-info { background-color: var(--broker-primary) !important; color: #fff !important; }
.bg-info-subtle { background-color: var(--broker-primary-soft) !important; }
.btn-info, .btn-primary {
    background-color: var(--broker-primary); border-color: var(--broker-primary); color: #fff !important;
}
.btn-info:hover, .btn-primary:hover,
.btn-info:focus, .btn-primary:focus {
    background-color: var(--broker-primary-dark); border-color: var(--broker-primary-dark); color: #fff !important;
}
.btn-outline-info, .btn-outline-primary { color: var(--broker-primary); border-color: var(--broker-primary); }
.btn-outline-info:hover, .btn-outline-primary:hover,
.btn-outline-info:focus, .btn-outline-primary:focus {
    color: #fff; background-color: var(--broker-primary); border-color: var(--broker-primary);
}
.alert-success { color: #0f5f3d; background-color: #e8f7ef; border-color: #bde7cf; }
.alert-warning { color: #714802; background-color: #fff6df; border-color: #edd7a7; }
.alert-danger { color: #8f1e2e; background-color: #fff0f2; border-color: #efc3ca; }
.input-group { width: 100%; min-width: 0; flex-wrap: nowrap; }
.input-group > .form-control { width: 1%; min-width: 0; flex: 1 1 auto; }
.input-group-text {
    flex: 0 0 46px; justify-content: center; color: var(--broker-primary) !important;
    background: var(--broker-primary-soft) !important; border-color: var(--broker-border) !important;
}
.visually-hidden-focusable:not(:focus):not(:focus-within) { position: absolute !important; }
.broker-logo { max-width: 168px; max-height: 46px; object-fit: contain; }
.broker-flash { border: 0; border-left: 4px solid var(--broker-primary); box-shadow: 0 5px 18px rgba(16, 42, 67, .08); }
.broker-flash.alert-danger { border-left-color: var(--broker-danger); }
.broker-page-heading h2 { color: #1d2634; letter-spacing: -.025em; }
.broker-page-heading p { color: var(--broker-muted); }

/* Traders room */
.impersonation-banner { position:fixed; inset:0 0 auto 250px; z-index:1100; min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:8px 22px; color:#65410a; background:#fff4d7; border-bottom:1px solid #e9cf91; box-shadow:0 4px 16px rgba(90,61,10,.1); font-size:12px; }.impersonation-banner form{margin:0}.impersonation-banner button{min-height:32px;padding:6px 12px;border:1px solid #bd8425;border-radius:8px;color:#704800;background:#fff;font-weight:750}.impersonation-banner+ .sidebar-backdrop + .broker-user-sidebar{top:48px}.impersonation-banner~.dashbaord-main .broker-user-header{top:48px}
body.user-pages-body { background: var(--broker-bg); min-height: 100vh; }
.user-sidebar.broker-user-sidebar {
    background: rgba(255,255,255,.94) !important;
    border-right: 1px solid rgba(8,118,138,.16);
    box-shadow: 4px 0 24px rgba(16,39,51,.07);
    width: 250px;
    padding: 11px;
    z-index: 1041;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(8,118,138,.30) transparent;
}
.user-sidebar.broker-user-sidebar::-webkit-scrollbar { width:8px; }
.user-sidebar.broker-user-sidebar::-webkit-scrollbar-track { background:transparent; }
.user-sidebar.broker-user-sidebar::-webkit-scrollbar-thumb { background:rgba(8,118,138,.30); border:2px solid transparent; border-radius:10px; background-clip:padding-box; }
.broker-user-sidebar .site-logo { display: block; padding: 10px 15px 18px; text-align: center; }
.broker-user-sidebar .sidebar-caption {
    padding: 2px 20px 10px; color: #9aa5b3; font-size: 10px; font-weight: 800;
    text-transform: uppercase; letter-spacing: .12em;
}
.broker-user-sidebar .sidebar-menu {
    flex:0 0 auto;
    width:auto !important;
    height:auto !important;
    max-height:none !important;
    padding-right:0 !important;
    overflow:visible !important;
    background:transparent !important;
    scrollbar-width:auto;
}
.broker-user-sidebar .sidebar-menu::-webkit-scrollbar { display:none; width:0; height:0; }
.broker-user-sidebar .sidebar-menu li { margin: 4px 0 !important; }
.broker-user-sidebar .sidebar-menu a {
    display: flex; align-items: center; justify-content: flex-start; gap: 13px;
    padding: 11px 15px; margin: 0; color: #3c4654; border-radius: 12px;
    font-size: 14px; font-weight: 650; text-decoration: none; box-shadow: none;
    transition: .18s ease;
}
.broker-user-sidebar .sidebar-menu a i { width: 21px; color: #748090; font-size: 17px; text-align: center; }
.broker-user-sidebar .sidebar-menu a:hover,
.broker-user-sidebar .sidebar-menu a.active {
    color: var(--broker-primary-dark); background: linear-gradient(90deg, rgba(8,118,138,.14), rgba(8,118,138,.035));
    transform: translateX(2px);
}
.broker-user-sidebar .sidebar-menu a.active i { color: var(--broker-primary-dark); }
.broker-user-sidebar .broker-service-state {
    margin: 18px 9px; padding: 12px; border-radius: 12px; background: #f2fafc;
    color: #647481; font-size: 11px;
}
.broker-service-state .dot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--broker-success); }
.user-header.broker-user-header {
    background: rgba(255,255,255,.94); backdrop-filter: blur(14px); border-bottom: 1px solid #e8f1f4;
    min-height: 70px; box-shadow: 0 4px 20px rgba(16,42,67,.035);
    display: flex; align-items: center; justify-content: space-between; padding: 0 24px;
}
.broker-user-header .header-context { display: inline-flex; flex-direction: column; margin-right: 20px; vertical-align: middle; }
.broker-user-header .header-context strong { font-size: 13px; color: #24303d; }
.broker-user-header .header-context small { color: #8b97a5; font-size: 10px; }
.broker-user-header .user-btn { color: #253140; font-weight: 700; }
.dashbaord-main { min-height: 100vh; background: var(--broker-bg); }
.broker-content { padding: 30px 24px 90px; }
.broker-mobile-menu { background: rgba(255,255,255,.97) !important; border-top: 1px solid #dcecf1; }
.broker-mobile-menu a { color: #40505f !important; }

.broker-panel {
    background: var(--broker-surface); border: 1px solid var(--broker-border); border-radius: 16px;
    padding: 22px; box-shadow: var(--broker-shadow); margin-bottom: 20px;
}
.broker-panel-title { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
.broker-panel-title h5 { margin: 0; font-size: 16px; color: #263342; }
.broker-panel-title small { color: var(--broker-muted); }
.broker-stat-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(175px,1fr)); gap: 15px; margin-bottom: 22px; }
.broker-stat {
    position: relative; overflow: hidden; background: white; border: 1px solid var(--broker-border);
    border-radius: 15px; padding: 18px; min-height: 112px; box-shadow: 0 8px 24px rgba(18,55,75,.05);
}
.broker-stat:after { content:""; position:absolute; width:65px; height:65px; right:-20px; bottom:-24px; background:rgba(8,118,138,.10); border-radius:50%; }
.broker-stat .stat-icon { width: 36px; height: 36px; display:grid; place-items:center; border-radius:10px; background:var(--broker-primary-soft); color:var(--broker-primary); float:right; }
.broker-stat .stat-label { color:#7b8795; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.055em; }
.broker-stat .stat-value { margin-top:11px; color:#1f2d3d; font-size:22px; font-weight:800; }
.broker-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.broker-field label { color:#455362; font-size:12px; font-weight:750; margin-bottom:7px; }
.broker-field .form-control,
.broker-field .form-select {
    width:100%; border:1px solid #d7e4e9; border-radius:10px; min-height:44px; padding:10px 12px;
    background:#fbfdfe; color:#263441; box-shadow:none;
}
.broker-field textarea.form-control { min-height:100px; }
.btn-broker {
    background:linear-gradient(90deg,var(--broker-primary-dark),var(--broker-primary)); color:white !important; border:1px solid var(--broker-primary); border-radius:10px;
    min-height:44px; padding:10px 20px; font-weight:700; box-shadow:0 8px 20px rgba(8,118,138,.20);
}
.btn-broker:hover, .btn-broker:focus { background:linear-gradient(90deg,#044b58,var(--broker-primary-dark)); border-color:var(--broker-primary-dark); transform:translateY(-1px); }
.broker-table-wrap { overflow:auto; border:1px solid var(--broker-border); border-radius:13px; }
.broker-table { width:100%; margin:0; background:white; }
.broker-table th { color:#667585; background:#f3fafc; font-size:10px; text-transform:uppercase; letter-spacing:.055em; border:0; padding:13px; white-space:nowrap; }
.broker-table td { color:#465461; font-size:12px; padding:13px; border-color:#edf2f4; white-space:nowrap; max-width:320px; overflow:hidden; text-overflow:ellipsis; }
.broker-empty { text-align:center; padding:44px 20px; color:#8996a3; }
.broker-empty i { display:block; color:#c7d9df; font-size:32px; margin-bottom:12px; }
.broker-panel,.broker-stat,.admin-command-hero,.admin-ops-card,.hub-link { animation:broker-rise .28s ease both; }
.broker-panel,.broker-stat,.admin-ops-card,.hub-link { transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.broker-stat:hover,.admin-ops-card:hover,.hub-link:hover { transform:translateY(-2px); border-color:#c5e0e6; box-shadow:0 13px 30px rgba(18,55,75,.085); }
.broker-table tbody tr:nth-child(even) td { background:#fbfdfe; }
.broker-table tbody tr { transition:background .16s ease,box-shadow .16s ease; }
.broker-table tbody tr:hover td { background:#eef9fb; }
.broker-table tbody tr:hover { box-shadow:inset 3px 0 var(--broker-accent); }
@keyframes broker-rise { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .broker-panel,.broker-stat,.admin-command-hero,.admin-ops-card,.hub-link,.broker-table tbody tr { animation:none!important; transition:none!important; } }

.trading-account-card { height:100%; background:#fff; border:1px solid rgba(13,202,240,.22); border-radius:14px; padding:20px; box-shadow:0 8px 25px rgba(25,77,100,.07); }
.account-type-badge { display:inline-flex; padding:7px 14px; border-radius:20px; background:var(--broker-primary); color:white; font-weight:750; font-size:11px; }
.account-login { background:none; border:0; padding:5px 0; color:var(--broker-primary); text-decoration:underline; font-size:13px; }
.account-balance { font-size:24px; font-weight:800; color:var(--broker-primary); }
.account-source { font-size:10px; border-radius:12px; padding:4px 8px; background:#eef7fa; color:#657681; }
.new-account-card { height:100%; min-height:230px; display:grid; place-items:center; text-align:center; border:2px dashed #bfe9f1; border-radius:14px; background:rgba(255,255,255,.65); padding:20px; }
.new-account-card .plus { width:48px; height:48px; margin:auto auto 10px; border-radius:50%; display:grid; place-items:center; background:var(--broker-primary); color:white; }
.mt5-ribbon { display:flex; align-items:center; gap:10px; color:#586877; font-size:12px; }
.mt5-ribbon .status-dot { width:9px; height:9px; border-radius:50%; background:#e6a23c; box-shadow:0 0 0 4px rgba(230,162,60,.12); }
.mt5-ribbon.healthy .status-dot { background:var(--broker-success); box-shadow:0 0 0 4px rgba(23,124,83,.12); }
.trade-modal .modal-content { border:1px solid rgba(13,202,240,.18); border-radius:16px; overflow:hidden; }

/* Broker administration — same light visual system as the traders room and CRM. */
.broker-admin-body { background:var(--broker-bg,#f4f8fa); color:var(--broker-text,#344651); }
.broker-admin .nav-header { background:#fff; border-right:1px solid var(--broker-border,#dce9ed); }
.broker-admin .brand-logo { padding:15px 20px; display:block; }
.broker-admin .brand-logo img { max-width:170px; max-height:40px; object-fit:contain; }
.broker-admin .header { background:#fff; border-bottom:1px solid var(--broker-border,#dce9ed); box-shadow:0 3px 14px rgba(24,67,82,.05); }
.broker-admin .quixnav { background:#fff; border-right:1px solid var(--broker-border,#dce9ed); box-shadow:5px 0 18px rgba(24,67,82,.04); }
.broker-admin .content-body { min-height:100vh; }
.admin-mobile-menu, .admin-mobile-brand, .admin-sidebar-backdrop { display:none; }
.visit-platform-link { margin-right:12px; }
.admin-header-context h6 { margin:0; color:#25303d; font-weight:750; }
.admin-header-context small { color:#8b95a2; }
.admin-profile { display:flex; align-items:center; gap:10px; color:#35414e; }
.admin-profile .avatar { width:35px; height:35px; display:grid; place-items:center; border-radius:10px; background:var(--broker-primary-soft); color:var(--broker-primary); }
.broker-admin-sidebar { padding:15px 11px 80px; }
.broker-admin-sidebar .menu-label { color:#8a98a3; padding:15px 13px 7px; font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.broker-admin-sidebar a { display:flex; align-items:center; gap:12px; color:#50616e; border-radius:9px; padding:10px 12px; margin:2px 0; text-decoration:none; font-size:12px; }
.broker-admin-sidebar a i { width:18px; text-align:center; color:#7b8b96; }
.broker-admin-sidebar a:hover,
.broker-admin-sidebar a.active { color:var(--broker-primary-dark,#08768a); background:var(--broker-primary-soft,#e8f8fb); }
.broker-admin-sidebar a.active i,
.broker-admin-sidebar a:hover i { color:var(--broker-primary,#12b7cf); }
.broker-admin .card,
.broker-admin .panel,
.broker-admin .table-responsive { border-color:var(--broker-border,#dce9ed); box-shadow:0 7px 24px rgba(24,67,82,.05); }
.broker-admin .table thead th { background:#f4fafb; color:#526572; border-color:var(--broker-border,#dce9ed); }
.broker-admin .form-control,
.broker-admin .custom-select { border-color:var(--broker-border,#dce9ed); border-radius:9px; background:#fff; }
.admin-content { padding-top:24px; padding-bottom:70px; }
.admin-command-hero { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:22px; padding:30px 32px; border:1px solid #cfe5ea; border-radius:20px; background:linear-gradient(120deg,#fff 0%,#f1fbfc 65%,#e2f6f8 100%); box-shadow:0 14px 40px rgba(25,75,91,.08); }
.admin-command-hero:after { content:""; position:absolute; width:210px; height:210px; right:-90px; top:-105px; border-radius:50%; background:rgba(18,183,207,.13); }
.command-eyebrow,.panel-kicker { display:block; color:var(--broker-primary); font-size:10px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.admin-command-hero h1 { margin:8px 0 7px; color:#172c38; font-size:clamp(25px,3vw,36px); font-weight:850; letter-spacing:-.035em; }
.admin-command-hero p { max-width:660px; margin:0; color:#657783; font-size:14px; }
.command-status { position:relative; z-index:1; min-width:235px; display:flex; align-items:center; gap:12px; padding:14px 16px; border:1px solid #cde7dd; border-radius:13px; background:rgba(255,255,255,.82); }
.command-status .pulse-dot { width:11px; height:11px; flex:0 0 11px; border-radius:50%; background:var(--broker-success); box-shadow:0 0 0 6px rgba(23,124,83,.11); }
.command-status strong,.command-status small { display:block; }
.command-status strong { color:#284337; font-size:12px; }.command-status small { color:#798b82; font-size:10px; }
.admin-metric { border:0; border-left:4px solid var(--broker-primary); }
.admin-metric.deposits { border-left-color:var(--broker-success); }
.admin-metric.withdrawals { border-left-color:#f2a93b; }
.admin-metric.tickets { border-left-color:#7b61d9; }
.admin-kpi-grid .broker-stat { min-height:132px; border-left:0; padding:20px; }
.admin-kpi-grid .broker-stat:before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--broker-primary); }
.admin-kpi-grid .metric-1:before { background:var(--broker-success); }.admin-kpi-grid .metric-2:before { background:#dd962c; }.admin-kpi-grid .metric-3:before { background:#7459c7; }
.metric-caption { display:block; margin-top:7px; color:#9aa7af; font-size:9px; }
.admin-command-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr); gap:20px; }
.admin-command-grid .broker-panel { height:100%; margin:0; }
.panel-kicker { margin-bottom:5px; }
.admin-quick-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.admin-quick-grid a { min-width:0; display:flex; align-items:center; gap:12px; padding:14px; border:1px solid #e1ecef; border-radius:13px; color:#455565; text-decoration:none; background:#fbfdfe; transition:.18s ease; }
.admin-quick-grid a:hover { border-color:#b7dce3; background:#f2fafb; transform:translateY(-2px); box-shadow:0 9px 22px rgba(20,81,96,.08); }
.admin-quick-grid a > span:nth-child(2) { min-width:0; flex:1; }.admin-quick-grid b,.admin-quick-grid small { display:block; }.admin-quick-grid b { color:#2f414d; font-size:12px; }.admin-quick-grid small { color:#87949d; font-size:9px; margin-top:2px; }
.quick-icon { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border-radius:11px; color:var(--broker-primary); background:var(--broker-primary-soft); }.quick-icon.success{color:#177c53;background:#e8f7ef}.quick-icon.warning{color:#94610a;background:#fff4dd}.quick-icon.violet{color:#694eb3;background:#f1edfb}.quick-icon.blue{color:#286b9b;background:#e9f4fb}.admin-quick-grid .arrow{color:#a8b5bc;font-size:10px}
.hub-primary { display:flex; align-items:center; gap:12px; padding:16px; color:#fff!important; border-radius:14px; background:linear-gradient(120deg,var(--broker-primary-dark),var(--broker-primary)); text-decoration:none; box-shadow:0 10px 24px rgba(8,118,138,.2); }.hub-primary>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.14)}.hub-primary div{min-width:0;flex:1}.hub-primary b,.hub-primary small{display:block}.hub-primary b{font-size:12px}.hub-primary small{color:#c8edf2;font-size:9px;margin-top:3px}.hub-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.hub-links a{padding:11px;border:1px solid #e3edef;border-radius:10px;color:#546571;text-decoration:none;font-size:10px;background:#fbfdfe}.hub-links i{width:18px;color:var(--broker-primary)}

/* Public and authentication */
.public-broker-body { background:#f7fbfc; }
.public-nav { background:rgba(255,255,255,.94); border-bottom:1px solid #e3f0f3; backdrop-filter:blur(12px); }
.public-nav .nav-link { color:#344651; font-weight:650; }
.public-nav .nav-link:hover, .public-nav .nav-link:focus { color:var(--broker-primary); }
.public-nav .navbar-toggler { min-width:44px; min-height:44px; border-color:var(--broker-border); }
.public-nav .navbar-toggler-icon { position:relative; width:24px; height:18px; color:var(--broker-navy); background:none; }
.public-nav .navbar-toggler-icon::before,
.public-nav .navbar-toggler-icon::after { content:""; position:absolute; left:0; width:24px; height:2px; border-radius:2px; background:currentColor; }
.public-nav .navbar-toggler-icon::before { top:2px; box-shadow:0 7px 0 currentColor; }
.public-nav .navbar-toggler-icon::after { bottom:0; }
.public-hero { position:relative; overflow:hidden; padding:105px 0 85px; background:linear-gradient(125deg,#f8feff 0%,#edf9fb 52%,#dff5f8 100%); }
.public-hero:after { content:""; position:absolute; width:520px; height:520px; right:-160px; top:-190px; border-radius:50%; background:rgba(18,183,207,.14); }
.public-hero h1 { color:#172535; font-weight:850; font-size:clamp(2.4rem,5vw,4.3rem); letter-spacing:-.05em; line-height:1.04; }
.public-hero h1 span { color:var(--broker-primary); }
.public-hero p { color:#617281; font-size:1.05rem; max-width:590px; }
.hero-terminal { position:relative; z-index:1; width:100%; min-width:0; background:var(--broker-navy); border:1px solid #244854; color:white; border-radius:22px; padding:24px; box-shadow:0 28px 70px rgba(16,42,67,.2); }
.hero-terminal h4 { color:#fff !important; }
.hero-terminal img { width:62px; }
.hero-terminal .text-info, .auth-intro .text-info { color:#63d8e8 !important; }
.auth-broker-body { min-height:100vh; background:linear-gradient(125deg,#f4fcfe,#e8f9fc); display:grid; place-items:center; padding:25px; }
.auth-shell { width:min(980px,100%); display:grid; grid-template-columns:.9fr 1.1fr; background:white; border:1px solid #dcecf1; border-radius:22px; overflow:hidden; box-shadow:0 25px 75px rgba(16,55,75,.14); }
.auth-shell-register { width:min(1100px,100%); grid-template-columns:.75fr 1.25fr; }
.error-shell { display:block; width:min(760px,100%); }
.auth-intro { min-width:0; padding:50px; color:white; background:linear-gradient(145deg,var(--broker-navy),#0a4957); position:relative; overflow:hidden; }
.auth-intro h1,.auth-intro h2,.auth-intro h3 { color:#fff !important; }
.auth-intro:after { content:""; position:absolute; width:210px; height:210px; right:-80px; bottom:-80px; border-radius:50%; background:rgba(18,183,207,.22); }
.auth-form { width:100%; min-width:0; padding:48px; }
.auth-form form { width:100%; min-width:0; }
.auth-form .form-control { min-height:46px; border:1px solid var(--broker-border); border-radius:10px; padding:11px 13px; }
.auth-form .input-group .form-control { border-top-left-radius:0; border-bottom-left-radius:0; }
.auth-form .input-group-text { border-top-left-radius:10px; border-bottom-left-radius:10px; }
.auth-form .alert { overflow-wrap:anywhere; }

/* Standalone password reset, public content, and 2FA pages use the same visual language. */
.standalone-broker-body {
    min-height:100vh; margin:0; padding:32px 16px; background:linear-gradient(135deg,#f4fcfe,#e8f7fa);
    color:var(--broker-text); display:grid; place-items:center;
}
.standalone-shell {
    width:min(620px,100%); min-width:0; padding:clamp(24px,5vw,38px); background:#fff;
    border:1px solid var(--broker-border); border-radius:18px; box-shadow:var(--broker-shadow);
}
.standalone-shell.wide { width:min(920px,100%); }
.standalone-shell h1 { margin-top:0; color:var(--broker-navy); }
.standalone-shell .form-control { min-height:46px; }
.standalone-secret { padding:13px; background:#f1f8fa; border:1px solid var(--broker-border); border-radius:8px; word-break:break-all; color:var(--broker-primary-dark); }
.public-page-shell { min-height:100vh; background:var(--broker-bg); }
.public-page-header { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px max(20px,calc((100% - 1060px)/2)); border-bottom:1px solid var(--broker-border); background:#fff; }
.public-page-main { width:min(920px,calc(100% - 32px)); margin:42px auto; padding:clamp(24px,5vw,38px); background:#fff; border:1px solid var(--broker-border); border-radius:18px; box-shadow:var(--broker-shadow); }
.published-body { white-space:pre-wrap; overflow-wrap:anywhere; color:#344651; }
.surface-soft { background:var(--broker-primary-soft); }
.surface-dark { background:#163944; }
.terminal-status { color:#63d8e8; font-weight:700; }
.selectable-card { cursor:pointer; }
.selectable-card:has(input:checked) { border-color:var(--broker-primary); box-shadow:0 0 0 3px var(--broker-focus); }
.sidebar-backdrop { display:none; }
.broker-mobile-menu button.sidebar-open-btn {
    width:100%; height:100%; min-height:52px; padding:7px 4px; border:0; color:#40505f;
    background:transparent; font-size:11px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
}
.broker-mobile-menu button.sidebar-open-btn i { font-size:17px; }

@media (min-width: 1200px) {
    .user-header.broker-user-header { position:fixed; top:0; left:250px; right:0; z-index:1035; }
    .dashbaord-main { padding:94px 28px 40px 278px !important; }
    .broker-content { padding:0 0 70px; }
}

@media (max-width: 991px) {
    .broker-content { padding:24px 15px 100px; }
    .broker-user-header .header-context { display:none; }
    .auth-shell { grid-template-columns:1fr; max-width:600px; }
    .auth-intro { display:none; }
    .broker-admin .content-body { padding-left:0; }
    .admin-command-grid { grid-template-columns:1fr; }
    .public-nav .navbar-collapse { padding:12px 0 6px; }
    .public-nav .navbar-nav { align-items:stretch !important; }
    .public-nav .nav-link { padding:11px 6px; }
    .public-nav .btn { width:100%; margin:7px 0 0 !important; }
}
@media (max-width: 575px) {
    .auth-broker-body { display:flex; align-items:center; justify-content:center; padding:16px; }
    .auth-shell { width:calc(100vw - 32px); max-width:100%; min-width:0; }
    .auth-form { width:100%; min-width:0; padding:30px 22px; }
    .auth-form form,.auth-form .input-group,.auth-form .form-control { min-width:0; max-width:100%; }
    .broker-panel { padding:17px; border-radius:13px; }
    .broker-form-grid { grid-template-columns:1fr; }
    html,body { max-width:100%; overflow-x:clip; }
    .public-hero { padding:70px 0 60px; }
    .public-hero * { box-sizing:border-box; }
    .public-hero .container { width:100%; max-width:100%; padding-left:18px; padding-right:18px; overflow:visible; }
    .public-hero .row { margin-left:0; margin-right:0; }
    .public-hero .row > * { flex:0 0 100% !important; width:100% !important; max-width:100% !important; min-width:0; padding-left:0; padding-right:0; }
    .public-hero h1 { width:100% !important; max-width:100% !important; font-size:clamp(2rem,10.2vw,2.55rem) !important; line-height:1.08; letter-spacing:-.035em; white-space:normal !important; overflow-wrap:normal; word-break:normal !important; }
    .public-hero p { width:100% !important; max-width:100% !important; white-space:normal !important; overflow-wrap:break-word; }
    .public-hero .hero-actions { width:100%; display:grid !important; grid-template-columns:1fr; }
    .public-hero .hero-actions .btn { width:100%; max-width:100%; min-height:48px; white-space:normal; }
    .public-hero .hero-trust { display:grid !important; grid-template-columns:1fr; gap:12px !important; }
    .hero-terminal { max-width:100%; padding:20px; }
    .public-broker-body .row.g-5 { --bs-gutter-x:1.5rem; }
    .public-page-header { align-items:flex-start; flex-direction:column; }
    .public-page-header nav { display:flex; flex-wrap:wrap; gap:12px; }
    .public-page-main { margin:24px auto; }
    .broker-panel-title { align-items:flex-start; flex-direction:column; }
    .broker-stat-grid { grid-template-columns:1fr; }
    .broker-table td { max-width:220px; }
    .broker-field .form-control, .broker-field .form-select, .auth-form .form-control { font-size:16px; }
    .btn, button, .broker-mobile-menu a { min-height:44px; }
    .auth-form .d-flex.justify-content-between { gap:12px; flex-direction:column; }
    .standalone-broker-body { align-items:start; padding-top:20px; }
    .broker-admin .header-content { height:55px; padding:0 12px; display:flex; align-items:center; }
    .broker-admin .header .navbar { width:auto; margin-left:auto; padding:0; flex:0 0 auto; }
    .broker-admin .header .navbar-collapse { display:flex !important; }
    .broker-admin .admin-header-context,
    .broker-admin .visit-platform-link,
    .broker-admin .admin-profile-text { display:none !important; }
    .broker-admin .header-right { width:auto; margin-left:auto; }
    .broker-admin .admin-profile { min-width:44px; min-height:44px; padding:5px; justify-content:center; }
    .admin-mobile-menu { width:44px; height:44px; display:grid; place-items:center; flex:0 0 44px; border:1px solid var(--broker-border); border-radius:9px; color:var(--broker-primary); background:#fff; font-size:18px; }
    .admin-mobile-brand { display:flex; align-items:center; min-width:0; margin-left:10px; }
    .admin-mobile-brand img { width:108px; max-height:34px; object-fit:contain; }
    .broker-admin .admin-content { padding:16px 14px 70px; }
    .admin-command-hero { align-items:flex-start; flex-direction:column; padding:22px 20px; }.command-status{width:100%;min-width:0}.admin-quick-grid,.hub-links{grid-template-columns:1fr}.admin-kpi-grid{grid-template-columns:1fr 1fr}.admin-kpi-grid .broker-stat{min-height:115px;padding:15px}.admin-kpi-grid .stat-value{font-size:19px}
    .broker-admin .admin-content > .d-flex:first-child { align-items:flex-start !important; flex-wrap:wrap; gap:10px; }
    .broker-admin .admin-content > .d-flex:first-child .badge { margin-left:auto; }
    .broker-admin #admin-sidebar { z-index:1052; }
    .broker-admin.menu-toggle #admin-sidebar { left:0 !important; }
    .broker-admin.menu-toggle .admin-sidebar-backdrop { display:block; position:fixed; inset:0; z-index:1051; border:0; background:rgba(16,39,51,.52); }
    body.admin-sidebar-open { overflow:hidden; }
}

@media (max-width: 1199px) {
    .impersonation-banner{position:relative;inset:auto;flex-wrap:wrap;padding:9px 14px}.impersonation-banner+ .sidebar-backdrop + .broker-user-sidebar{top:0}.impersonation-banner~.dashbaord-main .broker-user-header{top:0}
    .user-header.broker-user-header { position:sticky; top:0; z-index:1035; }
    .user-sidebar.broker-user-sidebar { position:fixed; top:0; bottom:0; left:0; height:100dvh; transform:translateX(-110%); transition:transform .2s ease; }
    .user-sidebar.broker-user-sidebar.active { transform:translateX(0); }
    body.sidebar-open { overflow:hidden; }
    body.sidebar-open .sidebar-backdrop { display:block; position:fixed; inset:0; z-index:1040; border:0; background:rgba(16,39,51,.52); }
    .dashbaord-main { padding:0 !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
