:root {
  --bg:#07111f;
  --bg2:#091827;
  --panel:#0d1d2d;
  --panel-2:#102538;
  --line:#1c3a50;
  --line-strong:#285a74;
  --text:#eef8ff;
  --muted:#8ea7b9;
  --cyan:#20c7f2;
  --green:#10d6a0;
  --amber:#f5aa32;
  --red:#ff5f73;
  --magenta:#ba79ff;
  --blue:#4b82ff;
  --od:#ff784f;
  --of:#12d7a0;
  --ox:#22bfe8;
  --shadow:0 12px 30px rgba(0,0,0,.22);
}

[data-theme="day"],
[data-theme="paper"],
[data-theme="harbor-light"],
[data-theme="frost"] {
  --bg:#edf4f7;
  --bg2:#e6f0f4;
  --panel:#ffffff;
  --panel-2:#f3f8fa;
  --line:#c7d9e2;
  --line-strong:#92b8c9;
  --text:#0a2536;
  --muted:#587183;
  --cyan:#007fa6;
  --green:#008f69;
  --amber:#b96d00;
  --red:#d72d4d;
  --magenta:#7847bf;
  --blue:#205cca;
  --shadow:0 10px 24px rgba(26,67,87,.10);
}

* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { min-width:320px; background:var(--bg); }
body {
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:
    linear-gradient(180deg,rgba(32,199,242,.035),transparent 300px),
    var(--bg);
  color:var(--text);
  font-family:Rajdhani,Arial,sans-serif;
  font-size:15px;
}
button,input,select { font:inherit; }
button { letter-spacing:0; }

