/* V3.1.1 — semantic contrast, component readability and mobile shell closure. */
:root.release-3-premium[data-bt-theme="light"] {
  --v311-canvas:#f4f8fc;
  --v311-surface:#ffffff;
  --v311-surface-alt:#eef4f9;
  --v311-surface-elevated:#e4edf5;
  --v311-text:#10233b;
  --v311-muted:#405970;
  --v311-border:#657c92;
  --v311-focus:#075fba;
  --v311-selected:#d9edff;
  --v311-input:#ffffff;
  --v311-overlay:rgba(8,22,38,.58);
  --v311-disabled-bg:#e4ebf1;
  --v311-disabled-text:#4d6275;
  --v311-success-bg:#d9f4e5;
  --v311-success-text:#0b5a2b;
  --v311-warning-bg:#fff0c2;
  --v311-warning-text:#674000;
  --v311-error-bg:#ffe4e6;
  --v311-error-text:#7f1d1d;
}

:root.release-3-premium[data-bt-theme="dark"] {
  --v311-canvas:#07111c;
  --v311-surface:#0f1d2b;
  --v311-surface-alt:#16283a;
  --v311-surface-elevated:#20374c;
  --v311-text:#f2f7fb;
  --v311-muted:#b5c5d5;
  --v311-border:#718da8;
  --v311-focus:#71d7ff;
  --v311-selected:#173f60;
  --v311-input:#0b1723;
  --v311-overlay:rgba(0,5,10,.78);
  --v311-disabled-bg:#243241;
  --v311-disabled-text:#b8c5d1;
  --v311-success-bg:#123c2a;
  --v311-success-text:#a9efc7;
  --v311-warning-bg:#4a3512;
  --v311-warning-text:#ffe09a;
  --v311-error-bg:#4d2225;
  --v311-error-text:#ffc2c2;
}

:root.release-3-premium[data-bt-theme] {
  --bg:var(--v311-canvas);
  --panel:var(--v311-surface);
  --panel2:var(--v311-surface-alt);
  --ink:var(--v311-text);
  --muted:var(--v311-muted);
  --line:var(--v311-border);
  --r3-bg:var(--v311-canvas);
  --r3-panel:var(--v311-surface);
  --r3-panel-soft:var(--v311-surface-alt);
  --r3-text:var(--v311-text);
  --r3-muted:var(--v311-muted);
  --r3-line:var(--v311-border);
  color:var(--v311-text);
  background:var(--v311-canvas);
}

:root.release-3-premium[data-bt-theme] body,
:root.release-3-premium[data-bt-theme] .app-shell { color:var(--v311-text); background:var(--v311-canvas); }
:root.release-3-premium[data-bt-theme] :is(.card,.item,.progress-card,.student-overview-card,.modal-card,.library-card,.recommendation-card,.history-group,.network-list-item) {
  color:var(--v311-text);
  background:var(--v311-surface);
  border-color:var(--v311-border);
}
:root.release-3-premium[data-bt-theme] :is(input,select,textarea) { color:var(--v311-text); background:var(--v311-input); border-color:var(--v311-border); }
:root.release-3-premium[data-bt-theme] :is(.muted,.small.muted,.history-note) { color:var(--v311-muted); }
:root.release-3-premium[data-bt-theme] :is(button,a,input,select,textarea):focus-visible { outline:3px solid var(--v311-focus); outline-offset:2px; }
:root.release-3-premium[data-bt-theme] .btn:disabled { color:var(--v311-disabled-text); background:var(--v311-disabled-bg); opacity:1; }
:root.release-3-premium[data-bt-theme] .notice.success { color:var(--v311-success-text); background:var(--v311-success-bg); }
:root.release-3-premium[data-bt-theme] .notice.error { color:var(--v311-error-text); background:var(--v311-error-bg); }

