@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');

:root {
  --ink: #1b1815;
  --muted: #766f67;
  --line: #e6dfd5;
  --canvas: #f4f1eb;
  --paper: #ffffff;
  --sidebar: #181512;
  --sidebar-soft: #25211c;
  --gold: #bd9351;
  --gold-deep: #94703b;
  --gold-pale: #f2e7d4;
  --rose: #7f3742;
  --rose-pale: #f4e4e6;
  --green: #2a4e84;
  --green-pale: #dfe6f1;
  --shadow: 0 16px 44px rgba(37, 29, 19, .07);
  --radius: 18px;
}

* { box-sizing: border-box; }

html { font-size: 16px; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background: var(--canvas);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
}

button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, select { cursor: pointer; }
.role-hidden { display: none !important; }

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

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 30;
  width: 250px;
  min-height: 100vh;
  padding: 29px 18px 20px;
  display: flex;
  flex-direction: column;
  color: #f6f1e8;
  background:
    radial-gradient(circle at 25% 5%, rgba(189,147,81,.14), transparent 24%),
    var(--sidebar);
}

.brand { display: flex; align-items: center; gap: 13px; padding: 0 10px 27px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-mark { font: 700 1.25rem/1 Georgia, serif; color: var(--gold); letter-spacing: -.04em; padding-right: 12px; border-right: 1px solid rgba(189,147,81,.5); }
.brand-name, .brand-sub { display: block; }
.brand-name { font: 600 .82rem/1.2 Georgia, serif; letter-spacing: .02em; }
.brand-sub { margin-top: 3px; color: #a9a198; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }

.nav { display: flex; flex-direction: column; gap: 3px; margin-top: 18px; padding-right: 3px; }
.nav-section-label {
  padding: 15px 13px 5px; color: #746d65; font-size: .64rem; font-weight: 800;
  letter-spacing: .13em; text-transform: uppercase;
}
.nav-section-label:first-child { padding-top: 0; }
.nav-item {
  width: 100%; min-height: 40px; padding: 0 11px; border: 0; border-radius: 10px;
  display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 9px;
  background: transparent; color: #bfb8af; text-align: left; font-size: .82rem;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.nav-item:hover { background: rgba(255,255,255,.055); color: white; transform: translateX(2px); }
.nav-item.active { background: linear-gradient(110deg, rgba(189,147,81,.22), rgba(189,147,81,.08)); color: #fff; box-shadow: inset 3px 0 0 var(--gold); }
.nav-icon { width: 24px; color: var(--gold); font-size: 1.25rem; text-align: center; }
.nav-count, .nav-alert { min-width: 23px; padding: 2px 6px; border-radius: 999px; text-align: center; font-size: .7rem; font-weight: 700; }
.nav-count { color: #d9b77d; background: rgba(189,147,81,.14); }
.nav-alert { color: #ffdfe1; background: rgba(153,57,67,.65); }

.sidebar-foot { margin-top: auto; padding: 18px 8px 0; display: grid; grid-template-columns: 38px 1fr auto; gap: 10px; align-items: center; border-top: 1px solid rgba(255,255,255,.08); }
.avatar, .teacher-avatar { display: grid; place-items: center; border-radius: 50%; font-weight: 700; }
.avatar { width: 38px; height: 38px; background: var(--gold); color: var(--sidebar); font-size: .78rem; }
.user-copy strong, .user-copy span { display: block; }
.user-copy strong { font-size: .78rem; }
.user-copy span { margin-top: 2px; color: #827b73; font-size: .68rem; }
.more-button { border: 0; background: none; color: #817971; letter-spacing: .08em; }

.main { grid-column: 2; min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 20; height: 76px; padding: 0 clamp(22px, 3vw, 48px); display: flex; align-items: center; gap: 18px; border-bottom: 1px solid rgba(210,201,190,.75); background: rgba(244,241,235,.9); backdrop-filter: blur(14px); }
.mobile-menu { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.search-box { width: min(470px, 44vw); height: 42px; padding: 0 12px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.72); color: #9b9389; transition: border-color .2s, box-shadow .2s; }
.search-box:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(189,147,81,.12); }
.search-box input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: .85rem; }
.search-box input::placeholder { color: #9d958c; }
kbd { padding: 2px 6px; border: 1px solid #ddd6cc; border-radius: 5px; background: #f6f2ec; color: #8f877d; font: 600 .66rem ui-sans-serif; box-shadow: 0 1px 1px white inset; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.demo-data-badge{padding:6px 9px;border:1px solid #d9b86f;border-radius:99px;background:#fff8e8;color:#8b671d;font-size:.62rem;font-weight:900;letter-spacing:.06em}
.date-chip { margin-right: 7px; color: var(--muted); font-size: .78rem; }
.icon-button { position: relative; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.72); }
.notification-dot { position: absolute; top: 8px; right: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 2px white; }
.primary-button, .secondary-button { min-height: 42px; padding: 0 17px; border-radius: 11px; font-size: .82rem; font-weight: 700; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.primary-button { border: 1px solid var(--ink); background: var(--ink); color: white; box-shadow: 0 8px 20px rgba(27,24,21,.12); }
.primary-button:hover { transform: translateY(-1px); background: #2c2722; box-shadow: 0 11px 24px rgba(27,24,21,.17); }
.primary-button span { color: var(--gold); font-size: 1.05rem; }
.secondary-button { border: 1px solid var(--line); background: var(--paper); color: var(--ink); }
.secondary-button:hover { border-color: #cfc3b5; box-shadow: 0 7px 18px rgba(37,29,19,.07); transform: translateY(-1px); }
.secondary-button.small { min-height: 38px; }
.text-button { padding: 4px; border: 0; background: none; color: var(--gold-deep); font-size: .77rem; font-weight: 700; }

.content { width: min(1530px, 100%); margin: 0 auto; padding: clamp(30px, 3.3vw, 50px) clamp(22px, 3vw, 48px) 70px; }
.view { display: none; animation: viewIn .28s ease both; }
.view.active { display: block; }
@keyframes viewIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.page-heading { margin-bottom: 27px; display: flex; align-items: end; justify-content: space-between; gap: 25px; }
.page-heading h1 { margin: 4px 0 5px; font: 500 clamp(2rem, 3vw, 2.75rem)/1.05 Georgia, "Times New Roman", serif; letter-spacing: -.035em; }
.compact-heading h1 { font-size: clamp(2rem, 2.5vw, 2.45rem); }
.eyebrow { margin: 0; color: var(--gold-deep); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.heading-note { margin: 0; color: var(--muted); font-size: .85rem; }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.kpi-card { min-height: 156px; padding: 20px 21px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.78); box-shadow: 0 9px 30px rgba(37,29,19,.035); }
.kpi-featured { color: white; border-color: var(--sidebar); background: linear-gradient(145deg, #211d19, #141210); box-shadow: 0 15px 30px rgba(27,24,21,.12); }
.kpi-top, .kpi-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.kpi-top > span:first-child { color: var(--muted); font-size: .77rem; font-weight: 650; }
.kpi-featured .kpi-top > span:first-child, .kpi-featured small { color: #aaa198; }
.kpi-card > strong { display: block; margin: 15px 0 8px; font: 500 1.75rem/1 Georgia, serif; letter-spacing: -.025em; }
.trend { padding: 3px 7px; border-radius: 999px; font-size: .64rem; font-weight: 800; }
.trend.up { background: var(--green-pale); color: var(--green); }
.trend.down { background: var(--rose-pale); color: var(--rose); }
.kpi-featured .trend { background: rgba(189,147,81,.18); color: #d8b77f; }
.progress-track { height: 4px; margin: 17px 0 8px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.12); }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--gold); }
.kpi-card small { color: #8d857c; font-size: .68rem; }
.kpi-row { margin: 15px 0 3px; color: var(--muted); font-size: .7rem; }
.kpi-row b { color: var(--green); }
.mini-bars { height: 23px; margin: 10px 0 6px; display: flex; align-items: end; gap: 4px; }
.mini-bars i { flex: 1; min-height: 3px; border-radius: 2px 2px 0 0; background: linear-gradient(to top, #d2b683, var(--gold)); }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .85fr); gap: 16px; margin-bottom: 16px; }
.lower-grid { grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr); }
.panel { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.82); box-shadow: var(--shadow); }
.panel-heading { margin-bottom: 21px; display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.panel-heading h2 { margin: 5px 0 0; font: 500 1.2rem/1.2 Georgia, serif; letter-spacing: -.02em; }
.alert-badge { padding: 4px 8px; border-radius: 99px; background: var(--rose-pale); color: var(--rose); font-size: .65rem; font-weight: 800; }

.pipeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.pipeline-step { padding: 15px; border: 1px solid #ece5db; border-radius: 13px; background: #faf8f4; text-align: left; transition: transform .16s, border-color .16s, background .16s; }
.pipeline-step:hover { transform: translateY(-2px); border-color: #d8c9b5; background: white; }
.step-label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .66rem; white-space: nowrap; }
.step-dot { width: 6px; height: 6px; border-radius: 50%; }
.step-dot.gold { background: var(--gold); }.step-dot.sand { background: #b5a188; }.step-dot.rose { background: var(--rose); }.step-dot.green { background: var(--green); }
.pipeline-step strong { display: inline-block; margin: 15px 3px 7px 0; font: 500 1.55rem Georgia, serif; }
.pipeline-step small { color: #9d958b; font-size: .62rem; }
.pipeline-bar { display: block; height: 3px; margin-top: 8px; border-radius: 9px; background: #ece6dc; overflow: hidden; }
.pipeline-bar i { display: block; height: 100%; background: var(--gold); }
.pipeline-step:nth-child(3) .pipeline-bar i { background: var(--rose); }
.pipeline-step:nth-child(4) .pipeline-bar i { background: var(--green); }

.attention-list { display: grid; gap: 5px; }
.attention-item { min-height: 62px; padding: 10px 3px; display: grid; grid-template-columns: 38px 1fr 30px; gap: 11px; align-items: center; border-bottom: 1px solid #eee8df; }
.attention-item:last-child { border: 0; }
.attention-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; font-size: .82rem; font-weight: 800; }
.attention-icon.late { color: var(--rose); background: var(--rose-pale); }.attention-icon.docs { color: var(--gold-deep); background: var(--gold-pale); }.attention-icon.follow { color: var(--green); background: var(--green-pale); }
.attention-item strong, .attention-item small { display: block; }
.attention-item strong { font-size: .77rem; }
.attention-item small { margin-top: 3px; color: var(--muted); font-size: .66rem; }
.arrow-button { width: 30px; height: 30px; padding: 0; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--gold-deep); }

.schedule-list { display: grid; }
.schedule-item { min-height: 66px; display: grid; grid-template-columns: 40px 2px 1fr 34px; gap: 14px; align-items: center; border-bottom: 1px solid #eee8df; }
.schedule-item:last-child { border: 0; }
.schedule-item time { text-align: center; }
.schedule-item time b, .schedule-item time span, .schedule-item strong, .schedule-item small { display: block; }
.schedule-item time b { font: 500 1.2rem Georgia, serif; }.schedule-item time span { margin-top: 1px; color: var(--muted); font-size: .55rem; font-weight: 800; letter-spacing: .08em; }
.schedule-line { height: 34px; border-radius: 99px; }.gold-line { background: var(--gold); }.rose-line { background: var(--rose); }.dark-line { background: var(--ink); }
.schedule-item strong { font-size: .76rem; }.schedule-item small { margin-top: 3px; color: var(--muted); font-size: .65rem; }
.teacher-avatar { width: 32px; height: 32px; background: #ece4d8; color: var(--gold-deep); font-size: .64rem; }

.capacity-row { min-height: 72px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #eee8df; }
.capacity-row:last-child { border: 0; }
.capacity-row strong, .capacity-row small { display: block; }.capacity-row strong { font-size: .76rem; }.capacity-row small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.ring { --value: 50; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--gold) calc(var(--value) * 1%), #ece6dc 0); position: relative; }
.ring::before { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: white; }
.ring span { position: relative; z-index: 1; font-size: .61rem; font-weight: 800; }

.toolbar { margin-bottom: 14px; display: flex; justify-content: space-between; gap: 14px; }
.segmented { padding: 4px; display: inline-flex; gap: 3px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.66); }
.segmented button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); white-space: nowrap; font-size: .72rem; font-weight: 700; }
.segmented button.active { background: var(--ink); color: white; box-shadow: 0 5px 12px rgba(27,24,21,.12); }
.segmented button span { margin-left: 3px; opacity: .65; }
.filter-button { min-height: 42px; padding: 0 14px; border: 1px solid var(--line); border-radius: 11px; background: white; font-size: .75rem; font-weight: 700; }

.table-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.88); box-shadow: var(--shadow); }
.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { height: 48px; padding: 0 18px; border-bottom: 1px solid var(--line); background: #faf8f4; color: #8b8379; text-align: left; font-size: .66rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
td { height: 70px; padding: 10px 18px; border-bottom: 1px solid #eee8df; color: #4f4942; font-size: .75rem; white-space: nowrap; }
tbody tr { transition: background .15s; }
tbody tr:hover { background: #fcfaf7; }
tbody tr:last-child td { border-bottom: 0; }
.person-cell { display: flex; align-items: center; gap: 10px; }
.person-avatar { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; background: #ede5d9; color: var(--gold-deep); font-size: .65rem; font-weight: 800; }
.person-cell strong, .person-cell small { display: block; }.person-cell strong { color: var(--ink); font-size: .76rem; }.person-cell small { margin-top: 2px; color: #928a80; font-size: .63rem; }
.status-pill { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-radius: 99px; font-size: .62rem; font-weight: 800; }
.status-pill::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.new-status { background: var(--gold-pale); color: var(--gold-deep); }.contact-status { background: #ebe7e2; color: #625b54; }.consultation-status { background: var(--rose-pale); color: var(--rose); }.enroll-status, .active-status, .paid-status { background: var(--green-pale); color: var(--green); }.planned-status, .due-status { background: var(--gold-pale); color: var(--gold-deep); }.late-status { background: var(--rose-pale); color: var(--rose); }
.due-cell strong, .due-cell small { display: block; }.due-cell strong { color: var(--ink); font-size: .72rem; }.due-cell small { margin-top: 2px; color: var(--muted); font-size: .62rem; }
.row-menu, .row-open { min-width: 31px; height: 31px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #8f877d; }
.row-menu:hover, .row-open:hover { border-color: var(--line); background: white; color: var(--gold-deep); }
.table-footer { min-height: 56px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: .68rem; }
.student-selection-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:#f9f3eb;color:var(--ink);font-size:.76rem;font-weight:700}.student-selection-bar[hidden]{display:none}.student-selection-bar .danger-button{min-height:34px;margin-left:auto}.student-selection-cell{width:47px!important;min-width:47px!important;text-align:center}.student-selection-cell input,.student-exited-select{width:18px;height:18px;accent-color:var(--gold-deep);cursor:pointer;vertical-align:middle}.dynamic-student-table tr.student-selected-row td,.extra-row.student-selected-row{background:#fbf4e8}.extra-row.student-selectable{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.extra-row.student-selectable .student-exited-select{margin:0 3px}.bulk-delete-result{color:var(--rose);font-size:.75rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.bulk-delete-result:empty{display:none}.bulk-delete-result:not(:empty){margin:14px 0 0}
.pagination { display: flex; gap: 4px; }.pagination button { width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 7px; background: white; font-size: .66rem; }.pagination button.active { border-color: var(--ink); background: var(--ink); color: white; }.pagination button:disabled { opacity: .35; }
.table-tools { min-height: 64px; padding: 11px 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); }
.inline-search { width: 320px; height: 39px; padding: 0 11px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 10px; background: #faf8f5; color: #999187; }
.inline-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: .76rem; }
.table-tools select { height: 39px; padding: 0 34px 0 11px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font-size: .72rem; }

.student-summary { margin-bottom: 15px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: rgba(255,255,255,.8); }
.student-summary > div { padding: 18px 22px; border-right: 1px solid var(--line); }
.student-summary > div:last-child { border: 0; }.student-summary span, .student-summary strong { display: block; }.student-summary span { color: var(--muted); font-size: .7rem; }.student-summary strong { margin-top: 4px; font: 500 1.4rem Georgia, serif; }.student-summary .warning-summary strong { color: var(--rose); }
.course-progress { width: 120px; }.course-progress > span { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #eee8de; }.course-progress i { display: block; height: 100%; background: var(--gold); }.course-progress small { display: block; margin-top: 5px; color: var(--muted); font-size: .6rem; }
.doc-ok { color: var(--green); font-weight: 700; }.doc-missing { color: var(--rose); font-weight: 700; }

.group-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.group-card { position: relative; overflow: hidden; padding: 25px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.group-accent { position: absolute; inset: 0 0 auto; height: 4px; }.gold-bg { background: var(--gold); }.rose-bg { background: var(--rose); }.dark-bg { background: var(--ink); }
.group-head { display: flex; justify-content: space-between; align-items: flex-start; }.group-head button { border: 0; background: none; color: var(--muted); }.group-head h2 { margin: 10px 0 0; font: 500 1.3rem Georgia, serif; }.group-card > p { margin: 7px 0 22px; color: var(--muted); font-size: .72rem; }
.group-info { padding: 15px 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.group-info > div + div { padding-left: 18px; border-left: 1px solid var(--line); }.group-info span, .group-info strong { display: block; }.group-info span { color: var(--muted); font-size: .65rem; }.group-info strong { margin-top: 4px; font-size: .79rem; }
.group-progress { padding: 17px 0; }.group-progress > span { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #eee8df; }.group-progress i { display: block; height: 100%; background: var(--gold); }.group-progress small { display: block; margin-top: 5px; color: var(--muted); font-size: .62rem; text-align: right; }
.group-foot { display: grid; grid-template-columns: 34px 1fr 30px; gap: 9px; align-items: center; }.group-foot small, .group-foot strong { display: block; }.group-foot small { color: var(--muted); font-size: .6rem; }.group-foot strong { margin-top: 2px; font-size: .68rem; }

.finance-overview { margin-bottom: 15px; display: grid; grid-template-columns: 1.45fr repeat(3, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.finance-overview > div { min-height: 124px; padding: 22px; border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }.finance-overview > div:first-child { border-left: 0; }.finance-overview .finance-main { color: white; background: var(--ink); }.finance-overview span, .finance-overview strong, .finance-overview small { display: block; }.finance-overview span { color: var(--muted); font-size: .67rem; }.finance-overview .finance-main span, .finance-overview .finance-main small { color: #aaa198; }.finance-overview strong { margin: 8px 0 6px; font: 500 1.2rem Georgia, serif; }.finance-overview .finance-main strong { font-size: 1.55rem; }.finance-overview small { color: var(--muted); font-size: .61rem; }.finance-overview small.positive { color: var(--green); }.finance-overview small.negative { color: var(--rose); }
.money { color: var(--ink); font-weight: 800; }.payment-tabs { border: 0; background: transparent; padding: 0; }

.simple-list { padding: 4px 23px; }.simple-row { min-height: 82px; display: grid; grid-template-columns: 40px 1fr auto; gap: 13px; align-items: center; border-bottom: 1px solid var(--line); }.simple-row:last-child { border: 0; }.simple-row strong, .simple-row small { display: block; }.simple-row strong { font-size: .83rem; }.simple-row small { margin-top: 4px; color: var(--muted); font-size: .7rem; }
.task-board { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }.task-column { min-height: 450px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.55); }.task-column-head { margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center; }.task-column-head h2 { margin: 0; font: 500 1.1rem Georgia, serif; }.task-column-head span { padding: 4px 8px; border-radius: 99px; background: #e9e3da; font-size: .67rem; font-weight: 800; }.task-column-head .late-count { color: var(--rose); background: var(--rose-pale); }.task-card { margin-bottom: 10px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 8px 22px rgba(37,29,19,.04); }.task-card.late-card { border-left: 3px solid var(--rose); }.task-card small { color: var(--gold-deep); font-size: .61rem; font-weight: 800; letter-spacing: .06em; }.task-card strong { display: block; margin-top: 9px; font-size: .83rem; }.task-card p { margin: 4px 0 14px; color: var(--muted); font-size: .7rem; }.task-done { min-height: 34px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: #faf8f4; color: var(--green); font-size: .68rem; font-weight: 800; }

.modal-backdrop { position: fixed; inset: 0; z-index: 70; padding: 24px; display: grid; place-items: center; background: rgba(16,13,11,.55); backdrop-filter: blur(5px); }
.modal-backdrop[hidden] { display: none; }
.modal { width: min(690px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; padding: 28px; border: 1px solid rgba(255,255,255,.5); border-radius: 21px; background: #fcfaf6; box-shadow: 0 28px 80px rgba(15,12,9,.3); animation: modalIn .22s ease both; }.small-modal { width: min(570px,100%); }
@keyframes modalIn { from { opacity: 0; transform: scale(.97) translateY(8px); } to { opacity: 1; transform: none; } }
.modal-head { margin-bottom: 22px; display: flex; justify-content: space-between; gap: 20px; }.modal-head h2 { margin: 5px 0 0; font: 500 1.65rem Georgia, serif; }.modal-head button, .detail-head button { width: 35px; height: 35px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--muted); font-size: 1.1rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.modal label { display: grid; gap: 6px; margin-bottom: 15px; color: #5c554e; font-size: .72rem; font-weight: 700; }.modal input, .modal select, .modal textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); outline: 0; }.modal input, .modal select { height: 43px; padding: 0 12px; }.modal textarea { padding: 11px 12px; resize: vertical; }.modal input:focus, .modal select:focus, .modal textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(189,147,81,.12); }.modal-actions { margin-top: 7px; padding-top: 19px; display: flex; justify-content: flex-end; gap: 9px; border-top: 1px solid var(--line); }.danger-button { min-height: 42px; padding: 0 17px; border: 1px solid #7f3742; border-radius: 11px; background: var(--rose); color: white; font-size: .82rem; font-weight: 700; }.danger-button:hover { background: #682b35; }.delete-warning { margin: 0; color: #5c554e; font-size: .86rem; line-height: 1.65; }.row-actions { display: flex; justify-content: flex-end; gap: 4px; }.student-delete { color: var(--rose); }.student-delete:hover { border-color: #d7a7ae; background: var(--rose-pale); }
.modal.class-editor-modal{width:min(940px,100%)}
.class-modal-intro{margin:8px 0 0;color:var(--muted);font-size:.78rem}
.class-title-field{max-width:100%}
.class-group-panel{margin:3px 0 22px;padding:23px;border:1px solid #ded0ba;border-radius:18px;background:radial-gradient(circle at 100% 0%,rgba(189,147,81,.12),transparent 43%),linear-gradient(145deg,#fff,#faf7f1);box-shadow:0 12px 30px rgba(37,29,19,.055),inset 0 1px #fff}
.class-group-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}.class-group-header .eyebrow{margin:0 0 4px}.class-group-header h3{margin:0;font:500 1.18rem Georgia,serif;color:var(--ink)}.class-group-header p:not(.eyebrow){margin:6px 0 0;color:var(--muted);font-size:.72rem}.class-group-count{flex:none;margin-top:5px;padding:7px 12px;border:1px solid #e5d3af;border-radius:999px;background:#f7ecd9;color:#765524;font-size:.7rem;font-weight:750;white-space:nowrap}
.group-picker>select{display:none}.group-picker-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:13px}.modal .group-picker-search-label{flex:1;max-width:395px;margin:0;color:var(--muted);font-size:.68rem}.group-picker-search-label input{margin-top:3px}.group-picker-actions{display:flex;flex-wrap:wrap;gap:8px}.group-picker-actions button{min-height:41px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:.72rem;font-weight:700;white-space:nowrap}.group-picker-actions button:hover:not(:disabled),.group-picker-actions button:focus-visible{border-color:var(--gold);background:var(--gold-pale);outline:none}.group-picker-actions button:disabled{opacity:.44;cursor:default}
.group-picker-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:9px;max-height:235px;overflow-y:auto;padding:2px 3px 5px 2px;scrollbar-color:#c9b28c transparent}.modal .group-picker-option{display:flex;align-items:center;gap:12px;min-width:0;min-height:64px;margin:0;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.modal .group-picker-option:hover{border-color:#c8a977;background:#fcf8f0}.modal .group-picker-option.is-selected{border-color:var(--gold);background:#f9f0df;box-shadow:inset 0 0 0 1px rgba(189,147,81,.3)}.modal .group-picker-option:focus-within{outline:2px solid var(--gold);outline-offset:2px}.modal .group-picker-option input{flex:0 0 20px;width:20px;height:20px;margin:0;padding:0;border-radius:5px;accent-color:var(--gold-deep)}.group-picker-option-copy{min-width:0}.group-picker-option-copy strong,.group-picker-option-copy small{display:block;overflow-wrap:anywhere}.group-picker-option-copy strong{font-size:.77rem;line-height:1.3}.group-picker-option-copy small{margin-top:3px;color:var(--muted);font-size:.65rem;font-weight:500}.group-picker-empty{grid-column:1/-1;margin:0;padding:20px 12px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center;font-size:.74rem}
.modal .group-picker-option[hidden],.group-picker-empty[hidden]{display:none}
.group-picker-summary{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.group-picker-summary>span{display:block;margin-bottom:9px;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.group-picker-selected{display:flex;flex-wrap:wrap;gap:7px;min-height:32px}.group-picker-selected p{margin:0;color:var(--muted);font-size:.73rem}.group-picker-chip{max-width:100%;min-height:31px;display:inline-flex;align-items:center;gap:9px;padding:4px 10px;border:1px solid #d8c099;border-radius:8px;background:#fff9ed;color:#674c25;font-size:.7rem;font-weight:700;text-align:left;overflow-wrap:anywhere}.group-picker-chip:hover,.group-picker-chip:focus-visible{border-color:var(--gold-deep);background:var(--gold-pale);outline:none}.group-picker-chip span{font-size:1rem;line-height:1}
.modal.class-editor-modal{padding:0;border:1px solid #d9d7cf;border-radius:16px;background:#f6f5f1;box-shadow:0 30px 90px rgba(15,12,9,.32)}
.class-editor-modal .modal-head{align-items:flex-start;margin:0;padding:30px 34px;background:linear-gradient(110deg,#211e1a,#333027);color:#fff;border-bottom:3px solid #d0b17b}
.class-editor-modal .modal-head .eyebrow{margin:0;color:#e8d4af;font-size:.66rem;letter-spacing:.16em}
.class-editor-modal .modal-head h2{margin:8px 0 0;color:#fff;font:500 clamp(1.7rem,3vw,2.2rem)/1.18 'DM Sans',Inter,sans-serif;letter-spacing:-.045em}
.class-editor-modal .class-modal-intro{max-width:58ch;margin-top:9px;color:#d5d0c6;font-size:.8rem;line-height:1.6}
.class-editor-modal .modal-head button{flex:none;border-color:rgba(255,255,255,.26);background:rgba(255,255,255,.08);color:#fff}
.class-editor-modal .modal-head button:hover{border-color:#e3c287;background:rgba(255,255,255,.15)}
#classForm{padding:27px 34px 29px}
.class-editor-modal .class-title-field{margin-bottom:21px;color:#38332c;font-size:.75rem}
.class-editor-modal .class-title-field input{height:51px;font-size:1rem;font-weight:650}
.class-editor-modal .class-group-panel,.class-editor-modal .class-details-panel{margin:0 0 15px;padding:23px;border:1px solid #dedbd4;border-radius:12px;background:#fff;box-shadow:none}
.class-editor-modal .class-section-heading{display:flex;align-items:flex-start;gap:12px}
.class-editor-modal .class-section-number{flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#2e2b26;color:#efdaad;font:500 .73rem 'DM Mono',monospace}
.class-editor-modal .class-section-heading .eyebrow{margin:0 0 3px;color:#91734d;font-size:.62rem;letter-spacing:.11em}
.class-editor-modal .class-section-heading h3{margin:0;font:600 1.11rem/1.3 'DM Sans',Inter,sans-serif;letter-spacing:-.018em;color:#26231e}
.class-editor-modal .class-group-header{margin-bottom:21px}
.class-editor-modal .class-group-count{margin-top:2px;border-color:#e1d1b3;background:#f6ecd9;color:#75542b;font-size:.78rem}
.class-editor-modal .group-picker-option.is-selected{border-color:#b1915b;background:#faf5e9;box-shadow:inset 3px 0 0 #b1915b}
.class-editor-modal .group-picker-option-copy strong{font-size:.89rem;font-weight:650}
.class-editor-modal .group-picker-option-copy small{font-size:.73rem}
.class-editor-modal .group-picker-summary{margin:0 0 17px;padding:13px;border:1px solid #e7ded0;border-radius:10px;background:#faf7ef}
.class-editor-modal .group-picker-summary>span{font-size:.72rem}
.class-editor-modal .group-picker-chip{border-color:#dfc7a2;background:#f8f0df;font-size:.78rem}
.class-editor-modal .group-picker-search-label,.class-editor-modal .group-picker-actions button{font-size:.76rem}
.class-editor-modal .group-picker-actions button{background:#faf9f6}
.class-editor-modal .class-details-panel .class-section-heading{margin-bottom:22px}
.class-editor-modal .form-grid{gap:15px 19px}
.class-editor-modal .modal-actions{position:sticky;bottom:0;z-index:2;margin-top:11px;padding:17px 0 0;background:#f6f5f1;box-shadow:0 -10px 18px #f6f5f1}
.class-editor-modal .modal-actions .primary-button{border-color:#e4c88f;background:#e4c88f;color:#252018;box-shadow:none}
.class-editor-modal .modal-actions .primary-button:hover{background:#f0dba9;box-shadow:none}
@media(max-width:680px){.class-editor-modal .modal-head{padding:23px 19px}.class-editor-modal .modal-head h2{font-size:1.6rem}#classForm{padding:20px 16px 22px}.class-editor-modal .class-group-panel,.class-editor-modal .class-details-panel{padding:17px}.class-group-header,.group-picker-toolbar{align-items:stretch;flex-direction:column}.class-group-count{align-self:flex-start;margin-top:0}.modal .group-picker-search-label{max-width:none}.group-picker-options{grid-template-columns:1fr;max-height:230px}.group-picker-actions button{flex:1}.class-editor-modal .form-grid{grid-template-columns:1fr}.class-editor-modal .modal-actions{flex-wrap:wrap}}
.portal-calendar-nav{margin:10px 0 12px;display:flex;align-items:center;gap:7px}.portal-calendar-nav button{min-width:36px;min-height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);cursor:pointer}.portal-calendar-nav button:hover{border-color:var(--gold);background:var(--gold-pale)}

.sheet-backdrop { position: fixed; inset: 0; z-index: 50; background: rgba(20,16,13,.28); backdrop-filter: blur(2px); }.sheet-backdrop[hidden] { display: none; }
.detail-sheet { position: fixed; z-index: 60; inset: 0 0 0 auto; width: min(430px, 100%); padding: 27px; overflow-y: auto; background: #fcfaf6; box-shadow: -18px 0 54px rgba(24,19,14,.18); transform: translateX(105%); transition: transform .25s ease; }.detail-sheet.open { transform: translateX(0); }
.detail-head { display: flex; justify-content: space-between; align-items: center; }.detail-person { margin: 24px 0; display: flex; align-items: center; gap: 14px; }.large-avatar { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 16px; background: var(--gold-pale); color: var(--gold-deep); font: 600 1rem Georgia, serif; }.detail-person h2 { margin: 0 0 6px; font: 500 1.45rem Georgia, serif; }.detail-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }.detail-actions button { min-height: 39px; border: 1px solid var(--line); border-radius: 10px; background: white; color: #5e574f; font-size: .68rem; font-weight: 750; }.detail-actions button:hover { border-color: var(--gold); color: var(--gold-deep); }
.detail-data { margin: 22px 0; padding: 5px 17px; border: 1px solid var(--line); border-radius: 14px; background: white; }.detail-data > div { padding: 11px 0; display: grid; grid-template-columns: 105px 1fr; gap: 10px; border-bottom: 1px solid #eee8df; }.detail-data > div:last-child { border: 0; }.detail-data dt { color: var(--muted); font-size: .65rem; }.detail-data dd { margin: 0; color: var(--ink); font-size: .7rem; font-weight: 700; text-align: right; }
.detail-section { margin-top: 24px; }.detail-section h3 { margin: 0 0 13px; font: 500 1rem Georgia, serif; }.detail-section-head { display: flex; justify-content: space-between; }.detail-section-head button { border: 0; background: none; color: var(--green); font-size: .67rem; font-weight: 800; }.next-action { padding: 14px; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 11px; border: 1px solid #dec9a7; border-radius: 12px; background: var(--gold-pale); }.next-action > span { height: 38px; display: grid; place-items: center; border-radius: 9px; background: white; color: var(--gold-deep); font: 600 1rem Georgia, serif; }.next-action strong, .next-action small { display: block; }.next-action strong { font-size: .72rem; }.next-action small { margin-top: 3px; color: var(--muted); font-size: .62rem; }
.timeline { margin: 0; padding: 0; list-style: none; }.timeline li { position: relative; padding: 0 0 20px 24px; }.timeline li:not(:last-child)::before { content: ""; position: absolute; left: 5px; top: 11px; bottom: -2px; width: 1px; background: var(--line); }.timeline li > span { position: absolute; left: 0; top: 3px; width: 11px; height: 11px; border: 3px solid #fcfaf6; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 1px var(--gold); }.timeline strong, .timeline small { display: block; }.timeline strong { font-size: .7rem; }.timeline small { margin-top: 3px; color: var(--muted); font-size: .61rem; }

.toast { position: fixed; z-index: 90; right: 24px; bottom: 24px; width: min(360px, calc(100vw - 48px)); padding: 15px 17px; display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: center; border: 1px solid #c3d1e6; border-radius: 14px; background: #f8fafe; box-shadow: 0 18px 45px rgba(17,31,52,.15); transform: translateY(120px); opacity: 0; pointer-events: none; transition: .25s ease; }.toast.show { transform: none; opacity: 1; }.toast > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: white; }.toast strong, .toast small { display: block; }.toast strong { font-size: .75rem; }.toast small { margin-top: 2px; color: var(--muted); font-size: .64rem; }

.sidebar .nav { min-height: 0; flex: 1 1 auto; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(189,147,81,.35) transparent; }
.sidebar .nav-item { flex: 0 0 auto; }
.sidebar-foot { margin-top: 12px; }

.role-switch { height: 42px; padding: 4px 5px 4px 11px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.75); }
.role-switch > span { color: var(--muted); font-size: .7rem; font-weight: 700; }
.role-switch select { height: 31px; padding: 0 25px 0 9px; border: 0; border-radius: 8px; outline: 0; background: var(--ink); color: white; font-size: .72rem; font-weight: 800; }

.schedule-summary { margin-bottom: 16px; display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.schedule-summary > div { min-height: 112px; padding: 20px 22px; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--line); }
.schedule-summary > div:first-child { border: 0; }
.schedule-summary-main { color: white; background: linear-gradient(135deg, #211d19, #141210); }
.schedule-summary span, .schedule-summary small { color: var(--muted); font-size: .75rem; }
.schedule-summary-main span, .schedule-summary-main small { color: #b2aaa0; }
.schedule-summary strong { margin: 7px 0 4px; font: 500 1.35rem Georgia, serif; }
.schedule-summary-main strong { color: #f8f3eb; font-size: 1.55rem; }
.calendar-toolbar { margin: 20px 0 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.week-nav { display: flex; align-items: center; gap: 10px; }
.week-nav button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.week-nav strong { min-width: 210px; text-align: center; font: 500 .95rem Georgia, serif; }
.schedule-toolbar-controls { display: flex; align-items: center; gap: 9px; }
.schedule-view-toggle button { min-width: 92px; }
.week-calendar-wrap { width: 100%; overflow-x: auto; padding-bottom: 7px; scrollbar-width: thin; scrollbar-color: #c8b89f transparent; }
.week-calendar { min-width: 2100px; display: grid; grid-template-columns: repeat(7, minmax(285px, 1fr)); gap: 8px; }
.week-day { min-height: 430px; padding: 10px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.7); }
.week-day.today { border-color: #c8a66d; background: #fffcf7; box-shadow: inset 0 3px 0 var(--gold); }
.week-day-head { min-height: 57px; padding: 3px 3px 10px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.week-day-head span { color: var(--muted); font-size: .69rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.week-day-head strong { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; font: 500 .9rem Georgia, serif; }
.week-day.today .week-day-head strong { background: var(--gold); color: var(--sidebar); }
.week-day-events { padding-top: 9px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 8px; }
.week-empty { padding: 24px 5px; color: #aaa197; text-align: center; font-size: .68rem; }
.week-class-card { min-width: 0; padding: 11px; overflow: hidden; border: 1px solid #ded4c6; border-left: 4px solid var(--gold); border-radius: 11px; background: white; box-shadow: 0 7px 18px rgba(37,29,19,.055); cursor: pointer; }
.week-class-card h3, .week-class-card p, .week-class-card small { overflow-wrap: anywhere; word-break: break-word; }
.shared-portal-schedule { margin: 16px 0; }
.portal-shared-calendar { overflow-x: auto; }
.portal-schedule-list { display: grid; gap: 6px; }
.portal-schedule-row { display: grid; grid-template-columns: 105px 1fr 170px; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: .76rem; }
.portal-schedule-row small { color: var(--muted); text-align: right; }
.week-class-card.draft { border-left-color: #9c948b; background: #f8f6f2; }
.week-class-card.full { border-left-color: var(--rose); }
.week-class-time { display: flex; justify-content: space-between; gap: 8px; color: var(--gold-deep); font-size: .69rem; font-weight: 800; }
.week-class-time span:last-child { color: var(--muted); font-weight: 700; }
.week-class-card h3 { margin: 8px 0 4px; font: 500 .9rem/1.2 Georgia, serif; }
.week-class-card p { margin: 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }
.week-class-card small { display: block; margin-top: 7px; color: #756d64; font-size: .65rem; }
.week-class-foot { margin-top: 10px; padding-top: 9px; display: flex; align-items: center; justify-content: space-between; gap: 7px; border-top: 1px solid #eee8df; }
.week-class-foot span { color: var(--muted); font-size: .63rem; }
.week-edit { min-height: 30px; padding: 0 8px; border: 1px solid #d4c8b8; border-radius: 8px; background: #faf7f2; color: var(--ink); font-size: .65rem; font-weight: 800; }
.week-edit:hover { border-color: var(--gold); color: var(--gold-deep); }
.class-list { display: grid; gap: 10px; }
.class-row { min-height: 108px; padding: 17px 19px; display: grid; grid-template-columns: 66px minmax(200px,1.5fr) minmax(180px,1fr) 150px 170px; gap: 18px; align-items: center; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.9); box-shadow: 0 8px 25px rgba(37,29,19,.045); transition: transform .16s, border-color .16s; }
.class-row:hover { transform: translateY(-1px); border-color: #d2c5b3; }
.class-date { width: 58px; height: 66px; display: grid; place-items: center; align-content: center; border-radius: 12px; background: var(--gold-pale); color: var(--gold-deep); }
.class-date strong { font: 500 1.5rem/1 Georgia, serif; }
.class-date span { margin-top: 4px; font-size: .67rem; font-weight: 800; letter-spacing: .08em; }
.class-main h2 { margin: 5px 0 3px; font: 500 1.08rem Georgia, serif; }
.class-main small, .class-meta small, .class-bookings small { display: block; color: var(--muted); font-size: .72rem; }
.class-meta strong, .class-meta span { display: block; }
.class-meta strong { font-size: .8rem; }.class-meta span { margin-top: 4px; color: var(--muted); font-size: .72rem; }
.class-bookings strong { display: block; margin-bottom: 6px; font-size: .8rem; }
.capacity-track { height: 5px; margin-bottom: 5px; overflow: hidden; border-radius: 99px; background: #eee8df; }
.capacity-track i { display: block; height: 100%; border-radius: inherit; background: var(--gold); }
.class-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.publish-toggle { padding: 0; display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; color: var(--green); font-size: .68rem; font-weight: 800; }
.publish-toggle i { position: relative; width: 34px; height: 19px; border-radius: 99px; background: var(--green); }
.publish-toggle i::after { content: ""; position: absolute; top: 3px; right: 3px; width: 13px; height: 13px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.22); }
.publish-toggle.off { color: var(--muted); }.publish-toggle.off i { background: #cec7be; }.publish-toggle.off i::after { right: 18px; }
.edit-class { min-height: 37px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: white; font-size: .72rem; font-weight: 800; }
.empty-class-list { padding: 50px; border: 1px dashed #cfc4b6; border-radius: var(--radius); color: var(--muted); text-align: center; background: rgba(255,255,255,.45); }

.teacher-kpis, .portal-kpis { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.85); }
.teacher-kpis > div, .portal-kpis > div { padding: 18px 21px; border-right: 1px solid var(--line); }
.teacher-kpis > div:last-child, .portal-kpis > div:last-child { border: 0; }
.teacher-kpis span, .teacher-kpis small, .portal-kpis span, .portal-kpis small { display: block; color: var(--muted); font-size: .72rem; }
.teacher-kpis strong, .portal-kpis strong { display: block; margin: 5px 0 3px; font: 500 1.25rem Georgia, serif; }
.instructor-grid { margin-bottom: 16px; display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.instructor-card { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.instructor-card-head { display: flex; align-items: center; gap: 12px; }
.instructor-card-head .large-avatar { flex: 0 0 auto; }
.instructor-card-head h2 { margin: 0 0 3px; font: 500 1.08rem Georgia, serif; }
.instructor-card-head p { margin: 0; color: var(--muted); font-size: .72rem; }
.instructor-card-info { margin-top: 18px; padding: 14px 0; display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.instructor-card-info div + div { padding-left: 15px; border-left: 1px solid var(--line); }
.instructor-card-info span, .instructor-card-info strong { display: block; }.instructor-card-info span { color: var(--muted); font-size: .68rem; }.instructor-card-info strong { margin-top: 4px; font-size: .8rem; }
.instructor-card-foot { padding-top: 14px; display: flex; align-items: center; justify-content: space-between; }
.instructor-card-foot span { color: var(--muted); font-size: .7rem; }
.login-inactive { color: var(--rose); font-size: .7rem; font-weight: 800; }
.instructor-table-card .table-tools > div strong, .instructor-table-card .table-tools > div small { display: block; }
.instructor-table-card .table-tools > div strong { font-size: .82rem; }.instructor-table-card .table-tools > div small { margin-top: 3px; color: var(--muted); font-size: .7rem; }
.login-active { color: var(--green); font-weight: 800; }.rate-edit { min-height: 32px; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; background: white; font-size: .68rem; font-weight: 800; }

.settlement-hero { margin-bottom: 16px; padding: 25px; display: grid; grid-template-columns: minmax(240px,.8fr) minmax(500px,1.6fr); gap: 30px; align-items: center; overflow: hidden; border-radius: var(--radius); background: linear-gradient(135deg, #211d19, #151210); color: white; box-shadow: 0 16px 36px rgba(20,16,13,.16); }
.settlement-hero > div:first-child span, .settlement-hero > div:first-child small { display: block; color: #aca39a; font-size: .72rem; }.settlement-hero > div:first-child strong { display: block; margin: 8px 0 6px; color: #f4e5c9; font: 500 1.65rem Georgia, serif; }
.settlement-flow { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.settlement-flow span { display: flex; align-items: center; gap: 9px; color: #d5cec5; font-size: .72rem; }
.settlement-flow b { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(189,147,81,.6); border-radius: 50%; color: var(--gold); }
.settlement-flow i { color: #6c655d; font-style: normal; }
.settlement-note { color: var(--muted); font-size: .7rem; }.settlement-total { color: var(--ink); font-weight: 850; }

.portal-banner { margin-bottom: 16px; padding: 27px 29px; display: flex; align-items: center; justify-content: space-between; gap: 25px; border-radius: 20px; color: white; box-shadow: 0 18px 44px rgba(29,22,17,.13); }
.teacher-banner { background: linear-gradient(120deg, #211d19 0%, #30271e 65%, #5d472b 120%); }
.student-banner { background: linear-gradient(120deg, #3e1f27 0%, #6b303d 65%, #9a5b56 120%); }
.portal-person { display: flex; align-items: center; gap: 16px; }
.portal-person .large-avatar { background: rgba(255,255,255,.13); color: #f3dcae; border: 1px solid rgba(255,255,255,.15); }
.portal-person .eyebrow { color: #ddb875; }.student-banner .portal-person .eyebrow { color: #f0c0bd; }
.student-welcome { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; }
.student-group-badge { display: inline-flex; align-items: center; max-width: 100%; padding: 6px 12px; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; background: rgba(255,255,255,.13); color: #fff; font-size: .78rem; font-weight: 700; overflow-wrap: anywhere; }
.student-group-badge[hidden] { display: none; }
.student-profile-switcher { margin: 6px 10px 14px; padding: 12px; border: 1px solid rgba(39,67,139,.18); border-radius: 15px; background: rgba(39,67,139,.07); }
.student-profile-switcher[hidden] { display: none; }
.student-profile-switcher label { display: block; margin-bottom: 7px; color: #b19a67; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.student-profile-switcher select { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #aab9df; border-radius: 10px; background: #fff; color: #172a67; font-family: inherit; font-size: .85rem; font-weight: 600; }
.student-profile-switcher select:focus-visible { outline: 3px solid #5279ce; outline-offset: 2px; }
.student-faculty-overview h2, .student-faculty-finance h2 { margin: 3px 0 8px; }
.student-faculty-overview p:last-child { margin-bottom: 0; }
.faculty-profile-active .booking-toolbar, .faculty-profile-active .bbs-program-panel, .faculty-profile-active .student-exams-panel { display: none; }
.student-faculty-totals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 18px 0 24px; }
.student-faculty-totals > div { min-width: 0; padding: 17px; border: 1px solid #dce3f3; border-radius: 14px; background: #f8faff; }
.student-faculty-totals span, .student-faculty-totals strong { display: block; }
.student-faculty-totals span { color: #64708b; font-size: .78rem; }
.student-faculty-totals strong { margin-top: 7px; color: #213a87; font-size: 1.22rem; overflow-wrap: anywhere; }
.student-faculty-payment { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 13px 0; border-top: 1px solid #e6eaf2; }
.student-faculty-payment small { display: block; color: #64708b; overflow-wrap: anywhere; }
.student-faculty-hint { color: #64708b; font-size: .8rem; }
@media(max-width:600px){.student-faculty-totals{grid-template-columns:1fr}.student-faculty-payment{align-items:flex-start}.student-profile-switcher{margin:8px 10px 14px}}
.portal-person h1 { margin: 4px 0; font: 500 1.75rem Georgia, serif; }.portal-person p { margin: 0; color: rgba(255,255,255,.68); font-size: .78rem; }
.portal-date { min-width: 140px; padding-left: 23px; border-left: 1px solid rgba(255,255,255,.18); text-align: center; }.portal-date span, .portal-date strong, .portal-date small { display: block; }.portal-date span, .portal-date small { color: rgba(255,255,255,.68); font-size: .7rem; }.portal-date strong { margin: 2px 0; font: 500 2.2rem Georgia, serif; }
.booking-balance { max-width: 220px; padding-left: 25px; border-left: 1px solid rgba(255,255,255,.18); }.booking-balance span, .booking-balance strong, .booking-balance small { display: block; }.booking-balance span, .booking-balance small { color: rgba(255,255,255,.68); font-size: .7rem; }.booking-balance strong { margin: 5px 0; font: 500 1.8rem Georgia, serif; }
.teacher-workspace { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.65fr); gap: 16px; }
.live-class-head { margin-bottom: 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }.live-class-head > div { display: flex; gap: 11px; }.live-dot { width: 9px; height: 9px; flex: 0 0 auto; margin-top: 5px; border-radius: 50%; background: #d55056; box-shadow: 0 0 0 5px rgba(213,80,86,.12); }.live-class-head h2, .class-log-panel h2 { margin: 5px 0 3px; font: 500 1.2rem Georgia, serif; }.live-class-head small { color: var(--muted); font-size: .72rem; }
.attendance-toolbar { min-height: 52px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.attendance-toolbar strong, .attendance-toolbar small { display: block; }.attendance-toolbar strong { font-size: .8rem; }.attendance-toolbar small { margin-top: 2px; color: var(--muted); font-size: .68rem; }
.attendance-list label { min-height: 60px; display: grid; grid-template-columns: 20px 36px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid #eee8df; cursor: pointer; }.attendance-list label:last-child { border: 0; }.attendance-list input { width: 17px; height: 17px; accent-color: var(--green); }.attendance-list strong, .attendance-list small { display: block; }.attendance-list strong { font-size: .78rem; }.attendance-list small { margin-top: 2px; color: var(--muted); font-size: .66rem; }.attendance-list em { color: #9a938a; font-size: .7rem; font-style: normal; }.attendance-list input:checked ~ em { color: var(--green); font-weight: 800; }
.class-log-panel label { display: grid; gap: 6px; margin-top: 15px; color: var(--muted); font-size: .72rem; font-weight: 750; }.class-log-panel textarea { width: 100%; padding: 11px; resize: vertical; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: #faf8f4; }.class-log-panel textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(189,147,81,.12); }.hours-confirm { margin: 18px 0; padding: 14px; border-radius: 12px; background: var(--gold-pale); }.hours-confirm span, .hours-confirm strong, .hours-confirm small { display: block; }.hours-confirm span { color: var(--muted); font-size: .68rem; }.hours-confirm strong { margin-top: 5px; font-size: .85rem; }.hours-confirm small { margin-top: 2px; color: var(--gold-deep); font-size: .72rem; font-weight: 800; }.wide-button { width: 100%; }

.booking-toolbar { margin: 20px 0 13px; display: flex; justify-content: space-between; align-items: center; gap: 15px; }.student-id { color: var(--muted); font-size: .72rem; }
.booking-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.booking-card { position: relative; overflow: hidden; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }.booking-card.booked { border-color: #9eb4d4; box-shadow: 0 13px 34px rgba(42,78,132,.10); }.booking-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--gold); }.booking-card.booked::before { background: var(--green); }.booking-card.full::before { background: var(--rose); }
.booking-card-top { display: flex; justify-content: space-between; gap: 18px; }.booking-card time { width: 54px; height: 57px; flex: 0 0 auto; display: grid; place-items: center; align-content: center; border-radius: 11px; background: var(--gold-pale); color: var(--gold-deep); }.booking-card time strong, .booking-card time span { display: block; }.booking-card time strong { font: 500 1.35rem/1 Georgia, serif; }.booking-card time span { margin-top: 4px; font-size: .62rem; font-weight: 850; }.booking-card h2 { margin: 3px 0 5px; font: 500 1.06rem Georgia, serif; }.booking-card p { margin: 0; color: var(--muted); font-size: .72rem; }.booking-card-body { flex: 1; }.booking-card-meta { margin: 17px 0; padding: 13px 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.booking-card-meta > div + div { padding-left: 14px; border-left: 1px solid var(--line); }.booking-card-meta span, .booking-card-meta strong { display: block; }.booking-card-meta span { color: var(--muted); font-size: .67rem; }.booking-card-meta strong { margin-top: 4px; font-size: .76rem; }.booking-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.booking-card-foot small { color: var(--muted); font-size: .67rem; }.booking-action { min-height: 39px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 10px; background: var(--ink); color: white; font-size: .72rem; font-weight: 850; }.booking-action.cancel { border-color: #b0c2dc; background: var(--green-pale); color: var(--green); }.booking-action:disabled { cursor: not-allowed; border-color: var(--line); background: #eee9e2; color: #9d958b; }

.account-kpis{margin-bottom:16px;display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:white}.account-kpis>div{padding:18px 21px;border-right:1px solid var(--line)}.account-kpis>div:last-child{border:0}.account-kpis span,.account-kpis strong{display:block}.account-kpis span{color:var(--muted);font-size:.72rem}.account-kpis strong{margin-top:5px;font:500 1.3rem Georgia,serif}.import-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.import-panel h2,.invite-panel h2{margin:5px 0 18px;font:500 1.25rem Georgia,serif}.import-panel h3{margin:20px 0 10px;font-size:.84rem}.upload-zone{min-height:116px;padding:20px;display:grid;place-items:center;align-content:center;border:1px dashed #c9b99f;border-radius:14px;background:#faf7f1;text-align:center;cursor:pointer}.upload-zone input{position:absolute;opacity:0;pointer-events:none}.upload-zone strong{font-size:.85rem}.upload-zone span{max-width:48ch;margin-top:6px;color:var(--muted);font-size:.72rem}.import-state{margin:8px 0;color:var(--muted);font-size:.7rem}.mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mapping-grid label,.custom-field,.invite-panel label,.login-modal label{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:750}.mapping-grid select,.custom-field input,.invite-panel input,.invite-panel textarea,.login-modal input{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:white;outline:0}.invite-panel textarea{padding:11px;resize:vertical}.custom-field{margin:12px 0}.template-tags{display:flex;gap:6px;margin:9px 0 18px}.template-tags button{padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#faf8f4;color:var(--gold-deep);font-size:.68rem}.account-preview .table-tools>div strong,.account-preview .table-tools>div small{display:block}.account-preview .table-tools small{margin-top:3px;color:var(--muted);font-size:.68rem}.password-row{display:grid;grid-template-columns:1fr auto}.password-row input{border-radius:10px 0 0 10px}.password-row button{padding:0 12px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:#faf8f4;font-size:.7rem;font-weight:800}.forgot-password{width:100%;margin-top:12px;border:0;background:none;color:var(--gold-deep);font-size:.72rem;font-weight:800}.demo-warning{margin:15px 0 0;padding:11px;border-radius:10px;background:var(--gold-pale);color:var(--muted);font-size:.68rem}.login-modal{width:min(460px,100%)}

.heading-actions{display:flex;gap:8px}.student-viewbar{padding:12px 16px;display:grid;grid-template-columns:200px minmax(260px,1fr) auto;gap:12px;align-items:end;border-bottom:1px solid var(--line)}.student-viewbar>label:first-child{display:grid;gap:5px;color:var(--muted);font-size:.68rem;font-weight:750}.student-viewbar select{height:39px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:white}.active-criteria{min-height:48px;padding:8px 16px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#faf8f4}.active-criteria span{padding:5px 9px;border-radius:99px;background:var(--gold-pale);color:var(--gold-deep);font-size:.68rem;font-weight:750}.active-criteria button{border:0;background:none;color:var(--gold-deep);font-size:.7rem;font-weight:800}.order-head{width:74px}.row-order{display:flex;gap:3px}.row-order button{width:27px;height:27px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--muted)}.view-editor-modal{width:min(900px,100%)}.view-editor-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px}.view-editor-grid section>h3{margin:0 0 5px;font:500 1rem Georgia,serif}.view-editor-grid section>p{margin:0 0 12px;color:var(--muted);font-size:.7rem}.column-editor{max-height:390px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:white}.column-editor-row{min-height:64px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.column-editor-row.column-visible{background:#fffaf0}.column-editor-row.column-hidden{background:#f5f3f0}.column-editor-row:last-child{border:0}.column-editor-row label{min-width:0;flex:1;display:flex;align-items:center;gap:10px;color:var(--ink);font-size:.82rem;font-weight:700}.column-editor-row label>input[type="checkbox"]{appearance:auto!important;width:21px!important;height:21px!important;flex:0 0 21px;opacity:1!important;accent-color:var(--gold-deep)}.column-field-copy{min-width:0;flex:1;display:block!important}.column-field-copy small{display:block;margin-top:2px;color:var(--muted);font-size:.7rem;font-weight:650}.column-editor-row .field-label-input{display:block!important;min-width:0;width:100%!important;height:34px!important;padding:0 8px!important;border:1px solid #d8cfc3!important;border-radius:7px!important;background:white!important;color:var(--ink)!important;font-size:.84rem!important;font-weight:800!important;opacity:1!important;-webkit-text-fill-color:var(--ink)}.column-editor-row .field-label-input:focus{outline:0;border-color:var(--gold)!important;box-shadow:0 0 0 2px rgba(189,147,81,.12)}.column-editor-row>div{display:flex;gap:3px}.column-editor-row button{width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:white}.column-editor-row button:disabled{opacity:.3}.column-editor-row .field-remove{color:#a94c50}.editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.editor-fields label{display:grid;gap:5px;color:var(--muted);font-size:.68rem;font-weight:750}.editor-fields input,.editor-fields select,.custom-field-row input,.custom-field-row select,.save-view-name input{height:40px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:white}.editor-fields .secondary-button{align-self:end}.custom-field-row{display:grid;grid-template-columns:1fr 110px auto;gap:7px}.custom-field-row button{border:1px solid var(--ink);border-radius:9px;background:var(--ink);color:white;font-size:.7rem;font-weight:800}.save-view-name{margin-right:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.7rem;font-weight:750}.dynamic-student-table td{min-width:130px}.dynamic-student-table td:first-child{min-width:74px}

.modal-intro{margin:5px 0 0;color:var(--muted);font-size:.72rem}.student-record-modal{width:min(900px,100%)}.student-form-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.student-form-section-head{margin-bottom:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.student-form-section-head h3,.document-type-settings h3{margin:0 0 4px;font:500 1rem Georgia,serif}.student-form-section-head p,.document-type-settings p{margin:0;color:var(--muted);font-size:.7rem}.document-checklist{display:grid;grid-template-columns:1fr 1fr;gap:9px}.document-check-item{min-height:58px;padding:10px 12px;display:flex!important;align-items:center;gap:10px!important;border:1px solid var(--line);border-radius:11px;background:#faf8f4;cursor:pointer}.document-check-item:has(input:checked){border-color:#9eb4d4;background:var(--green-pale)}.document-check-item input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--green)}.document-check-item strong,.document-check-item small{display:block}.document-check-item strong{color:var(--ink);font-size:.74rem}.document-check-item small{margin-top:3px;color:var(--muted);font-size:.65rem;font-weight:600}.student-custom-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.student-custom-fields label{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:750}.student-custom-fields input,.student-custom-fields select{width:100%;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:white}.document-type-settings{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.document-type-editor{margin:12px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.document-type-row{min-height:47px;padding:5px 8px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border-bottom:1px solid var(--line)}.document-type-row:last-child{border:0}.document-type-row>input{height:35px;padding:0 9px;border:1px solid transparent;border-radius:8px;background:transparent;font-weight:700}.document-type-row>input:focus{outline:0;border-color:var(--gold);background:white}.document-type-row>div{display:flex;gap:4px}.document-type-row button{width:29px;height:29px;border:1px solid var(--line);border-radius:7px;background:white}.document-type-row button:disabled{opacity:.3}.document-type-row .document-remove{color:#a94c50}.document-type-add{display:grid;grid-template-columns:1fr auto;gap:8px}.document-type-add input{height:41px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:white}.empty-editor-note{grid-column:1/-1;margin:0;padding:18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center;font-size:.72rem}

.student-finance-section{scroll-margin-top:24px}.student-finance-summary{margin-bottom:12px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#faf8f4}.student-finance-summary>div{padding:12px 14px;border-right:1px solid var(--line)}.student-finance-summary>div:last-child{border:0}.student-finance-summary span,.student-finance-summary strong{display:block}.student-finance-summary span{color:var(--muted);font-size:.65rem}.student-finance-summary strong{margin-top:4px;font-size:.8rem}.student-payment-head,.student-payment-row{display:grid;grid-template-columns:120px 115px 120px 110px minmax(200px,1fr) 34px;gap:6px;align-items:center}.student-payment-head{padding:0 7px 6px;color:var(--muted);font-size:.62rem;font-weight:800}.student-payment-history{border:1px solid var(--line);border-radius:11px;overflow:auto}.student-payment-row{min-width:850px;padding:7px;border-bottom:1px solid var(--line)}.student-payment-row:last-child{border:0}.student-payment-row input,.student-payment-row select{min-width:0;width:100%;height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:white;font-size:.7rem}.student-payment-row input:focus,.student-payment-row select:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 2px rgba(189,147,81,.1)}.payment-row-delete{width:31px;height:31px;border:1px solid #e5c7c8;border-radius:8px;background:#fff5f5;color:#a94c50;font-size:1rem;font-weight:800}.student-finance-section #addStudentPayment:disabled{opacity:.45;cursor:not-allowed}

.faculty-summary{margin-bottom:16px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:white}.faculty-summary>div{padding:18px 21px;border-right:1px solid var(--line)}.faculty-summary>div:last-child{border:0}.faculty-summary span,.faculty-summary strong{display:block}.faculty-summary span{color:var(--muted);font-size:.72rem}.faculty-summary strong{margin-top:5px;font:500 1.3rem Georgia,serif}.faculty-panel{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow)}.faculty-help{padding:15px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#faf8f4}.faculty-help strong{font-size:.78rem}.faculty-help span{color:var(--muted);font-size:.72rem}.faculty-table-scroll{overflow:auto}.faculty-head,.faculty-row{min-width:1300px;display:grid;grid-template-columns:70px 190px 180px 180px 250px 160px 190px 40px;gap:8px;align-items:center}.faculty-head{padding:12px 10px;border-bottom:1px solid var(--line);background:#f5f0e9;color:var(--muted);font-size:.68rem;font-weight:850}.faculty-row{min-height:72px;padding:8px 10px;border-bottom:1px solid var(--line)}.faculty-row:last-child{border:0}.faculty-row input{min-width:0;width:100%;height:40px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font-size:.78rem}.faculty-row input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(189,147,81,.1)}.faculty-order{display:flex;gap:3px}.faculty-order button{width:29px;height:29px;border:1px solid var(--line);border-radius:7px;background:white}.faculty-order button:disabled{opacity:.3}.faculty-instructor-cell,.faculty-price-cell{min-width:0;display:grid;gap:4px}.faculty-instructor-cell a{color:var(--gold-deep);font-size:.68rem;font-weight:800;text-decoration:none}.faculty-price-cell small{color:var(--green);font-size:.65rem;font-weight:800}.faculty-delete{width:32px;height:32px;border:1px solid #e5c7c8;border-radius:8px;background:#fff5f5;color:#a94c50;font-size:1rem;font-weight:850}

@media (max-width: 1180px) {
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .group-grid { grid-template-columns: repeat(2, 1fr); }
  .finance-overview { grid-template-columns: repeat(2,1fr); }
  .finance-overview > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }.finance-overview > div:nth-child(4) { border-top: 1px solid var(--line); }
  .date-chip { display: none; }
  .schedule-summary { grid-template-columns: repeat(2,1fr); }.schedule-summary > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }.schedule-summary > div:nth-child(4) { border-top: 1px solid var(--line); }
  .class-row { grid-template-columns: 66px minmax(200px,1.4fr) minmax(170px,1fr) 150px; }.class-actions { grid-column: 2 / -1; justify-content: flex-start; padding-top: 5px; }
  .instructor-grid { grid-template-columns: repeat(2,1fr); }
  .settlement-hero { grid-template-columns: 1fr; }.settlement-flow { justify-content: flex-start; }
}

@media (max-width: 920px) {
  .app-shell { display: block; }
  .sidebar { width: 250px; transform: translateX(-105%); transition: transform .23s ease; box-shadow: 20px 0 60px rgba(15,12,9,.2); }.sidebar.open { transform: translateX(0); }
  .main { grid-column: 1; }
  .mobile-menu { display: inline-grid; place-items: center; flex: 0 0 auto; }
  .topbar { padding: 0 20px; }.search-box { width: min(430px, 52vw); }.topbar .primary-button { font-size: 0; width: 42px; padding: 0; }.topbar .primary-button span { font-size: 1.15rem; }
  .content { padding-inline: 20px; }
  .dashboard-grid, .lower-grid { grid-template-columns: 1fr; }
  .group-grid { grid-template-columns: 1fr 1fr; }
  .role-switch > span { display: none; }
  .demo-data-badge{display:none}
  .teacher-workspace { grid-template-columns: 1fr; }
  .booking-grid { grid-template-columns: 1fr; }
  .teacher-kpis, .portal-kpis { grid-template-columns: repeat(2,1fr); }.teacher-kpis > div:nth-child(2), .portal-kpis > div:nth-child(2) { border-right: 0; }.teacher-kpis > div:nth-child(-n+2), .portal-kpis > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 680px) {
  .topbar { height: 68px; gap: 9px; }.search-box { flex: 1; width: auto; }.search-box kbd { display: none; }.icon-button { display: none; }
  .content { padding: 25px 14px 50px; }
  .page-heading { align-items: flex-start; }.page-heading .heading-note { max-width: 34ch; }.page-heading > .secondary-button { flex: 0 0 auto; font-size: 0; }.page-heading > .secondary-button::first-letter { font-size: .8rem; }
  .kpi-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.kpi-card { min-height: 142px; padding: 17px 15px; }.kpi-card > strong { font-size: 1.4rem; }.trend { display: none; }
  .pipeline { grid-template-columns: 1fr 1fr; }
  .panel { padding: 19px 16px; }
  .toolbar { align-items: center; }.segmented { max-width: calc(100vw - 92px); }.filter-button { flex: 0 0 auto; font-size: 0; }.filter-button::first-letter { font-size: .8rem; }
  .student-summary { grid-template-columns: 1fr 1fr; }.student-summary > div:nth-child(2) { border-right: 0; }.student-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .group-grid, .task-board { grid-template-columns: 1fr; }
  .finance-overview { grid-template-columns: 1fr; }.finance-overview > div { min-height: 104px; border-left: 0; border-top: 1px solid var(--line); }.finance-overview > div:first-child { border-top: 0; }
  .table-tools { align-items: stretch; flex-direction: column; }.inline-search { width: 100%; }.payment-tabs { max-width: 100%; }.table-tools > .secondary-button { width: 100%; }
  .simple-row { grid-template-columns: 38px 1fr; padding: 14px 0; }.simple-row .secondary-button { grid-column: 2; justify-self: start; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }.modal { padding: 22px 18px; }.modal-actions { position: sticky; bottom: -22px; padding: 15px 0 22px; background: #fcfaf6; }
  .role-switch { padding-left: 5px; }.role-switch select { width: 84px; }
  .schedule-summary { grid-template-columns: 1fr; }.schedule-summary > div { min-height: 94px; border-left: 0; border-top: 1px solid var(--line); }.schedule-summary > div:first-child { border-top: 0; }
  .calendar-toolbar, .booking-toolbar { align-items: stretch; flex-direction: column; }.schedule-toolbar-controls { align-items: stretch; flex-direction: column; }.schedule-filters, .schedule-view-toggle, .student-class-filters { max-width: 100%; }.week-nav { justify-content: space-between; }.week-nav strong { min-width: 0; }
  .class-row { grid-template-columns: 58px 1fr; gap: 12px; }.class-date { width: 54px; height: 61px; }.class-meta, .class-bookings, .class-actions { grid-column: 2; }.class-actions { justify-content: flex-start; }
  .instructor-grid { grid-template-columns: 1fr; }
  .faculty-summary{grid-template-columns:1fr}.faculty-summary>div{border-right:0;border-bottom:1px solid var(--line)}.faculty-summary>div:last-child{border-bottom:0}.faculty-help{align-items:flex-start;flex-direction:column}
  .settlement-flow { align-items: flex-start; flex-direction: column; }.settlement-flow i { display: none; }.settlement-hero { min-width: 0; }
  .portal-banner { align-items: flex-start; flex-direction: column; }.portal-date, .booking-balance { width: 100%; max-width: none; padding: 15px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); text-align: left; }.portal-date strong { font-size: 1.7rem; }
}

@media (max-width: 430px) {
  .page-heading { display: block; }.page-heading > button { margin-top: 16px; }
  .kpi-grid { grid-template-columns: 1fr; }.kpi-card { min-height: 130px; }
  .pipeline { grid-template-columns: 1fr; }
  .student-summary { grid-template-columns: 1fr; }.student-summary > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .teacher-kpis, .portal-kpis { grid-template-columns: 1fr; }.teacher-kpis > div, .portal-kpis > div { border-right: 0; border-bottom: 1px solid var(--line); }.portal-person { align-items: flex-start; }.portal-person h1 { font-size: 1.45rem; }.booking-card-top { flex-direction: column; }.booking-card-meta { grid-template-columns: 1fr; }.booking-card-meta > div + div { margin-top: 10px; padding: 10px 0 0; border-left: 0; border-top: 1px solid var(--line); }.booking-card-foot { align-items: flex-start; flex-direction: column; }.booking-action { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.admin-nav-item{border:1px solid rgba(189,147,81,.38);background:rgba(189,147,81,.08)}.role-access-grid{margin-bottom:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.role-access-card{display:flex;flex-direction:column}.role-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.role-access-head h2{margin:4px 0 0;font:500 1.3rem Georgia,serif}.role-access-head p:not(.eyebrow){max-width:46ch;margin:6px 0 0;color:var(--muted);font-size:.76rem;line-height:1.45}.role-badge{padding:7px 9px;border-radius:8px;background:var(--gold-pale);color:var(--gold-deep);font-size:.65rem;font-weight:900;letter-spacing:.08em}.student-role-badge{background:#ecf0f7;color:var(--green)}.role-person-select{margin-bottom:12px;display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:800}.role-person-select select{width:100%;height:43px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink)}.access-enabled{margin-bottom:12px;padding:11px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;background:#faf8f4}.access-enabled input{width:20px;height:20px;accent-color:var(--gold-deep)}.access-enabled strong,.access-enabled small{display:block}.access-enabled strong{font-size:.82rem}.access-enabled small{margin-top:2px;color:var(--muted);font-size:.72rem}.role-permission-grid{margin-bottom:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.role-permission-grid label,.permission-grid label{min-height:58px;padding:10px 11px;display:flex;align-items:center;gap:10px;border:2px solid var(--line);border-radius:10px;background:#f8f6f2;cursor:pointer}.role-permission-grid label.permission-on,.permission-grid label.permission-on{border-color:var(--gold);background:#fffaf0;box-shadow:0 0 0 2px rgba(189,147,81,.08)}.role-permission-grid label.permission-off,.permission-grid label.permission-off{color:#777;background:#f4f2ef}.role-permission-grid input,.permission-grid input{appearance:auto!important;width:21px!important;height:21px!important;flex:0 0 21px;opacity:1!important;accent-color:var(--gold-deep)}.role-permission-grid span,.permission-grid span,.role-permission-grid strong,.permission-grid strong,.role-permission-grid small,.permission-grid small{display:block}.role-permission-grid strong,.permission-grid strong{color:var(--ink);font-size:.82rem}.role-permission-grid small,.permission-grid small{margin-top:3px;color:var(--muted);font-size:.7rem;font-weight:700}.permission-off small{color:#9b6c6c}.role-access-card>.primary-button{margin-top:auto}@media(max-width:900px){.role-access-grid{grid-template-columns:1fr}}@media(max-width:520px){.role-permission-grid{grid-template-columns:1fr}}

.form-mark{background:#f0e5d1;color:var(--gold-deep);font-size:.55rem}.source-settings-grid textarea{width:100%;min-height:76px;padding:10px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);resize:vertical}.source-settings-grid .consent-row{margin:8px 0 13px;display:flex;align-items:center;gap:8px}.source-settings-grid .consent-row input{width:17px;height:17px;flex:0 0 17px}.source-settings-grid .consent-row span{color:var(--ink);font-size:.72rem}.migration-copy{margin:-4px 0 14px;color:var(--muted);font-size:.74rem;line-height:1.5}.source-settings-grid form+.secondary-button{margin-top:9px}
.finance-integrations{margin-bottom:16px}.integration-section-head{margin-bottom:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.integration-section-head h2{margin:4px 0 5px;font:500 1.35rem Georgia,serif}.integration-section-head p:not(.eyebrow){max-width:70ch;margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}.integration-security{padding:7px 9px;border-radius:8px;background:var(--gold-pale);color:var(--gold-deep);font-size:.68rem;font-weight:800}.finance-integration-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.finance-integration-card{padding:17px;border:1px solid var(--line);border-radius:13px;background:#fff}.integration-card-title{margin-bottom:15px;display:flex;align-items:center;gap:11px}.integration-card-title h3,.integration-card-title small{display:block}.integration-card-title h3{margin:0;font-size:.92rem}.integration-card-title small{margin-top:3px;color:var(--rose);font-size:.7rem;font-weight:750}.integration-logo{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;font-size:.68rem;font-weight:900}.bank-logo{background:var(--sidebar);color:var(--gold)}.finance-integration-card>label:not(.integration-check):not(.mini-upload){margin-bottom:10px;display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:750}.finance-integration-card select,.finance-integration-card input:not([type="checkbox"]):not([type="file"]){width:100%;height:41px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink)}.integration-check{margin-bottom:9px;padding:9px 10px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;background:#faf8f4}.integration-check input{width:18px;height:18px;accent-color:var(--gold-deep)}.integration-check strong,.integration-check small{display:block}.integration-check strong{font-size:.76rem}.integration-check small{margin-top:2px;color:var(--muted);font-size:.67rem}.mini-upload{min-height:39px;margin-top:8px;display:grid;place-items:center;border:1px dashed #c8b99f;border-radius:9px;background:#faf7f1;color:var(--gold-deep);font-size:.72rem;font-weight:800;cursor:pointer}.mini-upload input{position:absolute;opacity:0;pointer-events:none}.integration-help{margin:8px 0 0;color:var(--muted);font-size:.68rem;line-height:1.4}@media(max-width:850px){.finance-integration-grid{grid-template-columns:1fr}.integration-section-head{flex-direction:column}}
.exam-list{display:grid;gap:10px}.exam-row{padding:13px;display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:15px;border:1px solid var(--line);border-radius:12px;background:white}.exam-date,.student-exam-date{width:54px;height:58px;display:grid;place-items:center;align-content:center;border-radius:10px;background:var(--gold-pale);color:var(--gold-deep)}.exam-date strong,.student-exam-date strong{font:500 1.35rem Georgia,serif}.exam-date span,.student-exam-date span{font-size:.64rem;font-weight:850;text-transform:uppercase}.exam-main{display:flex;justify-content:space-between;gap:18px}.exam-main h3{margin:6px 0 4px;font:500 1.02rem Georgia,serif}.exam-main p,.exam-meta span,.exam-meta small{display:block;margin:0;color:var(--muted);font-size:.72rem}.exam-meta{text-align:right;display:grid;gap:5px;align-content:center}.exam-actions{display:flex;gap:7px}.student-exams-panel{margin-top:16px}.student-exam-list{display:grid;gap:9px}.student-exam-row{padding:10px;display:flex;align-items:center;gap:11px;border:1px solid #eadfcf;border-radius:11px;background:#fffaf0}.student-exam-row>div:last-child{display:grid;gap:3px}.student-exam-row strong{font-size:.8rem}.student-exam-row small{color:var(--muted);font-size:.68rem}@media(max-width:760px){.exam-row{grid-template-columns:58px 1fr}.exam-actions{grid-column:2}.exam-main{display:block}.exam-meta{text-align:left;margin-top:9px}}
.schedule-extra-grid{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.extra-help{margin:-8px 0 14px;color:var(--muted);font-size:.74rem;line-height:1.45}.extra-list{display:grid;gap:9px}.extra-row{padding:11px;display:grid;grid-template-columns:1fr auto;gap:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.extra-row-main strong,.extra-row-main small{display:block}.extra-row-main strong{font-size:.8rem}.extra-row-main small{margin-top:3px;color:var(--muted);font-size:.68rem}.extra-row-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.extra-row-fields label{display:grid;gap:4px;color:var(--muted);font-size:.65rem;font-weight:750}.extra-row-fields input{width:100%;height:34px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);font-size:.7rem}.extra-row>.danger-button{grid-column:2;grid-row:1;min-height:30px;padding:0 9px;font-size:.68rem}@media(max-width:850px){.schedule-extra-grid{grid-template-columns:1fr}}@media(max-width:540px){.extra-row-fields{grid-template-columns:1fr 1fr}}
.month-calendar-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow)}.month-calendar-weekdays,.month-calendar-grid{min-width:900px;display:grid;grid-template-columns:repeat(7,1fr)}.month-calendar-weekdays{border-bottom:1px solid var(--line);background:#f5f0e9}.month-calendar-weekdays span{padding:11px;color:var(--muted);font-size:.68rem;font-weight:850}.month-day{min-height:132px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.month-day.empty{background:#faf8f4}.month-day>strong{display:block;margin-bottom:7px;font-size:.76rem}.month-event{margin-bottom:5px;padding:6px 7px;border-left:3px solid var(--gold);border-radius:6px;background:var(--gold-pale)}.month-event.exam{border-color:var(--rose);background:var(--rose-pale)}.month-event.event{border-color:var(--green);background:var(--green-pale)}.month-event.rental{border-color:#6b7db5;background:#eef1fb}.month-event.faculty{border-color:#9d70ad;background:#f4edfa}.month-event b,.month-event small{display:block}.month-event b{font-size:.63rem}.month-event small{margin-top:2px;color:var(--muted);font-size:.59rem}

.faculty-view-toolbar{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.faculty-month-nav{visibility:hidden;display:flex;align-items:center;gap:9px}.faculty-month-nav button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:white}.faculty-month-nav strong{min-width:135px;text-align:center;text-transform:capitalize;font-size:.8rem}.faculty-head,.faculty-row{min-width:1360px;grid-template-columns:70px 190px 170px 260px 210px 150px 240px 40px}.faculty-row{min-height:86px}.faculty-datetime{display:grid;gap:5px}.faculty-datetime>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4px}.faculty-datetime input{height:34px;font-size:.7rem}.faculty-participants{min-height:52px;padding:7px 9px;border:1px solid #d9c49f;border-radius:10px;background:#fffaf0;text-align:left}.faculty-participants strong,.faculty-participants span{display:block}.faculty-participants strong{font-size:.76rem}.faculty-participants span{margin-top:3px;color:var(--muted);font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.faculty-calendar-panel{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow)}.faculty-calendar-weekdays,.faculty-calendar-grid{min-width:900px;display:grid;grid-template-columns:repeat(7,1fr)}.faculty-calendar-weekdays{border-bottom:1px solid var(--line);background:#f5f0e9}.faculty-calendar-weekdays span{padding:11px;color:var(--muted);font-size:.68rem;font-weight:850}.faculty-calendar-day{min-height:130px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.faculty-calendar-day>strong{display:block;margin-bottom:7px;font-size:.75rem}.faculty-calendar-day.empty{background:#faf8f4}.faculty-calendar-day button{width:100%;margin-bottom:5px;padding:7px;border:0;border-left:3px solid var(--gold);border-radius:7px;background:var(--gold-pale);font-size:.68rem;text-align:left}.faculty-calendar-day button span,.faculty-calendar-day button small{display:block}.faculty-calendar-day button span{color:var(--gold-deep);font-weight:850}.faculty-calendar-day button small{margin-top:3px;color:var(--muted)}.faculty-participant-add{margin-bottom:12px;display:grid;grid-template-columns:1fr auto;gap:8px}.faculty-participant-add select{min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:white}.faculty-participant-list{max-height:55vh;overflow:auto;display:grid;gap:7px}.faculty-participant-list label{padding:10px;display:grid;grid-template-columns:auto 36px 1fr;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px}.faculty-participant-list strong,.faculty-participant-list small{display:block}.faculty-participant-list small{margin-top:2px;color:var(--muted);font-size:.7rem}.faculty-settlement-summary{margin-bottom:15px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:white}.faculty-settlement-summary>div{padding:18px 21px;border-right:1px solid var(--line)}.faculty-settlement-summary>div:last-child{border:0}.faculty-settlement-summary span,.faculty-settlement-summary strong{display:block}.faculty-settlement-summary span{color:var(--muted);font-size:.72rem}.faculty-settlement-summary strong{margin-top:5px;font:500 1.3rem Georgia,serif}.faculty-settlement-status{height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:white;font-size:.75rem}
.faculty-split-editor{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.68rem}.faculty-split-editor label{display:flex;align-items:center;gap:4px;font-weight:800}.faculty-split-editor input{width:54px;height:30px;padding:0 5px;text-align:center}.faculty-split-editor span{font-weight:800}
.lead-source-strip{margin-bottom:18px;padding:12px 15px;display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;background:white;box-shadow:var(--shadow)}.lead-source-strip>div{min-width:0;flex:1;display:flex;align-items:center;gap:10px}.lead-source-strip p,.lead-source-strip strong,.lead-source-strip small{display:block;margin:0}.lead-source-strip strong{font-size:.78rem}.lead-source-strip small{margin-top:3px;color:var(--muted);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.source-mark{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:10px;background:var(--sidebar);color:var(--gold);font-size:.66rem;font-weight:900}.calendly-mark{background:#006bff;color:white}.crm-mark{background:var(--gold);color:var(--sidebar)}.source-arrow{color:#b9afa3}.source-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.source-settings-grid section{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.source-settings-grid h3{margin:0 0 14px}.source-settings-grid label{margin-bottom:11px;display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:700}.source-settings-grid label input,.source-settings-grid label select{height:42px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink)}.integration-note{margin:10px 0 0;color:var(--muted);font-size:.7rem}.source-field-list{margin-top:13px;display:flex;flex-wrap:wrap;gap:6px}.source-field-list span{padding:6px 8px;border-radius:99px;background:var(--gold-pale);color:var(--gold-deep);font-size:.66rem;font-weight:800}
@media(max-width:760px){.lead-source-strip{align-items:stretch;flex-direction:column}.source-arrow{transform:rotate(90deg);align-self:center}.source-settings-grid{grid-template-columns:1fr}}
@media(max-width:760px){.faculty-view-toolbar{align-items:stretch;flex-direction:column}.faculty-view-toolbar .segmented{max-width:100%}.faculty-month-nav{justify-content:space-between}.faculty-settlement-summary{grid-template-columns:1fr}.faculty-settlement-summary>div{border-right:0;border-bottom:1px solid var(--line)}}

@media (max-width:920px){.import-layout{grid-template-columns:1fr}.account-kpis{grid-template-columns:repeat(2,1fr)}.account-kpis>div:nth-child(2){border-right:0}.account-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:430px){.account-kpis,.mapping-grid{grid-template-columns:1fr}.account-kpis>div{border-right:0;border-bottom:1px solid var(--line)}}
.admin-access-panel{margin-bottom:20px}.admin-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.admin-access-head h2{margin:4px 0;font:500 1.45rem Georgia,serif}.admin-access-head p{margin:0;color:var(--muted);font-size:.82rem}.admin-access-summary{min-width:88px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#faf7f1;text-align:center}.admin-access-summary strong,.admin-access-summary span{display:block}.admin-access-summary strong{font:500 1.6rem Georgia,serif}.admin-access-summary span{color:var(--muted);font-size:.7rem}.admin-list{display:grid;gap:9px}.admin-access-row{min-height:72px;padding:10px 12px;display:grid;grid-template-columns:40px minmax(170px,1fr) minmax(130px,.65fr) auto auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:13px;background:#fff}.admin-person strong,.admin-person small,.admin-role span,.admin-role small{display:block}.admin-person small,.admin-role small{margin-top:3px;color:var(--muted);font-size:.7rem}.admin-role span{font-size:.8rem;font-weight:700}.admin-actions{display:flex;align-items:center;gap:7px}.admin-delete{width:34px;height:34px;border:1px solid #ead0d3;border-radius:9px;background:#fff5f5;color:var(--rose);font-weight:800}.owner-lock{padding:7px 9px;border-radius:8px;background:var(--gold-pale);color:var(--gold-deep);font-size:.68rem;font-weight:800}.customization-note{margin-top:16px;padding:15px;display:flex;gap:12px;border:1px dashed #d5c29f;border-radius:13px;background:#fffaf0}.customization-note>span{color:var(--gold-deep);font-size:1.2rem}.customization-note strong{font-size:.82rem}.customization-note p{margin:3px 0 0;color:var(--muted);font-size:.75rem}.permission-fieldset{margin:20px 0 0;padding:18px;border:1px solid var(--line);border-radius:14px}.permission-fieldset legend{padding:0 7px;font-weight:800}.permission-fieldset>p{margin:0 0 12px;color:var(--muted);font-size:.78rem}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.permission-grid label{min-height:42px;padding:8px 10px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:#fff}.permission-grid span{font-size:.76rem;font-weight:650}
@media (max-width:900px){.admin-access-row{grid-template-columns:40px 1fr auto}.admin-role{grid-column:2}.admin-actions{grid-column:3;grid-row:1/3}.permission-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.admin-access-head{flex-direction:column}.admin-access-row{grid-template-columns:38px 1fr}.admin-role,.admin-access-row>.status-pill,.admin-actions{grid-column:2;grid-row:auto;justify-self:start}.permission-grid{grid-template-columns:1fr}}
@media (max-width:760px){.student-viewbar{grid-template-columns:1fr}.student-viewbar .inline-search{width:100%}.heading-actions{margin-top:14px;flex-wrap:wrap}.view-editor-grid,.editor-fields,.document-checklist,.student-custom-fields{grid-template-columns:1fr}.custom-field-row,.document-type-add{grid-template-columns:1fr}.custom-field-row button,.document-type-add button{min-height:40px}.view-editor-modal .modal-actions{align-items:stretch;flex-direction:column}.save-view-name{width:100%;display:grid}.save-view-name input{width:100%}.student-form-section-head{flex-direction:column}.student-finance-summary{grid-template-columns:1fr}.student-finance-summary>div{border-right:0;border-bottom:1px solid var(--line)}.student-finance-summary>div:last-child{border-bottom:0}.student-payment-head{display:none}}
.faculty-cost-panel .extra-row-main { min-width: 220px; }
#facultyTeacherExportFilter { min-height: 38px; margin-right: 8px; }
#roomRentalRevenueSummary { font-size: 1.7rem; font-weight: 800; color: #171411; line-height: 1.35; padding: 12px 0; }
#dashboardSharedCalendar, #leadCalendarPanel { margin-top: 18px; }
#dashboardSharedCalendar{overflow:hidden}#dashboardSharedCalendar [data-calendar-host]{overflow-x:auto;overflow-y:hidden;padding-bottom:8px}#dashboardSharedCalendar .week-calendar{min-width:980px}.calendar-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.calendar-toolbar button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 11px;color:var(--ink);cursor:pointer}.calendar-toolbar button.active,.calendar-toolbar button:hover{background:var(--gold-pale);border-color:var(--gold);color:var(--gold-deep)}.lead-calendar-title{font-weight:700;color:var(--muted);padding:8px 14px;text-transform:capitalize}.lead-month-grid{min-width:700px}.lead-event{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.faculty-cost-inline { grid-column: 2 / -1; display: grid; grid-template-columns: minmax(180px,1.4fr) 140px 170px minmax(150px,1fr) 130px; gap: 8px; align-items: center; padding: 10px 12px; border-top: 1px solid rgba(44,35,28,.12); background: rgba(197,154,76,.08); border-radius: 10px; }
.faculty-cost-inline strong { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.faculty-cost-inline label { font-size: .8rem; display:flex; gap:6px; align-items:center; }
@media (max-width: 900px) { .faculty-cost-inline { grid-template-columns: 1fr 1fr; } }
.nav-item { grid-template-columns: 1fr auto; font-size: .92rem; }
.row-edit-lead{margin-left:6px;border:1px solid var(--gold);border-radius:7px;padding:6px 9px;background:#fff;color:var(--gold-deep);font-weight:700;cursor:pointer}.row-edit-lead:hover{background:var(--gold-pale)}
.nav-item .nav-icon { display: none; }
.admin-nav-item { border: 0; background: transparent; }
input[type="checkbox"]{width:22px;height:22px;min-width:22px;accent-color:var(--gold-deep);cursor:pointer}
[data-kpi-view]{cursor:pointer;transition:transform .15s,box-shadow .15s}[data-kpi-view]:hover,[data-kpi-view]:focus{transform:translateY(-2px);box-shadow:0 12px 28px rgba(48,34,20,.16);outline:2px solid rgba(197,154,76,.35)}
.rental-revenue-month,.rental-revenue-amount,.rental-revenue-vat{display:block}.rental-revenue-month{font-size:.78rem;color:var(--muted);text-transform:capitalize}.rental-revenue-amount{margin-top:8px;font-size:2.1rem;line-height:1.1}.rental-revenue-vat{margin-top:5px;font-size:.75rem;color:var(--muted)}
.exam-calendar-panel{margin-top:16px}.exam-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;overflow:auto;border:1px solid var(--line);background:var(--line)}.exam-calendar-day{min-height:120px;padding:9px;background:#fff}.exam-calendar-day.empty{background:#faf8f4}.exam-calendar-day>strong{display:block;margin-bottom:8px;font-size:.75rem}.exam-calendar-day button{width:100%;margin-bottom:5px;padding:7px;border:0;border-left:3px solid var(--rose);border-radius:7px;background:var(--rose-pale);text-align:left;cursor:pointer}.exam-calendar-day button b,.exam-calendar-day button small{display:block}.exam-calendar-day button b{font-size:.65rem}.exam-calendar-day button small{margin-top:3px;color:var(--muted);font-size:.6rem}.exam-calendar-empty{color:var(--muted);font-size:.68rem}.curriculum-group-panel{margin-bottom:15px}.curriculum-rows{display:grid;gap:8px}.curriculum-row{display:grid;grid-template-columns:145px minmax(180px,1fr) 180px minmax(220px,1.4fr);align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.curriculum-row input{height:36px;padding:0 8px;border:1px solid var(--line);border-radius:7px}.field-help{display:block;margin-top:4px;color:var(--muted);font-size:.65rem;font-weight:400}.classForm select[multiple]{min-height:100px;padding:6px}.kpi-card:focus{outline-offset:3px}@media(max-width:850px){.exam-calendar{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:850px}.curriculum-row{grid-template-columns:1fr 1fr}.curriculum-row span{grid-column:1/-1}}
/* BBS website-inspired blue accent, while preserving the original CRM layout. */
:root { --gold: #6e8ea8; --gold-deep: #4f718c; --gold-pale: #e7eef3; --rose: #9b6d78; --rose-pale: #f3e6e9; }
.faculty-participant-row{grid-template-columns:auto 36px 1fr auto!important}.faculty-participant-row .danger-button{margin-left:auto;white-space:nowrap}
.faculty-external-add{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#faf8f4}.faculty-external-add h3{margin:0 0 12px;font:500 1rem Georgia,serif}.faculty-external-add .secondary-button{width:100%}.faculty-participant-list .external-participant{background:#fffaf0}.faculty-participant-list .external-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:99px;background:var(--gold-pale);color:var(--gold-deep);font-size:.62rem;font-weight:850}
.group-card-actions{display:flex;gap:5px}.group-card-actions button{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-weight:800}.group-card-actions button:hover{border-color:var(--gold);color:var(--gold-deep)}
button.month-event{display:block;width:100%;margin-bottom:5px;padding:6px 7px;border:0;border-left:3px solid var(--gold);border-radius:6px;background:var(--gold-pale);text-align:left;color:inherit;cursor:pointer;font:inherit}button.month-event:hover{filter:brightness(.97);box-shadow:0 2px 8px rgba(60,40,80,.12)}
body.portal-mode .main-content{max-width:none}
#leadCalendarPanel{overflow:hidden}#leadCalendarPanel [data-calendar-host]{overflow-x:auto;min-height:280px}#leadCalendarPanel .week-calendar{min-width:980px}#leadCalendarPanel [data-lead-calendar]{cursor:pointer}#leadCalendarPanel [data-lead-calendar]:hover{box-shadow:0 3px 12px rgba(40,30,20,.16);transform:translateY(-1px)}
#detailSheet .lead-workflow-fields{display:grid;gap:12px}#detailSheet .lead-workflow-fields label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#766f67}#detailSheet .lead-workflow-fields input,#detailSheet .lead-workflow-fields textarea{width:100%;box-sizing:border-box;border:1px solid #ddd5cc;border-radius:10px;padding:10px 12px;font:inherit;color:#3f3844;background:#fff}#detailSheet .lead-workflow-fields textarea{resize:vertical;min-height:72px}#saveLeadWorkflow{border:0;border-radius:8px;padding:8px 12px;background:#6d3fa5;color:#fff;font-weight:700;cursor:pointer}
#detailSheet .detail-name-input,#detailSheet .detail-data input,#detailSheet .detail-data select{border:1px solid #ddd5cc;border-radius:8px;padding:7px 9px;font:inherit;color:var(--ink);background:#fff;width:100%;box-sizing:border-box}.detail-name-input{font-size:1.2rem;font-weight:800;margin-bottom:7px}
.curriculum-view-note{display:block;margin-bottom:12px;color:var(--muted);font-size:.75rem}
.curriculum-four-grid{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px;overflow-x:auto;padding-bottom:6px}
.curriculum-group-column{min-width:240px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}
.curriculum-group-column h3{margin:0 0 10px;font-size:1rem;color:var(--ink)}
.curriculum-group-column .secondary-button{margin-bottom:10px}
.curriculum-group-column .curriculum-row{grid-template-columns:1fr;gap:7px;margin-bottom:9px;padding:9px;background:#fcfaf7}
.curriculum-group-column .curriculum-row strong{font-size:.78rem}
.curriculum-group-column .curriculum-row span{font-size:.7rem;color:var(--muted)}
.curriculum-group-column .curriculum-row input{width:100%;box-sizing:border-box}
.empty-editor-note{color:var(--muted);font-size:.75rem;font-style:italic}
@media(max-width:1100px){.curriculum-four-grid{grid-template-columns:repeat(4,minmax(210px,1fr))}}
.curriculum-month-column{padding:12px}.curriculum-column-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.curriculum-column-head h3{margin:0}.curriculum-month-block{margin-bottom:10px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.curriculum-month-block h4{margin:0;padding:8px 10px;background:var(--gold-pale);font-size:.82rem}.curriculum-month-entry{display:grid;gap:6px;padding:9px;border-top:1px solid var(--line)}.curriculum-entry-title{font-weight:700}.curriculum-month-entry textarea{min-height:52px;resize:vertical;padding:7px;border:1px solid var(--line);border-radius:7px;font:inherit;font-size:.72rem}.curriculum-month-entry label{display:grid;gap:3px;color:var(--muted);font-size:.64rem}.curriculum-month-entry label input{height:30px}.curriculum-start-month{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:5px;color:var(--muted);font-size:.67rem}.curriculum-start-month select{height:30px;min-width:96px;max-width:125px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:.7rem;color:var(--ink)}.curriculum-start-month button{flex:0 0 auto;white-space:nowrap}

/* Audit corrections: visibility, editable fields and clear save state. */
[hidden]{display:none!important}.auth-pending .app-shell{visibility:hidden}.connection-notice,.local-save-notice{padding:12px 16px;border:1px solid #d8bd85;border-radius:10px;background:#fff7e7;color:#69502b;font-size:.8rem;line-height:1.5}.local-save-notice{margin:0 0 20px}.calendar-toolbar{display:flex;flex-wrap:wrap;gap:5px}.calendar-toolbar button{border:1px solid var(--line);background:var(--paper);border-radius:7px;padding:6px 10px;cursor:pointer}.curriculum-four-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.curriculum-month-block h4{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.curriculum-month-block h4 button{white-space:normal;max-width:100%}.curriculum-entry-title,.curriculum-month-entry input{width:100%;min-width:0}.week-class-card{min-width:0;overflow-wrap:anywhere}.topbar-actions{flex-wrap:wrap}@media(max-width:1100px){.curriculum-four-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.curriculum-four-grid{grid-template-columns:minmax(0,1fr)}}

.server-save-status{font-size:12px;color:#3360a3;max-width:230px}.server-save-status.save-error{color:#a13636}.sidebar-foot>.secondary-button{margin-top:8px;font-size:12px}#credentialsModal pre{background:#f6f2eb;padding:16px;border-radius:12px}#passwordChangeModal label{display:grid;gap:6px;margin:12px 0}

/* Server backups and audit log. */
.security-summary{margin-bottom:18px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.security-summary>div{padding:18px 21px;border-right:1px solid var(--line)}.security-summary>div:last-child{border-right:0}.security-summary span,.security-summary strong,.security-summary small{display:block}.security-summary span{color:var(--muted);font-size:.72rem}.security-summary strong{margin:6px 0 3px;font:500 1.25rem Georgia,serif}.security-summary small,.security-help{color:var(--muted);font-size:.7rem;line-height:1.5}.security-panel{margin-bottom:18px}.security-panel table{min-width:880px}.security-panel td{vertical-align:middle}.security-actions{display:flex;justify-content:flex-end;gap:6px;white-space:nowrap}.security-filterbar{margin-bottom:14px;display:grid;grid-template-columns:minmax(220px,1fr) 180px minmax(220px,.7fr) auto;align-items:end;gap:10px}.security-filterbar h2{margin:3px 0 0;font:500 1.35rem Georgia,serif}.security-filterbar label{display:grid;gap:5px;color:var(--muted);font-size:.7rem;font-weight:750}.security-filterbar input,.security-filterbar select{height:39px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}.backup-type{display:inline-flex;padding:5px 8px;border-radius:99px;background:var(--gold-pale);color:var(--gold-deep);font-size:.65rem;font-weight:850}.backup-type.manual{background:#e4eaf4;color:#244474}.backup-type.restore_safety{background:#fff1dc;color:#8a5b17}.audit-action{font-weight:800}.security-sensitive-note{color:#8a5b17}.restore-backup{border-color:#d6a7aa;color:#8b333b}@media(max-width:820px){.security-summary{grid-template-columns:1fr}.security-summary>div{border-right:0;border-bottom:1px solid var(--line)}.security-summary>div:last-child{border-bottom:0}.security-filterbar{grid-template-columns:1fr}.security-filterbar button{width:100%}}

/* Protected student document uploads. */
.document-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.document-upload-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:10px;min-width:0}.document-upload-card.received{border-color:#b7c7de;background:#fcfdfe}.document-upload-card.missing{border-color:#ead7cf}.document-upload-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.document-upload-head>strong{font-size:14px;line-height:1.3}.document-state{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:5px 8px;white-space:nowrap}.document-state.ok{background:#e6ecf5;color:#203c65}.document-state.missing{background:#fff0eb;color:#98462e}.document-file-list{display:flex;flex-direction:column;gap:8px}.document-file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:12px;background:var(--soft);min-width:0}.document-file-row>div:first-child{min-width:0}.document-file-row strong,.document-file-row small{display:block;overflow-wrap:anywhere}.document-file-row strong{font-size:13px}.document-file-row small,.document-empty,.document-save-first{font-size:11px;color:var(--muted)}.document-upload-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px dashed var(--gold);border-radius:11px;color:var(--gold-dark);font-size:13px;font-weight:750;cursor:pointer;background:#fffaf2;overflow:hidden}.document-upload-button:hover{background:#fff4de}.document-upload-button.disabled{opacity:.5;cursor:not-allowed}.document-upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:auto;cursor:pointer}.documents-loading{opacity:.65;pointer-events:none}.student-portal-documents{margin:22px 0}.student-portal-documents>h2{margin-bottom:6px}.student-portal-documents .document-upload-grid{margin-top:14px}@media(max-width:760px){.document-upload-grid{grid-template-columns:1fr}.document-file-row{align-items:flex-start;flex-direction:column}.document-file-row .row-actions{width:100%}.document-file-row .row-actions button{flex:1}}
.lead-history-list{display:grid;gap:12px;margin-top:12px}.lead-history-item{position:relative;display:grid;grid-template-columns:14px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line,#e8e1d6)}.lead-history-item:last-child{border-bottom:0}.lead-history-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--gold,#a77b42);box-shadow:0 0 0 4px rgba(167,123,66,.12)}.lead-history-item strong{display:block;font-size:14px}.lead-history-item p{margin:5px 0;color:var(--ink-soft,#615d55);font-size:13px;line-height:1.45;white-space:pre-wrap}.lead-history-item small{display:block;margin-top:5px;color:var(--muted,#8b857b);font-size:11px}.history-central-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#edf1f7;color:#284a7d;font-size:11px;font-weight:700}
.bank-import-preview{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.bank-import-summary{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.bank-import-summary strong,.bank-import-summary span{font-size:12px}.bank-import-summary span{color:var(--muted)}.bank-import-rows{display:grid;gap:8px;max-height:360px;overflow:auto;margin-bottom:12px}.bank-import-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.8fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.bank-import-row strong,.bank-import-row small{display:block}.bank-import-row strong{font-size:13px}.bank-import-row small,.bank-import-row p{margin:3px 0 0;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.bank-import-row select{width:100%;min-width:0}@media(max-width:760px){.bank-import-summary{display:grid}.bank-import-row{grid-template-columns:1fr}}
.bank-import-row .bank-import-error{color:#b42318;font-weight:600;font-size:12px;line-height:1.4}
/* Workspace and Wiki */
.workspace-toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:16px}.workspace-toolbar label{display:grid;gap:6px;min-width:220px;color:var(--muted);font-size:.72rem;font-weight:750}.workspace-toolbar input,.workspace-toolbar select{min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:white}.workspace-count{margin-left:auto;color:var(--gold-deep);font-weight:800;font-size:.78rem}.workspace-table-head,.workspace-task-row{display:grid;grid-template-columns:82px minmax(280px,2.2fr) minmax(130px,1fr) minmax(150px,1fr) 130px 112px 125px 150px;gap:12px;align-items:center}.workspace-table-head{padding:0 16px 10px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.workspace-task-row{padding:14px 16px;border-top:1px solid var(--line);font-size:.78rem}.workspace-task-row.is-complete{opacity:.62}.workspace-task-row.is-complete .workspace-inline-title{text-decoration:line-through}.workspace-inline-flags{display:flex;align-items:center;gap:8px;min-width:0}.workspace-check input{position:absolute;opacity:0}.workspace-check span{display:block;width:19px;height:19px;border:1px solid #b9aa94;border-radius:5px;background:white;cursor:pointer}.workspace-check input:checked+span{background:var(--gold-deep);box-shadow:inset 0 0 0 4px white}.workspace-checkable-toggle{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.64rem;line-height:1.1;cursor:pointer}.workspace-checkable-toggle input{accent-color:var(--gold-deep);margin:0}.workspace-inline-input,.workspace-inline-textarea,.workspace-inline-select{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;padding:8px 9px;transition:border-color .15s,box-shadow .15s}.workspace-inline-input:focus,.workspace-inline-textarea:focus,.workspace-inline-select:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(183,142,82,.14)}.workspace-inline-title{font-weight:800}.workspace-inline-textarea{display:block;min-height:56px;margin-top:6px;resize:vertical;line-height:1.35}.workspace-inline-date{font-variant-numeric:tabular-nums}.workspace-inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.workspace-inline-save-state{min-width:48px;color:var(--muted);font-size:.64rem;opacity:.75;transition:color .2s,opacity .2s}.workspace-inline-save-state.saved{color:#284a7d;opacity:1}.wiki-article-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wiki-article-card{display:flex;justify-content:space-between;gap:18px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow)}.wiki-article-card h3{margin:6px 0 8px;font:500 1.25rem Georgia,serif}.wiki-article-card p{max-width:70ch;margin:0;color:var(--muted);font-size:.8rem;line-height:1.55}.wiki-article-card small{display:block;margin-top:14px;color:var(--muted);font-size:.68rem}.wiki-category{color:var(--gold-deep);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.wiki-article-card .row-actions{align-self:flex-start;display:flex;gap:6px;flex-shrink:0}@media(max-width:1050px){.workspace-table-head{display:none}.workspace-task-row{grid-template-columns:48px minmax(0,1fr) auto;gap:8px}.workspace-task-row>*:nth-child(n+3):not(.workspace-inline-actions){grid-column:2}.workspace-task-row>.workspace-inline-actions{grid-column:3;grid-row:1 / span 8;flex-direction:column;align-items:flex-end}.workspace-inline-flags{align-self:start;flex-direction:column;align-items:flex-start}.workspace-inline-textarea{min-height:48px}.wiki-article-list{grid-template-columns:1fr}}@media(max-width:650px){.workspace-toolbar label{min-width:100%;}.workspace-count{margin-left:0}.workspace-task-row{grid-template-columns:1fr auto}.workspace-task-row>.workspace-inline-flags{grid-column:1}.workspace-task-row>.workspace-inline-actions{grid-column:2;grid-row:1 / span 8}.workspace-task-main{grid-column:1 / -1!important}.wiki-article-card{display:block}.wiki-article-card .row-actions{margin-top:16px}}

/* Workspace live editor: compact card layout keeps the inline controls aligned. */
.workspace-table-head{display:none}.workspace-task-row{display:block;min-width:0;padding:16px 18px;border-top:1px solid var(--line);font-size:.78rem}.workspace-task-top{display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:12px}.workspace-task-top .workspace-inline-title{min-width:0}.workspace-task-row .workspace-inline-textarea{margin-top:10px}.workspace-task-fields{display:grid;grid-template-columns:1.1fr 1.2fr 1fr .9fr 1fr;gap:10px;margin-top:12px}.workspace-task-fields label{display:grid;gap:5px;color:var(--muted);font-size:.66rem;font-weight:800}.workspace-task-fields .workspace-inline-input,.workspace-task-fields .workspace-inline-select{min-height:36px;padding:7px 8px;font-size:.76rem}.workspace-inline-actions{white-space:nowrap}.workspace-inline-actions .danger-button{min-height:34px}.workspace-inline-save-state{display:inline-block;text-align:right}.workspace-inline-flags{justify-content:flex-start}.workspace-checkable-toggle{white-space:nowrap}.workspace-check span{width:20px;height:20px}.workspace-board{overflow:hidden}@media(max-width:900px){.workspace-task-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.workspace-task-row{padding:14px}.workspace-task-top{grid-template-columns:1fr auto;align-items:start}.workspace-task-top .workspace-inline-flags{grid-column:1 / -1}.workspace-task-top .workspace-inline-title{grid-column:1}.workspace-inline-actions{grid-column:2;grid-row:2;flex-direction:column;align-items:flex-end;gap:5px}.workspace-inline-save-state{font-size:.6rem}.workspace-task-fields{grid-template-columns:1fr 1fr;gap:8px}.workspace-task-fields label:first-child{grid-column:1 / -1}}

/* Wiki category navigation */
.wiki-category-panel{padding:14px 16px;margin-bottom:14px;overflow-x:auto}.wiki-category-panel>div{display:flex;align-items:stretch;gap:7px;min-width:max-content}.wiki-category-node{display:flex;align-items:center;gap:7px}.wiki-category-node>.wiki-category-node{margin-left:0}.wiki-category-line{display:flex;align-items:center;gap:5px}.wiki-category-link{display:inline-flex;align-items:center;gap:9px;min-height:38px;padding:8px 12px 8px calc(12px + (var(--wiki-depth,0) * 17px));border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:.76rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s}.wiki-category-link:hover{border-color:var(--gold);background:#fffaf2;transform:translateY(-1px)}.wiki-category-link.active{border-color:var(--gold-deep);background:var(--gold-deep);color:#fff}.wiki-category-link small{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:rgba(0,0,0,.06);font-size:.64rem}.wiki-category-link.active small{background:rgba(255,255,255,.2)}.wiki-category-add{width:27px;height:27px;padding:0;border:1px dashed var(--gold);border-radius:8px;background:#fffaf2;color:var(--gold-deep);font-size:1rem;line-height:1;cursor:pointer}.wiki-category-add:hover{background:var(--gold-deep);color:#fff}.wiki-category-node>.wiki-category-node{display:none}.wiki-category-node{position:relative}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node{display:block;position:absolute;top:calc(100% + 7px);left:calc(var(--wiki-depth,0) * 17px);z-index:5;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node .wiki-category-node{display:block}.wiki-toolbar{margin-bottom:16px}.wiki-category-select-wrap{display:none!important}@media(max-width:760px){.wiki-category-panel>div{align-items:flex-start}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node{position:static}.wiki-category-node{flex-wrap:wrap}.wiki-category-node>.wiki-category-node{width:100%;margin-left:17px}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node{display:block}}
.wiki-category-panel{position:sticky;top:12px;z-index:5;background:var(--surface,#fff)}.wiki-category-panel>div{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px;min-width:0}.wiki-category-node{position:static;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.wiki-category-node>.wiki-category-node,.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node,.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node .wiki-category-node{display:flex;position:static;top:auto;left:auto;z-index:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;margin-left:17px}.wiki-category-node>.wiki-category-node{width:auto}.wiki-category-link{max-width:260px}.wiki-category-line{flex-shrink:0}
.wiki-category-actions{display:inline-flex;align-items:center;gap:3px}.wiki-category-edit,.wiki-category-delete{width:25px;height:27px;padding:0;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);font-size:.78rem;line-height:1;cursor:pointer}.wiki-category-edit:hover{border-color:var(--gold);background:#fffaf2;color:var(--gold-deep)}.wiki-category-delete{color:#9a4937}.wiki-category-delete:hover{border-color:#c77b67;background:#fff1ed;color:#8c2f1e}
.wiki-article-card{cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.wiki-article-card:hover,.wiki-article-card:focus-visible{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 14px 30px rgba(77,59,31,.12);outline:0}.wiki-article-card .row-actions{cursor:default}.wiki-reader-modal{max-width:820px}.wiki-reader-content{max-height:58vh;overflow:auto;padding:20px 2px;color:var(--ink);font-size:.92rem;line-height:1.75;white-space:pre-wrap}.wiki-reader-meta{padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.7rem}

/* Alkategóriák csak a szülőkategória megnyitása után látszanak. */
.wiki-category-node>.wiki-category-node{display:none!important}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active){align-items:flex-start}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node{display:flex!important;flex-basis:100%;position:static;top:auto;left:auto;z-index:auto;margin:2px 0 0 17px;padding:0;border:0;background:transparent;box-shadow:none}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node>.wiki-category-node{display:none!important}.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node:has(> .wiki-category-line .wiki-category-link.active)>.wiki-category-node{display:flex!important}

/* Workspace simple list rows */
.workspace-simple-row{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(150px,220px);align-items:center;gap:14px;min-height:58px;padding:11px 16px;border-top:1px solid var(--line);cursor:pointer;transition:background .15s,opacity .15s}.workspace-simple-row:first-child{border-top:0}.workspace-simple-row:hover,.workspace-simple-row:focus-visible{background:#fffaf2;outline:0}.workspace-simple-row.is-complete{opacity:.58}.workspace-simple-row.is-complete .workspace-row-main strong{text-decoration:line-through}.workspace-row-check{display:flex;align-items:center;justify-content:center;cursor:pointer}.workspace-row-check input{position:absolute;opacity:0;pointer-events:none}.workspace-row-check span{display:block;width:20px;height:20px;border:1px solid #b9aa94;border-radius:6px;background:#fff;box-shadow:0 1px 2px rgba(46,37,24,.06)}.workspace-row-check input:checked+span{background:var(--gold-deep);box-shadow:inset 0 0 0 4px #fff}.workspace-row-main{display:flex;align-items:center;gap:10px;min-width:0}.workspace-row-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.workspace-row-main small{display:none}.workspace-row-assignee{justify-self:end;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.74rem;font-weight:700}.workspace-row-assignee::before{content:'Felelős: ';color:var(--gold-deep);font-weight:800}@media(max-width:650px){.workspace-simple-row{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:11px 12px}.workspace-row-assignee{grid-column:2;justify-self:start;margin-top:-6px;font-size:.68rem}.workspace-row-main{grid-column:2}.workspace-row-assignee::before{content:'Felelős: '}}
/* Confluence-szerű BBS-SPACE tartalomfa és részletező nézet. */
.workspace-legacy-controls{display:none!important}.workspace-shell{display:grid;grid-template-columns:286px minmax(0,1fr);min-height:620px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;box-shadow:var(--shadow)}.workspace-content-sidebar{background:#fbfaf7;border-right:1px solid var(--line);padding:18px 12px;min-width:0}.workspace-space-head,.workspace-sidebar-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.workspace-space-head{padding:0 8px 18px;color:var(--ink);font-size:1rem}.workspace-sidebar-title{padding:12px 8px 9px;font-size:.86rem;font-weight:850;color:var(--ink)}.workspace-sidebar-title>div{display:flex;gap:3px}.workspace-icon-button{width:28px;height:28px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;line-height:1;cursor:pointer}.workspace-icon-button:hover{background:#eee9df;color:var(--ink)}.workspace-title-search{display:block;padding:0 5px 13px}.workspace-title-search input{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:.75rem}.workspace-title-search input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(183,142,82,.13)}.workspace-content-tree{display:grid;gap:2px;max-height:510px;overflow:auto;padding-right:2px}.workspace-tree-line{display:flex;align-items:center;gap:2px;min-height:35px;padding-left:calc(var(--workspace-depth,0) * 17px)}.workspace-tree-toggle{flex:0 0 21px;width:21px;height:25px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:1.08rem;line-height:1;cursor:pointer}.workspace-tree-toggle:hover{background:#ece8df;color:var(--ink)}.workspace-tree-toggle.is-empty{cursor:default}.workspace-tree-link{display:flex;align-items:center;gap:7px;min-width:0;flex:1;padding:7px 6px;border:0;border-radius:7px;background:transparent;color:#4f5158;text-align:left;font:inherit;font-size:.78rem;font-weight:750;cursor:pointer}.workspace-tree-link:hover,.workspace-tree-link.active{background:#e9edf7;color:#275db2}.workspace-tree-page-icon{color:#777d88;font-size:.86rem}.workspace-tree-actions{display:flex;gap:1px;opacity:0;transition:opacity .15s}.workspace-tree-line:hover .workspace-tree-actions,.workspace-tree-link.active+.workspace-tree-actions{opacity:1}.workspace-tree-actions button{width:22px;height:24px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:.76rem;cursor:pointer}.workspace-tree-actions button:hover{background:#eee8dc;color:var(--ink)}.workspace-tree-actions button:last-child:hover{background:#fff0ed;color:#9a4937}.workspace-tree-children{display:grid;gap:1px}.workspace-tree-task{display:flex;align-items:center;gap:3px;min-height:31px;padding-left:calc(21px + (var(--workspace-depth,1) * 17px));border-radius:7px}.workspace-tree-task:hover,.workspace-tree-task.active{background:#f0f2f8}.workspace-tree-check{display:flex;align-items:center;justify-content:center;width:24px;cursor:pointer}.workspace-tree-check input{position:absolute;opacity:0}.workspace-tree-check span{display:block;width:14px;height:14px;border:1px solid #aaa79f;border-radius:3px;background:#fff}.workspace-tree-check input:checked+span{background:#3478d6;box-shadow:inset 0 0 0 3px #fff}.workspace-tree-task-link{min-width:0;flex:1;padding:6px 5px;border:0;background:transparent;color:#5e6067;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-size:.74rem;cursor:pointer}.workspace-tree-task.active .workspace-tree-task-link{color:#275db2;font-weight:800}.workspace-tree-empty{margin:13px 8px;color:var(--muted);font-size:.74rem;line-height:1.45}.workspace-content-pane{min-width:0;background:#fff}.workspace-content-view{min-height:620px;padding:34px 42px}.workspace-content-page{max-width:900px;margin:0 auto}.workspace-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:26px;color:var(--muted);font-size:.7rem}.workspace-breadcrumb button{padding:0;border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.workspace-breadcrumb button:hover{color:var(--gold-deep);text-decoration:underline}.workspace-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding-bottom:23px;border-bottom:1px solid var(--line)}.workspace-page-header h2{margin:3px 0 7px;font:500 2rem Georgia,serif;color:var(--ink)}.workspace-page-subtitle{margin:0;color:var(--muted);font-size:.78rem}.workspace-page-body{padding:25px 2px;color:var(--ink);font-size:.9rem;line-height:1.65}.workspace-page-body>p{white-space:pre-wrap}.workspace-detail-check{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;color:var(--muted);font-size:.8rem;cursor:pointer}.workspace-detail-check input{position:absolute;opacity:0}.workspace-detail-check span{display:block;width:20px;height:20px;border:1px solid #aaa79f;border-radius:5px;background:#fff}.workspace-detail-check input:checked+span{background:#3478d6;box-shadow:inset 0 0 0 4px #fff}.workspace-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.workspace-detail-grid dt{margin-bottom:4px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.workspace-detail-grid dd{margin:0;font-size:.8rem;font-weight:750}.workspace-task-content-list{display:grid;gap:0;margin-top:28px;border-top:1px solid var(--line)}.workspace-content-task{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(130px,200px);align-items:center;gap:10px;min-height:54px;padding:8px 2px;border-bottom:1px solid var(--line)}.workspace-content-task.is-complete{opacity:.57}.workspace-content-task.is-complete .workspace-content-task-title{text-decoration:line-through}.workspace-content-task-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 0;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;font-size:.84rem;font-weight:750;cursor:pointer}.workspace-content-task-title:hover{color:#275db2}.workspace-content-task>span{justify-self:end;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.72rem}.workspace-content-empty{max-width:600px;margin:100px auto;text-align:center;color:var(--muted)}.workspace-content-empty h2{margin-bottom:8px;color:var(--ink);font:500 1.65rem Georgia,serif}@media(max-width:900px){.workspace-shell{grid-template-columns:240px minmax(0,1fr)}.workspace-content-view{padding:26px 24px}.workspace-detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.workspace-shell{display:block}.workspace-content-sidebar{border-right:0;border-bottom:1px solid var(--line)}.workspace-content-tree{max-height:260px}.workspace-content-view{min-height:480px;padding:24px 16px}.workspace-page-header{display:block}.workspace-page-header button{margin-top:16px}.workspace-content-task{grid-template-columns:30px minmax(0,1fr)}.workspace-content-task>span{grid-column:2;justify-self:start;margin-top:-7px}.workspace-detail-grid{grid-template-columns:1fr}.workspace-page-header h2{font-size:1.65rem}}
.workspace-page-editor{margin:24px 0 28px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfaf7}.workspace-page-editor label{display:grid;gap:8px;color:var(--muted);font-size:.72rem;font-weight:800}.workspace-page-editor textarea{width:100%;min-height:120px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:.82rem;line-height:1.5;resize:vertical}.workspace-page-editor textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(183,142,82,.13)}.workspace-page-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}.workspace-page-editor-actions small{color:var(--muted);font-size:.68rem}@media(max-width:600px){.workspace-page-editor-actions{align-items:flex-start;flex-direction:column}.workspace-page-editor-actions button{width:100%}}
.workspace-delete-task{margin-right:auto}
@media(max-width:700px){
  .finance-integration-card{padding:14px}.integration-section-head h2{font-size:1.15rem}.integration-security{align-self:flex-start}
  .calendar-toolbar{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.calendar-toolbar button{flex:0 0 auto}
  .modal{max-height:calc(100vh - 24px);overflow-y:auto}.modal-actions{flex-wrap:wrap}.modal-actions>*{min-width:0}
  .topbar{gap:8px}.topbar-actions{width:100%;justify-content:flex-start}.topbar-actions button{flex:1 1 auto}
  .workspace-content-sidebar{padding:14px 10px}.workspace-space-head{padding-bottom:12px}.workspace-content-tree{max-height:230px}
}

.szamlazz-logo{background:#e7f1fb;color:#17639d;font-size:.72rem}.bank-transaction{padding:12px 0;border-top:1px solid var(--line)}.bank-transaction:first-child{margin-top:14px}.bank-transaction p{margin:5px 0;color:var(--muted);font-size:.73rem}.bank-transaction-controls{display:grid;grid-template-columns:minmax(150px,1fr) 90px auto;gap:8px;align-items:center}.bank-transaction-controls button{min-height:41px}.bank-transaction .bank-import-error{color:var(--rose)}@media(max-width:600px){.bank-transaction-controls{grid-template-columns:1fr}.bank-transaction-controls button{width:100%}}

.invoice-section-heading{margin:20px 0 4px;font-size:.86rem}.invoice-row{border-top:1px solid var(--line);padding:10px 0}.invoice-row:first-child{margin-top:10px}.invoice-row strong,.invoice-row small{display:block}.invoice-row small{color:var(--muted);font-size:.72rem;margin-top:4px;line-height:1.5}.invoice-row .invoice-linked{color:var(--gold-deep);font-weight:700}
/* Guided invitations, onboarding and the revised curriculum layout. */
.profile-pending .app-shell{visibility:hidden}
#studentOnboardingModal .modal{max-height:min(90vh,900px);overflow:auto;max-width:750px}
#studentOnboardingModal .modal-intro{line-height:1.5}
.invite-state{min-height:1.2rem;line-height:1.5;font-size:.8rem;color:var(--muted)}
#studentOnboardingError:not(:empty){color:#a43830;background:#fff2ee;padding:10px 12px;border-radius:8px}
.month-day[data-calendar-date]{cursor:pointer;transition:background .16s ease}
.month-day[data-calendar-date]:hover,.month-day[data-calendar-date]:focus-visible{background:#fcf6ec;outline:2px solid var(--gold);outline-offset:-2px}
#curriculumGroupTabs{display:flex;flex-wrap:wrap;gap:8px;background:transparent;border:0}
#curriculumGroupTabs button{flex:0 1 auto;min-height:38px;padding:8px 16px;border:1px solid var(--line);border-radius:30px;background:#fff;color:var(--ink);font-weight:700}
#curriculumGroupTabs button.active{background:var(--ink);border-color:var(--ink);color:#fff}
#curriculum .curriculum-month-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,calc((100% - 36px)/3));align-items:start;gap:18px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 4px 16px}
#curriculum .curriculum-month-column{display:flex;flex-direction:column;gap:12px;min-width:0;padding:0;border:0;box-shadow:none;scroll-snap-align:start}
#curriculum .curriculum-column-head{position:sticky;top:0;z-index:1;padding:18px 16px;margin:0;border:1px solid var(--line);border-radius:14px;background:linear-gradient(115deg,#faf5ec,#fff)}
#curriculum .curriculum-column-head h3{font-size:1.35rem;margin:0 0 8px}
#curriculum .curriculum-start-month{font-size:.8rem;gap:10px}
#curriculum .curriculum-month-block{margin:0;border-radius:12px;min-width:0;box-shadow:0 3px 13px #3d302008}
#curriculum .curriculum-month-block h4{min-height:56px;display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f8f3e9;font-size:.88rem}
#curriculum .curriculum-month-block h4 button{margin:0}
#curriculum .curriculum-month-entry{padding:14px;gap:10px}
#curriculum .curriculum-month-entry input,#curriculum .curriculum-month-entry textarea{box-sizing:border-box;min-width:0;width:100%;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;font:inherit}
#curriculum .curriculum-month-entry label{font-size:.73rem}
#curriculum .curriculum-month-block .empty-editor-note{padding:0 14px;color:var(--muted)}
@media(max-width:1100px){#curriculum .curriculum-month-grid{grid-auto-columns:minmax(280px,calc((100% - 18px)/2))}}
@media(max-width:700px){#curriculum .curriculum-month-grid{grid-auto-columns:minmax(280px,90%)}#curriculum .curriculum-column-head{padding:14px}}
/* Installable BBS app controls, kept within the personal profile. */
.profile-app-install{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:18px;padding:22px 26px;background:linear-gradient(120deg,#fff,#f8f1e7)}
.profile-app-install h2{margin:5px 0 7px;font-size:1.13rem}
.profile-app-install p:last-child{max-width:640px;margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}
.profile-app-install button{flex:0 0 auto;white-space:nowrap}
.install-guide p{margin:13px 0;line-height:1.6;color:var(--ink);font-size:.83rem}
@media(max-width:700px){.profile-app-install{align-items:flex-start;flex-direction:column;padding:18px}.profile-app-install button{width:100%}}

.login-modal label.remember-admin-login{display:flex;align-items:flex-start;gap:10px;line-height:1.5;font-weight:500}.login-modal .remember-admin-login input[type="checkbox"]{width:20px;height:20px;min-width:20px;margin:0;flex:0 0 20px;padding:0;accent-color:var(--gold-deep)}

/* V100: browser-specific installation instructions. */
.install-browser-help{margin-top:14px;max-width:760px}.install-browser-help summary{cursor:pointer;color:#205b91;font-weight:600;font-size:.85rem}.install-guide section{margin:18px 0}.install-guide h3{font-size:.95rem;margin:0 0 8px}.install-guide ol{padding-left:22px;margin:8px 0}.install-guide li{margin:8px 0;font-size:.83rem;line-height:1.6}.install-guide{overflow-wrap:anywhere}#bbsInstallHelp .modal{max-width:760px;max-height:90vh;overflow:auto}.profile-app-install:has(.install-browser-help[open]){align-items:flex-start}
