/* BTU hybrid design system — one system, two modes (23.10.2026).
   A: paper, serif headings, hairline lists. C: dark mode, big condensed numbers, rings, answer tiles.
   Every text colour below is ≥4.5:1 on the background it sits on, in both modes. */

@font-face { font-family: "BTU Sans"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62.5% 100%;
  src: url(/assets/fonts/noto-sans-georgian-georgian-standard-normal.woff2) format("woff2-variations");
  unicode-range: U+0589, U+10A0-10FF, U+1C90-1CBA, U+1CBD-1CBF, U+205A, U+2D00-2D2F, U+2E31; }
@font-face { font-family: "BTU Sans"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62.5% 100%;
  src: url(/assets/fonts/noto-sans-georgian-latin-standard-normal.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "BTU Sans"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62.5% 100%;
  src: url(/assets/fonts/noto-sans-georgian-latin-ext-standard-normal.woff2) format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "BTU Serif"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/assets/fonts/noto-serif-georgian-georgian-standard-normal.woff2) format("woff2-variations");
  unicode-range: U+0589, U+10A0-10FF, U+1C90-1CBA, U+1CBD-1CBF, U+205A, U+2D00-2D2F, U+2E31; }
@font-face { font-family: "BTU Serif"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/assets/fonts/noto-serif-georgian-latin-standard-normal.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "BTU Serif"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/assets/fonts/noto-serif-georgian-latin-ext-standard-normal.woff2) format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --font-ui: "BTU Sans", "Noto Sans Georgian", Sylfaen, system-ui, sans-serif;
  --font-head: "BTU Serif", "Noto Serif Georgian", Sylfaen, Georgia, serif;
  --bg: #FFFFFF; --page: #FAF9F6; --surface: #FFFFFF; --raised: #F6F4F1; --line: #E7E3DE; --line2: #C9C4BC; --rule: #12101A;
  --ink: #12101A; --ink2: #5E5B55; --ink3: #6B6760;
  --accent: #D00068;   /* 28.10: 4.7:1 on the panel (#D6006B was 4.48) */  --accent-hover: #A30052; --on-accent: #FFFFFF; --accent-soft: #FDE8F2;
  --band: #FF007E; --band-ink: #FFFFFF; --band-line: transparent;
  --inv: #12101A; --inv-ink: #FFFFFF;
  --ok: #1F6B3A; --ok-soft: #E8F3EC; --warn: #B54708; --warn-soft: #FFF4E5; --err: #B42318; --err-soft: #FDECEA; --info: #1D4ED8; --info-soft: #EAF0FD;
  --track: #EFECE8; --focus: #12101A; --sel: #12101A22;
  --cat-general: #1BAF7A; --cat-core: #2A78D6; --cat-elective: #EB6834; --cat-free: #6250D6;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --bg: #12101A; --page: #12101A; --surface: #1B1626; --raised: #241E33; --line: #2B2438; --line2: #3A3150; --rule: #F3EFF8;
  --ink: #F3EFF8; --ink2: #A7A2B5; --ink3: #A7A2B5;
  --accent: #FF4FA3; --accent-hover: #FF8AC2; --on-accent: #12101A; --accent-soft: #2A1730;
  --band: #12101A; --band-ink: #F3EFF8; --band-line: #2B2438;
  --inv: #F3EFF8; --inv-ink: #12101A;
  --ok: #5BE3A0; --ok-soft: #12301F; --warn: #FFC46B; --warn-soft: #3A2A12; --err: #FF8A80; --err-soft: #3A1A1F; --info: #8FB2FF; --info-soft: #1A2240;
  --track: #2B2438; --focus: #F3EFF8; --sel: #FF4FA355;
  --cat-general: #199E70; --cat-core: #3987E5; --cat-elective: #D95926; --cat-free: #9085E9;
  color-scheme: dark;
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-family: var(--font-ui); }
h1, h2, .btu-head { font-family: var(--font-head); }
::selection { background: var(--sel); }

/* The ring is seen on every focusable thing, in both modes; the mouse does not draw it. */
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }

