/*
 * Viewport-aware density contract. Desktop work areas use their available
 * viewport with an accessible inner scroll region for genuinely long content.
 * No scale/zoom tricks, clipped fields, reduced prices or hidden business data.
 */
.economic-news-strip .economic-news-scheduled { display:none; }
.economic-news-event:focus-visible { outline:2px solid var(--news-impact-color);outline-offset:3px; }
#economicStripDetailModal .economic-language-tabs { display:flex;gap:.5rem;margin-bottom:.85rem; }
#economicStripDetailModal .economic-language-tabs button { min-height:44px;min-width:85px;padding:.45rem .8rem;border:1px solid var(--tms-border);border-radius:.7rem;color:var(--tms-text);background:var(--tms-surface-strong); }
#economicStripDetailModal .economic-language-tabs button.active { color:var(--tms-gold);border-color:var(--tms-gold); }
#economicStripDetailModal .economic-strip-detail-grid strong { font-weight:500;font-size:1rem;line-height:1.8;overflow-wrap:anywhere; }
#economicStripDetailModal [dir=rtl] { font-family:Vazirmatn,Tahoma,sans-serif; }
#economicStripDetailModal h2 { font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.5;overflow-wrap:anywhere; }
#economicStripDetailModal .economic-education-notice { margin-top:.8rem;font-size:.85rem;color:var(--tms-muted); }
.notification-panel>.notification-load-more { flex:0 0 auto;width:calc(100% - 1.5rem);min-height:44px;margin:.5rem .75rem .75rem;padding:.5rem .8rem;border:1px solid var(--tms-border);border-radius:.7rem;background:var(--tms-surface-strong);color:var(--tms-gold);font-size:.9rem; }
.notification-panel>.notification-load-more[hidden] { display:none; }
.notification-panel>.notification-load-more:disabled { opacity:.6;cursor:wait; }

/* Children of grids must be allowed to shrink; long identifiers wrap locally. */
.admin-backlog-card,.admin-backlog-card>* { min-width:0;max-width:100%; }
.admin-backlog-card :is(input,select,textarea) { width:100%;min-width:0; }
.admin-backlog-card :is(h2,h3,p,label,strong) { overflow-wrap:anywhere; }
.admin-backlog-grid,.development-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); }
.manual-wizard .wizard-summary { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;max-height:none; }
.manual-wizard .wizard-summary>div { min-width:0;padding:.65rem .8rem;border:1px solid var(--tms-border);border-radius:.8rem;background:var(--tms-surface-strong); }
.manual-wizard .wizard-summary :is(dt,dd) { overflow-wrap:anywhere; }
.manual-wizard .wizard-summary dd { margin:0; }

/* Native tablet/short-window pages use the same chaining contract. Keep
   modal/sidebar containment separate from ordinary document content. */
:is(.account-workspace,main) :is(.data-table-wrap,.table-responsive,.account-table-view,.pattern-visual-grid,.engine-wizard-summary-list,.warning-list,.rules-exceptions-list,.engine-news-list) { overscroll-behavior-y:auto; }

