:root {
  --bg: #f6f8fc;
  --surface: #ffffff;
  --surface-soft: #f8fafc;
  --ink: #182235;
  --muted: #6b7890;
  --line: #e3e9f3;
  --nav: #111a2c;
  --nav-2: #17243a;
  --primary: #3157d5;
  --primary-soft: #eef3ff;
  --success: #1b8a64;
  --warning: #c27b18;
  --info: #1477a8;
  --shadow: 0 18px 55px rgba(24, 34, 53, .08);
  --radius: 22px;
}

.sms-preview { display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; align-items:center; padding:1rem; }
.sms-preview > strong { flex-basis:100%; }
.sms-recipient[hidden] { display:none; }

.board-decision-form .form-grid.two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.board-decision-form .full-width { grid-column: 1 / -1; }
.board-decision-document { font-family: "Times New Roman", serif; font-size: 9.5pt; }
.board-decision-header { margin-bottom: 5mm; }
.board-decision-header > strong,
.board-decision-document .board-decision-header h1 { font-size: 9.5pt; line-height: 1.15; }
.board-decision-document .board-decision-header h1 { margin: 0; }
.board-decision-number { display: flex; justify-content: space-between; width: 100%; }
.board-decision-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.board-decision-table th, .board-decision-table td { border: 1px solid #111827 !important; padding: 1.6mm 2mm; vertical-align: top; overflow-wrap: anywhere; }
.board-decision-table th { width: 7mm; text-align: center; }
.board-decision-table td:not(:last-child) { width: 68mm; font-weight: 700; }
.board-decision-table .pre-line { white-space: pre-line; }
.board-decision-signatures { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-flow: row; gap: 4mm; margin-top: 9mm; text-align: center; break-inside: avoid; page-break-inside: avoid; }
.board-decision-signatures > div { grid-column: span 2; }
.board-decision-signatures > div:nth-child(1):nth-last-child(5) { grid-column: 1 / span 2; grid-row: 1; }
.board-decision-signatures > div:nth-child(2):nth-last-child(4) { grid-column: 3 / span 2; grid-row: 1; }
.board-decision-signatures > div:nth-child(3):nth-last-child(3) { grid-column: 5 / span 2; grid-row: 1; }
.board-decision-signatures > div:nth-child(4):nth-last-child(2) { grid-column: 2 / span 2; grid-row: 2; }
.board-decision-signatures > div:nth-child(5):last-child { grid-column: 4 / span 2; grid-row: 2; }
.board-decision-signatures > div, .board-decision-principal { display: flex; flex-direction: column; min-height: 17mm; }
.board-decision-principal { width: 62mm; margin: 8mm auto 0; text-align: center; align-items: center; }

@media (max-width: 800px) {
  .board-decision-form .form-grid.two-columns { grid-template-columns: 1fr; }
  .board-decision-form .full-width { grid-column: auto; }
}

@media print {
  .board-decision-document { width: 210mm !important; min-height: 297mm; margin: 0 !important; padding: 10mm 12mm !important; box-shadow: none !important; }
}

.discipline-standard-document {
  box-sizing: border-box;
  width: 210mm;
  min-height: 297mm;
  margin: 1.5rem auto;
  padding: 20mm 22mm;
  background: #fff;
  color: #111827;
  font: 12pt "Times New Roman", serif;
  box-shadow: 0 12px 35px rgba(15, 23, 42, .12);
}

.discipline-standard-document header { text-align: center; display: grid; gap: .3rem; margin-bottom: 1.5rem; }
.discipline-standard-document header h1 { margin: .75rem 0 .25rem; font-size: 15pt; line-height: 1.35; }
.discipline-form-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 1rem 0; }
.discipline-form-table th, .discipline-form-table td { border: 1px solid #111827; padding: .45rem .55rem; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.discipline-form-table th { font-weight: 700; }
.discipline-form-table th:nth-child(1), .discipline-form-table th:nth-child(3) { width: 22%; }
.document-paragraph { text-align: justify; line-height: 1.55; text-indent: 2rem; }
.document-signer { width: 42%; margin: 1.5rem 0 1.5rem auto; display: grid; text-align: center; gap: .2rem; }
.call-time-table th, .call-time-table td { text-align: center; }
.receipt-table td { height: 32mm; }
.statement-answer-block { min-height: 28mm; border-bottom: 1px solid #111827; padding: .7rem 0; white-space: pre-wrap; }
.statement-committee-signatures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 18mm; text-align: center; }
.statement-committee-signatures div { display: grid; gap: 12mm; }

@media print {
  @page { size: A4 portrait; margin: 25mm 0; }
  .no-print, body > header, body > footer, .sidebar, .topbar { display: none !important; }
  .discipline-standard-document { width: 210mm; min-height: 297mm; margin: 0; padding: 20mm 22mm; box-shadow: none; page-break-after: always; }
}

* { box-sizing: border-box; }

html { font-size: 16px; min-height: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    radial-gradient(circle at top right, rgba(49, 87, 213, .10), transparent 32rem),
    linear-gradient(180deg, #fbfcff, var(--bg));
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: inherit; text-decoration: none; }

.app-shell {
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: #dbe6f6;
  background: linear-gradient(180deg, var(--nav), var(--nav-2));
  border-right: 1px solid rgba(255,255,255,.08);
}

.mobile-menu-toggle,
.mobile-menu-backdrop { display: none; }

.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 8px 8px 6px;
}

.brand-mark {
  width: 40px;
  height: 40px;
  display: block;
  flex: 0 0 40px;
}

.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.brand strong, .brand small { display: block; line-height: 1.15; }
.brand strong { font-size: 1.06rem; letter-spacing: -.02em; }
.brand small { margin-top: 4px; color: #98a8bf; font-size: .78rem; }

.side-nav {
  display: grid;
  gap: 4px;
  overflow-y: auto;
  padding-right: 2px;
}

.side-nav span {
  margin: 12px 10px 4px;
  color: #7f91aa;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .68rem;
  font-weight: 800;
}

.side-nav a {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 9px 11px;
  border-radius: 12px;
  color: #c8d5e8;
  font-size: .92rem;
}

.side-nav a:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}

.side-nav a[aria-current="page"] {
  background: rgba(113, 149, 255, .2);
  color: #fff;
  font-weight: 750;
}

.workspace-picker {
  display: grid;
  gap: 6px;
  margin: 10px 6px 12px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.06);
}

.workspace-picker span {
  margin: 0;
  color: #9fb0c7;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .62rem;
  font-weight: 900;
}

.workspace-picker select {
  width: 100%;
  min-height: 36px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 11px;
  background: #0f1b2e;
  color: #f8fafc;
  padding: 6px 8px;
  font-size: .86rem;
  font-weight: 850;
}

.nav-workspace {
  display: grid;
  gap: 4px;
}

.nav-workspace[hidden] {
  display: none;
}

.nav-group {
  display: grid;
  gap: 3px;
}

.nav-group:not([open]) > a,
.nav-group:not([open]) > .nav-subgroup,
.nav-subgroup:not([open]) > a {
  display: none;
}

.nav-group:hover > a,
.nav-group:hover > .nav-subgroup,
.nav-group:focus-within > a,
.nav-group:focus-within > .nav-subgroup,
.nav-subgroup:hover > a,
.nav-subgroup:focus-within > a {
  display: flex;
}

.nav-group:hover > .nav-subgroup,
.nav-group:focus-within > .nav-subgroup {
  display: grid;
}

.nav-group summary {
  min-height: 38px;
  padding: 9px 11px;
  border-radius: 12px;
  color: #e5edf8;
  cursor: pointer;
  font-weight: 850;
  list-style: none;
}

.nav-group summary::-webkit-details-marker { display: none; }

.nav-group summary:hover {
  background: rgba(255,255,255,.08);
}

.nav-group a {
  margin-left: 12px;
  min-height: 34px;
  padding-block: 7px;
  color: #b8c8dd;
}

.nav-subgroup {
  margin-left: 12px;
  display: grid;
  gap: 2px;
}

.nav-subgroup summary {
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 12px;
  color: #d6e2f2;
  cursor: pointer;
  font-size: .88rem;
  font-weight: 850;
  list-style: none;
}

.nav-subgroup summary::-webkit-details-marker { display: none; }

.nav-subgroup a {
  margin-left: 12px;
  min-height: 30px;
  padding-block: 6px;
  font-size: .86rem;
}

.sidebar-user {
  margin: 0 2px 10px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.08);
  display: grid;
  gap: 2px;
}

.sidebar-user-top {
  flex: 0 0 auto;
}

.sidebar-user span, .sidebar-user small { color: #98a8bf; font-size: .78rem; }
.sidebar-user strong { color: white; font-size: .92rem; }
.sidebar-user form { margin: 8px 0 0; }
.sidebar-login,
.link-button {
  width: fit-content;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #c8d5e8;
  font-size: .82rem;
  font-weight: 800;
}

.link-button:hover,
.sidebar-login:hover { color: #fff; }

.content {
  width: 100%;
  max-width: 1440px;
  padding: 26px;
}

.modal-workspace {
  max-width: none;
  min-height: 100vh;
  position: relative;
}

.dashboard-shadow {
  position: sticky;
  top: 24px;
  min-height: 96px;
  margin-bottom: -42px;
  padding: 18px 22px 54px;
  border: 1px solid rgba(227, 233, 243, .75);
  border-radius: 30px;
  background:
    linear-gradient(135deg, rgba(238,243,255,.75), rgba(255,255,255,.55)),
    radial-gradient(circle at 82% 10%, rgba(31,185,129,.14), transparent 16rem);
  color: var(--muted);
  filter: saturate(.92);
}

.dashboard-shadow span,
.dashboard-shadow strong,
.dashboard-shadow small {
  display: block;
}

.dashboard-shadow span {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 900;
  color: var(--primary);
}

.dashboard-shadow strong {
  margin-top: 4px;
  color: var(--ink);
  font-size: 1.15rem;
}

.work-modal {
  position: relative;
  z-index: 1;
  max-width: 1180px;
  margin-inline: auto;
  padding: 18px;
  border: 1px solid rgba(227, 233, 243, .95);
  border-radius: 30px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 80px rgba(24, 34, 53, .16);
}

.modal-return {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 10px 12px;
  border-radius: 999px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
}

.modal-return a {
  color: var(--primary);
  font-weight: 900;
}

.modal-return span {
  color: var(--muted);
  font-weight: 800;
  font-size: .88rem;
}

.true-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 14px;
  background: rgba(248, 250, 252, .94);
  backdrop-filter: blur(10px);
}

.true-modal-window {
  width: min(1440px, 98vw);
  height: min(900px, 96vh);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 32px 100px rgba(15, 23, 42, .35);
}

.true-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.true-modal-header strong {
  font-size: 1rem;
}

.true-modal-header a {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #eef3ff;
  color: var(--primary);
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
}

.true-modal-window iframe {
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

.modal-frame-body {
  background: #fff;
}

.modal-frame-content {
  padding: 18px;
}

.modal-frame-content .page-hero.compact {
  min-height: auto;
  padding: 18px;
  margin-bottom: 14px;
}

.modal-frame-content .panel,
.modal-frame-content .floating-panel {
  padding: 16px;
  margin-bottom: 14px;
}

.modal-frame-content .form-grid {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 11px;
}

.modal-frame-content .panel-title {
  align-items: flex-start;
}

.page-hero {
  min-height: 180px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-bottom: 20px;
  padding: 28px;
  border: 1px solid rgba(227, 233, 243, .9);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(242,246,255,.95)),
    radial-gradient(circle at 85% 20%, rgba(49, 87, 213, .12), transparent 18rem);
  box-shadow: var(--shadow);
}

.page-hero.compact { min-height: 126px; padding: 24px; }
.school-event-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.school-event-summary > div { display:flex; flex-direction:column; gap:4px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--soft); }
.school-event-summary strong { font-size:1.8rem; }
.school-event-summary span { color:var(--muted); }
.work-task-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.work-task-editor .panel-title p { margin:4px 0 0; color:var(--muted); }
.work-task-form-section { min-width:0; margin:0; padding:16px; border:1px solid var(--line); border-radius:16px; }
.work-task-form-section legend { padding:0 8px; color:var(--ink); font-weight:850; }
.work-task-form-section > label { display:grid; gap:7px; }
.work-task-form-section label small { color:var(--muted); font-weight:600; }
.work-task-plan-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.work-task-row.overdue { border-color:#fca5a5; border-left:4px solid #dc2626; background:#fffafa; }
.work-task-row[hidden] { display:none; }
.status-badge.priority-low { background:#f1f5f9; color:#475569; }
.status-badge.priority-high { background:#ffedd5; color:#9a3412; }
.status-badge.priority-urgent { background:#fee2e2; color:#991b1b; }
.work-task-filters button { cursor:pointer; }
.school-event-editor .panel-title { align-items:flex-start; }
.school-event-editor .panel-title p { margin:5px 0 0; color:var(--muted); }
.school-event-editor.is-edit { border-color:rgba(245,158,11,.34); box-shadow:0 18px 42px rgba(146,64,14,.07); }
.school-event-edit-notice { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; padding:10px 12px; border:1px solid #fde68a; border-radius:14px; background:#fffbeb; color:#92400e; font-weight:750; }
.school-event-all-day-note { align-self:center; color:var(--muted); font-size:.84rem; font-weight:700; }
.school-event-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.school-event-filters .active { border-color:var(--primary); background:var(--primary-soft); color:var(--primary); }
.school-event-list { display:grid; gap:12px; }
.school-event-row { display:grid; grid-template-columns:82px minmax(0,1fr) auto; gap:18px; align-items:center; padding:16px; border:1px solid var(--line); border-radius:18px; }
.school-event-row.cancelled { opacity:.68; background:var(--soft); }
.school-event-row.past { border-color:#e2e8f0; background:#fafafa; }
.school-event-row.past time { background:#f1f5f9; }
.school-event-row.upcoming { border-left:4px solid var(--primary); }
.school-event-row time { display:flex; flex-direction:column; align-items:center; padding:10px; border-radius:14px; background:#eef4ff; }
.school-event-row time strong { font-size:1.5rem; }
.school-event-row time span { color:var(--muted); font-size:.78rem; text-transform:uppercase; }
.school-event-copy h3,.school-event-copy p { margin:5px 0; }
.school-event-copy small { color:var(--muted); }
.school-event-row .warning-action { border-color:#fbbf24; background:#fffbeb; color:#92400e; }
@media (max-width:820px) { .page-hero .hero-actions { width:100%; } .school-event-edit-notice { align-items:flex-start; flex-direction:column; } }
@media (max-width:820px) { .work-task-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .work-task-plan-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .school-event-summary { grid-template-columns:1fr; } .work-task-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .school-event-row { grid-template-columns:64px minmax(0,1fr); } .school-event-row .row-actions { grid-column:1/-1; justify-content:flex-start; flex-wrap:wrap; } .school-event-row .row-actions form { width:auto; } .work-task-form-section { padding:12px; } }
.page-hero h1 { margin: 0 0 8px; max-width: 760px; font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.04; letter-spacing: -.045em; }
.page-hero p { margin: 0; max-width: 820px; color: var(--muted); line-height: 1.6; }
.login-brand-logo { display: block; width: min(100%, 420px); height: auto; margin: 0 0 18px; }

.eyebrow {
  margin-bottom: 9px !important;
  color: var(--primary) !important;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .72rem;
  font-weight: 850;
}

.hero-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.btn-primary-soft, .btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 800;
}

.btn-primary-soft { background: var(--primary); color: white; box-shadow: 0 10px 26px rgba(49,87,213,.22); }
.btn-ghost { background: white; color: var(--primary); border: 1px solid var(--line); }

.card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.info-card, .panel, .floating-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow);
}

.info-card {
  padding: 18px;
  min-height: 138px;
  position: relative;
  overflow: hidden;
}

.info-card::after {
  content: "";
  position: absolute;
  right: -28px;
  top: -34px;
  width: 92px;
  height: 92px;
  border-radius: 999px;
  background: rgba(49, 87, 213, .10);
}

.info-card.success::after { background: rgba(27, 138, 100, .12); }
.info-card.warning {
  border-color: #f59e0b;
  background:
    linear-gradient(135deg, #fff7ed, #ffffff 68%),
    radial-gradient(circle at 92% 16%, rgba(245, 158, 11, .24), transparent 9rem);
  box-shadow: 0 18px 38px rgba(194, 123, 24, .18);
}
.info-card.warning::before {
  content: "!";
  position: absolute;
  right: 16px;
  top: 14px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #f59e0b;
  color: #fff;
  font-weight: 950;
}
.info-card.warning::after { background: rgba(245, 158, 11, .18); }
.info-card.info::after { background: rgba(20, 119, 168, .12); }
.info-card span { color: var(--muted); font-size: .82rem; font-weight: 750; }
.info-card strong { display: block; margin: 9px 0 7px; font-size: 1.55rem; letter-spacing: -.035em; }
.info-card p { margin: 0; color: var(--muted); line-height: 1.45; font-size: .92rem; }

.dashboard-card-designer {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr);
  gap: 16px;
}

.card-design-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.card-design-list article,
.dashboard-card-form {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #f8fafc;
  padding: 14px;
}

.card-design-list span,
.card-design-list small,
.dashboard-card-form small {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 750;
}

.card-design-list strong {
  display: block;
  margin: 6px 0;
  color: var(--text);
}

.card-design-list p {
  margin: 0 0 8px;
  color: var(--muted);
  line-height: 1.45;
}

.dashboard-card-form {
  display: grid;
  gap: 10px;
  align-content: start;
}

.dashboard-card-form label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-weight: 750;
}

.panel, .floating-panel {
  padding: 20px;
  margin-bottom: 20px;
}

.panel-title {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: end;
  margin-bottom: 14px;
}

.panel-title h2, .floating-panel h2 { margin: 0; font-size: 1.16rem; letter-spacing: -.02em; }
.panel-title span, .hint { color: var(--muted); font-size: .9rem; }

.focus-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.focus-grid article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface-soft);
}

.focus-grid article > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--primary-soft);
  color: var(--primary);
  font-weight: 900;
}

.focus-grid strong { display: block; margin-bottom: 4px; }
.focus-grid p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.45; }
.focus-grid em { font-style: normal; color: var(--success); font-weight: 800; font-size: .82rem; white-space: nowrap; }