.btu-num { font-stretch: 62.5%; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1; }
.btu-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--inv); color: var(--inv-ink); padding: 10px 16px; font-weight: 800; text-decoration: none; border-radius: 10px; }
.btu-skip:focus { top: 12px; }
.btu-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 6px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: 12px; font-weight: 900; }
.btu-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* The product switcher — the same three pills on every product. */
.btu-products { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgba(18,16,26,0.24); }
.btu-products a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; font-size: 13.5px; font-weight: 700; text-decoration: none; color: #FFFFFF; white-space: nowrap; }
.btu-products a:hover { background: rgba(18,16,26,0.2); }
.btu-products a[aria-current="page"] { background: #FFFFFF; color: #12101A; font-weight: 800; }
:root[data-theme="dark"] .btu-products { background: #1B1626; border: 1px solid #2B2438; }
:root[data-theme="dark"] .btu-products a { color: #F3EFF8; }
:root[data-theme="dark"] .btu-products a:hover { background: #241E33; }
:root[data-theme="dark"] .btu-products a[aria-current="page"] { background: var(--accent); color: var(--on-accent); }
.btu-products.on-page { background: var(--raised); }
.btu-products.on-page a { color: var(--ink); }
.btu-products.on-page a:hover { background: var(--line); }
.btu-products.on-page a[aria-current="page"] { background: var(--inv); color: var(--inv-ink); }

/* Round icon buttons on the band (theme, text size): 44×44, the touch minimum. */
.btu-iconbtn { width: 44px; height: 44px; flex: none; border: 0; border-radius: 22px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  background: rgba(18,16,26,0.24); color: #FFFFFF; font: inherit; font-weight: 800; }
.btu-iconbtn:hover { background: rgba(18,16,26,0.36); }
:root[data-theme="dark"] .btu-iconbtn { background: #1B1626; color: #F3EFF8; border: 1px solid #2B2438; }
:root[data-theme="dark"] .btu-iconbtn:hover { background: #241E33; }
.btu-iconbtn.on-page { background: var(--raised); color: var(--ink); border: 1px solid var(--line); }
.btu-iconbtn.on-page:hover { background: var(--line); }
.btu-iconbtn svg { width: 20px; height: 20px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
@media print {
  :root[data-theme="dark"] { color-scheme: light; }
}

/* 03.11.2026: the bell — button with the unread count, the panel of notices, the toast */
.btu-bell { position: relative; display: inline-flex; }
.btu-bell[hidden] { display: none; }
.btu-bell > .btu-iconbtn { position: relative; }
.btu-bell-n { position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; border-radius: 10px;
  background: #FFFFFF; color: var(--accent-hover); font-size: 11.5px; font-weight: 900; line-height: 20px; text-align: center; box-shadow: 0 0 0 2px var(--band); font-variant-numeric: tabular-nums; }
.btu-iconbtn.on-page .btu-bell-n, :root[data-theme="dark"] .btu-bell-n { background: var(--accent); color: var(--on-accent); box-shadow: 0 0 0 2px var(--page); }
.btu-bell-panel { position: absolute; right: 0; top: calc(100% + 10px); z-index: 1000; width: min(420px, calc(100vw - 32px)); max-height: min(72vh, 640px);
  display: flex; flex-direction: column; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 16px;
  box-shadow: 0 18px 50px rgba(18, 16, 26, 0.22); overflow: hidden; text-align: left; font-family: var(--font-ui); font-size: 14px; line-height: 1.45; }
.btu-bell-panel[hidden] { display: none; }
.btu-bell-head { display: flex; align-items: center; gap: 8px; padding: 12px 12px 10px 18px; border-bottom: 1px solid var(--line); }
.btu-bell-head b { font-size: 19px; font-weight: 700; }
.btu-bell-all { min-height: 36px; padding: 0 10px; white-space: nowrap; border: 0; border-radius: 8px; background: none; color: var(--accent); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.btu-bell-all:disabled { color: var(--ink2); cursor: default; opacity: .7; }
.btu-bell-x { width: 40px; height: 40px; border: 0; border-radius: 20px; background: none; color: var(--ink); font-size: 24px; line-height: 1; cursor: pointer; }
.btu-bell-x:hover, .btu-bell-all:not(:disabled):hover { background: var(--raised); }
.btu-bell-list { overflow-y: auto; }
.btu-bell-list ul { list-style: none; margin: 0; padding: 0; }
.btu-bell-item { display: flex; gap: 12px; align-items: flex-start; width: 100%; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--line); background: none;
  color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.btu-bell-item:hover { background: var(--raised); }
.btu-bell-item.unread { background: var(--accent-soft); }
.btu-bell-item.unread:hover { background: color-mix(in srgb, var(--accent-soft) 70%, var(--raised)); }
.btu-bell-ic { flex: none; width: 34px; height: 34px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--raised); color: var(--ink); }
.btu-bell-ic svg { width: 18px; height: 18px; }
.btu-bell-ic.k-grade, .btu-bell-ic.k-final { color: var(--ok); } .btu-bell-ic.k-message { color: var(--accent); } .btu-bell-ic.k-exam { color: var(--err); }
.btu-bell-ic.k-schedule, .btu-bell-ic.k-reg { color: var(--warn); } .btu-bell-ic.k-material, .btu-bell-ic.k-survey { color: var(--info); } .btu-bell-ic.k-application { color: var(--accent); } .btu-bell-ic.k-clock { color: var(--err); }
.btu-bell-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.btu-bell-t b { font-weight: 700; } .btu-bell-item.unread .btu-bell-t b { font-weight: 900; }
.btu-bell-b { color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.btu-bell-m { font-size: 12.5px; color: var(--ink2); }
.btu-bell-c { font-size: 12px; font-weight: 800; color: var(--ink2); }
.btu-bell-dot { flex: none; width: 10px; height: 10px; margin-top: 6px; border-radius: 5px; background: var(--accent); }
.btu-bell-more { display: block; width: 100%; min-height: 48px; border: 0; background: none; color: var(--accent); font: inherit; font-weight: 800; cursor: pointer; }
/* 28.10.2026: the notices on a closed page / the phone (btu-pwa.js) */
.btu-bell-push { display: flex; align-items: center; gap: 10px; padding: 10px 14px 12px 18px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink2); }
.btu-bell-push[hidden] { display: none; }
.btu-bell-push span { flex: 1; }
.btu-bell-pushbtn { flex: none; min-height: 36px; padding: 0 12px; border: 1px solid var(--accent); border-radius: 8px; background: none; color: var(--accent); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.btu-bell-pushbtn:disabled { opacity: .6; cursor: default; }
.btu-bell-empty, .btu-bell-err { display: flex; flex-direction: column; gap: 6px; padding: 26px 20px; color: var(--ink2); }
.btu-bell-empty b, .btu-bell-err b { color: var(--ink); font-size: 15px; }
.btu-bell-err { border-left: 4px solid var(--err); background: var(--err-soft); color: var(--ink); }
.btu-bell-retry { align-self: flex-start; min-height: 40px; padding: 0 14px; border: 0; border-radius: 8px; background: var(--inv); color: var(--inv-ink); font: inherit; font-weight: 800; cursor: pointer; }
.btu-bell-skel { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.btu-bell-skel i { display: block; height: 46px; border-radius: 10px; background: var(--raised); }
.btu-bell-toast { position: fixed; right: 16px; bottom: 16px; z-index: 1001; width: min(380px, calc(100vw - 32px)); box-sizing: border-box; display: flex; flex-direction: column; gap: 2px;
  padding: 12px 16px; border-radius: 14px; background: var(--inv); color: var(--inv-ink); box-shadow: 0 14px 40px rgba(18, 16, 26, 0.3); cursor: pointer; text-align: left; font-family: var(--font-ui); font-size: 14px; }
.btu-bell-toast[hidden] { display: none; }
.btu-bell-toast span { opacity: .86; font-size: 13px; }
@media (max-width: 600px) {
  .btu-bell-panel { position: fixed; left: 12px; right: 12px; top: 64px; width: auto; max-height: calc(100vh - 80px); }
  .btu-bell-head { flex-wrap: wrap; row-gap: 0; }
  .btu-bell-head > span { display: none; }
  .btu-bell-head b { flex: 1; }
  .btu-bell-x { order: 2; }
  .btu-bell-all { order: 3; margin-left: -10px; }
}

/* ── 28.10.2026: the shell (btu-shell.js) — one frame for every page. Top: the band. Middle: the side menu + the page.
   Bottom: the footer. The institution's name and colours come from /brand.js. ── */
body.ed-body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body.ed-body > main { flex: 1 0 auto; width: 100%; box-sizing: border-box; }
.ed-top { background: var(--band); color: var(--band-ink); border-bottom: 1px solid var(--band-line); display: flex; align-items: center; gap: 10px 12px; flex-wrap: wrap; padding: 8px 24px; min-height: 60px; box-sizing: border-box; }
.ed-logo { font-family: Arial, Helvetica, sans-serif; font-size: 26px; font-weight: 900; letter-spacing: -0.02em; white-space: nowrap; color: var(--band-ink); text-decoration: none; }
.ed-logo:hover { color: var(--band-ink); }
.ed-logo span { color: transparent; -webkit-text-stroke: 1.2px var(--band-ink); font-weight: 400; }
.ed-sp { flex: 1; }
.ed-top .btu-products { background: rgba(18,16,26,0.24); }
.ed-top .btu-products a:hover { background: rgba(18,16,26,0.2); }
.ed-top .btu-badge { background: #FFFFFF; color: var(--accent-hover); }   /* a count on the band: white, the accent's ink */
:root[data-theme="dark"] .ed-top .btu-badge { background: var(--accent); color: var(--on-accent); }
.ed-who { font-size: 14px; font-weight: 700; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 4px 12px; border-radius: 999px; background: rgba(18,16,26,0.24); color: #FFFFFF; }
.ed-who:empty, .ed-who[hidden], .ed-btn[hidden], .ed-focus[hidden] { display: none; }
.ed-focus { font-size: 15px; font-weight: 800; padding: 4px 14px; border-radius: 999px; background: rgba(18,16,26,0.24); color: #FFFFFF; font-variant-numeric: tabular-nums; }
.ed-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 22px; border: 0; background: rgba(18,16,26,0.24); color: #FFFFFF; font: inherit; font-size: 13.5px; font-weight: 700; cursor: pointer; }
.ed-btn:hover { background: rgba(18,16,26,0.36); }
.ed-btn .ic { display: none; width: 20px; height: 20px; }
:root[data-theme="dark"] .ed-who, :root[data-theme="dark"] .ed-focus, :root[data-theme="dark"] .ed-btn { background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
/* the exam in progress: the logo and the clock only */
html.ed-focus-on .ed-prods, html.ed-focus-on #bellHost, html.ed-focus-on #logout, html.ed-focus-on .ed-foot { display: none !important; }
/* the middle: the side menu at the left, the page at the right; on a phone the menu is one row of pills */
.ed-frame { display: flex; flex-wrap: wrap; align-items: flex-start; row-gap: 18px; }
.ed-side { flex: 0 1 240px; border-left: 3px solid var(--accent); padding: 6px 18px 6px 22px; display: flex; flex-direction: column; gap: 14px; }
.ed-side button { background: none; border: 0; padding: 4px 0; min-height: 44px; text-align: left; cursor: pointer; color: var(--ink); font: inherit; }
.ed-side .l { font-size: 14.5px; font-weight: 500; color: var(--ink2); line-height: 1.2; }
.ed-side .on { cursor: default; }
.ed-side .on .l { font-size: 22px; font-weight: 900; color: var(--ink); letter-spacing: -0.01em; }
.ed-side .s { font-size: 12.5px; font-weight: 700; margin-top: 4px; }
.ed-side .nav-more { border-top: 1px solid var(--line); margin: 4px 0 0; }
.ed-side .nav-more ~ button .l { font-size: 13.5px; }
.ed-main { flex: 999 1 560px; min-width: 0; padding: 0 0 30px 34px; font-size: 14px; line-height: 1.55; }
/* the bottom: the institution, its links, the version */
.ed-foot { border-top: 2px solid var(--rule); background: var(--page); color: var(--ink2); display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 22px; padding: 14px 24px 18px; font-size: 13px; line-height: 1.5; box-sizing: border-box; }
.ed-foot .n { color: var(--ink); }
.ed-foot b { font-weight: 900; }
.ed-foot a { color: var(--ink2); text-decoration: underline; text-underline-offset: 3px; }
.ed-foot a:hover { color: var(--accent); }
.ed-foot .v { margin-left: auto; font-variant-numeric: tabular-nums; }
html.embed .ed-top, html.embed .ed-foot { display: none !important; }
:root:not(:has(#edTop)) .ed-foot { display: none; }   /* a page without the band (the exam itself, a quiz) — no footer either */
body.ed-body > #root { flex: 1 0 auto; }
@media print { .ed-top, .ed-foot { display: none !important; } }
@media (max-width: 860px) {
  .ed-frame { display: block; }
  .ed-side { position: sticky; top: 0; z-index: 5; flex-direction: row; gap: 8px; overflow-x: auto; border-left: 0; margin: 0 -16px 18px; padding: 8px 16px; background: var(--page); border-bottom: 1px solid var(--line); scrollbar-width: none; }
  .ed-side::-webkit-scrollbar { display: none; }
  .ed-side button { flex: none; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); }
  .ed-side .l, .ed-side .on .l { font-size: 14px; font-weight: 700; color: var(--ink); letter-spacing: 0; }
  .ed-side .on { background: var(--inv); border-color: var(--inv); } .ed-side .on .l { color: var(--inv-ink); }
  .ed-side .s, .ed-side .nav-more { display: none; }
  .ed-main { padding-left: 0; }
}
@media (max-width: 600px) {
  .ed-top { padding: 8px 16px; gap: 8px 6px; }
  .ed-logo { font-size: 24px; }   /* not smaller: white on the band is ≥ 3:1, enough only for large text */
  /* a phone: the logo a row of its own (BTU AI CLASSROOM whole); under it the products (scrolling sideways) and the round buttons */
  .ed-top .ed-logo { flex: 1 1 100%; } .ed-top .ed-sp { display: none; }
  .ed-top > * { order: 3; } .ed-top > .ed-logo { order: 1; }
  .ed-top .btu-products { order: 2; flex: 1 1 0; min-width: 0; overflow-x: auto; scrollbar-width: none; } .ed-top .btu-products a { flex: 1 0 auto; justify-content: center; padding: 0 10px; font-size: 13px; }
  .ed-top .btu-products::-webkit-scrollbar { display: none; }
  .ed-btn { width: 44px; padding: 0; justify-content: center; } .ed-btn .t { display: none; } .ed-btn .ic { display: block; }
  .ed-who { display: none; }
  .ed-foot { padding: 12px 16px 16px; } .ed-foot .v { margin-left: 0; }
}