@media(min-width:1200px) and (min-height:700px) {
    body.tms-desktop-fit { height:100dvh;min-height:0;overflow:hidden; }
    .tms-workspace-viewport { min-height:0!important;max-height:var(--tms-workspace-height);overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;scroll-padding-block:1rem; }
    .tms-workspace-viewport:focus-visible { outline:2px solid var(--tms-gold);outline-offset:-2px; }
    /* Content panels may scroll locally, but must chain at either boundary.
       Containment here traps the wheel above an Accounts table at scrollTop=0
       while the bounded workspace (and its heading) remains far below top.
       Dialogs and navigation are separate scroll scopes and retain containment. */
    .tms-workspace-viewport :is(.data-table-wrap,.table-responsive,.account-table-view,.pattern-visual-grid,.engine-wizard-summary-list,.warning-list,.rules-exceptions-list,.engine-news-list) { overscroll-behavior-y:auto; }
    .tms-workspace-viewport:is(main),.tms-workspace-viewport>main { width:100%;max-width:none;padding:1rem 1.15rem!important; }
    /* A centered flex child taller than this bounded region starts above its
       scroll origin. Use normal flow so its first field is always reachable. */
    main.tms-workspace-viewport { display:block;align-items:initial;flex:none; }
    .tms-workspace-viewport:not([data-workspace-density="compact"]) :is(.account-hero,.page-heading,.profile-heading,.settings-hero) { margin-bottom:.8rem;padding-block:.8rem; }
    .tms-workspace-viewport:not([data-workspace-density="compact"]) :is(.account-hero,.page-heading,.profile-heading,.settings-hero) h1 { font-size:clamp(1.35rem,1.7vw,1.9rem);margin-block:.15rem; }
    .tms-workspace-viewport :is(.summary-panel,.glass-card,.chart-panel,.settings-panel) { padding:1rem; }
    .tms-workspace-viewport :is(.settings-panel-header,.settings-card>header) { margin-bottom:.8rem;padding-bottom:.7rem; }
    .tms-workspace-viewport .settings-actions { margin-top:.85rem;padding-top:.7rem; }
    .tms-workspace-viewport .manual-trade-card { min-height:0;max-width:900px;margin-inline:auto;padding:1.15rem; }
    .tms-workspace-viewport .manual-wizard-step { min-height:0;padding-block:1rem; }
    .tms-workspace-viewport .manual-wizard .wizard-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .tms-workspace-viewport .empty-state { padding:1.25rem!important; }
    .tms-workspace-viewport .mt-4 { margin-top:1rem!important; }
    .tms-workspace-viewport .mb-4 { margin-bottom:1rem!important; }
}

/* Four fullscreen layout families. Short/zoomed viewports retain native page
   scrolling, but use exactly the same width-based content grids. */
