:root {
  color-scheme: light;
  font-family: "Segoe UI", "Yu Gothic UI", sans-serif;
  color: #1c2733;
  background: #eef3f7;
}

* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
.hide { display: none !important; }

.tabs {
  display: flex;
  gap: .5rem;
  margin: 0 0 1rem;
  overflow-x: auto;
}

.tab {
  white-space: nowrap;
}

.tab.active {
  background: #175cd3;
  color: #fff;
}

.module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .75rem;
}

.module-card {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: 1rem;
  border: 1px solid #d0d5dd;
  border-radius: .6rem;
  background: #f8fafc;
}

.module-card span {
  color: #475467;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
}

table {
  width: 100%;
  border-collapse: collapse;
  min-width: 700px;
}

th, td {
  padding: .65rem;
  border-bottom: 1px solid #e4e7ec;
  text-align: left;
  vertical-align: top;
}

th {
  background: #f2f4f7;
}
.shell { width: min(1080px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 64px; }
header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
h1 { margin: 0; color: #0e4f75; font-size: clamp(2rem, 5vw, 3.25rem); }
h2 { margin-top: 0; }
.eyebrow { margin: 0 0 4px; color: #527080; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.card { background: #fff; border: 1px solid #dce5eb; border-radius: 14px; box-shadow: 0 8px 24px rgba(20,50,70,.07); padding: 24px; margin-bottom: 20px; }
.login-card { max-width: 480px; margin: 56px auto; }
form { display: grid; gap: 10px; }
label { font-weight: 650; margin-top: 6px; }
input { width: 100%; border: 1px solid #b8c9d4; border-radius: 8px; padding: 11px 12px; }
button { border: 1px solid #9db1bd; border-radius: 8px; background: #fff; padding: 9px 15px; cursor: pointer; }
button.primary { margin-top: 10px; color: #fff; background: #116b91; border-color: #116b91; font-weight: 700; }
.session { display: flex; align-items: center; gap: 12px; }
.message { min-height: 1.5em; margin-top: 12px; color: #a22525; }
.status-grid, .identity-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.status-grid div, .identity-list div { background: #f4f8fa; border-radius: 9px; padding: 12px; }
dt { color: #557080; font-size: .85rem; }
dd { margin: 4px 0 0; font-weight: 700; overflow-wrap: anywhere; }
.notice { border-left: 4px solid #dc9b28; background: #fff7e8; padding: 12px; }

@media (max-width: 620px) {
  .shell { width: min(100% - 20px, 1080px); padding-top: 16px; }
  header { align-items: flex-start; }
  .session { align-items: flex-end; flex-direction: column; gap: 6px; }
  .card { padding: 18px; }
  .status-grid, .identity-list { grid-template-columns: 1fr; }
}