.responsive-table { overflow-x: auto; border-radius: 16px; border: 1px solid var(--line); }
table { width: 100%; border-collapse: collapse; min-width: 760px; background: white; }
th, td { padding: 12px 13px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { text-align: left; color: #475569; background: #f8fafc; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
td { color: #334155; font-size: .93rem; }
tr:last-child td { border-bottom: 0; }
code { background: #eef3ff; color: #243c9a; padding: 3px 7px; border-radius: 8px; }

.assignment-row td {
  transition: background-color .15s ease, box-shadow .15s ease;
}

.assignment-row:hover td {
  box-shadow: inset 0 999px rgba(255, 255, 255, .34);
}

.assignment-duty-external td { background: #f8fafc; }
.assignment-duty-principal td { background: #fef2f2; }
.assignment-duty-chief-assistant td { background: #fff7ed; }
.assignment-duty-assistant td { background: #fffbeb; }
.assignment-duty-area-chief td { background: #ecfdf5; }
.assignment-duty-subject-president td { background: #eef2ff; }
.assignment-duty-workshop-chief td { background: #f0fdf4; }
.assignment-duty-lab-chief td { background: #ecfeff; }
.assignment-duty-default td { background: #ffffff; }

.assignment-row td:first-child {
  box-shadow: inset 4px 0 rgba(15, 23, 42, .12);
}

.assignment-duty-external td:first-child { box-shadow: inset 4px 0 #94a3b8; }
.assignment-duty-principal td:first-child { box-shadow: inset 4px 0 #ef4444; }
.assignment-duty-chief-assistant td:first-child { box-shadow: inset 4px 0 #f97316; }
.assignment-duty-assistant td:first-child { box-shadow: inset 4px 0 #eab308; }
.assignment-duty-area-chief td:first-child { box-shadow: inset 4px 0 #10b981; }
.assignment-duty-subject-president td:first-child { box-shadow: inset 4px 0 #6366f1; }
.assignment-duty-workshop-chief td:first-child { box-shadow: inset 4px 0 #22c55e; }
.assignment-duty-lab-chief td:first-child { box-shadow: inset 4px 0 #06b6d4; }

.badge-soft {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eef6ff;
  color: #075985;
  font-weight: 750;
  font-size: .78rem;
}

.quick-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}

.quick-action-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fafc;
  color: #334155;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.quick-action-card:hover,
.quick-action-card:focus {
  transform: translateY(-1px);
  border-color: rgba(37, 99, 235, .24);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}

.quick-action-card strong {
  color: #0f172a;
  font-size: .98rem;
}

.quick-action-card span {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.4;
}

.module-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.module-list article {
  min-height: 145px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.module-list strong, .module-list span, .module-list small { display: block; }
.module-list span { margin-top: 4px; color: var(--primary); font-weight: 750; font-size: .8rem; }
.module-list p { color: var(--muted); line-height: 1.45; font-size: .9rem; }
.module-list small { color: var(--muted); font-size: .78rem; }

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.form-grid label {
  display: grid;
  gap: 7px;
  color: #334155;
  font-weight: 750;
}

.span-2 {
  grid-column: 1 / -1;
}

select,
textarea,
input[type=file],
input[type=text],
input[type=number],
input[type=email],
input[type=password],
input[type=tel],
input[type=url],
input[type=date],
input[type=time],
input[type=datetime-local],
input[type=search],
input:not([type]) {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 11px 12px;
  background: white;
  color: var(--ink);
  font: inherit;
}

textarea {
  min-height: 96px;
  line-height: 1.45;
  resize: vertical;
}

select[multiple] {
  min-height: 150px;
  padding: 8px;
}

select:focus,
textarea:focus,
input[type=file]:focus,
input[type=text]:focus,
input[type=number]:focus,
input[type=email]:focus,
input[type=password]:focus,
input[type=tel]:focus,
input[type=url]:focus,
input[type=date]:focus,
input[type=time]:focus,
input[type=datetime-local]:focus,
input[type=search]:focus,
input:not([type]):focus {
  outline: 3px solid rgba(49, 87, 213, .14);
  border-color: rgba(49, 87, 213, .45);
}

.checkbox-label {
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: fit-content;
  min-height: 42px;
  margin: 0;
  font-weight: 750;
}

.checkbox-label input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--primary);
}

.participant-picker {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface-soft);
}

.participant-picker legend {
  padding: 0 6px;
  color: #334155;
  font-size: .9rem;
  font-weight: 850;
}

.participant-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
}

.participant-picker-system {
  border-left: 4px solid var(--primary);
}

.participant-picker-custom {
  border-left: 4px solid #14b8a6;
}

.participant-picker-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 10px;
  color: var(--muted);
  font-size: .84rem;
  font-weight: 750;
}

.participant-picker-heading strong {
  color: var(--ink);
}

.participant-group-option {
  width: 100%;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.participant-group-option > span {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.participant-group-option small,
.participant-group-note {
  color: var(--muted);
  font-weight: 650;
}

.participant-search-label {
  display: block;
  margin-bottom: 6px;
  color: #334155;
  font-size: .86rem;
  font-weight: 800;
}

.participant-picker-individual input[type="search"] {
  margin-bottom: 10px;
}

.participant-picker-individual select {
  width: 100%;
  margin-bottom: 7px;
}

.participant-picker-individual option:disabled {
  color: #64748b;
  background: #eef2f7;
}

.participant-group-note {
  display: block;
  margin-bottom: 4px;
}

.participant-empty-state {
  min-height: auto;
  padding: 12px;
}

.participant-selection-summary {
  padding: 12px 14px;
  border: 1px solid rgba(49, 87, 213, .18);
  border-radius: 14px;
  background: #f3f6ff;
  color: #263c82;
}

.personnel-group-editor.is-edit { border-color: rgba(245, 158, 11, .34); box-shadow: 0 18px 42px rgba(146, 64, 14, .07); }
.personnel-group-editor .panel-title p { margin: 5px 0 0; color: var(--muted); }
.personnel-group-active { align-self: end; width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }
.personnel-group-active > span { display: grid; gap: 2px; }
.personnel-group-active small { color: var(--muted); font-weight: 650; }
.personnel-member-picker input[type="search"] { margin-bottom: 10px; }
.personnel-member-picker select { width: 100%; max-width: 100%; margin-bottom: 7px; }
.personnel-group-row { grid-template-columns: minmax(0, 1fr) auto; }
.personnel-group-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.personnel-group-title-line h3 { margin-right: 4px; }
.personnel-member-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.personnel-member-summary span,
.personnel-member-summary strong { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #f1f5f9; color: #475569; font-size: .76rem; font-weight: 750; }
.personnel-member-summary strong { background: var(--primary-soft); color: var(--primary); }

.split-grid {
  display: grid;
  gap: 18px;
}

.split-grid.two-column,
.form-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sub-panel {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 18px;
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.sub-panel h3 {
  margin: 0 0 6px;
}

.stacked-form {
  display: grid;
  gap: 13px;
  margin-top: 14px;
}

.stacked-form label {
  display: grid;
  gap: 7px;
  color: #334155;
  font-weight: 750;
}

.form-help {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

input[readonly] {
  background: #f8fafc;
  color: #475569;
  font-weight: 900;
}

.check-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.check-grid label {
  display: inline-flex;
  grid-auto-flow: column;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 800;
}

.check-grid input { width: auto; }

.readonly-pill {
  align-self: end;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-weight: 850;
}

.form-actions,
.action-panel form {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 14px;
}

button,
.action-panel a {
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  background: var(--primary);
  color: #fff;
  font-weight: 850;
}

.action-panel a {
  background: var(--primary-soft);
  color: var(--primary);
}

.sticky-import-footer {
  position: sticky;
  bottom: 0;
  z-index: 30;
  box-shadow: 0 -14px 30px rgba(15, 23, 42, .08);
}

.import-footer-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: .9rem;
}

.import-footer-summary span {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
}

.form-actions span {
  color: var(--muted);
  font-size: .9rem;
}

.notice,
.alert {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  font-weight: 750;
  line-height: 1.45;
}

.alert.success {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.alert.danger {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.success-notice {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.error-notice {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.warning-notice {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.ok-text { color: var(--success); font-weight: 850; }
.warn-text { color: var(--warning); font-weight: 850; }
.block-text { color: #dc2626; font-weight: 850; }
.pool-text { color: var(--info); font-weight: 850; }

.modal-preview {
  max-width: 880px;
  margin-inline: auto;
}

.progress-line {
  width: 120px;
  height: 8px;
  display: inline-block;
  margin-right: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: #e2e8f0;
}

.progress-line span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #3157d5, #1fb981);
}

.project-score {
  min-width: 150px;
  min-height: 150px;
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 999px;
  background:
    radial-gradient(circle at center, #fff 54%, transparent 55%),
    conic-gradient(#3157d5 0 42%, #dfe7f5 42% 100%);
  box-shadow: inset 0 0 0 1px rgba(49, 87, 213, .08), 0 18px 40px rgba(49, 87, 213, .14);
}

.project-score strong,
.project-score span {
  grid-column: 1;
  grid-row: 1;
}

.project-score strong {
  align-self: center;
  margin-top: -12px;
  font-size: 2.1rem;
  letter-spacing: -.05em;
}

.project-score span {
  align-self: center;
  margin-top: 46px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}

.mini-link {
  display: inline-flex;
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-weight: 800;
  font-size: .84rem;
}

.progress-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, 300px) 56px;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.progress-row:last-child { border-bottom: 0; }
.progress-row strong, .progress-row small { display: block; }
.progress-row small { color: var(--muted); margin-top: 3px; }

.bar {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.bar span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #3157d5, #1fb981);
}

.warning-panel { border-left: 5px solid var(--warning); }

.process-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 20px;
}

.process-strip div,
.student-tabs a,
.preview-states article,
.process-grid article {
  border: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow);
}

.process-strip div {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border-radius: 16px;
}

.process-strip b,
.process-grid b {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--primary-soft);
  color: var(--primary);
}

.process-strip span {
  font-weight: 800;
  font-size: .88rem;
}

.preview-states {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.preview-states article {
  padding: 15px;
  border-radius: 18px;
}

.preview-states article.ok { border-left: 5px solid var(--success); }
.preview-states article.warn { border-left: 5px solid var(--warning); }
.preview-states article.block { border-left: 5px solid #dc2626; }
.preview-states article.pool { border-left: 5px solid var(--info); }
.preview-states p, .process-grid p { color: var(--muted); margin: 7px 0 0; line-height: 1.45; }

.student-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 20px;
}

.quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}

.quick-links a {
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--primary);
  font-weight: 850;
  box-shadow: 0 10px 24px rgba(24, 34, 53, .06);
}

.student-tabs a {
  padding: 10px 14px;
  border-radius: 999px;
  color: #334155;
  font-weight: 850;
  background: white;
}

.student-tabs a:first-child {
  background: var(--primary);
  color: white;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.process-grid article {
  padding: 16px;
  border-radius: 18px;
}

.process-grid b,
.process-grid strong {
  display: inline-grid;
  vertical-align: middle;
}

.process-grid strong {
  margin-left: 8px;
}

.workflow-canvas {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 20px;
  border: 1px dashed #b7c5d8;
  border-radius: var(--radius);
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow);
}

.workflow-canvas div {
  padding: 14px 18px;
  border-radius: 16px;
  background: var(--primary-soft);
  border: 1px solid #d7e1ff;
  color: #233f9f;
  font-weight: 850;
}

.workflow-canvas span { color: var(--muted); font-weight: 900; }

.setup-timeline {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.setup-step {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow);
}

.setup-step b {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--primary-soft);
  color: var(--primary);
}

.setup-step.done b { background: #dcfce7; color: #166534; }
.setup-step.todo b { background: #fff7ed; color: #9a3412; }
.setup-step strong { display: block; margin-bottom: 4px; }
.setup-step p { margin: 0; color: var(--muted); line-height: 1.45; }
.setup-step small { display: block; margin-top: 8px; color: var(--muted); font-weight: 800; }
.compact-timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.area-group:nth-of-type(odd) { background: #f7fbff; }
.area-group:nth-of-type(even) { background: #fffaf2; }

.compact-list {
  display: grid;
  gap: 8px;
}

.compact-list article {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(0, 1.8fr);
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.86);
}

.program-badges { display: inline-flex; gap: 6px; flex-wrap: wrap; }

.program-badge {
  display: inline-flex;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
}

.program-badge.atp {
  background: #fef3c7;
  color: #92400e;
}

.program-badge.amp {
  background: #dbeafe;
  color: #1d4ed8;
}

.program-badge.exam {
  background: #ede9fe;
  color: #6d28d9;
}

.row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.row-actions form {
  margin: 0;
}

.row-actions button {
  min-height: 30px;
  padding: 6px 9px;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  border: 1px solid var(--line);
  font-size: .72rem;
  box-shadow: none;
}

.inline-edit-form {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(110px, .55fr) minmax(110px, .55fr) auto auto auto;
  gap: 8px;
  align-items: center;
}

.compact-list article .inline-edit-form {
  width: 100%;
}

.compact-checks {
  gap: 6px;
}

.compact-checks label {
  min-height: 34px;
  padding: 6px 9px;
  font-size: .78rem;
}

.inline-edit-form select,
.inline-edit-form button {
  min-height: 36px;
  padding: 7px 10px;
  font-size: .82rem;
}

.section-edit-form {
  display: grid;
  grid-template-columns: minmax(78px, .45fr) minmax(220px, 1.2fr) 70px 76px minmax(92px, .5fr) 88px auto;
  gap: 7px;
  align-items: center;
}

.quota-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 10px;
}

.quota-grid label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  font-weight: 850;
}

.quota-grid label span {
  color: #334155;
  font-size: .9rem;
}

.revision-form {
  display: grid;
  grid-template-columns: 92px minmax(180px, 1fr) auto;
  gap: 7px;
  align-items: center;
}

.revision-form input,
.revision-form button {
  min-height: 34px;
  padding: 6px 9px;
  font-size: .8rem;
}

.inline-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.inline-actions form {
  margin: 0;
}

.discipline-petition-actions { min-width: 0; max-width: 100%; }
.discipline-petition-actions > .primary-button,
.discipline-petition-actions > .secondary-button { white-space: nowrap; flex: 0 0 auto; }

.primary-button,
.secondary-button,
.danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 9px 15px;
  font-size: .86rem;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.primary-button {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 10px 22px rgba(49, 87, 213, .18);
}

.secondary-button {
  background: #f8fafc;
  color: #334155;
  border: 1px solid #cbd5e1;
  box-shadow: none;
}

.secondary-button:hover {
  background: #e2e8f0;
}

.empty-state {
  border: 1px dashed #cbd5e1;
  border-radius: 18px;
  padding: 18px;
  background: #f8fafc;
  color: #475569;
}

.empty-state strong {
  display: block;
  color: #0f172a;
  margin-bottom: 4px;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 0 6px 4px 0;
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: .76rem;
  font-weight: 850;
  line-height: 1.2;
}

.status-badge.success {
  background: #dcfce7;
  color: #166534;
}

.status-badge.warning {
  background: #fef3c7;
  color: #92400e;
}

.status-badge.danger {
  background: #fee2e2;
  color: #991b1b;
}

.reminder-editor .panel-title p,
.reminder-list-panel .panel-title p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 500;
}

.reminder-form fieldset {
  min-width: 0;
  margin: 0;
}

.reminder-form .form-help {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 500;
}

.reminder-plan-row {
  grid-template-columns: 76px minmax(0, 1fr) auto;
}

.reminder-plan-row time small,
.reminder-source-type {
  display: block;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 750;
}

.reminder-source-type {
  margin: 2px 0 3px;
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.reminder-plan-row h3 {
  overflow-wrap: anywhere;
}

/* Central Academic Calendar management */
.central-calendar-context { display: grid; justify-items: end; gap: 4px; }
.central-calendar-context strong { color: #0f172a; }
.central-calendar-context small { color: var(--muted); }
.central-calendar-management-grid,
.central-calendar-editor-grid,
.central-calendar-lower-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.central-calendar-management-grid .panel,
.central-calendar-editor-grid .panel,
.central-calendar-lower-grid .panel { margin: 0; min-width: 0; }
.central-calendar-management-grid .panel-title p,
.central-calendar-editor-grid .panel-title p,
.central-calendar-lower-grid .panel-title p,
.central-calendar-heading p { margin: 4px 0 0; color: var(--muted); font-size: .86rem; font-weight: 500; }
.central-calendar-matrix-panel { margin-bottom: 18px; }
.central-calendar-heading { align-items: flex-start; }
.central-term-overview { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 12px; margin: 16px 0; }
.central-term-card,
.central-term-empty { border: 1px solid var(--line); border-left: 6px solid var(--primary); border-radius: 14px; padding: 13px 15px; background: #f8faff; }
.central-term-card.term-two { border-left-color: #8b5cf6; background: #faf7ff; }
.central-term-empty { border-left-width: 1px; border-style: dashed; color: var(--muted); background: #f8fafc; }
.central-term-card strong,
.central-term-empty strong,
.central-term-card span,
.central-term-empty span { display: block; }
.central-term-card strong,
.central-term-empty strong { margin-bottom: 4px; color: #0f172a; }
.central-calendar-legend { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 16px; }
.central-legend-item,
.central-term-key { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #475569; font-size: .78rem; }
.central-legend-item i { width: 12px; height: 12px; border-radius: 4px; background: var(--legend-color); }
.central-term-key i { width: 22px; height: 4px; border-radius: 4px; background: var(--primary); }
.central-term-key.second i { background: #8b5cf6; }
.central-matrix-wrap { overflow-x: hidden; overflow-y: auto; max-height: 72vh; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.central-calendar-matrix { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.central-calendar-matrix col.month-column { width: 104px; }
.central-calendar-matrix th,
.central-calendar-matrix td { height: 42px; padding: 0; border-right: 1px solid #e5ebf3; border-bottom: 1px solid #e5ebf3; text-align: center; vertical-align: middle; }
.central-calendar-matrix thead th { position: sticky; top: 0; z-index: 4; background: #eaf0f8; color: #26354a; font-size: .72rem; font-weight: 900; }
.central-calendar-matrix .month-head { left: 0; z-index: 6; width: 104px; padding: 0 10px; text-align: left; }
.central-calendar-matrix tbody th { position: sticky; left: 0; z-index: 3; padding: 0 10px; background: #f8fafc; text-align: left; white-space: nowrap; font-size: .82rem; }
.central-calendar-matrix tbody th strong,
.central-calendar-matrix tbody th small { display: block; }
.central-calendar-matrix tbody th small { color: var(--muted); }
.central-calendar-cell { position: relative; background: color-mix(in srgb, var(--day-color) 28%, white); cursor: help; box-shadow: inset 0 3px transparent; }
.central-calendar-cell.term-one { box-shadow: inset 0 3px var(--primary); }
.central-calendar-cell.term-two { box-shadow: inset 0 3px #8b5cf6; }
.central-calendar-cell.term-weekday { background: color-mix(in srgb, var(--day-color) 62%, white); color: #102a1c; }
.central-calendar-cell.day-ht { background: #cbd5e1; color: #172033; }
.central-calendar-cell.day-zt { background: #99f6e4; color: #134e4a; }
.central-calendar-cell.day-oc { background: #fed7aa; color: #7c2d12; }
.central-calendar-cell.manual::after { content: ""; position: absolute; right: 2px; bottom: 2px; width: 5px; height: 5px; border-radius: 50%; background: #e11d48; }
.central-calendar-cell > span { position: relative; display: flex; align-items: center; justify-content: center; height: 100%; }
.central-calendar-cell strong { font-size: .69rem; font-weight: 950; line-height: 1; }
.central-calendar-cell i { position: absolute; right: 2px; bottom: 2px; color: #475569; font-size: .45rem; line-height: 1; }
.central-calendar-cell.outside { background: #f1f5f9; color: #cbd5e1; box-shadow: none; cursor: default; }
.work-calendar-matrix .central-calendar-cell { cursor: pointer; }
.work-calendar-matrix .central-calendar-cell.selected { z-index: 2; outline: 2px solid var(--primary); outline-offset: -2px; }
.work-matrix-markers { position: absolute; right: 2px; bottom: 2px; display: flex; gap: 2px; }
.work-matrix-markers i { position: static; display: block; width: 5px; height: 5px; border-radius: 50%; }
.work-matrix-markers i.event { background: #f97316; }.work-matrix-markers i.task { background: #8b5cf6; }.work-matrix-markers i.participant { background: #16a34a; box-shadow: 0 0 0 1px #fff; }
.work-calendar-selected [data-work-detail] { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.central-publish-panel { border-color: #fecaca; background: linear-gradient(180deg, #fff, #fffafa); }
.central-period-list,
.central-audit-list { display: grid; gap: 10px; }
.central-period-list article,
.central-audit-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; padding: 12px 0; border-bottom: 1px solid #edf1f7; }
.central-period-list article:last-child,
.central-audit-list article:last-child { border-bottom: 0; }
.central-period-list strong,
.central-period-list small,
.central-audit-list strong,
.central-audit-list span { display: block; }
.central-period-list small,
.central-audit-list span,
.central-audit-list time { color: var(--muted); font-size: .78rem; }
.central-audit-list p { grid-column: 1 / -1; margin: 0; color: #475569; font-size: .86rem; }

@media (max-width: 1050px) {
  .central-matrix-wrap { overflow-x: auto; }
  .central-calendar-matrix { min-width: 1050px; }
}

@media (max-width: 820px) {
  .reminder-form .participant-grid { grid-template-columns: 1fr; }
  .central-calendar-management-grid,
  .central-calendar-editor-grid,
  .central-calendar-lower-grid,
  .central-term-overview { grid-template-columns: 1fr; }
}

 .import-mobile-flow { display: contents; }
@media (max-width: 760px) {
  .import-mobile-flow { display: flex; flex-direction: column; gap: 12px; }
  .import-mobile-flow .import-upload { order: -1; }
  .import-mobile-flow .import-report-catalog { margin: 0; }
  .reminder-plan-row { grid-template-columns: 64px minmax(0, 1fr); }
  .reminder-plan-row .row-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .reminder-plan-row .row-actions form,
  .reminder-plan-row .row-actions button { width: 100%; }
  .central-calendar-context { width: 100%; justify-items: start; }
  .central-calendar-matrix-panel { padding: 14px; }
  .central-period-list article,
  .central-audit-list article { grid-template-columns: 1fr; }
  .central-audit-list p { grid-column: 1; }
}

.summary-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.summary-strip article {
  border: 1px solid #dbeafe;
  border-radius: 18px;
  padding: 16px;
  background: linear-gradient(135deg, #eff6ff, #ffffff);
}

.summary-strip span,
.summary-strip small {
  display: block;
  color: #64748b;
  font-weight: 750;
}

.summary-strip strong {
  display: block;
  color: #0f172a;
  font-size: 2rem;
  line-height: 1;
  margin: 8px 0;
}

.branch-check-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
}

.live-check-form {
  margin: 0;
}

.branch-check {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 8px;
  align-items: start;
  padding: 10px;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  background: #f8fafc;
  cursor: pointer;
}

.branch-check input {
  margin-top: 3px;
}

.branch-check span {
  color: #0f172a;
  font-weight: 850;
}

.branch-check small {
  grid-column: 2;
  color: #64748b;
  font-size: .78rem;
}

.branch-check.locked {
  border-color: #fed7aa;
  background: #fff7ed;
  cursor: not-allowed;
}

.branch-pool-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.subsection-title {
  margin: 18px 0 10px;
  color: #334155;
  font-size: 1rem;
  font-weight: 900;
}

.area-branch-block {
  margin: 10px 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fafc;
}

.area-branch-block ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.area-branch-block li {
  margin: 4px 0;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.detail-grid article {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fafc;
}

.detail-grid span {
  display: block;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
}

.detail-grid strong {
  display: block;
  margin-top: 4px;
}

a.info-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

a.info-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 32px rgba(15, 23, 42, .1);
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  margin-bottom: 10px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--primary);
  text-decoration: none;
  font-weight: 900;
}

.row-action-link {
  color: var(--primary);
  font-weight: 900;
  text-decoration: none;
  border-bottom: 2px solid rgba(37, 99, 235, .22);
}

.row-action-link:hover {
  color: #1d4ed8;
  border-bottom-color: #1d4ed8;
}

.student-profile-hero {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) minmax(260px, 420px);
  column-gap: 12px;
  row-gap: 16px;
  align-items: center;
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: linear-gradient(135deg, #eef2ff, #f8fafc 58%, #ecfeff);
}

.student-avatar {
  width: 92px;
  height: 92px;
  border-radius: 28px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 14px 28px rgba(15, 23, 42, .08);
  color: var(--primary);
  font-size: 2.1rem;
  font-weight: 950;
  overflow: hidden;
}

.student-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.student-profile-hero h1 {
  margin: 0 0 6px;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.15;
}

.student-profile-hero p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
}

.student-identity-block {
  min-width: 0;
  margin-left: 0;
}

.student-identity-stack {
  display: grid;
  gap: 5px;
  color: #334155;
  font-size: .94rem;
}

.student-identity-stack span {
  display: block;
}

.student-identity-stack strong {
  color: #0f172a;
  font-weight: 900;
}

.student-area-line small {
  display: block;
  margin-top: 2px;
  color: #475569;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.student-identity-lines {
  display: grid;
  gap: 6px;
  color: #334155;
  font-size: .95rem;
}

.student-identity-lines span {
  display: block;
}

.student-identity-lines strong {
  color: #0f172a;
  font-weight: 900;
}

.student-family-contact-card {
  display: grid;
  gap: 7px;
  align-self: stretch;
  padding: 12px 14px;
  border: 1px solid rgba(37, 99, 235, .14);
  border-radius: 18px;
  background: rgba(255, 255, 255, .74);
}

.student-family-contact-card div {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.student-family-contact-card span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 900;
}

.student-family-contact-card strong {
  color: #0f172a;
  font-size: .88rem;
  font-weight: 900;
}

.family-contact-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.student-family-contact-card div {
  min-width: 0;
}

.student-family-contact-card span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 850;
}

.student-family-contact-card strong {
  color: #0f172a;
  overflow-wrap: anywhere;
}

.student-attendance-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}

.student-attendance-inline span {
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .68);
  border: 1px solid rgba(148, 163, 184, .25);
}

.student-profile-actions {
  margin-top: 14px;
}

.student-signal-panel {
  overflow: visible;
}

.student-signal-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.student-signal-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 6px 9px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #f8fafc;
  color: #0f172a;
  cursor: help;
}

.student-signal-chip > span {
  font-size: .78rem;
  font-weight: 900;
}

.student-signal-chip > strong {
  font-size: .66rem;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .08);
}

.student-signal-chip.signal-oncelikli-izlem,
.student-signal-chip.signal-kritik-mudahale {
  border-color: rgba(239, 68, 68, .32);
  background: #fef2f2;
}

.student-signal-chip.signal-izlem {
  border-color: rgba(245, 158, 11, .34);
  background: #fffbeb;
}

.student-signal-chip.signal-bilgi {
  border-color: rgba(37, 99, 235, .28);
  background: #eff6ff;
}

.student-signal-tooltip {
  position: absolute;
  left: 0;
  top: calc(100% + 10px);
  z-index: 30;
  width: min(340px, 82vw);
  padding: 12px;
  border: 1px solid #cbd5e1;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .18);
  color: #0f172a;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .15s ease, transform .15s ease;
}

.student-signal-tooltip p {
  margin: 6px 0 0;
  color: var(--muted);
}

.student-signal-chip:hover .student-signal-tooltip,
.student-signal-chip:focus .student-signal-tooltip,
.student-signal-chip:focus-within .student-signal-tooltip {
  opacity: 1;
  transform: translateY(0);
}

.student-info-sections {
  display: grid;
  gap: 14px;
  margin: 18px 0;
}

.student-info-section {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .055);
}

.student-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.student-info-grid div {
  min-height: 76px;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #f8fafc;
}

.student-info-grid span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
}

.student-info-grid strong {
  display: block;
  color: #0f172a;
  font-size: .95rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.data-quality-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  margin: 12px 0;
  padding: 0;
  list-style: none;
}

.data-quality-list li {
  padding: 9px 11px;
  border-radius: 999px;
  background: rgba(245, 158, 11, .13);
  color: #92400e;
  font-size: .86rem;
  font-weight: 850;
}

.inline-edit-panel {
  margin-top: 12px;
  border-top: 1px dashed #cbd5e1;
  padding-top: 10px;
}

.inline-edit-panel summary {
  width: fit-content;
  cursor: pointer;
  padding: 8px 12px;
  border-radius: 999px;
  background: #eef2ff;
  color: var(--primary);
  font-weight: 900;
}

.inline-edit-panel[open] summary {
  margin-bottom: 12px;
}

.group-assignment-panel.assignment-missing summary {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

.group-assignment-panel.assignment-complete summary {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.row-modal-button {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--primary);
  font: inherit;
  font-weight: 950;
  cursor: pointer;
  border-bottom: 2px solid rgba(37, 99, 235, .25);
}

.row-modal-button:hover {
  border-bottom-color: var(--primary);
}

.mini-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(15, 23, 42, .38);
}

.mini-modal {
  position: relative;
  width: min(560px, 100%);
  max-height: 78vh;
  overflow: auto;
  padding: 22px;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 30px 70px rgba(15, 23, 42, .25);
}

.mini-modal.course-scope-modal {
  width: min(1040px, 96vw);
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.course-scope-modal > * {
  flex-shrink: 0;
}

.course-scope-modal .course-scope-table-wrap {
  flex: 1 1 auto;
  min-height: 180px;
  max-height: 38vh;
  overflow: auto;
}

.course-scope-entry-form {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: #f8fafc;
}

.sticky-modal-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  justify-content: flex-end;
  margin: 12px -2px -2px;
  padding-top: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.72), #fff 44%);
}

.button-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.selected-framework-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin: 18px 0 8px;
  padding: 14px;
  border: 1px solid #bfdbfe;
  border-radius: 18px;
  background: linear-gradient(135deg, #eff6ff, #ffffff);
}

.selected-framework-bar label {
  flex: 1 1 260px;
  margin: 0;
}

.selected-framework-bar button {
  flex: 0 0 auto;
}

.selected-framework-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin: 10px 0 0;
}

.modal-inline-form {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  align-items: end;
  gap: 12px;
}

.wide-dialog {
  width: min(1240px, calc(100vw - 28px));
}

.wide-field {
  grid-column: 1 / -1;
}

.compact-number-field input[type="number"] {
  width: 100%;
  max-width: none;
  min-height: 58px;
  height: 58px;
  line-height: 1.2;
}

#curriculumCourseForm select,
#curriculumCourseForm input[type="number"],
#electiveHoursForm select,
#electiveHoursForm input[type="number"],
#curriculumEditForm select,
#curriculumEditForm input[type="number"] {
  min-height: 58px;
  height: 58px;
}

#electiveHoursForm {
  grid-template-columns: 1fr;
  max-width: 760px;
}

.inline-number-field {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 8px;
}

.inline-number-field input[type="number"] {
  width: 100%;
  max-width: none;
  margin: 0;
}

#electiveHoursForm .inline-number-field input[type="number"] {
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 900px) {
  #electiveHoursForm {
    grid-template-columns: 1fr;
  }
}

/* Öğrenci yazılı ifade formu: sabit 11 punto, çok sayfalı ve çift taraflı baskıya uygun. */
.student-written-statement-document {
  font-family: "Times New Roman", Times, serif !important;
  font-size: 11pt !important;
  line-height: 1.25;
  box-sizing: border-box;
  padding: 0 16mm !important;
}

.student-written-statement-document,
.student-written-statement-document * {
  font-family: "Times New Roman", Times, serif !important;
  font-size: 11pt !important;
}

.student-written-statement-document .statement-reference-row {
  display: grid;
  grid-template-columns: 10mm 8mm 34mm minmax(28mm, auto) minmax(0, 1fr);
  column-gap: 2mm;
  align-items: baseline;
  margin: 1mm 0;
}

.student-written-statement-document .statement-role-options {
  width: 145mm;
  max-width: 100%;
  margin-left: 12mm;
  margin-right: 0;
  justify-content: initial;
  text-align: left;
}

.student-written-statement-document .statement-role-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 12mm;
  align-items: baseline;
  column-gap: 3mm;
}

.student-written-statement-document .statement-role-row b {
  display: block;
  text-align: center;
  white-space: nowrap;
}

.student-written-statement-document .statement-member-signatures,
.student-written-statement-document .statement-chair-signature,
.student-written-statement-document .statement-template-note {
  break-inside: avoid;
  page-break-inside: avoid;
}

.student-written-statement-document .statement-signatures-wrapper {
  break-inside: avoid;
  page-break-inside: avoid;
}

.student-written-statement-document .statement-answer-block {
  min-height: 18mm;
  padding: 2mm 0;
}

.statement-answer-editor {
  display: grid;
  gap: 1rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid #dbe5f3;
  border-radius: 14px;
}

.statement-answer-editor:disabled {
  opacity: .58;
  background: #f8fafc;
}

.statement-entry-form:has(textarea[name="statementText"]:invalid) .statement-text-action {
  opacity: .5;
  pointer-events: none;
  cursor: not-allowed;
}

.statement-entry-form:has(textarea[name^="defenseAnswer_"]:invalid) .statement-text-action {
  opacity: .5;
  pointer-events: none;
  cursor: not-allowed;
}

.statement-page-number { display: none; }
.statement-a4-page.multi-page-document .statement-page-number {
  display: block;
  position: absolute;
  right: 16mm;
  bottom: 1mm;
}

@page student-statement {
  size: A4 portrait;
  margin: 25mm 0;
}

@media print {
  .student-written-statement-document {
    page: student-statement;
    box-sizing: border-box;
    width: auto !important;
    max-width: none !important;
    min-height: 0 !important;
    height: 247mm !important;
    margin: 0 !important;
    padding: 0 16mm !important;
    overflow: visible !important;
    box-shadow: none !important;
  }

  .student-written-statement-document .statement-answer-block {
    min-height: 18mm;
    break-inside: auto;
    page-break-inside: auto;
  }

  body * { visibility: hidden !important; }
  .statement-print-area, .statement-print-area * { visibility: visible !important; }
  html, body, .app-shell, main.content, .work-modal {
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body:not(.discipline-output-mode) main.content > *:not(.statement-print-area):not(.work-modal),
  body:not(.discipline-output-mode) .work-modal > *:not(.statement-print-area) {
    display: none !important;
  }
  .statement-print-area { position: static; width: 210mm; }
  .statement-a4-page { break-after: page; page-break-after: always; }
  .statement-a4-page:last-child { break-after: auto; page-break-after: auto; }
  /* Sayfalama template'i ve script'i son belgeden sonra bulunduğu için
     :last-child güvenilir değildir. Son gerçek A4 article'ından sonra
     yeni sayfa açılmasını engelle. */
  .statement-print-area > article.statement-a4-page:last-of-type {
    break-after: auto !important;
    page-break-after: auto !important;
  }
}

.student-written-statement-document .statement-template-header {
  position: relative;
  border: 1px solid #111827;
  padding: 2mm 3mm;
  margin-bottom: 4mm;
}

.discipline-standard-document > header {
  position: relative;
}

.discipline-configurable-school-logo {
  position: absolute;
  top: 0;
  width: 22mm;
  height: 22mm;
  object-fit: contain;
}

.discipline-configurable-school-logo.logo-left { left: 0; }
.discipline-configurable-school-logo.logo-right { right: 0; }

/* İfade/savunma belgelerinde ve çağrı pusulalarında logo üst sınıra yapışmasın. */
.student-written-statement-document:not(.parent-interview-document) .discipline-configurable-school-logo,
.call-notice-document .discipline-configurable-school-logo {
  top: 2mm;
}

.discipline-standard-document > header:has(.discipline-configurable-school-logo) {
  box-sizing: border-box;
  min-height: 22mm;
  padding-left: 25mm;
  padding-right: 25mm;
}

.student-written-statement-document .statement-template-header h1 {
  margin: 0;
}

.student-written-statement-document .discipline-form-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}

.student-written-statement-document .discipline-form-table th,
.student-written-statement-document .discipline-form-table td {
  box-sizing: border-box;
  min-width: 0 !important;
  padding: 1.5mm 2mm;
  overflow-wrap: anywhere;
}

.student-written-statement-document .statement-student-info-table,
.student-written-statement-document .statement-student-info-table * {
  font-size: 10pt !important;
  line-height: 1.12;
}

.student-written-statement-document .statement-student-info-table th,
.student-written-statement-document .statement-student-info-table td {
  padding: 1mm 1.5mm;
}

.student-written-statement-document .discipline-form-table tbody tr:last-child > th,
.student-written-statement-document .discipline-form-table tbody tr:last-child > td {
  border-bottom: 1px solid #111827 !important;
}

.statement-student-info-table th { width: 27%; }
.statement-student-info-table td { width: 23%; }
.statement-student-info-table thead th { width: auto; text-align: center; }
.statement-references { margin: 2mm 0 1mm 12mm; }
.statement-role-options { display: grid; gap: 1mm; margin-top: 2mm; margin-bottom: 2mm; }
.statement-radio-group {
  min-width: 0;
  margin: 0;
  padding: .8rem 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.statement-radio-group legend { padding: 0 .25rem; font-weight: 700; }
.statement-radio-group label { display: inline-flex; align-items: center; gap: .4rem; margin-right: 1.25rem; }
.statement-radio-group input[type="radio"] { width: auto; min-height: 0; }
.statement-start-label { display: inline-block; margin: 1mm 0 2mm 12mm; text-decoration: underline; }
.statement-continuation-note { text-align: right; font-size: 9pt; }
.statement-student-signer { margin: 2mm 0 3mm auto; }
.statement-member-signatures {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4mm;
  margin-top: 5mm;
}
.statement-member-signatures > div,
.statement-chair-signature {
  display: grid;
  gap: 1mm;
  text-align: center;
  min-width: 0;
}
.statement-member-signatures strong,
.statement-member-signatures span,
.statement-chair-signature strong,
.statement-chair-signature span {
  overflow-wrap: anywhere;
  word-break: normal;
}
.statement-chair-signature { width: 65mm; margin: 5mm auto 0; }
.statement-template-note { margin-top: 4mm; font-size: 8.5pt; color: #475569; }
.statement-a4-page {
  position: relative;
  min-height: 0;
  height: 247mm;
  overflow: hidden;
}
.statement-continuation-page { position: relative; }
.statement-continuation-header { margin-bottom: 8mm !important; border-bottom: 1px solid #111827; padding-bottom: 3mm; }
.statement-continuation-page .statement-answer-block { min-height: 0; }
.statement-intermediate-page .statement-answer-block { min-height: 0; }
.statement-last-page .statement-answer-block { min-height: 0; }
.statement-continuation-page .statement-page-number { display: block; position: absolute; right: 16mm; bottom: 1mm; }

/* MEB standart öğrenci yazılı savunma formu. */
.student-written-defense-document .defense-student-info-table { margin-bottom: 1.5mm; }
.student-written-defense-document .defense-references { margin-top: 1mm; }
.student-written-defense-document .defense-introduction { display: grid; gap: 1mm; }
.student-written-defense-document .defense-introduction p { margin: 0; text-align: justify; }
.student-written-defense-document .defense-title { margin: 2mm 0 1.5mm 12mm; font-weight: 700; }
.student-written-defense-document .defense-question-flow { display: grid; gap: 2.5mm; }
.student-written-defense-document .defense-question-block { break-inside: avoid; page-break-inside: avoid; }
.student-written-defense-document .defense-question-block > strong { display: block; margin-bottom: 1mm; }
.student-written-defense-document .defense-question-block p { margin: 0; white-space: pre-wrap; text-align: justify; }
.student-written-defense-document .defense-student-declaration { margin: 2mm 0; font-style: italic; }
.student-written-defense-document .defense-signatures { margin-top: 2mm; }
.student-written-defense-document .statement-template-note { color: #111827; font-size: 8.5pt !important; }
.student-written-defense-document .statement-page-number { position: absolute; right: 16mm; bottom: 1mm; }
.student-written-defense-document.statement-continuation-page .defense-question-flow { min-height: 0; }
.student-written-defense-document.statement-continuation-page .statement-continuation-header { margin-bottom: 5mm !important; }

/* MEB standart veli görüşme tutanağı. */
.parent-interview-document .parent-interview-info-table { margin: 5mm 0 3mm; }
.parent-interview-document .parent-interview-info-table th { width: 34%; }
.parent-interview-document .parent-interview-info-table td { width: 66%; }
.parent-interview-document .parent-interview-info-table th,
.parent-interview-document .parent-interview-info-table td { padding: 1.7mm 2mm; }
.parent-interview-document .parent-interview-references { margin-top: 2mm; }
.parent-interview-document .parent-interview-introduction p { margin: 1.5mm 0; text-align: justify; }
.parent-interview-document .parent-interview-chair-label { width: 62mm; margin-left: auto !important; text-align: center !important; }
.parent-interview-document .parent-interview-chair-label strong,
.parent-interview-document .parent-interview-chair-label span { display: block; }
.parent-interview-document .parent-interview-answer { min-height: 18mm; }
.parent-interview-document .parent-interview-answer p { white-space: pre-wrap; text-align: justify; }
.parent-interview-document .discipline-configurable-school-logo { top: 2mm; }
.parent-interview-document .discipline-configurable-school-logo.logo-left { left: 3mm; }
.parent-interview-document .discipline-configurable-school-logo.logo-right { right: 3mm; }
.parent-interview-document .statement-student-signer { margin-top: 1mm; margin-bottom: 2mm; }
.parent-interview-document .statement-member-signatures { margin-top: 2mm; }
.parent-interview-document .statement-chair-signature { margin-top: 2mm; }
.teacher-opinion-document { font-family: "Times New Roman", serif; font-size: 10.5pt; }
.teacher-opinion-document .teacher-opinion-info-table { margin: 5mm 0 3mm; }
.teacher-opinion-document .teacher-opinion-info-table th { width: 38%; }
.teacher-opinion-document .teacher-opinion-info-table th,
.teacher-opinion-document .teacher-opinion-info-table td { padding: 1.5mm 2mm; }
.teacher-opinion-document .teacher-opinion-intro { margin: 2mm 0; text-align: justify; }
.teacher-opinion-document .teacher-opinion-answers { display: grid; gap: 1.5mm; }
.teacher-opinion-document .teacher-opinion-answers section { border: 1px solid #1f2937; break-inside: avoid; }
.teacher-opinion-document .teacher-opinion-answers section > strong { display: block; padding: 1.2mm 2mm; background: #f5f6f8; }
.teacher-opinion-document .teacher-opinion-answers section > p { min-height: 12mm; margin: 0; padding: 1.2mm 2mm; white-space: pre-wrap; text-align: justify; }
.teacher-opinion-document .teacher-opinion-signatures { margin-top: 2mm; }
.teacher-opinion-document .statement-student-signer {
  margin-top: 8mm;
  margin-bottom: 0;
}
.teacher-opinion-document .statement-member-signatures { margin-top: 10mm; }
.teacher-opinion-document .statement-chair-signature { margin-top: 8mm; }
.teacher-opinion-document .teacher-opinion-signatures,
.teacher-opinion-document .teacher-opinion-signatures > div,
.teacher-opinion-document .teacher-opinion-signatures strong,
.teacher-opinion-document .teacher-opinion-signatures span {
  line-height: 1.08;
}
.teacher-opinion-document .teacher-opinion-signatures {
  break-inside: avoid;
  page-break-inside: avoid;
}

/* MEB 5 - Görgü tanığı öğrenci ifade tutanağı. */
.student-witness-document { font-family: "Times New Roman", serif; font-size: 11pt; }
.student-witness-document .statement-template-header { margin-bottom: 3mm; }
.student-witness-document .student-witness-info-table { margin: 2mm 0; font-size: 10pt; }
.student-witness-document .student-witness-info-table th,
.student-witness-document .student-witness-info-table td { padding: 1mm 1.5mm; }
.student-witness-document .student-witness-references { margin: 1mm 0; }
.student-witness-document .student-witness-references .statement-reference-row { margin: .4mm 0; }
.student-witness-document .student-witness-intro { margin: 1.2mm 0; text-align: justify; }
.student-witness-document .student-witness-answers { display: grid; gap: 1.5mm; }
.student-witness-document .student-witness-answers section { border: 1px solid #1f2937; break-inside: avoid; }
.student-witness-document .student-witness-answers section > strong { display: block; padding: 1.1mm 2mm; background: #f5f6f8; }
.student-witness-document .student-witness-answers section > p { min-height: 15mm; margin: 0; padding: 1.2mm 2mm; white-space: pre-wrap; text-align: justify; }
.student-witness-document .student-witness-signatures { margin-top: 3mm; break-inside: avoid; page-break-inside: avoid; }
.student-witness-document .statement-student-signer { margin-top: 8mm; margin-bottom: 5mm; }
.student-witness-document .statement-member-signatures { margin-top: 8mm; }
.student-witness-document .statement-chair-signature { margin-top: 7mm; }
.student-witness-document .student-witness-signatures,
.student-witness-document .student-witness-signatures > div,
.student-witness-document .student-witness-signatures strong,
.student-witness-document .student-witness-signatures span { line-height: 1.08; }

/* MEB 15 - Disiplin kurulu ara karar tutanağı. */
.interim-decision-document { font-family: "Times New Roman", serif; font-size: 11pt; }
.interim-decision-document .interim-decision-header { margin-bottom: 12mm; }
.interim-decision-document .interim-decision-references { margin: 0 0 7mm; }
.interim-decision-document .interim-decision-references .statement-reference-row {
  display: grid;
  grid-template-columns: 10mm 8mm 34mm 38mm minmax(0, 1fr);
  column-gap: 2mm;
  align-items: baseline;
  margin: .7mm 0;
}
.interim-decision-document .document-paragraph { margin: 5mm 0; text-align: justify; text-indent: 12mm; }
.interim-decision-reasons { margin-top: 12mm; }
.interim-decision-reasons h2 { margin: 0 0 2mm; font: inherit; text-decoration: underline; }
.interim-decision-reasons ol { margin: 0; padding-left: 7mm; }
.interim-decision-reasons li { min-height: 7mm; padding-left: 1mm; white-space: pre-wrap; }
.interim-decision-signatures { margin-top: 28mm; break-inside: avoid; page-break-inside: avoid; }
.interim-decision-members { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5mm; text-align: center; }
.interim-decision-members > div,
.interim-decision-chair,
.interim-decision-principal { display: flex; flex-direction: column; align-items: center; line-height: 1.12; }
.interim-decision-chair { width: 62mm; margin-top: 23mm; text-align: center; }
.interim-decision-principal { width: 55mm; margin: 18mm auto 0; text-align: center; }
.interim-decision-principal > * + * { margin-top: 1.5mm; }
.action-button.disabled,
.action-button[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
  filter: grayscale(.35);
}

.board-case-hero-actions {
  justify-content: flex-end;
  align-items: center;
  max-width: 760px;
}

.board-case-hero-actions .action-button {
  white-space: nowrap;
}

.defense-requirement-check {
  margin-top: 0.55rem;
}

.defense-requirement-check label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  cursor: pointer;
}

.decision-readiness-accordion > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  font-size: 1.1rem;
  font-weight: 800;
  list-style: none;
}

.decision-readiness-accordion > summary::-webkit-details-marker {
  display: none;
}

.decision-readiness-accordion > summary::after {
  content: "⌄";
  color: var(--muted);
  font-size: 1.35rem;
}

.decision-readiness-accordion[open] > summary::after {
  transform: rotate(180deg);
}

.decision-readiness-accordion > summary strong {
  margin-left: auto;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  font-size: 0.9rem;
}

.decision-readiness-accordion > summary strong.ready {
  color: #16803c;
  background: #eaf8ef;
}

.decision-readiness-accordion > summary strong.missing {
  color: #b42318;
  background: #fff0ee;
}

.decision-readiness-content {
  margin-top: 1.25rem;
}

@media (max-width: 980px) {
  .board-case-hero-actions {
    justify-content: flex-start;
    max-width: none;
  }
}

@media print {
  .interim-decision-print-area { display: block !important; }
  .interim-decision-document { margin: 0 !important; box-shadow: none !important; }
}

/* Şikâyet eden / görgü tanığı öğretmen için standart görüş tutanağı. */
.teacher-statement-document { font-family: "Times New Roman", serif; font-size: 11pt; }
.teacher-statement-document .teacher-statement-info-table { margin: 3mm 0 2mm; }
.teacher-statement-document .teacher-statement-info-table th { width: 36%; }
.teacher-statement-document .teacher-statement-info-table th,
.teacher-statement-document .teacher-statement-info-table td { padding: 1.2mm 2mm; }
.teacher-statement-document .teacher-statement-reason-title { width: auto; text-align: center; }
.teacher-statement-document .teacher-statement-check { text-align: center; font-weight: 700; }
.teacher-statement-document .teacher-statement-references { margin: .5mm 0 .5mm 8mm; }
.teacher-statement-document .teacher-statement-references .statement-reference-row { margin: .35mm 0; }
.teacher-statement-document .teacher-statement-introduction p { margin: .7mm 0; text-align: justify; }
.teacher-statement-document .teacher-statement-chair-label { width: 70mm; margin: 1mm 0 .5mm auto !important; text-align: center !important; }
.teacher-statement-document .teacher-statement-chair-label strong,
.teacher-statement-document .teacher-statement-chair-label span { display: block; }
.teacher-statement-document .teacher-statement-answer { min-height: 70mm; }
.teacher-statement-document .teacher-statement-answer p { white-space: pre-wrap; text-align: justify; }
.teacher-statement-document .teacher-statement-signatures { margin-top: 6mm; }
.teacher-statement-document .statement-member-signatures { margin-top: 7mm; }
.teacher-statement-document .statement-chair-signature { margin-top: 6mm; }
.teacher-statement-document .teacher-statement-signatures { break-inside: avoid; page-break-inside: avoid; }
.teacher-statement-document.compact-short-teacher-statement .teacher-statement-answer { min-height: 42mm; }
.teacher-statement-document.compact-short-teacher-statement .statement-start-label { margin-top: .5mm; margin-bottom: 1mm; }
.teacher-statement-document.compact-short-teacher-statement .teacher-statement-signatures { margin-top: 3mm; }

/* Kısa öğrenci ifadelerinde resmi form yapısını koruyan sıkı tek sayfa düzeni. */
.student-written-statement-document.compact-short-statement {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.student-written-statement-document.compact-short-statement .statement-template-header {
  margin-bottom: 2mm;
  padding-top: 1.5mm;
  padding-bottom: 1.5mm;
}
.student-written-statement-document.compact-short-statement .statement-student-info-table {
  margin-top: 0;
  margin-bottom: 2mm;
}
.student-written-statement-document.compact-short-statement > p {
  margin-top: 1.5mm;
  margin-bottom: 1.5mm;
}
.student-written-statement-document.compact-short-statement .statement-references {
  margin-top: .5mm;
  margin-bottom: 0;
}
.student-written-statement-document.compact-short-statement .statement-reference-row {
  column-gap: 1mm;
  margin-top: .25mm;
  margin-bottom: .25mm;
  line-height: 1.08;
}
.student-written-statement-document.compact-short-statement .statement-role-options {
  gap: .5mm;
  margin-top: .5mm;
  margin-bottom: .5mm;
  line-height: 1.12;
}
.student-written-statement-document.compact-short-statement .statement-answer-block {
  min-height: 14mm;
  padding-top: 1mm;
  padding-bottom: 1mm;
}

/*
 * Disiplin belgelerinde metnin son satırı ile ıslak imza alanını ayır.
 * Ortak A4 ölçüm motoru bu dış boşluğu da hesaba kattığı için imzalar
 * sayfa sonuna sıkışmaz; yer kalmadığında içerik sonraki sayfaya geçer.
 */
.student-written-statement-document .statement-signatures-wrapper,
.student-written-defense-document .defense-signatures,
.parent-interview-document .statement-signatures-wrapper,
.teacher-opinion-document .teacher-opinion-signatures {
  margin-top: 6mm;
}

.statement-related-students {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid #dbe4f1;
  border-radius: 16px;
  background: #f8fafc;
}
.statement-related-students > strong { display: block; margin-bottom: .55rem; color: #172033; }
.statement-related-students ul { display: grid; gap: .35rem; margin: 0; padding-left: 1.25rem; }

@media print {
  .student-written-statement-document {
    box-sizing: border-box;
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 !important;
    min-height: 0 !important;
    height: 247mm !important;
    padding: 0 16mm !important;
  }
}

.horizontal-checkbox-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
}

.horizontal-checkbox-panel legend {
  flex: 0 0 100%;
}

.horizontal-checkbox-panel .checkbox-line {
  width: auto;
  margin: 0;
}

.modal-bottom-actions {
  justify-content: flex-end;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.responsive-table .row-actions {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
}

.responsive-table .row-actions button,
.responsive-table .row-actions .small-button {
  width: auto;
  min-width: 74px;
  white-space: nowrap;
}

.framework-area-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 16px;
}

.framework-area-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(135deg, #ffffff, #f8fbff);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.framework-area-card > div:first-child {
  min-width: 0;
}

.framework-area-card .compact-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
}

.framework-area-card h3 {
  margin: 10px 0 4px;
  font-size: 1rem;
  word-break: normal;
  overflow-wrap: anywhere;
}

.framework-area-card p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
}

@media (max-width: 760px) {
  .button-cluster {
    justify-content: stretch;
  }

  .button-cluster > * {
    flex: 1 1 100%;
    text-align: center;
  }

  .selected-framework-bar button {
    width: 100%;
  }

  .modal-inline-form {
    grid-template-columns: 1fr;
  }

  .framework-area-card {
    flex-direction: column;
  }
}

.mini-modal h2 {
  margin: 0 42px 6px 0;
}

.mini-modal-close,
.assignment-dialog-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: #eef2ff;
  color: var(--primary);
  font-size: 1.35rem;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
}

.visually-hidden-row {
  display: none;
}

.compact-student-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.compact-student-list a {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 4px 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #f8fafc;
  color: inherit;
  text-decoration: none;
}

.compact-student-list span {
  color: var(--primary);
  font-weight: 950;
}

.compact-student-list strong {
  overflow-wrap: anywhere;
}

.compact-student-list em {
  grid-column: 2;
  color: var(--muted);
  font-size: .82rem;
  font-style: normal;
}

.attention-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.attention-category-grid article {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fafc;
}

.attention-category-grid strong,
.attention-category-grid span {
  display: block;
}

.attention-category-grid span {
  margin-top: 4px;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 850;
}

.attention-group-stack {
  display: grid;
  gap: 10px;
  min-width: 320px;
}

.attention-group-stack section {
  border: 1px solid #dbeafe;
  background: #f8fbff;
  border-radius: 14px;
  padding: 10px 12px;
}

.attention-group-stack strong {
  display: inline-flex;
  margin-bottom: 6px;
  color: #1d4ed8;
  font-size: .88rem;
}

.attention-group-stack ul {
  margin: 0;
  padding-left: 18px;
}

.attention-group-stack li {
  margin: 4px 0;
}

.attention-group-stack li span {
  display: inline-flex;
  margin-right: 6px;
  font-size: .72rem;
  font-weight: 900;
  color: #475569;
}

.priority-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  padding: 6px 9px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #334155;
  font-size: .78rem;
  font-weight: 950;
}

.priority-pill.yuksek {
  background: #fee2e2;
  color: #991b1b;
}

.priority-pill.orta {
  background: #ffedd5;
  color: #9a3412;
}

.priority-pill.dusuk {
  background: #e0f2fe;
  color: #075985;
}

.success-panel {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

@media (max-width: 640px) {
  .student-profile-hero {
    grid-template-columns: 1fr;
  }

  .student-info-section {
    padding: 14px;
    border-radius: 18px;
  }

  .student-info-grid {
    grid-template-columns: 1fr;
  }
}

.section-edit-form select,
.section-edit-form input[type=number],
.section-edit-form button {
  min-height: 34px;
  padding: 6px 9px;
  font-size: .8rem;
}

.mini-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font-size: .8rem;
  font-weight: 850;
}

.login-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.login-card {
  display: grid;
  gap: 8px;
  min-height: 260px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.98));
  box-shadow: var(--shadow);
}

.login-card span {
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: .78rem;
  font-weight: 850;
}

.login-card strong {
  font-size: 1.25rem;
  letter-spacing: -.03em;
}

.login-card small {
  color: var(--success);
  font-weight: 850;
}

.login-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.login-card button {
  align-self: end;
  width: 100%;
}

.auth-shell {
  display: grid;
  place-items: start center;
  padding: 28px 0;
}

.auth-card {
  width: min(100%, 560px);
  display: grid;
  gap: 18px;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.98));
  box-shadow: var(--shadow);
}

.auth-card label {
  display: grid;
  gap: 8px;
  color: var(--text);
  font-weight: 850;
}

.auth-card input {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 0 16px;
  color: var(--text);
  background: #fff;
  font: inherit;
}

.auth-card input:focus {
  outline: 3px solid rgba(37, 99, 235, .14);
  border-color: rgba(37, 99, 235, .45);
}

.sticky-back-link {
  position: sticky;
  top: 0;
  z-index: 20;
  display: inline-flex;
  width: fit-content;
  margin-bottom: 10px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.center-cell {
  text-align: center;
}

.center-cell input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--primary);
}

.small-button {
  padding: 7px 10px;
  font-size: .78rem;
}

.checkbox-fieldset {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  gap: 8px;
  background: #fff;
}

.checkbox-fieldset legend {
  padding: 0 6px;
  font-size: .84rem;
  font-weight: 850;
  color: var(--muted);
}

.checkbox-line,
.form-grid .checkbox-line,
.compact-form .checkbox-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-weight: 750;
  line-height: 1.25;
  justify-content: flex-start;
  justify-self: start;
  width: auto;
}

.checkbox-line input[type="checkbox"],
.form-grid .checkbox-line input[type="checkbox"],
.compact-form .checkbox-line input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--primary);
}

.compact-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.compact-actions .inline-form {
  display: inline-flex;
  margin: 0;
}

.soft-divider {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 18px 0;
}

.section-student-duty-group {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #f8fafc;
}

.section-student-duty-group h3 {
  margin: 0 0 4px;
  font-size: 1.1rem;
}

.section-student-duty-group > p {
  margin: 0 0 14px;
  color: var(--muted);
}

.honor-student-duty-group {
  border-color: #c7d2fe;
  background: #f5f7ff;
}

.compact-table table {
  font-size: .9rem;
}

.compact-table th,
.compact-table td {
  padding: 8px 10px;
}

.row-number {
  width: 48px;
  color: var(--muted);
  font-weight: 900;
  text-align: center;
  white-space: nowrap;
}

.readonly-field {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
  color: var(--text);
  font-weight: 850;
}

.course-scope-table-wrap table {
  min-width: 900px;
}

.course-scope-table-wrap select {
  min-width: 150px;
  max-width: 230px;
}

.scope-attention-pulse {
  animation: scopeAttentionPulse .9s ease-in-out 2;
}

@keyframes scopeAttentionPulse {
  0%, 100% {
    border-color: var(--line);
    box-shadow: none;
  }
  35%, 70% {
    border-color: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, .18);
  }
}

.course-scope-tooltip-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #eef2ff;
  color: var(--primary);
  font-weight: 900;
  cursor: help;
  outline: none;
}

.course-scope-tooltip {
  position: absolute;
  left: 0;
  top: calc(100% + 10px);
  z-index: 30;
  display: none;
  width: min(420px, 78vw);
  max-height: 260px;
  overflow: auto;
  padding: 12px;
  border: 1px solid #bfdbfe;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(15, 23, 42, .18);
  color: var(--text);
  font-size: .82rem;
  line-height: 1.35;
}

.course-scope-tooltip strong,
.course-scope-tooltip span {
  display: block;
}

.course-scope-tooltip strong {
  margin-bottom: 8px;
}

.course-scope-tooltip span + span {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid var(--line);
}

.course-scope-tooltip-wrap:hover .course-scope-tooltip,
.course-scope-tooltip-wrap:focus .course-scope-tooltip,
.course-scope-tooltip-wrap:focus-within .course-scope-tooltip {
  display: block;
}

.pagination-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 16px;
  color: var(--muted);
  font-weight: 850;
}

.checkbox-line small {
  color: var(--muted);
  font-weight: 600;
}

.teacher-picker {
  min-height: 150px;
}

.tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 14px 0;
}

.tabs a {
  text-decoration: none;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 9px 14px;
  background: #fff;
  color: var(--text);
  font-weight: 850;
}

.tabs a.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}

.mini-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 8px;
  background: #eef2ff;
  color: #3730a3;
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}

.modal-frame-content .page-hero.compact,
.work-modal .page-hero.compact {
  position: sticky;
  top: 0;
  z-index: 12;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .08);
}

@media (max-width: 1180px) {
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .module-list, .login-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar {
    position: static;
    height: auto;
    border-radius: 0 0 24px 24px;
  }
  .side-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .side-nav span {
    grid-column: 1 / -1;
  }
  .nav-group {
    grid-column: 1 / -1;
  }
  .nav-group a,
  .nav-subgroup,
  .nav-subgroup a {
    margin-left: 0;
  }
  .content { padding: 15px; }
  .true-modal-backdrop { padding: 8px; align-items: stretch; }
  .true-modal-window { width: 100%; height: 96vh; border-radius: 20px; }
  .modal-frame-content { padding: 10px; }
  .modal-frame-content .form-grid { grid-template-columns: 1fr; }
  .work-modal { padding: 12px; border-radius: 22px; }
  .modal-return { border-radius: 16px; align-items: flex-start; flex-direction: column; }
  .page-hero { min-height: auto; flex-direction: column; align-items: start; padding: 20px; }
  .login-brand-logo { width: min(100%, 330px); margin-bottom: 14px; }
  .card-grid, .module-list, .focus-grid, .form-grid, .split-grid.two-column, .form-grid.two, .login-grid, .dashboard-card-designer, .card-design-list { grid-template-columns: 1fr; }
  .participant-grid { grid-template-columns: 1fr; }
  .participant-picker-heading { align-items: flex-start; }
  .participant-group-option { width: 100%; }
  .participant-picker-individual select { max-width: 100%; }
  .personnel-group-row { grid-template-columns: 1fr; }
  .personnel-group-row .row-actions { justify-content: flex-start; }
  .panel-title { align-items: flex-start; flex-wrap: wrap; }
  .process-strip, .preview-states, .process-grid, .setup-timeline, .compact-timeline { grid-template-columns: 1fr; }
  .focus-grid article { grid-template-columns: 38px minmax(0, 1fr); }
  .focus-grid em { grid-column: 2; }
  .progress-row { grid-template-columns: 1fr; }
  .project-score { min-width: 128px; min-height: 128px; }
  table { min-width: 720px; }
  .inline-edit-form { grid-template-columns: 1fr; }
  .section-edit-form { grid-template-columns: 1fr; }
  .quota-grid { grid-template-columns: 1fr; }
  .quota-grid label { grid-template-columns: 1fr; }
  .revision-form { grid-template-columns: 1fr; }
  .summary-strip { grid-template-columns: 1fr; }
  .compact-list article { grid-template-columns: 1fr; }
}

.student-file-shell {
  display: grid;
  grid-template-columns: minmax(190px, 240px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-top: 18px;
}

.student-file-nav {
  position: sticky;
  top: 18px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 14px;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 20px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.student-file-nav > span {
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 800;
  margin-bottom: 4px;
}

.student-file-nav a,
.student-file-nav summary {
  color: #334155;
  text-decoration: none;
  border-radius: 12px;
  padding: 9px 10px;
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
}

.student-file-nav a:hover,
.student-file-nav summary:hover {
  background: #eef6ff;
  color: #075985;
}

.student-file-nav details {
  display: grid;
  gap: 4px;
}

.student-file-nav details a {
  margin-left: 10px;
  font-size: .86rem;
  font-weight: 650;
  padding: 7px 9px;
}

.student-file-content {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.conversation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.conversation-grid article {
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 18px;
  padding: 14px;
  background: #f8fafc;
}

.conversation-grid article strong {
  display: block;
  color: #0f172a;
  margin-bottom: 6px;
}

.demo-readonly-form input:disabled,
.demo-readonly-form select:disabled,
.conversation-grid button:disabled {
  opacity: .72;
  cursor: not-allowed;
}

@media (max-width: 980px) {
  .student-file-shell {
    grid-template-columns: 1fr;
  }

  .student-file-nav {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .student-file-nav details {
    grid-column: 1 / -1;
  }

  .conversation-grid {
    grid-template-columns: 1fr;
  }
}

.academic-tabs {
  display: grid;
  gap: 14px;
}

.tab-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 6px;
  border-radius: 16px;
  background: #eef2ff;
}

.tab-buttons button {
  border: 0;
  border-radius: 12px;
  padding: 9px 14px;
  background: transparent;
  color: #475569;
  font-weight: 800;
}

.tab-buttons button.active {
  background: #ffffff;
  color: #1d4ed8;
  box-shadow: 0 8px 18px rgba(30, 64, 175, .12);
}

.tab-panel { display: none; }
.tab-panel.active { display: block; }

.score-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.score-chip-list span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #334155;
  font-size: .82rem;
  white-space: nowrap;
}

.score-chip-list b {
  color: #0f172a;
}

.grade-score-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

.grade-score-table th,
.grade-score-table td {
  vertical-align: middle;
}

.compact-grade-table th {
  white-space: nowrap;
  font-size: .78rem;
}

.compact-grade-table .course-cell {
  width: 20%;
  min-width: 0;
  text-align: left;
}

.score-group-cell {
  padding: 4px !important;
}

.written-score { background: #eff6ff; }
.performance-score { background: #f0fdf4; }
.practice-score { background: #fff7ed; }

.mini-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
}

.mini-score-grid.two-col {
  grid-template-columns: 1fr;
}

.mini-score-grid span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3px;
  border-radius: 7px;
  padding: 2px 3px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(148, 163, 184, .28);
  color: #0f172a;
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}

.mini-score-grid b {
  color: #64748b;
  font-size: .62rem;
}

.score-cell {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  color: #0f172a;
  text-align: center;
}

.term-score {
  background: #fefce8;
  color: #854d0e;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  border-radius: 999px;
  padding: 4px 6px;
  font-size: .7rem;
  font-weight: 850;
}

.status-danger { background: #fee2e2; color: #991b1b; }
.status-success { background: #dcfce7; color: #166534; }
.status-warning { background: #fef3c7; color: #92400e; }
.status-neutral { background: #e2e8f0; color: #334155; }

.decision-status-card {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}

.decision-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.decision-status-row .status-pill {
  min-width: 0;
  padding: 5px 9px;
  font-size: .72rem;
}

.decision-view-button {
  flex: 0 1 auto;
  min-height: 34px !important;
  padding: 8px 13px !important;
  font-size: .8rem !important;
}

.notification-ebys-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
  gap: 14px;
  align-items: end;
}

.notification-ebys-grid > label:not(.checkbox-line) {
  display: grid;
  gap: 7px;
  color: #334155;
  font-weight: 750;
}

.notification-ebys-edit {
  min-height: 43px;
  padding: 0 4px 1px;
  white-space: nowrap;
}

@media (max-width: 980px) {
  .notification-ebys-grid { grid-template-columns: 1fr; }
  .notification-ebys-edit { min-height: auto; padding: 0; }
}

@media (max-width: 920px) {
  .compact-grade-table,
  .compact-grade-table thead,
  .compact-grade-table tbody,
  .compact-grade-table th,
  .compact-grade-table td,
  .compact-grade-table tr {
    display: block;
  }

  .compact-grade-table thead { display: none; }

  .compact-grade-table tr {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    margin-bottom: 12px;
    padding: 10px;
    background: #fff;
  }

  .compact-grade-table td {
    border: 0 !important;
    padding: 6px 0 !important;
  }

  .compact-grade-table .course-cell {
    width: auto;
  }

  .score-group-cell {
    background: transparent !important;
  }

  .mini-score-grid {
    grid-template-columns: repeat(5, minmax(38px, 1fr));
  }

  .mini-score-grid.two-col {
    grid-template-columns: repeat(2, minmax(70px, 1fr));
  }
}

.course-tooltip-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  cursor: help;
}

.course-tooltip-wrap strong {
  overflow: hidden;
  text-overflow: ellipsis;
}

.course-teacher-tooltip {
  position: absolute;
  left: 0;
  bottom: calc(100% + 8px);
  z-index: 20;
  width: max-content;
  max-width: 280px;
  padding: 8px 10px;
  border-radius: 12px;
  background: #0f172a;
  color: #fff;
  font-size: .78rem;
  line-height: 1.3;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .22);
  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
}

.course-teacher-tooltip::after {
  content: "";
  position: absolute;
  left: 16px;
  top: 100%;
  border: 6px solid transparent;
  border-top-color: #0f172a;
}

.course-tooltip-wrap:hover .course-teacher-tooltip,
.course-tooltip-wrap:focus .course-teacher-tooltip,
.course-tooltip-wrap:focus-within .course-teacher-tooltip {
  opacity: 1;
  transform: translateY(0);
}

.student-list-signal-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.mini-signal,
.signal-clean {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 24px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
  cursor: help;
}

.signal-clean {
  background: #dcfce7;
  color: #166534;
}

.mini-signal-high { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.mini-signal-medium { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.mini-signal-low { background: #dbeafe; color: #1d4ed8; border: 1px solid #bfdbfe; }
.mini-signal-more { background: #e2e8f0; color: #334155; border: 1px solid #cbd5e1; }

.compact-grade-table .score-group-cell {
  vertical-align: top;
}

.compact-grade-table .course-cell,
.compact-grade-table .score-cell,
.compact-grade-table td:last-child {
  vertical-align: middle;
}

.course-name-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.25;
}

.status-tooltip-wrap {
  position: relative;
  display: inline-flex;
  justify-content: center;
  cursor: help;
}

.status-advice-tooltip {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 25;
  width: 230px;
  padding: 9px 11px;
  border-radius: 12px;
  background: #0f172a;
  color: #fff;
  font-size: .78rem;
  line-height: 1.35;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .22);
  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
  text-align: left;
}

.status-advice-tooltip::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 100%;
  border: 6px solid transparent;
  border-bottom-color: #0f172a;
}

.status-tooltip-wrap:hover .status-advice-tooltip,
.status-tooltip-wrap:focus .status-advice-tooltip,
.status-tooltip-wrap:focus-within .status-advice-tooltip {
  opacity: 1;
  transform: translateY(0);
}

.grade-score-area {
  width: 100%;
  overflow: visible;
  border: 1px solid #dbe3ef;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
}

.grade-score-area .grade-score-table {
  width: 100%;
}

.grade-score-area th:first-child,
.grade-score-area td:first-child {
  padding-left: 12px;
}

.grade-score-area th:last-child,
.grade-score-area td:last-child {
  padding-right: 12px;
}

.context-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0 0 18px;
  padding: 12px 14px;
  border: 1px solid rgba(79, 119, 255, .18);
  border-radius: 16px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 14px 36px rgba(17, 24, 39, .06);
}

.context-strip span {
  color: #64748b;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.context-strip strong {
  color: #102033;
  font-size: .92rem;
  margin-right: 10px;
}

.inline-check-group {
  grid-column: 1 / -1;
  border: 1px solid rgba(148, 163, 184, .38);
  border-radius: 16px;
  padding: 12px 14px;
  background: rgba(248, 250, 252, .75);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
}

.inline-check-group legend {
  padding: 0 6px;
  color: #334155;
  font-size: .82rem;
  font-weight: 800;
  margin-right: 10px;
}

.inline-check-group small {
  flex-basis: 100%;
  margin-top: 8px;
  color: #64748b;
}

.muted-fieldset {
  opacity: .58;
}

.personnel-form .form-actions {
  grid-column: 1 / -1;
}

.personnel-form .inline-check {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(148, 163, 184, .32);
  border-radius: 999px;
  background: #fff;
  font-weight: 750;
}

.personnel-form .inline-check input {
  margin: 0;
}

.personnel-table table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.import-center-table {
  max-width: 100%;
  overflow-x: hidden;
}

.import-center-table table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.import-center-table th,
.import-center-table td {
  padding: 8px 9px;
  overflow-wrap: anywhere;
  vertical-align: middle;
}

.import-center-table th:nth-child(1) { width: 23%; }
.import-center-table th:nth-child(2) { width: 32%; }
.import-center-table th:nth-child(3) { width: 10%; }
.import-center-table th:nth-child(4) { width: 11%; }
.import-center-table th:nth-child(5) { width: 14%; }
.import-center-table th:nth-child(6) { width: 10%; }

.import-center-table small {
  display: block;
  color: #64748b;
}

.incoming-transfer-preview-table table {
  width: 100%;
  min-width: 1080px;
  table-layout: fixed;
}

.incoming-transfer-preview-table { max-width: 100%; overflow-x: auto; }
.incoming-transfer-preview-table th.incoming-preview-select { width: 54px; }
.incoming-transfer-preview-table th.incoming-preview-student { width: 23%; }
.incoming-transfer-preview-table th.incoming-preview-source { width: 25%; }
.incoming-transfer-preview-table th.incoming-preview-target { width: 16%; }
.incoming-transfer-preview-table th.incoming-preview-status { width: 28%; min-width: 280px; }
.incoming-preview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 14px; }
.incoming-preview-actions form { margin: 0; }
.incoming-preview-actions .incoming-transfer-select-all { margin: 0; }
.incoming-preview-actions input[type="checkbox"],
.incoming-transfer-preview-table input[type="checkbox"] { width: 18px; height: 18px; margin: 0; flex-shrink: 0; vertical-align: middle; }
.incoming-transfer-preview-table td[data-label="Seç"] { text-align: center; }

.incoming-transfer-select-all { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.incoming-preview-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.incoming-preview-filters .active { background: #dbeafe; border-color: #60a5fa; color: #1e40af; font-weight: 800; }
.incoming-preview-filter-note { color: #475569; margin: 0 0 12px; }
.incoming-transfer-preview-table tr[hidden] { display: none !important; }
.incoming-pool-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.incoming-pool-filters .active { font-weight: 800; text-decoration: underline; }
.incoming-pool-table table { width: 100%; min-width: 0; table-layout: fixed; }
.incoming-pool-table th, .incoming-pool-table td { overflow-wrap: anywhere; vertical-align: top; padding: 8px; }
.incoming-pool-table .incoming-pool-row-processed > td { background: #dcfce7; }
.incoming-pool-table .incoming-pool-row-review > td { background: #fef3c7; }
.incoming-pool-table .incoming-pool-row-pending > td { background: #dbeafe; }
.incoming-pool-table .incoming-pool-row-processed > td:first-child { box-shadow: inset 5px 0 #16a34a; }
.incoming-pool-table .incoming-pool-row-review > td:first-child { box-shadow: inset 5px 0 #d97706; }
.incoming-pool-table .incoming-pool-row-pending > td:first-child { box-shadow: inset 5px 0 #2563eb; }
.incoming-pool-filters .incoming-pool-filter-processed { background: #dcfce7; color: #166534; }
.incoming-pool-filters .incoming-pool-filter-review { background: #fef3c7; color: #92400e; }
.incoming-pool-filters .incoming-pool-filter-pending { background: #dbeafe; color: #1e40af; }
.incoming-pool-status { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 999px; font-weight: 800; line-height: 1.25; }
.incoming-pool-status-processed { background: #dcfce7; color: #166534; }
.incoming-pool-status-review { background: #fef3c7; color: #92400e; }
.incoming-pool-status-pending { background: #dbeafe; color: #1e40af; }
.incoming-pool-school { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.incoming-pool-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 800px) { .incoming-pool-detail-grid { grid-template-columns: 1fr; } }
.incoming-manual-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.incoming-manual-form label { display: grid; gap: 4px; }
.incoming-manual-wide { grid-column: 1 / -1; }
@media (max-width: 800px) { .incoming-manual-form { grid-template-columns: 1fr; } }

.incoming-transfer-preview-table td {
  padding: 12px 14px;
  vertical-align: top;
  overflow-wrap: break-word;
  word-break: normal;
  line-height: 1.4;
}

.incoming-transfer-preview-table td > strong,
.incoming-transfer-preview-table td > small {
  display: block;
}

.incoming-transfer-preview-table td > small {
  margin-top: 4px;
  color: #64748b;
}

.incoming-transfer-preview-table .incoming-transfer-preview-status > small {
  color: #334155;
  overflow-wrap: normal;
  word-break: normal;
}

.incoming-transfer-preview-table select {
  max-width: 100%;
  margin-top: 8px;
}

.report-button-hero > div { min-width: 0; }
.report-button-hero .module-reports-button { background: #fff; border-radius: 10px; flex-shrink: 0; white-space: nowrap; margin-left: auto; align-self: center; }
@media (max-width: 820px) { .report-button-hero .module-reports-button { align-self: flex-end; } }

.kunye-preview-summary { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-bottom: 10px; }
.kunye-preview-group { border: 1px solid var(--line); border-radius: 12px; margin: 12px 0; padding: 12px 14px; }
.kunye-preview-group > summary { cursor: pointer; font-weight: 700; }
.kunye-preview-group > summary span { font-weight: 400; }
.kunye-preview-empty { padding: 12px 0; margin: 0; }
.kunye-preview-scroll { max-height: 440px; overflow: auto; margin-top: 12px; }
.kunye-preview-scroll table { width: 100%; min-width: 640px; table-layout: fixed; }
.kunye-preview-scroll th:nth-child(2) { width: 140px; }
.kunye-preview-scroll th:nth-child(3) { width: 160px; }
.kunye-preview-scroll td { vertical-align: top; overflow-wrap: break-word; word-break: normal; }
.kunye-preview-scroll thead th { position: sticky; top: 0; z-index: 1; background: #f8fafc; }

/* Outgoing preview has seven columns including the generated sequence number. */
.outgoing-transfer-preview-table { max-width: 100%; overflow-x: auto; }
.outgoing-transfer-preview-table table { width: 100%; min-width: 1180px; table-layout: fixed; }
.outgoing-transfer-preview-table th.outgoing-preview-select { width: 54px; }
.outgoing-transfer-preview-table th.outgoing-preview-student { width: 18%; }
.outgoing-transfer-preview-table th.outgoing-preview-placement { width: 15%; }
.outgoing-transfer-preview-table th.outgoing-preview-date { width: 18%; }
.outgoing-transfer-preview-table th.outgoing-preview-school { width: 22%; }
.outgoing-transfer-preview-table th.outgoing-preview-status { width: 27%; min-width: 280px; }
.outgoing-transfer-preview-table td { padding: 12px 14px; vertical-align: top; line-height: 1.4; overflow-wrap: break-word; word-break: normal; }
.outgoing-transfer-preview-table td > strong,
.outgoing-transfer-preview-table td > small { display: block; }
.outgoing-transfer-preview-table td > small { margin-top: 4px; color: #64748b; }
.outgoing-transfer-preview-table td.outgoing-preview-status { overflow-wrap: normal; }
.outgoing-transfer-preview-table td.outgoing-preview-status > small { color: #334155; }
.outgoing-transfer-preview-table .outgoing-preview-selection { text-align: center; }
.outgoing-preview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 14px; }
.outgoing-preview-actions .incoming-transfer-select-all { margin: 0; }
.outgoing-preview-actions input[type="checkbox"],
.outgoing-transfer-preview-table input[type="checkbox"] { width: 18px; height: 18px; margin: 0; flex-shrink: 0; vertical-align: middle; }

@media (max-width: 720px) {
  .import-center-table table,
  .import-center-table tbody { display: block; width: 100%; }
  .import-center-table thead,
  .import-center-table td:nth-child(6) { display: none; }
  .import-center-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
  }
  .import-center-table td { display: block; padding: 0; border: 0; }
  .import-center-table td:nth-child(3) { grid-column: 1 / -1; }
  .import-center-table td:nth-child(4),
  .import-center-table td:nth-child(5) { font-size: .82rem; }
  .import-center-table td:nth-child(7) { grid-column: 2; grid-row: 1; }
}

/* Only opted-in record lists; forms, signature tables and permission matrices are unchanged. */
.numbered-record-table > thead > tr > .row-number,
.numbered-record-table > tbody > tr > .row-number { width: 3.5rem; }
.compact-permission-table.numbered-record-table > thead > tr > th:nth-child(2),
.compact-permission-table.numbered-record-table > tbody > tr > td:nth-child(2) { width: 32%; text-align: left; }
:is(.document-list, .document-version-list) .numbered-record-table td:nth-child(2) { font-weight: 750; }

.personnel-table {
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}

.personnel-table th,
.personnel-table td {
  padding: 7px 6px;
  min-width: 0;
  vertical-align: middle;
}

.personnel-table th:nth-child(1), .personnel-table td:nth-child(1) { width: 4%; }
.personnel-table th:nth-child(2), .personnel-table td:nth-child(2) { width: 19%; }
.personnel-table th:nth-child(3), .personnel-table td:nth-child(3) { width: 9%; }
.personnel-table th:nth-child(4), .personnel-table td:nth-child(4) { width: 10%; }
.personnel-table th:nth-child(5), .personnel-table td:nth-child(5) { width: 13%; }
.personnel-table th:nth-child(6), .personnel-table td:nth-child(6) { width: 15%; }
.personnel-table th:nth-child(7), .personnel-table td:nth-child(7) { width: 15%; }
.personnel-table th:nth-child(8), .personnel-table td:nth-child(8) { width: 7%; }
.personnel-table th:nth-child(9), .personnel-table td:nth-child(9) { width: 8%; }

.personnel-table td:nth-child(2) {
  overflow: hidden;
}

.personnel-table td {
  font-size: .84rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.personnel-table td:nth-child(5),
.personnel-table td:nth-child(6),
.personnel-table td:nth-child(7) {
  overflow: hidden;
  text-overflow: ellipsis;
}

.personnel-table td:nth-child(2) strong,
.personnel-table td:nth-child(2) small {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.personnel-table small {
  display: block;
  margin-top: 3px;
  color: #64748b;
}

.personnel-table .inline-editor {
  min-width: 88px;
}

.personnel-table .inline-editor summary {
  cursor: pointer;
  color: #1d4ed8;
  font-weight: 850;
}

.personnel-table .inline-editor[open] {
  min-width: 88px;
}

.personnel-table .inline-editor[open]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(15, 23, 42, .42);
  backdrop-filter: blur(2px);
}

.personnel-table .inline-editor[open] > .personnel-edit-panel {
  position: fixed;
  inset: 4dvh auto auto 50%;
  z-index: 90;
  width: min(760px, calc(100vw - 28px));
  max-height: 92dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateX(-50%);
  padding: 18px;
  border: 1px solid rgba(148, 163, 184, .34);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(15, 23, 42, .28);
}

.personnel-edit-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(148, 163, 184, .25);
}

.personnel-edit-header h3 {
  margin: 0;
  color: #102033;
}

.personnel-edit-header p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: .86rem;
}

.personnel-edit-close {
  color: #475569;
  cursor: pointer;
  font-size: .86rem;
  font-weight: 850;
  white-space: nowrap;
}

.personnel-edit-panel .personnel-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.personnel-edit-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  grid-column: 1 / -1;
  flex: none;
  padding-top: 12px;
  border-top: 1px solid rgba(148, 163, 184, .25);
}

.personnel-edit-actions form {
  margin: 0;
}

.personnel-edit-actions button {
  min-width: 108px;
  height: 42px;
}

.personnel-edit-header .personnel-edit-close {
  width: auto;
  flex: none;
}

@media (max-width: 720px) {
  .personnel-table {
    overflow-x: hidden;
  }

  .personnel-table table,
  .personnel-table tbody {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .personnel-table thead {
    display: none;
  }

  .personnel-table tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 16px;
    margin-bottom: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
  }

  .personnel-table td {
    display: block;
    width: auto !important;
    min-width: 0 !important;
    padding: 0;
    overflow-wrap: anywhere;
    white-space: normal;
    border: 0;
  }

  .personnel-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: #64748b;
    font-size: .74rem;
    font-weight: 750;
  }

  .personnel-table td:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .personnel-edit-panel .personnel-form {
    grid-template-columns: 1fr;
  }

  .personnel-table tr {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .personnel-table tr {
    grid-template-columns: minmax(0, 1fr);
  }
}

.physical-tree {
  display: grid;
  gap: 16px;
}

.physical-tree-campus {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.physical-tree-campus h3 {
  margin: 0 0 12px;
  font-size: 1.05rem;
}

.physical-tree-building {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  border: 1px solid rgba(37, 99, 235, .14);
  border-radius: 18px;
  padding: 12px;
  background: rgba(239, 246, 255, .72);
}

.physical-tree-building > span {
  color: var(--muted);
  font-size: .86rem;
}

.physical-tree-floor {
  display: grid;
  gap: 8px;
  border-radius: 16px;
  padding: 10px;
  background: #fff;
}

/* Standard action buttons for modal/workflow screens */
.action-button,
button.action-button,
a.action-button,
.form-actions > button,
.personnel-edit-actions button,
.personnel-edit-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 9px 15px;
  font-size: .86rem;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .10);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.action-button:hover,
button.action-button:hover,
a.action-button:hover,
.form-actions > button:hover,
.personnel-edit-actions button:hover,
.personnel-edit-close:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(15, 23, 42, .14);
  filter: saturate(1.05);
}

.action-button-save,
.form-actions > button[type=submit],
.small-button.action-button-save {
  background: linear-gradient(135deg, #16a34a, #15803d);
  color: #fff;
  border-color: rgba(22, 163, 74, .34);
}

.action-button-update,
.personnel-edit-actions button[type=submit] {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff;
  border-color: rgba(37, 99, 235, .34);
}

.action-button-delete,
.danger-button,
button.danger-button,
.personnel-edit-actions button.danger-button {
  background: linear-gradient(135deg, #fee2e2, #fecaca);
  color: #991b1b;
  border-color: rgba(185, 28, 28, .25);
}

.action-button-close,
.personnel-edit-close,
a.action-button-close {
  background: #f8fafc;
  color: #334155;
  border-color: rgba(148, 163, 184, .45);
}

.action-button:disabled,
.form-actions > button:disabled,
.button-like:disabled,
.secondary-button:disabled {
  cursor: not-allowed;
  opacity: .48;
  transform: none;
  box-shadow: none;
  filter: grayscale(.15);
}

.small-button.action-button {
  min-height: 34px;
  padding: 8px 12px;
  font-size: .8rem;
}

/* Kurul dosyasında tamamlanan ifade ile sıradaki savunma adımını ayırır. */
.ghost-button.discipline-expression-complete,
.ghost-button.discipline-defense-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin: 2px 6px 2px 0;
  border: 1px solid;
  border-radius: 999px;
  padding: 8px 13px;
  font-size: .82rem;
  font-weight: 850;
  line-height: 1.15;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.ghost-button.discipline-expression-complete {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.ghost-button.discipline-expression-complete:hover {
  border-color: #4ade80;
  background: #dcfce7;
  color: #14532d;
  transform: translateY(-1px);
}

.ghost-button.discipline-defense-call {
  border-color: #fdba74;
  background: #fff7ed;
  color: #c2410c;
}

.ghost-button.discipline-defense-call:hover {
  border-color: #fb923c;
  background: #ffedd5;
  color: #9a3412;
  transform: translateY(-1px);
}

.compact-inline-form select {
  min-width: 210px;
}

.assignment-title {
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.assignment-title h2 {
  margin-right: auto;
}

.inline-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #475569;
  font-size: .86rem;
  font-weight: 800;
}

.inline-filter select {
  min-width: 220px;
  max-width: 320px;
}

.assignment-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.assignment-actions .inline-form {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.assignment-actions input[type=date] {
  min-width: 136px;
  max-width: 150px;
}

.assignment-actions .small-button.action-button {
  min-width: 74px;
  padding-inline: 10px;
}

.assignment-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(15, 23, 42, .46);
  backdrop-filter: blur(3px);
}

.assignment-dialog-backdrop[hidden] {
  display: none;
}

.assignment-dialog {
  position: relative;
  width: min(520px, 100%);
  border: 1px solid rgba(148, 163, 184, .32);
  border-radius: 22px;
  padding: 22px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .25);
}

.assignment-dialog.wide-dialog {
  width: min(1240px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
}

.assignment-dialog.elective-hours-dialog {
  width: min(620px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
}

.assignment-dialog h3 {
  margin: 0 42px 8px 0;
  color: #0f172a;
}

@media (max-width: 720px) {
  .action-button,
  button.action-button,
  a.action-button,
  .form-actions > button,
  .personnel-edit-actions button,
  .personnel-edit-close {
    width: 100%;
  }

  .inline-filter,
  .inline-filter select {
    width: 100%;
  }

  .assignment-actions {
    width: auto;
    max-width: 100%;
    overflow-x: auto;
  }

  .assignment-actions .inline-form {
    width: auto;
  }

  .assignment-dialog {
    padding: 18px;
    border-radius: 18px;
  }
}


.chief-assignment-form {
  align-items: start;
}

.chief-assignment-form > label {
  min-width: 0;
}

.chief-assignment-form select,
.chief-assignment-form input[type="date"] {
  width: 100%;
}

#chiefWorkshopLabLabel small {
  display: block;
  min-height: 2.35em;
  margin-top: 6px;
  line-height: 1.25;
}

.assignment-dialog select {
  max-width: 100%;
}


.chief-area-groups {
  display: grid;
  gap: 16px;
}

.chief-area-group {
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 22px;
  padding: 14px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.chief-area-group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.chief-area-group-header h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
  letter-spacing: .01em;
}

.chief-area-group-header span {
  border-radius: 999px;
  padding: 5px 10px;
  background: rgba(255, 255, 255, .72);
  color: #475569;
  font-size: .78rem;
  font-weight: 900;
}

.chief-area-group table {
  background: rgba(255, 255, 255, .72);
  border-radius: 16px;
  overflow: hidden;
}

.chief-area-group.tone-1 { background: linear-gradient(135deg, #eff6ff, #f8fafc); }
.chief-area-group.tone-2 { background: linear-gradient(135deg, #ecfdf5, #f8fafc); }
.chief-area-group.tone-3 { background: linear-gradient(135deg, #fff7ed, #f8fafc); }
.chief-area-group.tone-4 { background: linear-gradient(135deg, #f5f3ff, #f8fafc); }
.chief-area-group.tone-5 { background: linear-gradient(135deg, #fdf2f8, #f8fafc); }
.chief-area-group.tone-6 { background: linear-gradient(135deg, #fefce8, #f8fafc); }


.chief-area-group.tone-electric { background: linear-gradient(135deg, #e0f2fe, #fef3c7); border-color: rgba(14, 165, 233, .28); }
.chief-area-group.tone-machine { background: linear-gradient(135deg, #f1f5f9, #e2e8f0); border-color: rgba(100, 116, 139, .25); }
.chief-area-group.tone-it { background: linear-gradient(135deg, #eef2ff, #dbeafe); border-color: rgba(99, 102, 241, .22); }
.chief-area-group.tone-furniture { background: linear-gradient(135deg, #fef3c7, #fffbeb); border-color: rgba(217, 119, 6, .24); }
.chief-area-group.tone-metal { background: linear-gradient(135deg, #f0fdfa, #ccfbf1); border-color: rgba(20, 184, 166, .24); }

/* Main workspace landing mockup */
.workspace-landing-body {
  background: #f8fafc;
}

.workspace-landing-shell {
  display: block;
  min-height: 100vh;
}

.workspace-landing-content {
  max-width: none;
  padding: 0;
  min-width: 0;
}

.main-panel-shell {
  min-height: 100vh;
  padding: 18px 22px 28px;
  background: radial-gradient(circle at top, #ffffff 0, #f8fafc 54%, #eef2f7 100%);
  color: #0f172a;
}

.main-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  border: 1px solid rgba(148, 163, 184, .26);
  border-radius: 18px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.main-panel-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #0f172a;
}

.main-panel-brand-logo {
  display: block;
  width: min(210px, 24vw);
  min-width: 148px;
  height: auto;
}

.main-panel-user {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(148, 163, 184, .25);
  border-radius: 16px;
  padding: 8px 10px 8px 12px;
  background: #fff;
}

.main-panel-user .user-avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #2563eb;
}

.main-panel-user strong {
  display: block;
  font-size: .9rem;
}

.main-panel-user small {
  display: block;
  color: #64748b;
  font-size: .76rem;
}

.main-panel-user form {
  margin: 0;
}

.main-panel-user button {
  border: 0;
  border-left: 1px solid rgba(148, 163, 184, .32);
  background: transparent;
  color: #0f172a;
  padding: 8px 10px 8px 16px;
  font-weight: 800;
}

.main-panel-title {
  text-align: center;
  padding: 28px 12px 24px;
}

.main-panel-title-icon {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: #eaf2ff;
  color: #2563eb;
  font-size: 1.2rem;
  margin-bottom: 12px;
}

.main-panel-title h1 {
  margin: 0;
  font-size: 2.15rem;
  letter-spacing: -.04em;
}

.main-panel-title p {
  margin: 8px 0 0;
  color: #475569;
}

.main-panel-title small {
  display: inline-block;
  margin-top: 10px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  border: 1px solid rgba(148, 163, 184, .22);
}

.main-panel-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(380px, .98fr);
  gap: 18px;
  max-width: 1500px;
  margin: 0 auto;
}

.workspace-card-panel,
.alert-panel-wide,
.messages-panel-wide {
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 22px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 16px 40px rgba(15, 23, 42, .06);
}

.workspace-card-panel {
  padding: 22px;
}

.workspace-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.workspace-card {
  min-height: 118px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(148, 163, 184, .25);
  border-radius: 18px;
  background: #fff;
  color: #0f172a;
  text-decoration: none;
  transition: .18s ease;
}

.workspace-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(15, 23, 42, .09);
}

.workspace-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: linear-gradient(135deg, #dbeafe, #f1f5f9);
  color: #2563eb;
  font-weight: 900;
}

.workspace-card strong {
  display: block;
  font-size: 1rem;
}

.workspace-card p {
  margin: 6px 0 0;
  color: #475569;
  font-size: .88rem;
  line-height: 1.45;
}

.workspace-card em {
  font-style: normal;
  font-size: 1.65rem;
  color: #1d4ed8;
}

.alert-panel-wide {
  padding: 20px;
}

.main-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.main-section-title div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.main-section-title h2 {
  margin: 0;
  font-size: 1.08rem;
}

.main-section-title a {
  text-decoration: none;
  font-weight: 800;
  color: #2563eb;
  font-size: .86rem;
}

.alert-stack {
  display: grid;
  gap: 12px;
}

.main-alert-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 14px;
  padding: 18px 16px 14px;
  border-radius: 17px;
  text-decoration: none;
  color: #0f172a;
  border: 1px solid rgba(148, 163, 184, .22);
}

.main-alert-card small {
  position: absolute;
  top: -10px;
  left: 16px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
  background: #fff;
}

.main-alert-card.critical {
  background: #fff5f5;
  border-color: #fecaca;
}

.main-alert-card.warning {
  background: #fff7ed;
  border-color: #fed7aa;
}

.main-alert-card.info {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.alert-symbol {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .65);
  color: #dc2626;
  font-weight: 900;
}

.main-alert-card strong {
  display: block;
  font-size: .92rem;
}

.main-alert-card p {
  margin: 5px 0 0;
  color: #475569;
  font-size: .82rem;
}

.main-alert-card b {
  display: grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
}

.main-alert-card.warning b {
  background: #f59e0b;
}

.main-alert-card.info b {
  background: #2563eb;
}

.main-alert-card em {
  font-style: normal;
  font-size: 1.4rem;
  color: #334155;
}

.messages-panel-wide {
  max-width: 1500px;
  margin: 18px auto 0;
  padding: 18px 20px;
}

.main-panel-bottom-grid {
  max-width: 1500px;
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(380px, .98fr);
  gap: 18px;
  align-items: stretch;
}

.main-panel-bottom-grid.single {
  grid-template-columns: 1fr;
}

.main-panel-bottom-grid .messages-panel-wide {
  max-width: none;
  width: 100%;
  margin: 0;
  min-width: 0;
  height: 100%;
}

.main-panel-bottom-grid .message-card-grid.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.message-strip {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.message-strip-arrow {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #2563eb;
  font-size: 1.45rem;
  line-height: 1;
  box-shadow: 0 7px 18px rgba(15, 23, 42, .08);
  cursor: pointer;
}

.message-strip-arrow:disabled {
  opacity: .3;
  cursor: default;
  box-shadow: none;
}

.message-strip .message-card-grid {
  min-width: 0;
}

.message-strip .message-card {
  min-width: 0;
  min-height: 136px;
  max-height: 156px;
  overflow: hidden;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
}

.message-strip .message-icon {
  width: 36px;
  height: 36px;
}

.message-strip .message-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.message-strip .message-card strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.message-strip .message-card b {
  grid-column: 3;
  grid-row: 1;
}

.message-strip .message-card em {
  display: none;
}

.calendar-shortcut-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  padding: 14px 16px 12px;
  overflow: hidden;
  border: 1px solid rgba(59, 130, 246, .2);
  border-radius: 22px;
  background: linear-gradient(145deg, #eff6ff 0%, #ffffff 72%);
  color: #0f172a;
  text-decoration: none;
  box-shadow: 0 16px 34px rgba(30, 64, 175, .07);
  height: 100%;
}

.calendar-shortcut-panel::after {
  content: "";
  position: absolute;
  right: -45px;
  bottom: -65px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: rgba(37, 99, 235, .07);
}

.calendar-shortcut-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #2563eb;
  color: #fff;
  font-size: 1.25rem;
  box-shadow: 0 10px 22px rgba(37, 99, 235, .2);
}

.calendar-shortcut-heading {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
}

.calendar-shortcut-heading > span:last-child {
  color: #64748b;
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}

.calendar-shortcut-panel small {
  color: #2563eb;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .1em;
}

.calendar-shortcut-panel h2 {
  margin: 2px 0 0;
  font-size: 1.05rem;
}

.calendar-shortcut-panel p {
  margin: 0 0 12px;
  color: #475569;
  font-size: .82rem;
  line-height: 1.45;
}

.calendar-shortcut-panel strong {
  color: #334155;
  font-size: .82rem;
}

.calendar-shortcut-action {
  position: absolute;
  right: 16px;
  bottom: 11px;
  width: fit-content;
  padding: 6px 11px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: .73rem;
  font-weight: 900;
  z-index: 1;
}

.mini-calendar {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 3px;
}

.mini-calendar-day-name {
  padding: 1px 0 3px;
  color: #64748b;
  text-align: center;
  font-size: .65rem;
}

.mini-calendar-day {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 26px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  background: rgba(255, 255, 255, .82);
  color: #334155;
  font-size: .73rem;
  font-style: normal;
  font-weight: 800;
}

.mini-calendar-day em {
  font-style: normal;
}

.mini-calendar-day small {
  position: absolute;
  top: 1px;
  left: 3px;
  color: #94a3b8;
  font-size: .43rem;
  font-weight: 900;
  text-transform: uppercase;
}

.mini-calendar-day.weekend {
  background: #f1f5f9;
  color: #64748b;
}

.mini-calendar-day.other-month {
  opacity: .55;
}

.mini-calendar-day.today {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
  box-shadow: 0 5px 12px rgba(37, 99, 235, .2);
  opacity: 1;
}

.mini-calendar-markers {
  position: absolute;
  right: 3px;
  bottom: 3px;
  display: flex;
  gap: 2px;
  font-style: normal;
}

.mini-calendar-markers u,
.mini-calendar-legend i {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  text-decoration: none;
}

.event-dot {
  background: #f97316;
}

.task-dot {
  background: #8b5cf6;
}

.mini-calendar-day.today .mini-calendar-markers u {
  outline: 1px solid rgba(255, 255, 255, .85);
}

.mini-calendar-legend {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 16px;
  padding-right: 100px;
  color: #64748b;
  font-size: .68rem;
  font-weight: 800;
}

.mini-calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.calendar-shortcut-panel:hover {
  border-color: rgba(37, 99, 235, .42);
  transform: translateY(-1px);
}

.personal-calendar-panel { overflow: hidden; }
.personal-calendar-toolbar,
.personal-calendar-detail-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.personal-calendar-toolbar h2,
.personal-calendar-detail-heading h2 { margin: 2px 0 0; text-transform: capitalize; }
.personal-calendar-navigation,
.personal-calendar-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}
.personal-calendar-navigation .secondary-button { min-width: 92px; }
.personal-calendar-navigation button:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.personal-calendar-legend {
  margin: 18px 0;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 14px;
  background: #f8fafc;
  color: #475569;
  font-size: .8rem;
  font-weight: 800;
}
.personal-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.personal-calendar-legend small { margin-left: auto; color: #64748b; }
.personal-calendar-dot { display: block; width: 7px; height: 7px; border-radius: 50%; }
.personal-calendar-dot.event { background: #f97316; }
.personal-calendar-dot.central { background: #2563eb; }
.personal-calendar-dot.task { background: #8b5cf6; }
.personal-calendar-dot.participant { width: 9px; height: 9px; border: 2px solid #fff; background: #16a34a; box-shadow: 0 0 0 1px #16a34a; }
.personal-calendar-dot.cancelled { border: 1px solid #94a3b8; background: #e2e8f0; }
.work-calendar-source-filters button { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #dbe4f2; cursor: pointer; }
.work-calendar-source-filters button.active { border-color: var(--primary); background: var(--primary); color: #fff; }
.personal-calendar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr);
  gap: 18px;
  align-items: start;
}
.personal-calendar-board,
.personal-calendar-detail {
  min-width: 0;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 18px;
  background: #fff;
}
.personal-calendar-board { overflow: hidden; }
.personal-calendar-weekdays,
.personal-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.personal-calendar-weekdays {
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}
.personal-calendar-weekdays span { padding: 10px 5px; color: #64748b; text-align: center; font-size: .76rem; font-weight: 900; }
.personal-calendar-day {
  position: relative;
  min-width: 0;
  min-height: 76px;
  padding: 9px;
  border: 0;
  border-right: 1px solid #eef2f7;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  color: #334155;
  text-align: left;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}
.personal-calendar-day:nth-child(7n) { border-right: 0; }
.personal-calendar-day.weekend { background: #f8fafc; }
.personal-calendar-day.in-period { box-shadow: inset 0 3px 0 rgba(37, 99, 235, .12); }
.personal-calendar-day.other-month { color: #94a3b8; opacity: .58; }
.personal-calendar-day:hover { background: #eff6ff; }
.personal-calendar-day.today { color: #1d4ed8; box-shadow: inset 0 0 0 2px #2563eb; opacity: 1; }
.personal-calendar-day.today > span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #2563eb; color: #fff; }
.personal-calendar-day.selected { z-index: 1; background: #dbeafe; box-shadow: inset 0 0 0 2px #60a5fa; opacity: 1; }
.personal-calendar-day.today.selected { box-shadow: inset 0 0 0 2px #1d4ed8; }
.personal-calendar-day-markers { position: absolute; right: 8px; bottom: 8px; display: flex; gap: 4px; }
.personal-calendar-detail { padding: 16px; background: #f8fafc; }
.personal-calendar-detail-heading { align-items: flex-start; padding-bottom: 13px; border-bottom: 1px solid #e2e8f0; }
.personal-calendar-detail-heading small { color: #64748b; font-weight: 800; }
.personal-calendar-detail-heading h2 { font-size: 1.05rem; }
.personal-calendar-record { margin-top: 12px; padding: 13px; border: 1px solid #e2e8f0; border-left: 4px solid #f97316; border-radius: 13px; background: #fff; }
.personal-calendar-record.central-record { border-left-color: #2563eb; }
.personal-calendar-record.period-record { border-left-color: #8b5cf6; }
.personal-calendar-record.task-record { border-left-color: #8b5cf6; }
.personal-calendar-record.cancelled { border-left-color: #94a3b8; opacity: .63; }
.personal-calendar-record > div { display: flex; flex-wrap: wrap; gap: 6px; }
.personal-calendar-record h3 { margin: 9px 0 5px; font-size: .96rem; overflow-wrap: anywhere; }
.personal-calendar-record p,
.personal-calendar-record small { display: block; margin: 0; color: #64748b; font-size: .8rem; line-height: 1.45; }
.personal-calendar-detail .empty-state { margin-top: 12px; }

@media (max-width: 820px) {
  .personal-calendar-layout { grid-template-columns: 1fr; }
  .personal-calendar-detail { order: 2; }
}

@media (max-width: 760px) {
  .personal-calendar-toolbar { align-items: flex-start; flex-direction: column; }
  .personal-calendar-navigation { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .personal-calendar-navigation .secondary-button { min-width: 0; padding-inline: 8px; }
  .personal-calendar-legend small { width: 100%; margin-left: 0; }
  .personal-calendar-weekdays span { padding-inline: 2px; font-size: .68rem; }
  .personal-calendar-day { min-height: 54px; padding: 6px; font-size: .78rem; }
  .personal-calendar-day.today > span { width: 23px; height: 23px; }
  .personal-calendar-day-markers { right: 5px; bottom: 5px; gap: 2px; }
  .personal-calendar-dot { width: 6px; height: 6px; }
}

.message-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.message-card {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(148, 163, 184, .23);
  border-radius: 18px;
  background: #fff;
}

.message-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: #e0f2fe;
  color: #2563eb;
  font-size: 1.2rem;
}

.message-card.purple .message-icon {
  background: #ede9fe;
  color: #7c3aed;
}

.message-card.cyan .message-icon {
  background: #cffafe;
  color: #0891b2;
}

.message-card strong {
  display: block;
  font-size: .92rem;
}

.message-card p {
  margin: 5px 0 8px;
  color: #475569;
  font-size: .82rem;
}

.message-card small {
  color: #64748b;
}

.message-card b {
  padding: 6px 12px;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: .76rem;
}

.message-card em {
  font-style: normal;
  color: #334155;
  font-size: 1.4rem;
}

@media (max-width: 1100px) {
  .main-panel-grid {
    grid-template-columns: 1fr;
  }

  .main-panel-bottom-grid {
    grid-template-columns: 1fr;
  }

  .message-card-grid {
    grid-template-columns: 1fr;
  }

  .main-panel-bottom-grid .message-card-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .main-panel-shell {
    padding: 12px;
  }

  .main-panel-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .workspace-card-grid {
    grid-template-columns: 1fr;
  }

  .main-panel-title h1 {
    font-size: 1.65rem;
  }

  .main-panel-user {
    width: 100%;
  }

  .main-panel-bottom-grid .message-card-grid.compact {
    grid-template-columns: 1fr;
  }
}

/* Compact main panel adjustments */
.main-panel-shell {
  padding: 14px 18px 18px;
}

.main-panel-header {
  margin-bottom: 14px;
}

.main-panel-school {
  flex: 1 1 auto;
  min-width: 220px;
  display: grid;
  gap: 1px;
  padding: 8px 14px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 15px;
  background: rgba(248, 250, 252, .86);
}

.main-panel-school span {
  color: #64748b;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.main-panel-school strong {
  color: #0f172a;
  font-size: .94rem;
  line-height: 1.15;
}

.main-panel-school small {
  color: #2563eb;
  font-size: .78rem;
  font-weight: 800;
}

.main-panel-grid {
  gap: 14px;
}

.workspace-card-panel {
  padding: 16px;
}

.workspace-card-grid {
  gap: 12px;
}

.workspace-card {
  min-height: 94px;
  padding: 14px;
}

.workspace-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
}

.alert-panel-wide {
  padding: 16px;
}

.alert-stack {
  gap: 10px;
}

.main-alert-card {
  padding: 15px 14px 12px;
  gap: 12px;
}

.alert-symbol {
  width: 40px;
  height: 40px;
}

.messages-panel-wide {
  margin-top: 14px;
  padding: 14px 16px;
}

.main-panel-bottom-grid {
  margin-top: 14px;
  gap: 14px;
}

.main-panel-bottom-grid .messages-panel-wide {
  margin-top: 0;
}

.message-card-grid {
  gap: 12px;
}

.message-card {
  padding: 13px;
}

.message-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
}

@media (max-width: 760px) {
  .main-panel-school {
    width: 100%;
  }
}

/* Setup completion state clarity */
.setup-step.done {
  border-color: rgba(22, 101, 52, .28);
  background: linear-gradient(135deg, #f0fdf4, #ffffff);
}

.setup-step.done small {
  color: #166534;
}

.setup-step.todo {
  border-color: rgba(234, 88, 12, .25);
  background: linear-gradient(135deg, #fff7ed, #ffffff);
}

.setup-step.todo small {
  color: #9a3412;
}

/* Explicit setup status badge */
.setup-step {
  position: relative;
  padding-right: 150px;
}

.setup-state-badge {
  position: absolute;
  right: 18px;
  top: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
}

.setup-state-badge.complete {
  background: #dcfce7;
  color: #166534;
  border: 1px solid rgba(22, 101, 52, .22);
}

.setup-state-badge.waiting {
  background: #ffedd5;
  color: #9a3412;
  border: 1px solid rgba(154, 52, 18, .22);
}

@media (max-width: 900px) {
  .setup-step {
    padding-right: 18px;
  }

  .setup-state-badge {
    position: static;
    margin-top: 10px;
    width: fit-content;
  }
}

.student-profile-hero-clean {
  grid-template-columns: auto minmax(220px, 1fr) minmax(260px, 360px);
}

.compact-lines {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.student-quick-score {
  justify-self: stretch;
  padding: 16px;
  border-radius: 20px;
  border: 1px solid rgba(37, 99, 235, .16);
  background: rgba(255, 255, 255, .72);
}

.student-quick-score span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 900;
}

.student-quick-score strong {
  display: block;
  margin-top: 4px;
  color: #1d4ed8;
  font-size: 2rem;
  line-height: 1;
}

.student-quick-score p {
  margin-top: 6px;
  font-size: .84rem;
}

.student-quick-score .compact-lines {
  margin-top: 10px;
  gap: 6px;
}

.student-quick-score .compact-lines span {
  padding: 6px 8px;
  font-size: .68rem;
}

.student-quick-score .compact-lines strong {
  display: inline;
  margin: 0;
  color: #0f172a;
  font-size: .78rem;
  line-height: 1.2;
}

.student-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}

.student-detail-card {
  min-width: 0;
}

.student-meeting-summary-panel {
  margin-bottom: 16px;
}

.student-meeting-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.student-meeting-summary-grid article {
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 18px;
  background: #f8fafc;
}

.student-meeting-summary-grid article.wide {
  grid-column: 1 / -1;
}

.student-meeting-summary-grid span {
  display: block;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.student-meeting-summary-grid strong {
  display: block;
  margin-top: 4px;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 950;
}

.student-meeting-summary-grid p {
  margin: 6px 0 0;
  color: #64748b;
  font-size: .86rem;
  line-height: 1.45;
}

.student-contact-list {
  display: grid;
  gap: 10px;
}

.student-contact-list article {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 18px;
  background: #f8fafc;
}

.student-contact-list span {
  display: block;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.student-contact-list strong {
  display: block;
  margin-top: 4px;
  color: #0f172a;
  font-weight: 950;
  overflow-wrap: anywhere;
}

.student-contact-list p {
  margin: 6px 0 0;
  color: #64748b;
  font-size: .84rem;
  overflow-wrap: anywhere;
}

.status-history-list {
  display: grid;
  gap: 10px;
}

.status-history-list article {
  padding: 12px 14px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 18px;
  background: #f8fafc;
}

.status-history-list span,
.status-history-list small {
  display: block;
  color: var(--muted);
  font-size: .74rem;
  font-weight: 850;
}

.status-history-list strong {
  display: block;
  margin-top: 4px;
  color: #0f172a;
  font-weight: 950;
}

.status-history-list p {
  margin: 6px 0;
  color: #475569;
}

.student-edit-panel {
  margin-bottom: 16px;
}

.compact-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.compact-form-grid label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.compact-form-grid label.wide,
.compact-form-grid .wide {
  grid-column: 1 / -1;
}

.compact-form-grid span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 900;
}

.compact-form-grid input,
.compact-form-grid select,
.compact-form-grid textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(148, 163, 184, .34);
  border-radius: 14px;
  padding: 10px 11px;
  color: #0f172a;
  background: #fff;
  font: inherit;
}

.compact-form-grid textarea {
  resize: vertical;
}

.compact-form-grid .checkbox-card {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .26);
  border-radius: 14px;
  background: #f8fafc;
}

.compact-form-grid .checkbox-card input[type="checkbox"] {
  width: auto;
  min-width: auto;
}

.compact-form-grid .checkbox-card span {
  color: #334155;
  font-size: .84rem;
}

.student-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.student-facts div {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 16px;
  background: #f8fafc;
}

.student-facts div.wide {
  grid-column: span 2;
}

.student-facts span {
  display: block;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
}

.student-facts strong {
  display: block;
  margin-top: 3px;
  color: #0f172a;
  overflow-wrap: anywhere;
}

@media (max-width: 860px) {
  .student-profile-hero-clean,
  .student-detail-grid {
    grid-template-columns: 1fr;
  }

  .compact-lines,
  .student-facts,
  .student-meeting-summary-grid,
  .compact-form-grid {
    grid-template-columns: 1fr;
  }

  .student-facts div.wide,
  .student-meeting-summary-grid article.wide,
  .compact-form-grid label.wide,
  .compact-form-grid .wide {
    grid-column: auto;
  }
}
.dashboard-action-card {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: transform .18s ease, box-shadow .18s ease;
}

.dashboard-action-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(15, 23, 42, .12);
}

.student-dashboard-grid .info-card strong {
    font-size: 2rem;
}
.student-risk-icons {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
    align-items: center;
}

.student-risk-pill {
    min-width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 .45rem;
    font-size: .72rem;
    font-weight: 800;
    color: #334155;
    background: #e2e8f0;
    border: 1px solid rgba(148, 163, 184, .45);
}

.student-risk-pill.oncelikli-izlem,
.student-risk-pill.kritik-mudahale {
    color: #991b1b;
    background: #fee2e2;
    border-color: #fecaca;
}

.student-risk-pill.izlem {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.student-risk-pill.bilgi {
    color: #1e40af;
    background: #dbeafe;
    border-color: #bfdbfe;
}

.subnav-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin: 1rem 0;
}

.subnav-pill {
    display: inline-flex;
    align-items: center;
    min-height: 2.45rem;
    padding: .55rem 1rem;
    border: 1px solid #dbe3ef;
    border-radius: 999px;
    background: #fff;
    color: #334155;
    font-weight: 800;
    text-decoration: none;
}

.subnav-pill:hover,
.subnav-pill.active {
    color: #1d4ed8;
    background: #eff6ff;
    border-color: #bfdbfe;
}

.selected-framework-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    align-items: end;
    gap: 1rem;
}

.selected-framework-form .form-field {
    margin: 0;
}

.selected-framework-form .btn.primary {
    min-height: 3.15rem;
    padding: 0 1.25rem;
    border: 0;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-weight: 900;
}

.muted-empty-state {
    color: #64748b;
    background: linear-gradient(135deg, #f8fafc, #fff);
}

.muted-empty-state.inline {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px dashed #cbd5e1;
    border-radius: 18px;
}

.section-status-line {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .75rem;
}

.status-chip {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: .3rem .75rem;
    border-radius: 999px;
    background: #dcfce7;
    color: #166534;
    font-weight: 900;
}

.status-chip.subtle {
    background: #e0f2fe;
    color: #075985;
}

.incoming-completion-steps { font-weight: 700; color: #264b90; }
.incoming-completion-sections { display: grid; gap: .75rem; margin: 1rem 0; }
.incoming-completion-section { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(110px, auto); gap: .4rem .8rem; padding: .75rem; border: 1px solid #dce5f3; border-radius: 14px; }
.incoming-completion-upload { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: .6rem; margin: 0; }
.incoming-completion-upload label { min-width: 0; }
.incoming-completion-upload input[type="file"] { display: block; width: 100%; max-width: 100%; }
.incoming-completion-followup { border-top: 1px solid #dce5f3; padding-top: .8rem; margin-top: .8rem; }
.incoming-completion-followup h3 { margin: 0 0 .35rem; }
@media (max-width: 720px) { .incoming-completion-upload { grid-template-columns: 1fr; } }

.filter-toolbar {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) auto auto;
    align-items: end;
    gap: .85rem;
    margin: 1rem 0;
    padding: .85rem;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #f8fafc;
}

.filter-toolbar.vocational-filter-toolbar {
    grid-template-columns: minmax(240px, 1.4fr) minmax(160px, .8fr) minmax(220px, 1fr) auto auto;
}

.filter-toolbar label {
    margin: 0;
}

.filter-clear-button {
    align-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0 1rem;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #fff;
    color: #64748b;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.filter-toolbar .secondary-button {
    align-self: end;
    min-height: 2.75rem;
}

.filter-clear-button:hover {
    border-color: #fecaca;
    background: #fff1f2;
    color: #dc2626;
}

.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .5rem .85rem;
}

@media (max-width: 720px) {
    .selected-framework-form {
        grid-template-columns: 1fr;
    }

    .selected-framework-form .btn.primary {
        width: 100%;
    }

    .filter-toolbar {
        grid-template-columns: 1fr;
    }

    .filter-toolbar.vocational-filter-toolbar {
        grid-template-columns: 1fr;
    }
}

.weekly-program-card {
    border: 1px solid rgba(148, 163, 184, 0.28);
    position: relative;
    overflow: hidden;
}

.weekly-program-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 10px;
    opacity: 0.9;
}

.weekly-program-amp {
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.88), rgba(255, 255, 255, 0.96));
    border-color: rgba(96, 165, 250, 0.38);
}

.weekly-program-amp::before {
    background: #60a5fa;
}

.weekly-program-atp {
    background: linear-gradient(135deg, rgba(254, 249, 195, 0.88), rgba(255, 255, 255, 0.96));
    border-color: rgba(234, 179, 8, 0.38);
}

.weekly-program-atp::before {
    background: #eab308;
}

.weekly-program-ime {
    background: linear-gradient(135deg, rgba(220, 252, 231, 0.88), rgba(255, 255, 255, 0.96));
    border-color: rgba(34, 197, 94, 0.35);
}

.weekly-program-ime::before {
    background: #22c55e;
}

.weekly-program-card::before {
    width: 6px;
    opacity: 0.38;
}

.weekly-summary-table th:first-child,
.weekly-summary-table td:first-child,
.weekly-schedule-table th:first-child,
.weekly-schedule-table td:first-child {
    width: 56px;
    text-align: center;
}

.weekly-summary-table th:nth-child(2),
.weekly-summary-table td:nth-child(2),
.weekly-schedule-table th:nth-child(2),
.weekly-schedule-table td:nth-child(2) {
    min-width: 260px;
}

.weekly-summary-table th:nth-child(3),
.weekly-summary-table td:nth-child(3),
.weekly-schedule-table th:nth-child(3),
.weekly-schedule-table td:nth-child(3) {
    min-width: 150px;
}

.role-permission-edit-scroll {
    max-height: 64vh;
    overflow: auto;
}

.compact-permission-table th,
.compact-permission-table td {
    vertical-align: middle;
}

.compact-permission-table {
  table-layout: fixed;
  width: 100%;
}

.compact-permission-table th:first-child,
.compact-permission-table td:first-child {
  width: 32%;
  text-align: left;
}

.compact-permission-table th:not(:first-child),
.compact-permission-table td:not(:first-child) {
  width: 11.333%;
  text-align: center;
}

.permission-header-toggle {
    display: inline-grid;
    align-items: center;
    justify-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-width: 4.6rem;
    line-height: 1.1;
    white-space: normal;
    cursor: pointer;
}

.permission-column-toggle {
    flex: 0 0 auto;
    accent-color: #2563eb;
    margin: 0;
}

.permission-header-toggle span {
    display: block;
}

.compact-permission-table input[type="checkbox"] {
    width: 1.05rem;
    height: 1.05rem;
}

.compact-permission-table input.role-inherited-permission {
  accent-color: #2563eb;
  cursor: not-allowed;
}

.compact-permission-table input.user-extra-permission {
  accent-color: #16a34a;
}

.compact-permission-table td:has(input.role-inherited-permission) {
    background: #eff6ff;
}

.compact-permission-table td:has(input.user-extra-permission) {
    background: #ecfdf5;
}

.compact-permission-table td:has(input.role-inherited-permission) input {
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.08);
}

.compact-permission-table td:has(input.user-extra-permission) input {
    box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.1);
}

.permission-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
    color: #475569;
    font-weight: 700;
}

.permission-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 0.45rem 0.7rem;
    background: #fff;
}

.legend-dot {
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 999px;
    display: inline-block;
}

.legend-dot.inherited {
    background: #bfdbfe;
}

.legend-dot.extra {
    background: #bbf7d0;
}


/* Authorization role permission screens */
.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  line-height: 1.1;
  border-radius: 999px;
  min-height: 36px;
  padding: 0.75rem 1.15rem;
  white-space: nowrap;
}

.nowrap-button {
  white-space: nowrap;
}

.actions-column {
  width: 150px;
}

.actions-cell {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  white-space: normal;
  text-align: left;
}

.actions-cell .inline-form {
  display: inline-flex;
}

.user-row-editor summary {
  list-style: none;
}

.user-row-editor summary::-webkit-details-marker {
  display: none;
}

.user-row-editor[open]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(15, 23, 42, .38);
  backdrop-filter: blur(2px);
}

.user-row-editor[open] > .user-row-edit-form {
  position: fixed;
  inset: 9vh auto auto 50%;
  z-index: 90;
  width: min(560px, calc(100vw - 28px));
  max-height: 84vh;
  overflow: auto;
  transform: translateX(-50%);
  padding: 18px;
  border: 1px solid rgba(148, 163, 184, .34);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 26px 70px rgba(15, 23, 42, .18);
  white-space: normal;
}

.compact-user-manage-form {
  max-width: 980px;
}

.user-manage-action-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.user-manage-action-grid .inline-form {
  display: inline-flex;
}

.permission-filter-actions,
.permission-save-actions {
  align-items: center;
  gap: 10px;
}

.permission-save-actions {
  margin: 14px 0 18px;
  flex-wrap: wrap;
}

.role-permission-table {
  table-layout: fixed;
  width: 100%;
}

.role-permission-table .col-no { width: 56px; }
.role-permission-table .col-module { width: 34%; }
.role-permission-table .col-permission { width: 8.5%; }
.role-permission-table .col-source { width: 14%; }

.role-permission-table th,
.role-permission-table td {
  text-align: center;
  vertical-align: middle;
}

.role-permission-table th:nth-child(2),
.role-permission-table td:nth-child(2),
.role-permission-table th:last-child,
.role-permission-table td:last-child {
  text-align: left;
}

.permission-module-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.25;
}

.permission-section-block h3 {
  margin: 18px 0 10px;
  font-size: 1.05rem;
}

.user-role-modal {
  width: min(1120px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  overflow: auto;
}

.permission-module-groups {
  display: grid;
  gap: 16px;
  margin-top: 12px;
}

.permission-module-group {
  border: 1px solid #dbe5f2;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}

.permission-group-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: #f6f9fd;
  border-bottom: 1px solid #dbe5f2;
}

.permission-group-title span {
  color: #718096;
}

.compact-permission-table-scroll {
  max-height: 320px;
  overflow: auto;
}

.compact-permission-form .sticky-modal-actions {
  position: sticky;
  bottom: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.82), #fff 42%);
  padding-top: 16px;
}

.user-role-page-form {
  grid-template-columns: minmax(260px, 1.4fr) minmax(180px, 0.8fr) minmax(180px, 0.8fr) auto;
  align-items: end;
}

.user-role-page-form .aligned-actions {
  align-self: end;
  margin: 0;
}

.page-permission-groups {
  gap: 18px;
}

.page-permission-table-scroll {
  max-height: none;
}

.permission-page-actions {
  justify-content: flex-end;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e5edf6;
}

@media (max-width: 900px) {
  .role-permission-table {
    min-width: 920px;
  }

  .user-role-page-form {
    grid-template-columns: 1fr;
  }

  .compact-permission-table {
    min-width: 820px;
  }

  .actions-column {
    width: 120px;
  }
}


.student-information-permissions-panel {
    border-color: rgba(37, 99, 235, 0.16);
}

.student-information-permissions-panel .panel-title p {
    margin: .35rem 0 0;
    color: var(--muted-text);
    max-width: 920px;
}

.student-info-section-block {
    margin-top: 1.35rem;
}

.student-info-permission-table .col-sensitive {
    width: 7rem;
}

.student-info-permission-table th,
.student-info-permission-table td {
    vertical-align: middle;
}


.student-signal-chip.signal-koruma-oncelikli-gizli-kayit,
.student-risk-pill.koruma-oncelikli-gizli-kayit {
    color: #581c87;
    background: #f3e8ff;
    border-color: #d8b4fe;
}

.inline-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    max-width: 34rem;
}

.soft-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #eef6ff;
    border: 1px solid #cfe2ff;
    color: #1e3a8a;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.25;
    padding: .25rem .55rem;
    white-space: nowrap;
}


.modal-shell {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: rgba(15, 23, 42, 0.48);
    backdrop-filter: blur(3px);
}

.modal-shell[hidden] {
    display: none !important;
}

.modal-card {
    position: relative;
    width: min(720px, 100%);
    max-height: calc(100vh - 3rem);
    overflow: auto;
    background: #fff;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 28px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
    padding: 2rem;
}

.modal-card.compact-modal {
  width: min(640px, 100%);
}

.section-table-actions { text-align: center; white-space: nowrap; }
.section-edit-modal { width: min(860px, 100%); padding: 1.25rem; max-height: calc(100dvh - 2rem); display: flex; flex-direction: column; overflow: hidden; white-space: normal; text-align: left; }
.section-edit-modal-title, .section-edit-modal-footer { flex: 0 0 auto; }
.section-edit-modal-body { min-height: 0; overflow-y: auto; padding-right: .5rem; }
.section-edit-modal .modal-close { z-index: 2; }
.section-edit-modal-title { align-items: flex-start; padding-right: 3.5rem; margin-bottom: .4rem; }
.section-edit-modal-title .eyebrow { margin-bottom: .25rem; }
.section-edit-modal-title h2 { margin: 0; }
.section-edit-modal-block {
  padding: .55rem 0;
  border-top: 1px solid #e2e8f0;
}
.section-edit-modal-block h3 { margin: 0 0 .4rem; font-size: 1.1rem; line-height: 1.3; color: #172033; text-align: center; }
.section-edit-modal-block .form-grid { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: end; gap: .5rem; margin: 0; }
.section-edit-modal-block form[action$="/responsibilities"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.section-edit-modal-block label { display: flex; flex-direction: column; align-items: stretch; gap: .2rem; min-width: 0; margin: 0; font-size: .875rem; line-height: 1.3; }
.section-edit-modal-block input:not([type=hidden]), .section-edit-modal-block select { width: 100%; min-width: 0; height: 46px; box-sizing: border-box; margin: 0; }
.section-edit-modal-block .section-student-duty-form + .section-student-duty-form { margin-top: .3rem; }
.section-edit-modal-block input:not([type=hidden]), .section-edit-modal-block select { height: 36px; padding-top: .25rem; padding-bottom: .25rem; }
.section-edit-modal-block .form-actions button { min-height: 36px; padding: .35rem .75rem; }
.section-edit-modal-block { padding: .35rem 0; }
.section-edit-modal-title .eyebrow { margin-bottom: .1rem; }
.section-edit-modal-title h2 { font-size: 1.05rem; line-height: 1.3; }
.section-edit-modal-title { margin-bottom: .2rem; }
.section-edit-modal-block .form-actions { align-self: end; margin: 0; }
.section-edit-modal-block .form-actions button { min-height: 46px; }
.section-edit-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .5rem;
  border-top: 1px solid #e2e8f0;
}
.section-edit-modal-footer .inline-form { margin: 0; }
@media (max-width: 720px) {
  .section-edit-modal { padding: 1.25rem; }
  .section-edit-modal-block .form-grid, .section-edit-modal-block form[action$="/responsibilities"] { grid-template-columns: minmax(0, 1fr); }
  .section-edit-modal-block .form-actions { justify-self: start; }
  .section-edit-modal-footer { align-items: stretch; flex-direction: column; }
  .section-edit-modal-footer button { width: 100%; }
}

.student-statement-qr-card { text-align: center; }
.student-statement-qr-card > img {
  display: block;
  width: min(260px, 70vw);
  height: auto;
  margin: 1.25rem auto;
}
.student-statement-qr-card .modal-actions { justify-content: center; }

.modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: #eef2ff;
    color: #315bdc;
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.modal-actions {
    align-items: center;
    gap: 0.75rem;
}

 .guidance-review-table {
  table-layout: fixed;
  width: 100%;
}

.guidance-review-table .guidance-col-no { width: 52px; }
.guidance-review-table .guidance-col-students { width: 32%; }
.guidance-review-table .guidance-col-behavior { width: 20%; }
.guidance-review-table .guidance-col-status { width: 116px; }
.guidance-review-table .guidance-col-ebys-date { width: 106px; }
.guidance-review-table .guidance-col-ebys-no { width: 106px; }
.guidance-review-table .guidance-col-referral-date { width: 124px; }
.guidance-review-table .guidance-col-action { width: 188px; }

.inline-ebys-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.inline-ebys-form input {
  width: 100%;
  min-height: 36px;
  border: 1px solid #dbe5f3;
  border-radius: 12px;
  padding: 6px 10px;
  font: inherit;
}

.btn.small {
  min-height: 36px;
  padding: 7px 12px;
  font-size: .78rem;
}

.guidance-student-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.guidance-student-list li {
  max-width: 100%;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  line-height: 1.25;
}

.guidance-behavior-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.3;
}


/* Official A4 document previews */
.official-preview-shell {
  display: grid;
  justify-items: center;
  gap: 1.5rem;
  overflow-x: auto;
  padding: 1rem;
  width: 100%;
}

.official-a4-page {
  --official-page-width: 210mm;
  --official-page-height: 297mm;
  --official-page-padding: 25mm;
  width: var(--official-page-width);
  min-height: var(--official-page-height);
  max-width: none;
  background: #fff;
  color: #111827;
  border: 1px solid #dbe5f3;
  border-radius: 16px;
  box-sizing: border-box;
  padding: var(--official-page-padding);
  overflow: hidden;
  font-family: "Times New Roman", Times, serif;
  font-size: 11pt;
  line-height: 1.3;
}

.official-preview-shell .official-a4-page {
  justify-self: center;
  flex: 0 0 auto;
}

.official-a4-page *,
.official-a4-page *::before,
.official-a4-page *::after {
  box-sizing: border-box;
}

.official-doc-header {
  text-align: center;
  font-weight: 700;
  font-size: 12pt;
  line-height: 1.25;
  margin-bottom: 12mm;
}

.official-document-title {
  text-align: center;
  font-family: "Times New Roman", Times, serif;
  font-size: 14pt;
  font-weight: 700;
  margin: 0 0 10mm;
}

.petition-page {
  padding-top: 32mm;
}

.petition-address {
  text-align: center;
  font-size: 13pt;
  font-weight: 700;
  margin: 0 0 20mm;
}

.petition-source {
  font-weight: 700;
  margin: 0 0 10mm;
  text-align: right;
}

.petition-paragraph {
  margin: 0 0 8mm;
  text-align: justify;
  text-indent: 8ch;
}

.petition-page h3 {
  font-size: 12pt;
  margin: 10mm 0 4mm;
}

.petition-signature {
  margin: 12mm 0 8mm auto;
  text-align: center;
  width: 55mm;
}

.petition-attachments {
  margin: 0 0 0 1.1rem;
  padding: 0;
}

@media print {
  /* @page already reserves the required 25mm. The document header settings
     also write inline top padding; do not add it again on printed petitions. */
  .official-a4-page.petition-page { padding-top: 0 !important; }
}

.petition-attachments li {
  margin-bottom: 2mm;
}

.official-form-table,
.official-simple-table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.official-form-table tbody tr:last-child th,
.official-form-table tbody tr:last-child td {
  border-bottom: 1px solid #111827;
}

.official-form-table th,
.official-form-table td {
  border: 1px solid #111827;
  padding: 4px 6px;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: normal;
}

.official-form-table th {
  width: 34%;
  background: #f8fafc;
  text-align: left;
  font-weight: 700;
  color: #4b5563;
}

.official-form-table td {
  width: 66%;
}

.official-label-col {
  width: 34%;
}

.official-value-col {
  width: 66%;
}

.official-interview-page .official-document-title {
  margin-bottom: 8mm;
}

.official-interview-table {
  margin-top: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.official-interview-table th,
.official-interview-table td {
  font-size: 10pt;
  line-height: 1.25;
}

.official-long-cell {
  min-height: 22mm;
  white-space: pre-wrap;
}

.official-signature-box {
  break-inside: avoid;
}

.official-simple-table th,
.official-simple-table td {
  padding: 4px 6px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.official-simple-table th:nth-child(1),
.official-simple-table td:nth-child(1) {
  width: 12mm;
}

.official-simple-table th:nth-child(2),
.official-simple-table td:nth-child(2) {
  width: 32mm;
}

.official-simple-table th:nth-child(3),
.official-simple-table td:nth-child(3) {
  width: 28mm;
}

.official-student-lines {
  margin: 0;
  padding-left: 1.1rem;
}

.official-student-lines li {
  margin: 0 0 2px;
  white-space: normal;
  overflow-wrap: break-word;
}

.official-signature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16mm;
  margin-top: 20mm;
  text-align: center;
}


.official-interview-table th {
  width: 34%;
}

.official-interview-table td {
  width: 66%;
}

.official-interview-table ol {
  max-width: 100%;
}

.official-student-lines li::marker {
  font-weight: 400;
}

.official-interview-page .official-signature-grid {
  gap: 10mm 14mm;
  margin-top: 16mm;
}

.official-signature-grid.single-signature {
  grid-template-columns: minmax(0, 1fr);
  justify-items: end;
}

.guidance-report-layout {
  display: block;
  width: min(1100px, 100%);
  margin: 0 auto;
}

.guidance-report-form {
  display: grid;
  gap: .8rem;
}

.guidance-report-form textarea {
  width: 100%;
  min-height: 110px;
  border: 1px solid #dbe5f3;
  border-radius: 16px;
  padding: .85rem 1rem;
  font: inherit;
}

.guidance-submit-dialog {
  width: min(980px, calc(100vw - 2rem));
  max-width: 980px;
  max-height: calc(100vh - 2rem);
  padding: 0;
  border: 0;
  border-radius: 22px;
  background: #f5f7fb;
  box-shadow: 0 28px 80px rgba(20, 35, 65, .28);
}

.guidance-submit-dialog::backdrop {
  background: rgba(13, 25, 48, .68);
}

.guidance-submit-dialog-card {
  display: grid;
  gap: 1rem;
  padding: 1.25rem;
}

.guidance-submit-dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}

.guidance-submit-dialog-header h2,
.guidance-submit-dialog-header p {
  margin: 0;
}

.guidance-submit-dialog-header p {
  margin-top: .35rem;
  color: #66738b;
}

.guidance-submit-dialog .guidance-report-preview.compact-preview {
  --guidance-preview-scale: .78;
  max-height: calc(100vh - 190px);
  overflow: auto;
  padding: 1rem;
  background: #e9edf4;
  border-radius: 16px;
}

.guidance-submit-confirm-form {
  display: flex;
  justify-content: flex-end;
}

.guidance-inline-preview-host:empty {
  display: none;
}

.guidance-inline-preview-host {
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: 18px;
  background: #e9edf4;
  overflow: auto;
}

.guidance-inline-preview-host .guidance-report-preview.compact-preview {
  --guidance-preview-scale: .82;
  padding: 0;
  overflow: visible;
}

.action-button:disabled {
  opacity: .45;
  cursor: not-allowed;
  filter: grayscale(.35);
}

.guidance-report-preview.compact-preview {
  --guidance-preview-scale: .72;
  overflow: hidden;
  justify-items: center;
  align-items: start;
  max-width: 100%;
  padding: 1rem 0;
}

.guidance-report-preview.compact-preview::after {
  content: "";
  display: block;
  width: calc(210mm * var(--guidance-preview-scale));
  height: calc(297mm * var(--guidance-preview-scale));
  grid-row: 1;
  grid-column: 1;
  pointer-events: none;
}

.guidance-report-preview.compact-preview .official-a4-page {
  grid-row: 1;
  grid-column: 1;
  transform: scale(var(--guidance-preview-scale));
  transform-origin: top center;
  margin: 0 auto;
}

@media (max-width: 1400px) {
  .guidance-report-preview.compact-preview {
    --guidance-preview-scale: .64;
  }
}

@media (max-width: 1200px) {
  .guidance-report-layout {
    grid-template-columns: 1fr;
  }

  .guidance-report-preview.compact-preview {
    --guidance-preview-scale: .82;
  }
}

@media (max-width: 820px) {
  .guidance-report-preview.compact-preview {
    --guidance-preview-scale: .58;
  }
}

@media print {
  @page {
    size: A4;
    margin: 25mm;
  }

  body {
    background: #fff !important;
  }

  .page-hero,
  .guidance-report-form,
  .ghost-button,
  .action-button,
  .modal-card > h2,
  .modal-close {
    display: none !important;
  }

  .official-preview-shell,
  .guidance-report-preview {
    display: block;
    padding: 0;
    overflow: visible;
  }

  .official-a4-page,
  .compact-preview .official-a4-page {
    width: auto;
    min-height: auto;
    max-width: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    transform: none;
    margin: 0;
    overflow: visible;
  }

  .guidance-report-preview.compact-preview::after {
    display: none;
  }
}


/* Guidance report reference form */
.reference-guidance-form {
  position: relative;
  background: #e2f3f0;
  padding: 18mm 18mm 16mm;
  border-radius: 0;
  border: 0;
  overflow: hidden;
}

.reference-guidance-form::before {
  content: "";
  position: absolute;
  inset: 12mm 12mm;
  background: #fff;
  border-radius: 10mm;
  z-index: 0;
}

.reference-guidance-form > * {
  position: relative;
  z-index: 1;
  max-width: 100%;
  box-sizing: border-box;
}

.guidance-reference-topline {
  text-align: right;
  font-family: Arial, sans-serif;
  font-size: 12pt;
  margin-bottom: 8mm;
}

.guidance-reference-banner {
  display: grid;
  grid-template-columns: 26mm minmax(0, 1fr);
  align-items: center;
  gap: 6mm;
  margin: 0 0 10mm;
}

.guidance-reference-emblem {
  width: 24mm;
  height: 24mm;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fff;
  overflow: hidden;
}

.guidance-reference-emblem img {
  display: block;
  width: 21mm;
  height: 21mm;
  object-fit: contain;
}

.guidance-reference-title {
  min-height: 16mm;
  display: flex;
  align-items: center;
  padding: 0 7mm;
  background: linear-gradient(110deg, #eef1f0 0%, #eef1f0 88%, transparent 88%);
  border-right: 7mm solid #2f6f69;
  color: #2f6f69;
  font-family: Arial, sans-serif;
  font-size: 15pt;
  font-weight: 700;
  letter-spacing: .045em;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.12;
}

.guidance-reference-table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border-collapse: collapse;
  table-layout: fixed;
  margin: 0 auto;
  background: #fff;
  font-family: Arial, sans-serif;
  font-size: 9.5pt;
  line-height: 1.16;
}

.guidance-reference-table th,
.guidance-reference-table td {
  border: 1px solid #2f6f69;
  padding: 2.4mm 2.8mm;
  vertical-align: top;
  text-align: left;
  overflow-wrap: anywhere;
  word-break: normal;
  min-width: 0;
}

.guidance-reference-table .guidance-date-row > * {
  width: 25% !important;
  max-width: 25%;
}

.guidance-reference-table th {
  background: #dcefeb;
  font-weight: 700;
  color: #1f2937;
}

.guidance-reference-table td {
  background: #fff;
}

.guidance-reference-table .guidance-label-column {
  width: 25%;
}

.guidance-reference-table .guidance-value-column {
  width: 25%;
}

.guidance-reference-table .multiline-cell,
.official-form-table .multiline-cell {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.guidance-reference-table .students-row-content td {
  min-height: 22mm;
  height: 22mm;
}

.guidance-reference-table .medium-box td {
  min-height: 22mm;
  height: 22mm;
}

.guidance-reference-table .large-box td {
  min-height: 32mm;
  height: 32mm;
}

.guidance-reference-table .xlarge-box td {
  min-height: 45mm;
  height: 45mm;
}

.guidance-reference-table tbody tr:last-child td {
  border-bottom: 2px solid #2f6f69;
  box-shadow: inset 0 -1px 0 #2f6f69;
}

.guidance-reference-signature {
  width: 58mm;
  margin: 11mm 8mm 0 auto;
  text-align: center;
  font-family: Arial, sans-serif;
  font-size: 10.5pt;
  line-height: 1.35;
}

@media print {
  .reference-guidance-form {
    background: #fff !important;
    padding: 0 !important;
  }

  .reference-guidance-form::before {
    display: none !important;
  }
}

/* Central official document engine */
.official-engine-header {
  width: 100%;
  display: grid;
  grid-template-columns: 28mm minmax(0, 1fr) 28mm;
  align-items: center;
  gap: 5mm;
  min-height: 30mm;
  margin-bottom: 10mm;
  font-family: "Times New Roman", Times, serif;
}

.written-warning-document {
  font-family: "Liberation Serif", "Times New Roman", serif;
  font-size: 12pt;
  line-height: 1.16;
  overflow-wrap: anywhere;
}

.written-warning-document .written-warning-letterhead {
  display: block;
  text-align: center;
  line-height: 1.18;
  margin: 0 0 10mm;
}

.written-warning-meta {
  display: flex;
  justify-content: space-between;
  gap: 8mm;
}

.written-warning-subject { margin-top: 5mm; }
.written-warning-addressee { margin: 5mm 0 10mm; text-align: center; }
.written-warning-reference { margin: 0 0 5mm 7mm; }
.written-warning-letter-body p { margin: 0; text-align: justify; text-indent: 8mm; }
.written-warning-letter-body strong { text-decoration: underline; }
.written-warning-principal { margin: 6mm 0 0 auto; width: 35%; text-align: center; break-inside: avoid; }
.written-warning-receipt { margin-top: 18mm; text-align: center; break-inside: avoid; }
.written-warning-receipt > strong { text-decoration: underline; }
.written-warning-receipt-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8mm; margin-top: 4mm; }
.written-warning-receipt-grid > div { display: grid; gap: 8mm; }
.written-warning-receipt-grid strong { text-decoration: underline; }
.written-warning-receipt-grid span { min-height: 8mm; }
.written-warning-note { margin: 23mm 0 0; max-width: 140mm; font-size: 10pt; color: #777; }

.parent-meeting-document {
  font-family: "Liberation Serif", "Times New Roman", serif;
  font-size: 10.5pt;
  line-height: 1.22;
  padding: 13mm 15mm 10mm;
}

.parent-meeting-form-header {
  display: grid !important;
  grid-template-columns: 26mm minmax(0, 1fr) 46mm;
  gap: 0 !important;
  min-height: 29mm;
  margin: 0 0 9mm !important;
  border: 1px dotted #111827;
  min-width: 0;
  overflow: hidden;
}
.parent-meeting-logo { display: grid; place-items: center; padding: 2mm; border-right: 1px dotted #111827; }
.parent-meeting-logo img { max-width: 21mm; max-height: 21mm; object-fit: contain; }
.parent-meeting-heading { min-width: 0; display: grid; grid-template-rows: 1fr 1fr; text-align: center; }
.parent-meeting-heading > strong { display: grid; place-items: center; padding: 2mm; font-size: 12pt; border-bottom: 1px dotted #111827; }
.parent-meeting-heading h1 { display: grid; place-items: center; margin: 0; padding: 2mm; font-size: 14pt; line-height: 1.15; text-transform: uppercase; }
.parent-meeting-control { width: 46mm; min-width: 0; max-width: 46mm; border-collapse: collapse; table-layout: fixed; border-left: 1px dotted #111827; font-size: 7.7pt; }
.parent-meeting-control th,
.parent-meeting-control td { padding: 1mm 1.4mm; border-bottom: 1px dotted #111827; text-align: center; white-space: nowrap; }
.parent-meeting-control tr:last-child th,
.parent-meeting-control tr:last-child td { border-bottom: 0; }
.parent-meeting-control th { width: 57%; text-align: right; white-space: normal; }
.parent-meeting-control td { border-left: 1px dotted #111827; white-space: normal; overflow: hidden; }

.parent-meeting-form {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.parent-meeting-form th,
.parent-meeting-form td {
  border: 1px dotted #111827;
  padding: 2mm 2.5mm;
  text-align: left;
  vertical-align: middle;
  overflow-wrap: anywhere;
}
.parent-meeting-form th { width: 34%; font-weight: 700; text-align: right; }
.parent-meeting-form tr:not(.parent-meeting-large-row) { height: 9mm; }
.parent-meeting-form .parent-meeting-large-row { height: 30mm; }
.parent-meeting-form .parent-meeting-large-row th,
.parent-meeting-form .parent-meeting-large-row td { height: 30mm; }
.parent-meeting-form .parent-meeting-large-row th { text-align: center; }
.parent-meeting-form .parent-meeting-large-row td { vertical-align: top; white-space: pre-wrap; }
.parent-meeting-form tr:last-child td {
  background-image: repeating-linear-gradient(to right, #111827 0 1px, transparent 1px 3px);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 3px 1px;
}
.parent-meeting-signatures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20mm;
  margin-top: 10mm;
  text-align: center;
  break-inside: avoid;
}
.parent-meeting-signatures.single { grid-template-columns: 1fr; justify-items: end; }
.parent-meeting-signatures > div { width: 100%; display: grid; gap: 2mm; }
.parent-meeting-signatures.single > div { width: 70mm; }
.parent-meeting-signatures strong { text-decoration: underline; }
.parent-meeting-signatures span { display: block; }
.parent-meeting-signature-line { margin-top: 9mm; }

@media print {
  .written-warning-document {
    min-height: auto !important;
    padding: 25mm 25mm 18mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-after: auto !important;
  }
  .written-warning-document .written-warning-note {
    margin-top: 6mm;
  }
  .parent-meeting-document {
    min-height: auto !important;
    padding: 13mm 15mm 10mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-after: auto !important;
  }
}

.official-engine-header.simple-header {
  display: block;
  min-height: auto;
  text-align: center;
  font-size: 13pt;
  margin-bottom: 18mm;
}

.official-engine-logo-slot {
  width: 28mm;
  height: 28mm;
  display: grid;
  place-items: center;
}

.official-engine-logo-slot img {
  display: block;
  width: 26mm;
  height: 26mm;
  object-fit: contain;
}

.official-engine-header-text {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 1mm;
  text-align: center;
  font-size: 11pt;
  line-height: 1.12;
}

.official-engine-header-text strong,
.official-engine-header-text span,
.official-engine-header-text small {
  max-width: 100%;
  overflow-wrap: break-word;
}

.official-engine-header-text small {
  margin-top: 1mm;
  font-size: 9pt;
}

.document-settings-layout {
  display: grid;
  grid-template-columns: minmax(320px, 430px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.document-settings-form {
  display: grid;
  gap: 1rem;
}

.document-settings-form label:not(.check-row) {
  display: grid;
  gap: .45rem;
  font-weight: 700;
}

.document-settings-form input,
.document-settings-form select {
  width: 100%;
  min-height: 46px;
  border: 1px solid #dbe5f3;
  border-radius: 14px;
  padding: .7rem .85rem;
  font: inherit;
  background: #fff;
}

.document-settings-form .check-row {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-weight: 700;
}

.document-settings-form .check-row input {
  width: 20px;
  min-height: 20px;
}

.current-school-logo {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem;
  border: 1px solid #dbe5f3;
  border-radius: 14px;
}

.current-school-logo img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.locked-document-fields {
  display: grid;
  gap: .35rem;
  padding: .9rem 1rem;
  border-radius: 14px;
  background: #f3f6fb;
  color: #526079;
}

.document-header-preview-panel {
  overflow: auto;
}

.document-header-preview-page {
  width: 210mm;
  min-height: 150mm;
  max-width: 100%;
  margin: 0 auto;
  padding: 25mm;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #dbe5f3;
  box-shadow: 0 18px 45px rgba(34, 56, 95, .12);
}

.document-type-settings-panel {
  margin-top: 1.5rem;
}

.document-type-settings-form {
  display: grid;
  gap: 1.25rem;
}

.document-type-settings-grid {
  display: block;
}

.document-type-picker {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr);
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #dbe5f3;
  border-radius: 16px;
  background: #f7f9fd;
}

.document-type-picker label {
  display: grid;
  gap: .4rem;
  font-weight: 800;
}

.document-type-picker select {
  min-height: 46px;
  padding: .65rem .75rem;
  border: 1px solid #dbe5f3;
  border-radius: 12px;
  background: #fff;
  font: inherit;
}

.document-type-settings-card {
  min-width: 0;
  display: grid;
  gap: .8rem;
  padding: 1rem;
  border: 1px solid #dbe5f3;
  border-radius: 16px;
}

.document-type-settings-card[hidden] {
  display: none;
}

.document-type-override-fields {
  display: grid;
  gap: .8rem;
  transition: opacity .18s ease;
}

.document-type-override-fields.is-inherited {
  opacity: .42;
  pointer-events: none;
}

.inherit-setting {
  padding: .8rem;
  border-radius: 12px;
  background: #edf4ff;
  color: #254f9b;
}

@media (max-width: 760px) {
  .document-type-picker {
    grid-template-columns: 1fr;
  }
}

.document-type-settings-card legend {
  padding: 0 .35rem;
  font-weight: 800;
}

.document-type-settings-card label:not(.check-row) {
  display: grid;
  gap: .4rem;
  font-weight: 700;
}

.document-type-settings-card input,
.document-type-settings-card select {
  width: 100%;
  min-height: 44px;
  border: 1px solid #dbe5f3;
  border-radius: 12px;
  padding: .65rem .75rem;
  background: #fff;
  font: inherit;
}

.document-type-settings-card .check-row {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-weight: 700;
}

.document-type-settings-card .check-row input {
  width: 20px;
  min-height: 20px;
}

.document-margin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}

@media (max-width: 900px) {
  .document-type-settings-grid {
    grid-template-columns: 1fr;
  }
}

.document-preview-placeholder {
  margin-top: 12mm;
  padding-top: 8mm;
  border-top: 1px solid #cbd5e1;
  text-align: center;
  color: #64748b;
  font-family: "Times New Roman", Times, serif;
}

@media (max-width: 1100px) {
  .document-settings-layout { grid-template-columns: 1fr; }
}

/* Çağrı pusulası, uygulamanın genel tablolarındaki sabit minimum genişliği kullanmaz. */
.discipline-standard-document.call-notice-document {
  position: relative;
  box-sizing: border-box;
  width: min(210mm, 100%);
  max-width: 210mm;
}

.call-notice-qr {
  position: absolute;
  top: 25mm;
  right: 14mm;
  width: 24mm;
  text-align: center;
  font: 700 8pt/1.15 Arial, sans-serif;
  color: #111827;
}

.call-notice-qr img { display: block; width: 22mm; height: 22mm; margin: 0 auto 1.5mm; }

.call-notice-document .discipline-form-table {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
  margin-left: 0;
  margin-right: 0;
}

.call-notice-document .discipline-form-table th,
.call-notice-document .discipline-form-table td {
  box-sizing: border-box;
  min-width: 0 !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Genel tablo kuralı son satırdaki td alt kenarlığını kaldırıyor; resmî form tabloları kapalı kalmalı. */
.call-notice-document .discipline-form-table tbody tr:last-child > th,
.call-notice-document .discipline-form-table tbody tr:last-child > td {
  border-bottom: 1px solid #111827 !important;
}

.call-notice-document .identity-table .label-column { width: 22%; }
.call-notice-document .identity-table .value-column { width: 28%; }
.call-notice-document .call-time-table col { width: 33.333%; }
.call-notice-document .receipt-table col { width: 50%; }

/* Kurul kararı iki sabit A4 sayfaya ayrılır; uzun metinler değer sütununun dışına taşmaz. */
.board-decision-print-area { display: grid; gap: 12mm; }
.board-decision-font-controls { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .5rem; border: 1px solid #dbe4f1; border-radius: 999px; background: #fff; color: #172033; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.board-decision-font-controls button { width: 2rem; height: 2rem; padding: 0; border: 1px solid #cbd5e1; border-radius: 50%; background: #f8fafc; color: #172033; font-weight: 800; cursor: pointer; }
.board-decision-font-controls button:disabled { opacity: .4; cursor: not-allowed; }
.board-decision-font-controls output { min-width: 2ch; text-align: center; font-variant-numeric: tabular-nums; }
.board-decision-document {
  box-sizing: border-box;
  width: min(210mm, 100%);
  max-width: 210mm;
  font-family: "Times New Roman", serif;
  font-size: 9.5pt;
}
.board-decision-table { box-sizing: border-box; width: 100% !important; min-width: 0 !important; table-layout: fixed !important; border-collapse: collapse; }
.board-decision-table col.decision-sequence { width: 9mm; }
.board-decision-table col.decision-label { width: 69mm; }
.board-decision-table col.decision-value { width: auto; }
.board-decision-table th,
.board-decision-table td {
  box-sizing: border-box;
  min-width: 0 !important;
  border: 1px solid #111827 !important;
  padding: 1.35mm 1.8mm;
  vertical-align: top;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.board-decision-table th { text-align: center; }
.board-decision-table td:not(:last-child) { font-weight: 700; }
.board-decision-page-heading > tr > td { border: 0 !important; padding: 0 !important; }
.board-decision-approval-row > td { border: 0 !important; padding: 0 !important; }
.board-decision-page-edge td { border: 0 !important; padding: 0 !important; height: 0; line-height: 0; }
.board-decision-continuation-header { display: grid; gap: 1.5mm; text-align: center; margin-bottom: 6mm !important; }
.board-decision-document .statement-page-footer { position: absolute; left: 12mm; right: 12mm; bottom: 7mm; display: flex; justify-content: space-between; }
.statement-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.statement-summary-grid .compact-panel { margin: 0; border: 1px solid var(--line); border-radius: 18px; padding: 18px; }
.statement-hover-target { position: relative; display: inline-block; cursor: help; outline: none; }
.statement-hover-bubble {
  position: absolute;
  z-index: 50;
  left: 0;
  bottom: calc(100% + 10px);
  width: min(520px, 75vw);
  max-height: 320px;
  overflow: auto;
  padding: 14px 16px;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #111827;
  color: #fff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .28);
  font-size: .9rem;
  font-weight: 400;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity .12s ease .5s, transform .12s ease .5s, visibility 0s linear .62s;
}
.statement-hover-bubble::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 24px;
  border: 7px solid transparent;
  border-top-color: #111827;
}
.statement-hover-target:hover .statement-hover-bubble,
.statement-hover-target:focus .statement-hover-bubble {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: .5s, .5s, .5s;
}

.board-meeting-call-title {
  margin: 12mm 0 6mm;
  text-align: center;
  font-family: "Times New Roman", serif;
  font-size: 14pt !important;
  line-height: 1.25;
}
.board-meeting-call-subtitle {
  margin: 7mm 0 3mm;
  font-family: "Times New Roman", serif;
  font-size: 12pt !important;
  line-height: 1.25;
}
.board-meeting-call-references {
  display: grid;
  gap: 2mm;
  margin-bottom: 6mm;
}
.board-meeting-call-references > div {
  display: grid;
  grid-template-columns: 13mm 8mm minmax(0, 1fr);
  align-items: start;
  column-gap: 2mm;
}
.board-meeting-call-document .document-table {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed;
  border-collapse: collapse;
}
.board-meeting-call-document .document-table th,
.board-meeting-call-document .document-table td {
  min-width: 0;
  padding: 4mm 3mm;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal;
}
.board-meeting-details-table col { width: 50%; }
.board-meeting-members-table col:nth-child(1) { width: 33%; }
.board-meeting-members-table col:nth-child(2) { width: 37%; }
.board-meeting-members-table col:nth-child(3) { width: 30%; }

@page annual-board-meeting { size: A4 portrait; margin: 15mm 15mm 10mm 15mm; }
@page case-board-meeting { size: A4 portrait; margin: 15mm 15mm 10mm 15mm; }

@media print {
  .case-board-meeting-document.board-meeting-call-document {
    page: case-board-meeting;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    overflow: visible;
  }
  .case-board-meeting-document.board-meeting-call-document .official-engine-header {
    top: 0;
    margin-top: 0;
    margin-bottom: 10mm;
    break-inside: avoid;
  }
  .case-board-meeting-document h2 { break-after: avoid; page-break-after: avoid; }
  .case-board-meeting-document .board-meeting-members-table tr { break-inside: avoid; }
  /* Only annual discipline call/minutes: the physical page owns the margins. */
  .annual-board-meeting-document.board-meeting-call-document {
    page: annual-board-meeting;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    overflow: visible;
  }
  .annual-board-meeting-document.board-meeting-call-document .official-engine-header {
    top: 0;
    margin-top: 0;
    margin-bottom: 10mm;
    break-inside: avoid;
  }
  .annual-board-meeting-document h2 { break-after: avoid; page-break-after: avoid; }
  .annual-board-meeting-document .board-meeting-members-table tr { break-inside: avoid; }
}

@media print {
  @page { size: A4 portrait; margin: 25mm 0; }

  .board-meeting-call-document {
    box-sizing: border-box;
    width: 210mm !important;
    max-width: 210mm !important;
    min-height: 0 !important;
    margin: 0 !important;
    /* @page already reserves 25mm above and below every physical sheet. */
    padding: 0 20mm !important;
    box-shadow: none !important;
    page-break-after: auto !important;
  }
  /* The printed letterhead sits about 16mm below the required 25mm inset.
     Lift it and reclaim the same space before the following content. */
  .board-meeting-call-document .official-engine-header {
    position: relative;
    top: -16mm;
    margin-bottom: -6mm;
  }

  /* Keep a short call on one sheet and a long minute with its signatures. */
  .board-meeting-call-document .board-meeting-members-table th,
  .board-meeting-call-document .board-meeting-members-table td { padding: 2mm 3mm; }
  .board-meeting-minutes-document { font-size: 10pt; }
  .board-meeting-minutes-document .board-meeting-document-text { line-height: 1.3; margin-bottom: 3mm; }
  .board-meeting-minutes-document .board-meeting-call-title { margin: 4mm 0 3mm; }
  .board-meeting-minutes-document .board-meeting-call-subtitle { margin: 4mm 0 2mm; }
  .board-meeting-minutes-document .document-table th,
  .board-meeting-minutes-document .document-table td { padding: 2mm 3mm; }
  .board-meeting-minutes-document .board-meeting-decision-signatures { margin-top: 4mm; gap: 2mm; }
  .board-meeting-minutes-document .board-meeting-principal-approval { margin-top: 4mm; }

  .discipline-standard-document.call-notice-document {
    box-sizing: border-box;
    width: 210mm !important;
    max-width: 210mm !important;
    min-height: 247mm;
    margin: 0 !important;
    padding: 0 22mm !important;
    page-break-after: auto !important;
  }
  .call-notice-qr { top: 0; }
  .call-notice-document .discipline-form-table tr,
  .call-notice-document .receipt-table,
  .call-notice-document .document-signer,
  .student-written-statement-document .statement-student-info-table tr,
  .student-written-statement-document .statement-signatures-wrapper {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .board-decision-print-area { display: block; }
  .board-decision-document { width: 210mm !important; max-width: 210mm !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 12mm !important; overflow: visible !important; box-shadow: none !important; break-inside: auto !important; }
  /* Keep the existing header inside the printable page. A negative top offset
     clips its school name and title at Chromium's physical page boundary. */
  .board-decision-print-area > article.board-decision-document:first-child { position: relative; top: 0; }
  .board-decision-document .statement-page-footer { display: none !important; }
  .board-decision-document { break-after: auto !important; page-break-after: auto !important; }
  .board-decision-document + .board-decision-document { break-before: auto !important; page-break-before: auto !important; }
  .board-decision-document .board-decision-continuation-header { break-inside: avoid; page-break-inside: avoid; break-after: avoid; page-break-after: avoid; }
  .board-decision-approval-block { break-inside: avoid; page-break-inside: avoid; }
  .board-decision-completion-block { break-inside: avoid; page-break-inside: avoid; }
  /* Collapsed table borders disappear at Chromium's page fragments. Clone the
     frame on every fragment without doubling the internal grid lines. */
  .board-decision-table {
    border-collapse: separate !important;
    border-spacing: 0;
    border: 1px solid #111827 !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
  .board-decision-table th, .board-decision-table td {
    border-width: 0 1px 1px 0 !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
  .board-decision-table tr > :last-child { border-right-width: 0 !important; }
  .board-decision-table tbody > tr:last-child > * { border-bottom-width: 0 !important; }
  .board-decision-flow-table thead { display: table-header-group; break-inside: avoid; }
  .board-decision-flow-table { border: 0 !important; border-collapse: collapse !important; break-after: avoid; page-break-after: avoid; }
  .board-decision-flow-table tbody > tr > th,
  .board-decision-flow-table tbody > tr > td { border: 1px solid #111827 !important; }
  .board-decision-flow-table .board-decision-page-edge { display: table-footer-group; }
  .board-decision-flow-table .board-decision-page-edge td { border: 0 !important; border-top: 1px solid #111827 !important; padding: 0 !important; height: 0; line-height: 0; }
  .board-decision-flow-table tbody > tr > :last-child { border-right: 1px solid #111827 !important; }
  .board-decision-flow-table tbody > tr:last-child > * { border-bottom: 1px solid #111827 !important; }
  .board-decision-flow-table .board-decision-page-heading > tr > td {
    border: 0 !important;
    border-bottom: 1px solid #111827 !important;
  }
  .board-decision-page-heading .board-decision-header {
    position: static;
    background: transparent;
    margin: 0;
    padding: 0 0 6mm;
  }
  .board-decision-flow-table tbody > tr.board-decision-approval-row > td { border: 0 !important; }
  .board-decision-approval-row .board-decision-approval-block {
    position: relative;
    z-index: 1;
    background: white;
    box-shadow: 0 2px 0 white;
    margin: 0;
    padding: 1px;
  }
}
.sms-group-category {
  margin-top: .75rem;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) * .6);
  padding: .65rem .75rem;
  background: var(--surface);
}

.sms-group-category > summary {
  cursor: pointer;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
  gap: .75rem;
}

.sms-group-category .participant-grid { margin-top: .65rem; }

/* Platform SMS account: the account form is a full-width editor, not an event row. */
.sms-account-card {
  display: grid;
  gap: 18px;
  min-width: 0;
  margin-top: 16px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
}

.sms-account-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 12px;
  min-width: 0;
}

.sms-account-head h3 { margin: 0; overflow-wrap: anywhere; }
.sms-account-head p { margin: 4px 0 0; color: var(--muted); }
.sms-account-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 12px;
  min-width: 0;
}

.sms-account-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}

.sms-account-info > span,
.sms-account-credit-values small { color: var(--muted); font-size: .82rem; }
.sms-account-info strong,
.sms-account-info small { overflow-wrap: anywhere; }
.sms-account-info form { margin-top: auto; padding-top: 8px; }
.sms-account-info .secondary-button { max-width: 100%; white-space: normal; }
.sms-account-warning { color: #9a3412; }
.sms-account-credit,
.sms-account-reserve { grid-column: span 2; }
.sms-account-credit-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.sms-account-credit-values > div { display: grid; gap: 4px; min-width: 0; }
.sms-account-inline-form { display: flex; align-items: end; flex-wrap: wrap; gap: 8px; }
.sms-account-inline-form label { display: grid; flex: 1 1 140px; gap: 4px; min-width: 0; }
.sms-account-inline-form input { min-width: 0; width: 100%; }
.sms-account-edit,
.sms-account-credit-form { min-width: 0; padding-top: 16px; border-top: 1px solid var(--line); }
.sms-account-card details { min-width: 0; }

@media (max-width: 760px) {
  .sms-account-card { padding: 14px; }
  .sms-account-info-grid { grid-template-columns: minmax(0, 1fr); }
  .sms-account-credit,
  .sms-account-reserve { grid-column: auto; }
}

@media (max-width: 820px) {
  .sms-group-category .participant-grid { grid-template-columns: 1fr; }
}

/* Keep the existing desktop layouts while containing wide content on small screens. */
.app-shell,
.content,
.work-modal,
.modal-frame-content,
.panel,
.floating-panel,
.main-panel-shell,
.main-panel-grid,
.main-panel-bottom-grid,
.workspace-card-panel,
.alert-panel-wide,
.messages-panel-wide {
  min-width: 0;
}

.content,
.work-modal,
.modal-frame-content,
.panel,
.floating-panel {
  max-width: 100%;
}

.panel-title > *,
.page-hero > *,
.main-section-title > *,
.main-panel-header > *,
.main-panel-user > *,
.workspace-card > *,
.message-card > * {
  min-width: 0;
}

.panel-title,
.page-hero,
.main-section-title,
.modal-return,
.main-panel-header,
.main-panel-user {
  overflow-wrap: anywhere;
}

.responsive-table,
.table-responsive,
.table-wrap,
.table-scroll,
.responsive-table-wrap,
.course-scope-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 820px) {
  .app-shell,
  .content,
  .modal-workspace,
  .modal-frame-content,
  .work-modal {
    width: 100%;
  }

  .sidebar {
    min-width: 0;
  }

  .side-nav {
    max-height: 38vh;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .page-hero,
  .panel,
  .floating-panel,
  .work-modal {
    padding-inline: 14px;
  }

  .true-modal-window {
    min-width: 0;
    max-width: 100%;
    height: min(96dvh, 900px);
  }

  .true-modal-window iframe {
    min-width: 0;
  }

  .modal-frame-content .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .attention-group-stack {
    min-width: 0;
  }

  .main-panel-brand-logo {
    min-width: 0;
    width: min(210px, 55vw);
  }

  .main-panel-user {
    flex-wrap: wrap;
  }

  .main-panel-user form {
    margin-left: auto;
  }

  .workspace-card,
  .message-card {
    min-width: 0;
  }

}

@media (max-width: 760px) {
  .form-grid,
  .form-grid.two,
  .split-grid.two-column,
  .login-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .form-grid > *,
  .form-grid label,
  .form-grid input,
  .form-grid select,
  .form-grid textarea {
    min-width: 0;
    max-width: 100%;
  }

  .span-2 {
    grid-column: auto;
  }

  .form-actions,
  .row-actions {
    flex-wrap: wrap;
  }

  .true-modal-backdrop {
    padding: 6px;
  }

  .true-modal-window {
    height: calc(100dvh - 12px);
    border-radius: 16px;
  }

  .main-panel-shell {
    padding-inline: 10px;
  }

  .workspace-card-panel,
  .alert-panel-wide,
  .messages-panel-wide {
    padding: 14px;
  }

  .workspace-card {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    padding: 12px;
  }

  .main-section-title {
    flex-wrap: wrap;
  }

  .main-section-title > a {
    margin-left: auto;
  }
}

@media (max-width: 820px) {
  .mobile-nav-ready .app-shell { grid-template-rows: 48px minmax(0, 1fr); align-content: start; }
  .mobile-menu-toggle {
    position: sticky;
    top: 0;
    z-index: 72;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    height: 48px;
    align-self: start;
    border: 0;
    color: #fff;
    background: var(--nav);
    font-weight: 750;
  }
  .mobile-menu-backdrop:not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 79;
    display: block;
    border: 0;
    background: rgba(12, 23, 42, .58);
  }
  body.mobile-menu-open { overflow: hidden; }
  .mobile-nav-ready .app-shell > .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 80;
    width: min(320px, 88vw);
    height: 100dvh;
    min-width: 0;
    border-radius: 0 18px 18px 0;
    overflow-y: auto;
    transform: translateX(-105%);
    transition: transform .18s ease;
  }
  .mobile-nav-ready .app-shell > .sidebar.mobile-open { transform: translateX(0); }
  .mobile-nav-ready .app-shell > .sidebar .side-nav { display: block; max-height: none; overflow: visible; }
  .mobile-nav-ready .app-shell > .sidebar .side-nav a,
  .mobile-nav-ready .app-shell > .sidebar .nav-group summary { min-height: 44px; }
  .mobile-nav-ready .app-shell > .sidebar .nav-workspace { min-width: 0; }
  .mobile-nav-ready .app-shell > .sidebar .workspace-picker { margin-block: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-nav-ready .app-shell > .sidebar { transition: none; }
}

@media (max-width: 760px) {
  .content { padding: 10px; }
  .page-hero,
  .page-hero.compact { min-height: 0; gap: 8px; margin-bottom: 12px; padding: 14px; border-radius: 18px; }
  .page-hero h1 { font-size: clamp(1.35rem, 6vw, 1.75rem); line-height: 1.2; }
  .panel,
  .floating-panel { padding: 12px; border-radius: 16px; }
  .form-grid { gap: 12px; }
  .form-grid input:not([type="checkbox"]):not([type="radio"]),
  .form-grid select,
  .form-grid textarea { font-size: 16px; min-height: 44px; }
  .form-grid textarea { min-height: 96px; }
  .form-actions > button,
  .form-actions > a,
  .row-actions > button,
  .row-actions > a { min-height: 44px; }
  .checkbox-label,
  .checkbox-line { min-height: 44px; }

  .student-dashboard-grid:has(.dashboard-action-card) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .student-dashboard-grid .dashboard-action-card { min-height: 96px; padding: 11px; }
  .student-dashboard-grid .dashboard-action-card span { font-size: .8rem; line-height: 1.25; }
  .student-dashboard-grid .dashboard-action-card strong { font-size: 1.35rem; margin-top: 4px; }
  .student-dashboard-grid .dashboard-action-card p { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .school-event-row:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
  .school-event-row > div > strong,
  .school-event-row > div > small { display: block; }
  .school-event-copy { min-width: 0; overflow-wrap: anywhere; }
  .sms-detail-summary,
  .sms-detail-summary .form-grid > div { min-width: 0; overflow-wrap: anywhere; }
  .process-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .process-strip > div { min-width: 0; padding: 8px; }
  .process-strip > div:last-child { grid-column: 1 / -1; }

  body .discipline-wizard .wizard-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-bottom: 12px; }
  body .discipline-wizard .wizard-steps li { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 7px; border-radius: 12px; font-size: .82rem; line-height: 1.2; }
  body .discipline-wizard .wizard-steps li:last-child { grid-column: 1 / -1; }

  :is(.document-list, .document-version-list) { overflow: visible; }
  :is(.document-list, .document-version-list) table,
  :is(.document-list, .document-version-list) tbody,
  :is(.document-list, .document-version-list) tr,
  :is(.document-list, .document-version-list) td { display: block; min-width: 0; width: 100%; }
  :is(.document-list, .document-version-list) thead { display: none; }
  :is(.document-list, .document-version-list) tr {
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
  }
  :is(.document-list, .document-version-list) td { padding: 5px 0; border: 0; overflow-wrap: anywhere; }
  :is(.document-list, .document-version-list) td::before {
    display: block;
    content: attr(data-label);
    color: var(--muted);
    font-size: .75rem;
    font-weight: 700;
  }
  :is(.document-list, .document-version-list) td:first-child { font-weight: 750; }
  .document-list td:last-child .button-row { display: flex; flex-wrap: wrap; gap: 8px; }
  :is(.document-list, .document-version-list) td:last-child a { min-height: 44px; display: inline-flex; align-items: center; margin: 2px; }
  .document-version-list code { white-space: normal; overflow-wrap: anywhere; }

  .main-panel-shell { display: flex; flex-direction: column; gap: 10px; padding: 10px; }
  .main-panel-grid,
  .main-panel-bottom-grid { display: contents; }
  .main-panel-header { order: 0; margin: 0; padding: 10px; }
  .alert-panel-wide { order: 1; }
  .messages-panel-wide { order: 2; }
  .calendar-shortcut-panel { order: 3; }
  .workspace-card-panel { order: 4; }
  .main-panel-header .main-panel-school { height: auto; padding-block: 8px; }
  .main-panel-user { gap: 8px; }
  .main-panel-user .user-avatar { display: none; }
  .main-panel-shell .workspace-card-panel,
  .main-panel-shell .alert-panel-wide,
  .main-panel-shell .messages-panel-wide { padding: 12px; margin: 0; }
  .main-panel-shell .workspace-card { padding: 10px; }
  .main-panel-shell .workspace-card p { display: none; }
  .main-panel-shell .main-alert-card { padding: 12px; }
  .main-panel-shell .alert-symbol { width: 34px; height: 34px; }
  .main-panel-shell .message-card { padding: 10px; }
  .main-panel-shell .message-strip-arrow { min-width: 44px; min-height: 44px; }
  .main-panel-shell .message-strip { grid-template-columns: 44px minmax(0,1fr) 44px; gap: 4px; }

  .work-task-editor .form-actions,
  .board-decision-form > .action-button-save,
  #decision-completion-form > .action-button-save {
    position: sticky;
    bottom: 0;
    z-index: 12;
    margin-top: 10px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 -8px 24px rgba(24, 34, 53, .1);
  }
  .work-task-editor .form-actions button,
  .board-decision-form > .action-button-save,
  #decision-completion-form > .action-button-save { min-height: 44px; }

  .school-event-row.work-task-row { grid-template-columns: 60px minmax(0, 1fr); gap: 10px; padding: 12px; }
  .school-event-row.work-task-row .row-actions { grid-column: 1 / -1; }
  .school-event-row.work-task-row .row-actions a,
  .school-event-row.work-task-row .row-actions button { min-height: 44px; }

  .honor-agenda-item,
  section[id^="board-meeting-"] .school-event-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .honor-agenda-item label,
  section[id^="board-meeting-"] .school-event-row label { min-width: 0; width: 100%; }
  .honor-agenda-item .row-actions { grid-column: 1; }
  .honor-agenda-item .row-actions button { min-height: 44px; }
  .honor-draft-form .form-actions { position: sticky; bottom: 0; z-index: 12; padding: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
}

.sms-detail-summary,
.sms-detail-summary .form-grid > div { min-width: 0; overflow-wrap: anywhere; }
.import-photo-preview {
    display: block;
    width: 72px;
    height: 96px;
    object-fit: cover;
    border-radius: 0.5rem;
    border: 1px solid #d9e3f5;
}
.student-search-person { display: inline-flex; align-items: center; gap: .6rem; }
.student-search-photo { width: 34px; height: 42px; border-radius: .4rem; object-fit: cover; flex: none; }
.student-search-initial { display: grid; place-items: center; background: #edf2ff; color: #3452a3; font-weight: 800; }

/* Section registry only: do not widen application tables or edit-modal forms. */
.section-registry > table { width: 100%; min-width: 0; table-layout: fixed; }
.section-registry > table > thead > tr > th,
.section-registry > table > tbody > tr > td { padding: .55rem .35rem; font-size: .8rem; line-height: 1.35; overflow-wrap: anywhere; }
.section-registry > table > thead > tr > th:nth-child(2),
.section-registry > table > tbody > tr > td:nth-child(2) { width: 6.5rem; white-space: nowrap; overflow-wrap: normal; }
.section-registry > table > thead > tr > th:nth-child(4),
.section-registry > table > thead > tr > th:nth-child(5) { width: 3.5rem; }
.section-registry > table > thead > tr > th:last-child { width: 5.5rem; }
.section-registry > table > tbody > tr > td > .small-button { padding: .4rem .5rem; font-size: .75rem; }
@media (max-width: 900px) { .section-registry > table { min-width: 900px; } }
.import-comparison-panel {
  overflow: hidden;
}

.import-comparison-students {
  display: grid;
  gap: .7rem;
  margin-top: 1rem;
  max-height: 70vh;
  overflow-y: auto;
  padding-right: .25rem;
}

.import-comparison-student {
  border: 1px solid var(--border, #dbe4f0);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.import-comparison-student > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  list-style: none;
  padding: .85rem 1rem;
}

.import-comparison-student > summary::-webkit-details-marker { display: none; }
.import-comparison-student > summary::after { content: "⌄"; font-size: 1.15rem; }
.import-comparison-student[open] > summary::after { transform: rotate(180deg); }
.import-comparison-student > summary span:first-child { display: grid; gap: .15rem; }
.import-comparison-student > summary small { color: #64748b; font-weight: 500; }
.comparison-summary-count { color: #475569; font-size: .86rem; margin-left: auto; white-space: nowrap; }

.import-comparison-table {
  border-top: 1px solid var(--border, #dbe4f0);
  margin: 0;
  max-width: 100%;
  overflow-x: auto;
}

.import-comparison-table table { min-width: 760px; table-layout: fixed; width: 100%; }
.import-comparison-table th:nth-child(1) { width: 18%; }
.import-comparison-table th:nth-child(2),
.import-comparison-table th:nth-child(3) { width: 23%; }
.import-comparison-table th:nth-child(4) { width: 18%; }
.import-comparison-table th:nth-child(5) { width: 18%; }
.import-comparison-table td, .import-comparison-table th { overflow-wrap: break-word; word-break: normal; }
.import-comparison-table tbody th { color: #334155; font-weight: 700; text-align: left; }
.import-comparison-table tr.comparison-different { background: #fff7ed; }
.import-comparison-table tr.comparison-empty { background: #eff6ff; }
.import-comparison-table tr.comparison-identity { background: #fef2f2; }

.comparison-status {
  border-radius: 999px;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.25;
  padding: .35rem .62rem;
}

.comparison-status.comparison-same { background: #dcfce7; color: #166534; }
.comparison-status.comparison-empty { background: #dbeafe; color: #1d4ed8; }
.comparison-status.comparison-different { background: #ffedd5; color: #9a3412; }
.comparison-status.comparison-pdf-empty { background: #f1f5f9; color: #475569; }
.comparison-status.comparison-identity { background: #fee2e2; color: #991b1b; }
.comparison-status.comparison-not-transferred { background: #f3e8ff; color: #6b21a8; }
.import-comparison-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.comparison-secondary-field { display: none; }
.show-all-fields .comparison-secondary-field { display: table-row; }
.comparison-actions { display: inline-flex; flex-wrap: wrap; gap: .65rem; }
.comparison-actions label { align-items: center; display: inline-flex; gap: .3rem; white-space: nowrap; }
.import-confirmation-summary { align-items: center; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 14px; display: flex; flex-wrap: wrap; gap: .75rem 1rem; margin-top: 1rem; padding: 1rem; }
.import-confirmation-summary[hidden] { display: none; }
.import-confirmation-summary strong { flex-basis: 100%; }

@media (max-width: 560px) {
  .import-comparison-student > summary { align-items: flex-start; padding: .75rem; }
  .comparison-summary-count { display: none; }
  .import-comparison-table table { min-width: 680px; }
  .import-comparison-toolbar { align-items: flex-start; flex-direction: column; }
}
