:root {
  color-scheme: light;
  font-family: Inter, system-ui, sans-serif;
  --tmt-navy: #17312f;
  --tmt-green: #0b6b5c;
  --tmt-green-active: #0f806e;
  --tmt-mint: #edf6f3;
  --tmt-app-bg: #f6f7f8;
  --tmt-surface: #ffffff;
  --tmt-text: #1e2933;
  --tmt-text-secondary: #66737f;
  --tmt-border: #dce2e5;
  --tmt-success: #17835f;
  --tmt-warning: #b7791f;
  --tmt-danger: #c43d3d;
  --tmt-info: #3274a8;
  --tmt-neutral: #65758b;
  color: var(--tmt-text);
  background: var(--tmt-app-bg);
}
* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }
body { margin: 0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.app-header {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 54px;
  padding: 9px 24px;
  color: white;
  background: #17312f;
}
.app-identity { display:inline-flex; align-items:center; gap:9px; white-space:nowrap; }
.app-identity img { display:block; width:32px; height:32px; object-fit:contain; flex:0 0 auto; }
.global-command { width:min(420px,42vw); margin-left:12px; }
.global-command input { width:100%; border:1px solid #ffffff33; border-radius:6px; padding:8px 10px; background:#ffffff12; color:#dce8e8; font:inherit; }
.global-command input::placeholder { color:#b7c8c9; }
.app-header #coreVersion { margin-left:auto; color:#d3e2df; font-size:12px; white-space:nowrap; }
#session { display:flex; align-items:center; gap:10px; font-size:12px; }
#session span { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#session button { border:1px solid #ffffff55; border-radius:6px; padding:5px 8px; background:transparent; color:#fff; cursor:pointer; }
.module-navigation {
  min-height: 44px;
  display: flex;
  gap: 2px;
  align-items: center;
  max-width: 100%;
  overflow: hidden;
  padding: 0 18px;
  background: var(--tmt-surface);
  border-bottom: 1px solid var(--tmt-border);
}
.module-navigation button {
  flex:1 1 auto;
  min-width:0;
  border: 0;
  border-bottom:3px solid transparent;
  background: transparent;
  padding: 11px 8px 8px;
  color:var(--tmt-text);
  font-size:12px;
  line-height:1.15;
  cursor: pointer;
}
.module-navigation button:hover,.module-navigation button:focus-visible { background:var(--tmt-mint); outline:2px solid var(--tmt-green-active); outline-offset:-2px; }
.module-navigation button.active { border-bottom-color:var(--tmt-green-active); background:var(--tmt-mint); color:var(--tmt-green); font-weight:800; }
.module-navigation select { display:none; width:100%; border:1px solid var(--tmt-border); border-radius:6px; background:var(--tmt-surface); padding:9px 10px; color:var(--tmt-text); font:inherit; }
#moduleContent { min-width: 0; padding: 14px 18px 22px; }
.card {
  background: var(--tmt-surface);
  border: 1px solid var(--tmt-border);
  border-radius: 8px;
  padding: 20px;
}
.login-card { max-width:460px; margin:6vh auto; padding:34px; background:var(--tmt-surface); border:1px solid var(--tmt-border); border-radius:10px; box-shadow:0 18px 55px #1027461a; }
.login-logo { display:block; width:72px; height:72px; object-fit:contain; margin:0 0 12px; }
.login-card h1 { margin:4px 0 8px; }
.login-card > p { color:var(--tmt-text-secondary); }
.login-kicker { color:var(--tmt-green) !important; font-size:11px; font-weight:800; letter-spacing:.14em; }
.login-card form { display:grid; gap:14px; margin-top:24px; }
.login-card label { display:grid; gap:6px; font-size:12px; font-weight:700; }
.login-card input { padding:11px; border:1px solid var(--tmt-border); border-radius:7px; font:inherit; }
.login-card button { padding:11px; border:0; border-radius:7px; background:var(--tmt-green); color:#fff; font-weight:800; cursor:pointer; }
.login-error { min-height:18px; margin:0; color:var(--tmt-danger) !important; font-size:12px; }
.login-note { margin-top:24px; padding-top:14px; border-top:1px solid var(--tmt-border); font-size:11px; }
@media (max-width: 720px) {
  .app-header { display:grid; grid-template-columns:1fr auto; gap:6px 10px; padding:9px 12px; }
  .app-identity { align-self:center; }
  .app-identity img { width:28px; height:28px; }
  .global-command { display:none; }
  .app-header #coreVersion { display:none; }
  #session { justify-self:end; min-width:0; }
  #session span { max-width:130px; }
  .module-navigation { min-height:48px; padding:6px 12px; }
  .module-navigation button { display:none; }
  .module-navigation select { display:block; }
  #moduleContent { padding:10px 12px 18px; }
}