.account-shell { max-width:none; }
.account-list-heading>.account-view-controls { flex-direction:row;flex-wrap:wrap;justify-content:flex-end; }
.account-card-grid,[data-account-portfolio] .account-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.dashboard-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); }
.dashboard-shortcuts a { min-width:0; }
.dashboard-shortcuts a>i { flex-shrink:0; }
.dashboard-shortcuts strong { overflow-wrap:anywhere; }
:is(.account-workspace,main,.modal,.account-sidebar) :is(.btn,.card-action,.tms-card-toggle,.account-data-warning,.sidebar-action-button,.table-sort-button,.settings-choice,summary) { min-height:44px; }
:is(.account-workspace,main,.modal) :is(.card-action,.tms-card-toggle,.account-data-warning),.account-action-set .lifecycle-action-wrap,.compact-card-form,.account-card>footer .lifecycle-action-wrap,.account-table-actions .lifecycle-action-wrap { min-width:44px;min-height:44px;width:44px;height:44px; }
:is(.account-workspace,main,.modal) :is(.engine-action,.trade-card-icon-action,.btn-close) { min-width:44px;min-height:44px; }
.engine-trade-actions .engine-action,.engine-trade-actions form { flex:0 0 44px;width:44px; }
.engine-trade-actions .engine-action { height:44px;padding:.35rem; }
.tms-list-quick button,.tms-query-quick a,.account-view-toggle button { display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px; }
.account-view-toggle button[aria-pressed=true]>span { color:inherit; }
.final-review-actions { grid-template-columns:repeat(4,44px); }
.final-review-actions form { width:44px; }
/* Empty grid tracks are intentional: a single live trade never stretches. */
.engine-dashboard-trades .engine-trade-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.lifecycle-card-action { flex-basis:44px; }
.account-side-nav .sidebar-tree-children>a,.sidebar-tree-multilevel .sidebar-tree-children>.sidebar-tree-group>summary { min-height:44px; }
.sidebar-collapse-control { width:44px;height:44px;right:-30px; }
.account-sidebar.is-sidebar-collapsed .sidebar-collapse-control { right:-46px; }
html[dir=rtl] .sidebar-collapse-control { left:-30px;right:auto; }
html[dir=rtl] .account-sidebar.is-sidebar-collapsed .sidebar-collapse-control { left:-46px;right:auto; }
.tms-help-trigger { display:inline-grid!important;min-width:44px;min-height:44px;place-items:center;vertical-align:middle; }
.tms-help-trigger:focus-visible { outline:2px solid var(--tms-gold);outline-offset:2px; }
.tms-help-popover { max-width:min(24rem,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain; }
.tms-calculation-help { margin:.5rem 0;color:var(--tms-muted);font-size:.85rem; }
.tms-form-status { display:block;margin:.5rem 0;color:var(--tms-muted); }
form[aria-busy=true] :is(button[type=submit],input[type=submit],button:not([type])) { cursor:wait;opacity:.65; }
@media(min-width:992px) {
    /* Reserve the protruding 44px collapse handle's lane in both states,
       instead of letting it cover the first heading or form label. */
    .account-workspace:not(.no-sidebar)>main { padding-inline-start:2.5rem!important; }
    body.has-collapsed-sidebar .account-workspace:not(.no-sidebar)>main { padding-inline-start:3.5rem!important; }
}
@media(min-width:1200px) and (max-width:1599.98px) {
    .account-card-grid,[data-account-portfolio] .account-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(min-width:768px) and (max-width:1199.98px) {
    .engine-dashboard-trades .engine-trade-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .account-card-grid,[data-account-portfolio] .account-card-grid,.dashboard-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .account-shell { padding:1rem!important; }
    .account-portfolio-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767.98px) {
    .account-card-grid,[data-account-portfolio] .account-card-grid,.dashboard-shortcuts { grid-template-columns:minmax(0,1fr); }
    .dashboard-shortcuts { gap:.6rem; }
    .dashboard-shortcuts a { padding:.8rem; }
    /* Navbar dimensions belong exclusively to top-navigation.css. Shared
       content density must not override its approved compact mobile layout. */
    .engine-dashboard-trades .engine-trade-grid { grid-template-columns:minmax(0,1fr); }
}

@media(max-width:991.98px) {
    /* Reserve a real heading cell for navigation; no fixed button may cover
       a form or a table while the user scrolls the native mobile document. */
    .tms-sidebar-entry-heading { display:grid!important;grid-template-columns:minmax(0,1fr) 44px;align-items:center; }
    .tms-sidebar-entry-heading>:not(.account-sidebar-toggle) { grid-column:1;min-width:0; }
    .tms-sidebar-entry-heading>.account-sidebar-toggle { display:grid;position:static;grid-column:2;grid-row:1;width:44px;height:44px;min-width:44px;margin:0;align-self:center;box-shadow:none; }
    .tms-sidebar-entry-heading>.hero-actions { grid-column:1/-1; }
    .settings-hero.tms-sidebar-entry-heading>.bi { display:none; }
    .profile-heading.tms-sidebar-entry-heading>.account-sidebar-toggle { grid-row:1/span 2; }
    .account-workspace>main,.economic-workspace,main.manual-trade-shell { padding:.75rem!important; }
    :is(.settings-hero,.account-hero,.page-heading,.profile-heading) { margin-bottom:.7rem;gap:.65rem; }
    .settings-workspace .settings-hero,.settings-workspace .settings-panel,.manual-trade-card { padding:.85rem!important; }
    .settings-panel-header { margin-bottom:.75rem;padding-bottom:.65rem;gap:.6rem; }
    .settings-section-grid,.timed-notification-settings,.personalization-groups { gap:.65rem; }
    .settings-section-grid>section,.timed-notification-card,.site-notification-group { padding:.75rem; }
    .manual-form-heading { margin-bottom:.75rem; }
    .manual-wizard-step { min-height:0!important;padding-block:1rem!important; }
    .manual-submit-row { margin-top:.85rem;padding-top:.75rem; }
    .manual-wizard .wizard-progress { margin-bottom:.8rem!important; }
    :is(.account-workspace,main.manual-trade-shell) :is(.form-control,.form-select) { min-height:44px;font-size:1rem; }
    :is(.account-workspace,main.manual-trade-shell) :is(.btn,.settings-choice,summary) { min-height:44px; }
    :is(.settings-workspace,.profile-shell) h1 { font-size:1.35rem; }
    .settings-actions { margin-top:.8rem;padding-top:.7rem; }
    .admin-page .filter-row>* { min-width:0;max-width:100%;flex:1 1 9rem; }
    .admin-page .admin-backlog-card { padding:.8rem; }
}
@media(max-width:374.98px) {
    .manual-wizard .wizard-summary { grid-template-columns:repeat(2,minmax(0,1fr));font-size:.86rem; }
}
@media print {
    body.tms-desktop-fit { height:auto;overflow:visible; }
    .tms-workspace-viewport { max-height:none!important;overflow:visible!important; }
}