:root.release-3-premium[data-bt-theme] .exercise-network-canvas { color:var(--v311-text); background:var(--v311-surface-alt); border-color:var(--v311-border); }
:root.release-3-premium[data-bt-theme] .exercise-network-canvas svg { color:var(--v311-text); }
:root.release-3-premium[data-bt-theme] .network-node rect { fill:var(--v311-surface); stroke:var(--v311-border); }
:root.release-3-premium[data-bt-theme] .network-node text { fill:var(--v311-text); }
:root.release-3-premium[data-bt-theme] .network-node:hover rect,
:root.release-3-premium[data-bt-theme] .network-node:focus rect { fill:var(--v311-selected); stroke:var(--v311-focus); }
:root.release-3-premium[data-bt-theme] .exercise-network-layout > aside,
:root.release-3-premium[data-bt-theme] .network-relation-group,
:root.release-3-premium[data-bt-theme] .network-related-row { color:var(--v311-text); background:var(--v311-surface); border-color:var(--v311-border); }
.network-relation-sections { display:grid; gap:10px; margin:14px 0; }
.network-relation-group { border:1px solid var(--line); border-radius:12px; padding:10px; }
.network-relation-group h4 { display:flex; justify-content:space-between; gap:8px; margin:0 0 8px; }
.network-related-list { display:grid; gap:8px; }
.network-related-row { display:grid; grid-template-columns:72px minmax(0,1fr) auto; align-items:center; gap:9px; border:1px solid var(--line); border-radius:10px; padding:7px; }
.network-related-select { display:contents; color:inherit; }
.network-related-thumb { width:72px; aspect-ratio:2/1; border-radius:7px; overflow:hidden; background:#0a2742; }
.network-related-thumb svg { width:100%; height:100%; display:block; }
.network-related-copy { min-width:0; text-align:left; }
.network-related-copy b,.network-related-copy span { display:block; overflow-wrap:anywhere; }
.network-empty { color:var(--muted); padding:5px 0; }

:root.release-3-premium[data-bt-theme] .history-group > summary,
:root.release-3-premium[data-bt-theme] .history-group[open] > summary,
:root.release-3-premium[data-bt-theme] .history-session-head { color:var(--v311-text); background:var(--v311-surface-alt); border-color:var(--v311-border); }
:root.release-3-premium[data-bt-theme] .history-result { color:var(--v311-focus); }

.v311-weight-total { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:8px; color:var(--muted); }
.v311-weight-total output { color:var(--ink); font-weight:900; }
.v311-weight-total.is-invalid output { color:var(--v311-error-text); }
.v311-weight-error:empty { display:none; }
.v311-weight-error { flex-basis:100%; color:var(--v311-error-text); font-weight:700; }

@media (max-width:800px), (max-device-width:800px) {
  html,body { min-width:0; width:100%; }
  body,.app-shell,.top,.topin,.wrap,#coachView,#studentView,#coachView>.grid,#studentView>.grid { max-width:100%; min-width:0; }
  .topin>*,:is(#coachView,#studentView) :is(.card,.row,.actions,.field,.list,.item,.metrics,.library-grid,.exercise-network-layout,.exercise-network-toolbar) { min-width:0; max-width:100%; }
  #coachView>.section-tabs,#studentView>.section-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; min-width:0; }
  #coachView>.section-tabs .btn,#studentView>.section-tabs .btn { min-width:0; width:100%; white-space:normal; overflow-wrap:anywhere; line-height:1.2; }
  .brand,.bt-brand-lockup,.header-actions,.global-rating { min-width:0; max-width:100%; }
  .exercise-network-layout { grid-template-columns:minmax(0,1fr); }
  .exercise-network-canvas { width:100%; max-width:100%; overflow:auto; }
  .network-related-row { grid-template-columns:64px minmax(0,1fr); }
  .network-related-edit { grid-column:2; justify-self:start; }
}

@media (max-width:360px) {
  #coachView>.section-tabs,#studentView>.section-tabs { grid-template-columns:minmax(0,1fr); }
  .topin,.wrap { padding-inline:10px; }
}