.page-shell { width:min(1760px,100%); margin:0 auto; padding:14px; }
.module-head {
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 18px;
  border:1px solid var(--line);
  border-left:4px solid var(--cyan);
  background:var(--panel);
  box-shadow:var(--shadow);
}
.eyebrow,.panel-kicker,.control-label,.field-control>span,.compact-select>span {
  font:700 10px/1.2 "JetBrains Mono",monospace;
  text-transform:uppercase;
  color:var(--muted);
}
.eyebrow { color:var(--cyan); letter-spacing:1.5px; }
.module-head h1 { margin:4px 0 2px; font-size:32px; line-height:1; letter-spacing:0; }
.module-head p { margin:0; color:var(--muted); font-size:15px; }
.head-status { display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.sync-state {
  height:38px;
  display:flex;
  gap:8px;
  align-items:center;
  padding:0 11px;
  border:1px solid var(--line);
  background:var(--panel-2);
  font:700 12px "JetBrains Mono",monospace;
}
.sync-state.live { color:var(--green); border-color:rgba(16,214,160,.45); }
.sync-state.error { color:var(--red); border-color:rgba(255,95,115,.45); }
.status-dot { width:8px; height:8px; border-radius:50%; background:var(--amber); box-shadow:0 0 10px currentColor; }
.live .status-dot { background:var(--green); }
.error .status-dot { background:var(--red); }
.status-meta { text-align:right; }
.status-meta span { display:block; color:var(--muted); font-size:11px; }
.status-meta b { display:block; font:600 12px "JetBrains Mono",monospace; }
.icon-btn,.text-btn {
  border:1px solid var(--line);
  color:var(--text);
  background:var(--panel-2);
  cursor:pointer;
  transition:border-color .18s,color .18s,transform .18s;
}
.icon-btn { width:38px; height:38px; display:grid; place-items:center; padding:0; }
.icon-btn:hover,.text-btn:hover { color:var(--cyan); border-color:var(--cyan); }
.icon-btn:active,.text-btn:active { transform:translateY(1px); }
.icon-btn.spinning i { animation:spin .8s linear infinite; }

.control-band {
  margin-top:10px;
  display:grid;
  grid-template-columns:auto auto minmax(132px,1fr) minmax(132px,1fr) minmax(145px,.85fr) auto;
  gap:10px;
  align-items:end;
  padding:11px 12px;
  border:1px solid var(--line);
  background:var(--panel);
}
.control-group,.field-control { display:grid; gap:5px; min-width:0; }
.segmented { display:flex; height:40px; border:1px solid var(--line); background:var(--bg2); overflow:hidden; }
.segmented button {
  min-width:48px;
  height:100%;
  padding:0 11px;
  border:0;
  border-right:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  font-weight:700;
  cursor:pointer;
}
.segmented button:last-child { border-right:0; }
.segmented button:hover { color:var(--text); background:rgba(32,199,242,.06); }
.segmented button.active { color:var(--text); background:rgba(32,199,242,.16); box-shadow:inset 0 -3px var(--cyan); }
.vessel-dot { width:7px; height:7px; display:inline-block; border-radius:50%; margin-right:4px; }
.vessel-dot.od { background:var(--od); }.vessel-dot.of { background:var(--of); }.vessel-dot.ox { background:var(--ox); }
.field-control input,.field-control select,.compact-select select {
  width:100%;
  height:40px;
  border:1px solid var(--line);
  background:var(--bg2);
  color:var(--text);
  padding:0 10px;
  outline:0;
}
.field-control input:focus,.compact-select select:focus { border-color:var(--cyan); box-shadow:0 0 0 2px rgba(32,199,242,.10); }
.input-unit { position:relative; }
.input-unit input { padding-right:48px; font-family:"JetBrains Mono",monospace; }
.input-unit em { position:absolute; right:9px; top:50%; transform:translateY(-50%); color:var(--muted); font:600 10px "JetBrains Mono",monospace; font-style:normal; }
.output-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.text-btn { height:40px; padding:0 12px; display:inline-flex; align-items:center; gap:7px; font-weight:700; }
.text-btn.primary-output { border-color:rgba(32,199,242,.65); color:var(--cyan); background:rgba(32,199,242,.10); }
.text-btn.monthly-output { border-color:rgba(245,165,36,.72); color:#ffd07a; background:linear-gradient(135deg,rgba(245,165,36,.15),rgba(32,199,242,.07)); text-decoration:none; }
.text-btn.monthly-output:hover { color:#fff2c8; border-color:#ffd07a; box-shadow:0 0 0 3px rgba(245,165,36,.09); }
.text-btn[disabled] { opacity:.55; cursor:wait; }

.alert-strip {
  margin-top:10px;
  min-height:48px;
  padding:9px 12px;
  display:flex;
  gap:10px;
  align-items:center;
  border:1px solid rgba(245,170,50,.45);
  border-left:4px solid var(--amber);
  background:rgba(245,170,50,.08);
}
.alert-strip>i { color:var(--amber); }
.alert-strip strong { display:block; }
.alert-strip span { display:block; color:var(--muted); font-size:13px; }

.report-overview {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);
  gap:10px;
  margin-top:10px;
}
.report-watch,.ytd-panel {
  min-width:0;
  min-height:156px;
  border:1px solid var(--line);
  background:var(--panel);
  box-shadow:var(--shadow);
}
.report-watch { padding:13px 15px; border-left:4px solid var(--cyan); }
.report-watch-head,.ytd-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.report-watch h2 { margin:3px 0 0; font-size:22px; }
.report-status {
  flex:0 0 auto;
  min-width:92px;
  padding:6px 10px;
  border:1px solid var(--line-strong);
  color:var(--muted);
  background:var(--panel-2);
  text-align:center;
  font:700 11px "JetBrains Mono",monospace;
}
.report-status.high-alert { color:#fff; border-color:var(--red); background:var(--red); }
.report-status.watch { color:#1a1200; border-color:var(--amber); background:var(--amber); }
.report-status.normal { color:#002b20; border-color:var(--green); background:var(--green); }
.report-headline { display:block; margin-top:12px; color:var(--text); font-size:17px; line-height:1.25; }
.report-alerts { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.report-alert {
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid var(--line);
  background:var(--panel-2);
  color:var(--muted);
  font:600 11px "JetBrains Mono",monospace;
}
.report-alert i { color:var(--amber); }
.report-rule { margin-top:10px; color:var(--cyan); font:600 10px "JetBrains Mono",monospace; }
.ytd-panel { padding:13px 15px; border-top:3px solid var(--green); }
.ytd-head { color:var(--muted); font:700 11px "JetBrains Mono",monospace; }
.ytd-head i { color:var(--green); }
.ytd-head small { font-size:10px; }
.ytd-total { display:block; margin-top:11px; color:var(--text); font:700 30px/1 "JetBrains Mono",monospace; }
.ytd-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:16px; }
.ytd-grid span { display:block; color:var(--muted); font:700 9px "JetBrains Mono",monospace; }
.ytd-grid b { display:block; margin-top:5px; color:var(--text); font:700 13px "JetBrains Mono",monospace; }
.ytd-grid>div:first-child b { color:var(--magenta); }
.ytd-grid>div:nth-child(2) b { color:var(--green); }
.ytd-grid>div:last-child b { color:var(--blue); }
.cost-estimate { display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.cost-estimate span { display:block; color:var(--muted); font:700 8px "JetBrains Mono",monospace; }
.cost-estimate b { display:block; margin-top:4px; color:var(--cyan); font:700 14px "JetBrains Mono",monospace; }
.cost-estimate>div:nth-child(2) b { color:var(--green); font-size:12px; }
.cost-estimate small { grid-column:1 / -1; color:var(--muted); font:500 9px "JetBrains Mono",monospace; }

.kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:10px; }
.kpi-card,.vessel-card,.panel {
  border:1px solid var(--line);
  background:var(--panel);
  box-shadow:var(--shadow);
}
.kpi-card { min-height:112px; padding:13px 14px; border-top:3px solid var(--accent,var(--cyan)); }
.kpi-icon { color:var(--accent,var(--cyan)); font-size:15px; }
.kpi-label { margin-left:7px; color:var(--muted); text-transform:uppercase; font-size:11px; font-weight:700; }
.kpi-value { display:block; margin-top:11px; color:var(--accent,var(--text)); font:700 clamp(20px,2vw,29px)/1 "JetBrains Mono",monospace; }
.kpi-note { margin-top:7px; color:var(--muted); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.chart-grid { display:grid; gap:10px; margin-top:10px; }
.primary-charts { grid-template-columns:1.35fr 1fr; }
.secondary-charts { grid-template-columns:1.2fr .8fr; }
.panel { min-width:0; }
.panel-head {
  min-height:61px;
  padding:10px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid var(--line);
}
.panel-head h2 { margin:2px 0 0; font-size:19px; line-height:1; letter-spacing:0; }
.panel-kicker { color:var(--cyan); letter-spacing:1px; }
.panel-chip {
  padding:5px 8px;
  border:1px solid var(--line);
  background:var(--panel-2);
  color:var(--muted);
  font:600 10px "JetBrains Mono",monospace;
  white-space:nowrap;
}
.chart-frame { position:relative; height:300px; padding:12px; }
.chart-frame.compact { height:255px; }

.vessel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:10px; }
.vessel-card { min-height:128px; padding:12px 13px; border-left:4px solid var(--vessel-color,var(--cyan)); }
.vessel-card-head { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.vessel-card h3 { margin:0; font-size:19px; color:var(--vessel-color,var(--text)); }
.vessel-card-head span { color:var(--muted); font:600 10px "JetBrains Mono",monospace; }
.vessel-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:12px; border-top:1px solid var(--line); }
.vessel-metric { padding:9px 8px 0; border-right:1px solid var(--line); min-width:0; }
.vessel-metric:first-child { padding-left:0; }
.vessel-metric:last-child { border-right:0; }
.vessel-metric span { display:block; color:var(--muted); text-transform:uppercase; font-size:10px; }
.vessel-metric b { display:block; margin-top:3px; font:600 14px "JetBrains Mono",monospace; overflow:hidden; text-overflow:ellipsis; }

.composition-body { min-height:255px; display:grid; grid-template-columns:minmax(180px,.75fr) minmax(210px,1fr); align-items:center; padding:12px; gap:8px; }
.donut-frame { position:relative; height:220px; }
.composition-legend { display:grid; gap:7px; }
.legend-row { display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:8px; align-items:center; padding-bottom:6px; border-bottom:1px solid var(--line); }
.legend-swatch { width:9px; height:9px; }
.legend-row span { color:var(--muted); font-size:12px; }
.legend-row b { font:600 11px "JetBrains Mono",monospace; }

.records-panel { margin-top:10px; }
.records-head { align-items:flex-end; }
.record-tools { display:flex; gap:8px; align-items:end; }
.compact-select { display:flex; gap:6px; align-items:center; }
.compact-select select { height:31px; width:110px; }
.table-wrap { overflow:auto; max-height:540px; scrollbar-color:var(--line-strong) var(--bg2); }
table { width:100%; min-width:1180px; border-collapse:separate; border-spacing:0; }
th {
  position:sticky;
  top:0;
  z-index:2;
  padding:9px 10px;
  border-bottom:1px solid var(--line-strong);
  background:var(--panel-2);
  color:var(--muted);
  text-align:left;
  text-transform:uppercase;
  font:700 10px "JetBrains Mono",monospace;
}
td { padding:8px 10px; border-bottom:1px solid var(--line); color:var(--text); }
tbody tr:hover td { background:rgba(32,199,242,.045); }
td.num,th.num { text-align:right; font-family:"JetBrains Mono",monospace; }
.cell-main { display:block; font-weight:700; }
.cell-sub { display:block; color:var(--muted); font-size:11px; }
.vessel-code { display:inline-flex; min-width:30px; height:23px; align-items:center; justify-content:center; border:1px solid currentColor; font:700 10px "JetBrains Mono",monospace; }
.vessel-code.od { color:var(--od); }.vessel-code.of { color:var(--of); }.vessel-code.ox { color:var(--ox); }
.empty-row td { padding:32px; text-align:center; color:var(--muted); }

.method-bar {
  margin:10px 0 4px;
  padding:9px 11px;
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--muted);
  font:500 10px "JetBrains Mono",monospace;
}
.method-bar i { color:var(--cyan); margin-right:5px; }

.loading-layer { position:fixed; inset:0; z-index:5000; display:grid; place-items:center; background:rgba(3,10,18,.66); backdrop-filter:blur(3px); }
.loading-box { min-width:270px; display:grid; justify-items:center; gap:8px; padding:24px; border:1px solid var(--line-strong); background:var(--panel); box-shadow:var(--shadow); }
.loading-box i { color:var(--cyan); font-size:24px; animation:spin .9s linear infinite; }
.loading-box span { color:var(--muted); }
@keyframes spin { to { transform:rotate(360deg); } }

.decision-grid {
  display:grid;
  grid-template-columns:1.08fr 1fr 1.05fr;
  gap:10px;
  margin-top:10px;
}
.endurance-grid,.efficiency-grid,.action-list { display:grid; gap:8px; padding:10px; }
.endurance-vessel,.efficiency-vessel {
  min-width:0;
  padding:9px 10px;
  border:1px solid var(--line);
  background:var(--panel-2);
}
.endurance-vessel { border-left:3px solid var(--vessel,var(--cyan)); }
.decision-vessel-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.decision-vessel-head strong { font-size:13px; }
.decision-vessel-head span { color:var(--muted); font:600 9px "JetBrains Mono",monospace; text-align:right; }
.resource-row {
  display:grid;
  grid-template-columns:104px 48px minmax(0,1fr) 62px;
  gap:7px;
  align-items:center;
  min-height:28px;
  border-top:1px solid var(--line);
}
.resource-row>span { color:var(--muted); font-size:10px; }
.resource-row>b { font:700 11px "JetBrains Mono",monospace; }
.resource-row>small { color:var(--muted); font:500 8px "JetBrains Mono",monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.health-badge,.alert-severity {
  min-width:58px;
  padding:4px 5px;
  border:1px solid var(--line);
  font:700 8px "JetBrains Mono",monospace;
  text-align:center;
  font-style:normal;
}
.health-badge.normal { color:var(--green); border-color:rgba(16,214,160,.45); background:rgba(16,214,160,.08); }
.health-badge.watch,.alert-severity.watch { color:var(--amber); border-color:rgba(245,170,50,.5); background:rgba(245,170,50,.08); }
.health-badge.critical,.alert-severity.critical { color:#ff6c7d; border-color:rgba(255,95,115,.55); background:rgba(255,95,115,.09); }
.health-badge.unknown { color:var(--muted); }
.efficiency-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
.efficiency-metrics>div { min-width:0; padding:7px; border:1px solid var(--line); background:var(--bg2); }
.efficiency-metrics span,.efficiency-metrics small { display:block; color:var(--muted); font-size:8px; }
.efficiency-metrics b { display:block; margin:3px 0; color:var(--cyan); font:700 11px "JetBrains Mono",monospace; overflow:hidden; text-overflow:ellipsis; }
.balance-line { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:6px 0; border-bottom:1px solid var(--line); }
.balance-line span { color:var(--muted); font-size:9px; }
.balance-line b { font:600 9px "JetBrains Mono",monospace; text-align:right; }
.quality-note { margin-top:7px; padding:7px 8px; color:var(--amber); background:rgba(245,170,50,.07); border-left:3px solid var(--amber); font-size:9px; }
.quality-note i { margin-right:6px; }
.correlation-line { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.correlation-line>span { display:inline-flex; align-items:center; gap:5px; padding:4px 6px; border:1px solid var(--line); background:var(--bg2); color:var(--muted); font-size:8px; }
.correlation-line b { color:var(--cyan); font:700 8px "JetBrains Mono",monospace; }
.correlation-line small { color:var(--muted); font:500 7px "JetBrains Mono",monospace; }
.correlation-line.empty { color:var(--muted); font-size:8px; }
.action-list { max-height:340px; overflow:auto; scrollbar-color:var(--line-strong) var(--bg2); }
.action-item {
  width:100%;
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  gap:4px 8px;
  padding:9px;
  border:1px solid var(--line);
  background:var(--panel-2);
  color:var(--text);
  text-align:left;
}
.action-item:hover { border-color:var(--cyan); transform:translateY(-1px); }
.action-item strong { align-self:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.action-item small,.action-owner { grid-column:2; color:var(--muted); font:500 9px "JetBrains Mono",monospace; }
.action-owner i { color:var(--cyan); margin-right:5px; }
.decision-empty { padding:20px 10px; color:var(--muted); text-align:center; font-size:12px; }
.decision-empty i { color:var(--green); margin-right:6px; }

.consumption-ask { margin-top:10px; padding:12px; border-left:4px solid var(--cyan); }
.ask-head { display:flex; align-items:center; gap:10px; }
.ask-avatar { width:46px; height:46px; flex:0 0 auto; overflow:hidden; border:1px solid var(--line-strong); background:var(--bg2); }
.ask-avatar img { width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.ask-head h2 { margin:1px 0 2px; font-size:19px; }
.ask-head p { margin:0; color:var(--muted); font-size:11px; }
.ask-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.ask-chips button { min-height:30px; padding:5px 9px; color:var(--muted); background:var(--panel-2); border:1px solid var(--line); font-size:10px; }
.ask-chips button:hover { color:var(--cyan); border-color:var(--cyan); }
.ask-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; margin-top:8px; }
.ask-form input { width:100%; height:40px; padding:0 11px; border:1px solid var(--line); background:var(--bg2); color:var(--text); outline:0; }
.ask-form input:focus { border-color:var(--cyan); box-shadow:0 0 0 2px rgba(32,199,242,.10); }
.ask-answer { margin-top:9px; padding:10px 12px; border:1px solid rgba(16,214,160,.35); background:rgba(16,214,160,.06); }
.ask-answer strong { color:var(--green); font-size:10px; letter-spacing:1px; }
.ask-answer p { margin:5px 0; line-height:1.45; }
.ask-answer small { color:var(--muted); font:500 9px "JetBrains Mono",monospace; }
.ask-answer small i { margin-right:5px; }

.action-dialog { width:min(760px,calc(100vw - 24px)); padding:0; border:1px solid var(--line-strong); background:transparent; color:var(--text); }
.action-dialog::backdrop { background:rgba(2,8,15,.75); backdrop-filter:blur(3px); }
.action-dialog-card { padding:15px; background:var(--panel); box-shadow:var(--shadow); }
.action-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.action-dialog-head h2 { margin:2px 0 0; }
.action-dialog-detail { margin:10px 0; padding:9px 10px; border-left:3px solid var(--amber); background:var(--panel-2); color:var(--muted); }
.action-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.action-form-grid label { display:grid; gap:5px; color:var(--muted); font-size:10px; }
.action-form-grid input,.action-form-grid select,.action-form-grid textarea { width:100%; min-height:39px; padding:8px 9px; border:1px solid var(--line); background:var(--bg2); color:var(--text); outline:0; }
.action-note { grid-column:1 / -1; }
.action-dialog-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; color:var(--muted); font-size:10px; }
.action-dialog-links span { padding:5px 8px; border:1px solid var(--line); background:var(--panel-2); }
.action-dialog-links i { color:var(--cyan); margin-right:5px; }
.action-dialog-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:7px; margin-top:12px; }

@media (max-width:1360px) {
  .control-band { grid-template-columns:auto auto repeat(3,minmax(128px,1fr)); }
  .output-actions { grid-column:5; justify-content:flex-end; }
  .kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .primary-charts,.secondary-charts { grid-template-columns:1fr; }
  .decision-grid { grid-template-columns:1fr 1fr; }
  .action-panel { grid-column:1 / -1; }
  .action-list { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:none; }
}

@media (max-width:900px) {
  .page-shell { padding:10px; }
  .module-head { align-items:flex-start; }
  .module-head h1 { font-size:28px; }
  .control-band { grid-template-columns:1fr 1fr; }
  .control-group { min-width:0; }
  .vessel-control,.period-control { grid-column:span 2; }
  .density-control { grid-column:span 1; }
  .output-actions { grid-column:auto; align-self:end; }
  .report-overview { grid-template-columns:1fr; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vessel-grid { grid-template-columns:1fr; }
  .decision-grid { grid-template-columns:1fr; }
  .action-panel { grid-column:auto; }
  .action-list { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  body { font-size:14px; }
  .page-shell { padding:7px; }
  .module-head { min-height:0; padding:12px; display:block; }
  .module-head h1 { font-size:24px; }
  .module-head p { font-size:13px; }
  .head-status { margin-top:11px; display:grid; grid-template-columns:auto 1fr 38px; }
  .status-meta { text-align:left; }
  .control-band { padding:9px; gap:8px; }
  .segmented { width:100%; }
  .segmented button { min-width:0; flex:1; padding:0 7px; }
  .field-control { grid-column:span 1; }
  .density-control { grid-column:span 2; }
  .output-actions { grid-column:span 2; display:grid; grid-template-columns:1fr 1fr; }
  .text-btn { justify-content:center; }
  .kpi-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .kpi-card:last-child { grid-column:1 / -1; }
  .kpi-card { min-height:100px; padding:11px; }
  .kpi-value { font-size:20px; }
  .kpi-note { font-size:11px; }
  .panel-head { min-height:57px; padding:9px 10px; }
  .panel-head h2 { font-size:17px; }
  .chart-frame { height:260px; padding:8px; }
  .chart-frame.compact { height:235px; }
  .composition-body { grid-template-columns:1fr; }
  .donut-frame { height:200px; }
  .record-tools { align-items:flex-end; }
  .panel-chip { padding:4px 6px; }
  .compact-select span { display:none; }
  .compact-select select { width:86px; }
  .method-bar { display:grid; }
  .report-watch,.ytd-panel { min-height:0; padding:12px; }
  .report-watch h2 { font-size:19px; }
  .report-headline { font-size:15px; }
  .report-status { min-width:78px; padding:5px 7px; }
  .ytd-total { font-size:25px; }
  .ytd-grid { gap:5px; }
  .ytd-grid b { font-size:11px; }
  .resource-row { grid-template-columns:88px 42px minmax(0,1fr) 56px; gap:5px; }
  .resource-row>small { display:none; }
  .efficiency-metrics { grid-template-columns:1fr 1fr; }
  .consumption-ask { padding:10px; }
  .ask-head p { display:none; }
  .ask-chips { display:grid; grid-template-columns:1fr 1fr; }
  .ask-chips button:last-child { grid-column:1 / -1; }
  .ask-form { grid-template-columns:1fr 44px; }
  .ask-form .text-btn span { display:none; }
  .action-form-grid { grid-template-columns:1fr; }
  .action-note { grid-column:auto; }
  .action-dialog-actions { display:grid; grid-template-columns:1fr 1fr; }
  .action-dialog-actions .primary-output { grid-column:1 / -1; }
}

@media print {
  @page { size:A4 landscape; margin:8mm; }
  :root { --bg:#fff; --panel:#fff; --panel-2:#f5f8fa; --line:#cbd7de; --line-strong:#94aab5; --text:#092236; --muted:#536b79; --shadow:none; }
  body { background:#fff !important; color:#092236; font-size:10px; }
  .smc-standard-topbar,.control-band,.output-actions,.icon-btn,.loading-layer,.consumption-ask,.action-dialog,.action-panel { display:none !important; }
  .page-shell { width:100%; padding:0; }
  .module-head { min-height:62px; padding:8px 10px; box-shadow:none; }
  .module-head h1 { font-size:24px; }
  .module-head p { font-size:11px; }
  .kpi-grid { grid-template-columns:repeat(5,1fr); gap:5px; margin-top:6px; }
  .report-overview { grid-template-columns:1.35fr .65fr; gap:5px; margin-top:6px; break-inside:avoid; }
  .decision-grid { grid-template-columns:1fr 1fr; gap:5px; margin-top:6px; break-inside:avoid; }
  .endurance-grid,.efficiency-grid { padding:5px; gap:4px; }
  .endurance-vessel,.efficiency-vessel { padding:5px 6px; }
  .resource-row { min-height:19px; grid-template-columns:78px 38px minmax(0,1fr) 52px; }
  .resource-row>small { font-size:6px; }
  .health-badge { font-size:6px; padding:2px 3px; }
  .efficiency-metrics>div { padding:4px; }
  .balance-line { padding:3px 0; }
  .report-watch,.ytd-panel { min-height:110px; padding:8px 10px; box-shadow:none; }
  .report-watch h2 { font-size:15px; }
  .report-headline { margin-top:6px; font-size:12px; }
  .report-alerts { margin-top:6px; }
  .report-alert { min-height:24px; padding:3px 6px; font-size:8px; }
  .report-rule { margin-top:5px; font-size:8px; }
  .ytd-total { margin-top:7px; font-size:20px; }
  .ytd-grid { margin-top:10px; }
  .ytd-grid b { font-size:9px; }
  .kpi-card { min-height:72px; padding:7px 8px; box-shadow:none; }
  .kpi-value { margin-top:6px; font-size:17px; }
  .kpi-note { margin-top:4px; font-size:9px; }
  .chart-grid { gap:6px; margin-top:6px; }
  .primary-charts { grid-template-columns:1.35fr 1fr; }
  .secondary-charts { grid-template-columns:1.2fr .8fr; }
  .panel,.vessel-card { box-shadow:none; break-inside:avoid; }
  .panel-head { min-height:42px; padding:6px 8px; }
  .panel-head h2 { font-size:14px; }
  .chart-frame { height:205px; padding:6px; }
  .chart-frame.compact { height:190px; }
  .vessel-grid { gap:5px; margin-top:6px; }
  .vessel-card { min-height:88px; padding:7px 8px; }
  .vessel-card h3 { font-size:14px; }
  .vessel-metrics { margin-top:6px; }
  .vessel-metric { padding-top:5px; }
  .vessel-metric b { font-size:10px; }
  .composition-body { min-height:190px; grid-template-columns:.75fr 1fr; padding:6px; }
  .donut-frame { height:170px; }
  .records-panel { margin-top:6px; break-before:page; }
  .table-wrap { max-height:none; overflow:visible; }
  table { min-width:0; font-size:8px; }
  th { position:static; padding:5px; font-size:7px; }
  td { padding:4px 5px; }
  tr { break-inside:avoid; }
  .method-bar { margin-top:6px; font-size:7px; }
}
