/* ==============================================================
   LATE-2000s THEME — glossy gradients, bevels, classic messenger
   chrome that matches the skeuomorphic fatcow icon set.
   Loaded last so it overrides the flat modern defaults.
   ============================================================== */
[data-theme="theseus2k"]{
  --blue: #2f5fa6;
  --blue-dark: #254e8c;
  --blue-light: #e3edfb;
  --bg: #dbe6f4;
  --panel: #f7f9fc;
  --sidebar-bg: #eef3f9;
  --sidebar-text: #1f2b3a;
  --sidebar-border: #9fb4d4;
  --text: #1f2933;
  --muted: #5b6b7d;
  --border: #b9c6da;
  --sent: #2f79c8;
  --received: #ffffff;
  --danger: #c03030;
  --green: #3a9a3f;
}

[data-theme="theseus2k"] body{
  background: linear-gradient(#c9e1f5, #e8f1fb);
  color: var(--text);
}

/* ---- Sidebar ---- */
[data-theme="theseus2k"] .sidebar{
  background: linear-gradient(#eef3f9, #dfe8f4);
  border-right: 1px solid var(--sidebar-border);
  box-shadow: inset -1px 0 0 #fff, 1px 0 3px rgba(20,40,70,.15);
}
[data-theme="theseus2k"] .sidebar-head{
  background: linear-gradient(#5a9be0, #2a5faa);
  border-bottom: 1px solid #1c4070;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4);
}
[data-theme="theseus2k"] .sidebar-head .brand{ color: #fff; font-weight: 700; text-shadow: 0 1px 1px rgba(0,0,0,.45); }
[data-theme="theseus2k"] .sidebar-foot{
  background: linear-gradient(#eef3f9, #d8e3f1);
  border-top: 1px solid #c1cfe4;
  box-shadow: inset 0 1px 0 #fff;
}
[data-theme="theseus2k"] .sidebar-foot .me-name{ color: #1f2b3a; }

[data-theme="theseus2k"] .folders-bar{ background: linear-gradient(#e6edf7,#d7e2f0); border-bottom: 1px solid #c1cfe4; }
[data-theme="theseus2k"] .cf-head:hover{ background: linear-gradient(#e3ecf7,#d4e1f2); }
[data-theme="theseus2k"] .chat-folder.collapsed .cf-body{ display: none; }
[data-theme="theseus2k"] .chat-list-empty{ color: var(--muted); }

/* ---- Chat rows ---- */
[data-theme="theseus2k"] .chat-item{ border-bottom: 1px solid #cdd8ea; }
[data-theme="theseus2k"] .chat-item:hover{ background: linear-gradient(#e8eff9, #d5e3f5); }
[data-theme="theseus2k"] .chat-item.active{
  background: linear-gradient(#5b9ce4, #2f6fc8);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}
/* The notch pokes into the page area left of the sidebar; keep it within the
   app background tone in the glossy theme too. */
[data-theme="theseus2k"] .chat-item.active::after{ border-right-color: #f2f6fb; }
[data-theme="theseus2k"] .chat-item.active .ci-name,
[data-theme="theseus2k"] .chat-item.active .ci-meta,
[data-theme="theseus2k"] .chat-item.active .ci-last{ color: #fff; text-shadow: 0 1px 1px rgba(0,0,0,.25); }
[data-theme="theseus2k"] .chat-item.active .ci-icon{ background: rgba(255,255,255,.3); }

/* Toolbar buttons: raised glossy chrome */
[data-theme="theseus2k"] .icon-btn{ border-radius: 3px; border: solid 1px #d4ddeb; box-shadow: inset 0 1px 0 rgba(255,255,255,.7); }
[data-theme="theseus2k"] .icon-btn:hover{ background: linear-gradient(rgba(255,255,255,.55), rgba(180,205,235,.55)); box-shadow: inset 0 0 0 1px #9fb4d4; }
[data-theme="theseus2k"] .new-chat-btn{
  background: linear-gradient(#5b9ce4,#2a5faa); color: #fff; border: 1px solid #1c4070;
  border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 1px 1px rgba(0,0,0,.2);
}
[data-theme="theseus2k"] .new-chat-btn:hover{ background: linear-gradient(#6aa8ea,#3167b4); border-color: #1c4070; }
[data-theme="theseus2k"] .icon-btn img{ opacity: .85; }

/* ---- Chat area ---- */
[data-theme="theseus2k"] .chat-area{ background: linear-gradient(#eef4fb,#e3edf8); }
[data-theme="theseus2k"] header.chat-header{ background: #f2f6fb; box-shadow: inset 0 -1px 0 rgba(0,0,0,.06); }
[data-theme="theseus2k"] header.chat-header .chat-title{ color: var(--text); text-shadow: none; }
[data-theme="theseus2k"] header.chat-header .chat-meta{ color: var(--muted); text-shadow: none; }

[data-theme="theseus2k"] .message-list{ background-color: #f2f6fb; }

/* Message bubbles: classic messenger look */
[data-theme="theseus2k"] .msg-bubble{ box-shadow: 0 1px 1px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.6); }
[data-theme="theseus2k"] .msg.own .msg-bubble{
  background: linear-gradient(#6fb3ef, #3a7dce);
  border: 1px solid #2a62a8;
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 1px 1px rgba(0,0,0,.25);
  text-shadow: 0 1px 1px rgba(0,0,0,.2);
}
[data-theme="theseus2k"] .msg.other .msg-bubble{
  background: linear-gradient(#ffffff,#f2f6fc);
  border: 1px solid #c4d1e6;
  color: var(--text);
  box-shadow: 0 1px 1px rgba(0,0,0,.12), inset 0 1px 0 #fff;
}
[data-theme="theseus2k"] .msg.system .msg-bubble{ background: transparent; color: var(--muted); border: none; box-shadow: none; user-select: none; cursor: default; }
[data-theme="theseus2k"] .msg.own .msg-bubble.deleted-bubble{ background: linear-gradient(#e9edf2,#dde3ec); color: #7c8796; border-color: #c6cfdd; text-shadow: none; }
[data-theme="theseus2k"] .msg.own .reply-quote{ background: rgba(255,255,255,.2); border-left-color: #eaf3fe; color: #eef; }
[data-theme="theseus2k"] .msg.own .msg-bubble a{ color: #fff; }

/* Composer: recessed bevel chrome */
[data-theme="theseus2k"] .composer{
  background: linear-gradient(#e4ebf6,#d6e2f1);
  border-top: 1px solid #c1cfe4;
  box-shadow: inset 0 1px 0 #fff;
}
[data-theme="theseus2k"] .composer textarea{
  border: 1px solid #9fb4d4; background: #fff; box-shadow: inset 0 1px 2px rgba(0,0,0,.12);
  border-radius: 3px;
}
[data-theme="theseus2k"] .composer textarea:focus{ border-color: #3a75bd; box-shadow: inset 0 1px 2px rgba(0,0,0,.12), 0 0 3px #6aa5e4; }

/* Archived-teacher read-only bar mirrors the composer's recessed chrome, so a
   chat flipped into the ready-only state feels like the composer it replaced. */
[data-theme="theseus2k"] .archived-bar{
  background: linear-gradient(#e4ebf6,#d6e2f1);
  border-top: 1px solid #c1cfe4;
  box-shadow: inset 0 1px 0 #fff;
}
[data-theme="theseus2k"] .archived-bar .ab-ic, [data-theme="theseus2k"] .archived-bar .ab-unarchive-ic{ filter: none; }
[data-theme="theseus2k"] .send-btn{
  background: linear-gradient(#6fb3ef,#3a7dce); border: 1px solid #2a62a8; border-radius: 3px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 1px 1px rgba(0,0,0,.25);
}
[data-theme="theseus2k"] .send-btn:hover{ background: linear-gradient(#7cbaf2,#4787d6); }
[data-theme="theseus2k"] .reply-bar{ background: linear-gradient(#eef4fb,#dde8f6); border-top: 1px solid #c1cfe4; }
[data-theme="theseus2k"] .reply-bar .rb-tag{ color: #2f5fa6; }

/* Buttons (modal / forms) */
[data-theme="theseus2k"] .btn-primary{ background: linear-gradient(#5b9ce4,#2a5faa); border: 1px solid #1c4070; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 1px 1px rgba(0,0,0,.2); }
[data-theme="theseus2k"] .btn-primary:hover{ background: linear-gradient(#6aa8ea,#3167b4); }
[data-theme="theseus2k"] .btn-danger{ background: linear-gradient(#e07060,#b83a2c); border: 1px solid #8f2218; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 1px 1px rgba(0,0,0,.2); }
[data-theme="theseus2k"] .btn-danger:hover{ background: linear-gradient(#e97c6d,#c64435); }
[data-theme="theseus2k"] .btn-ghost{ background: linear-gradient(#f7f9fc,#e6ecf5); border: 1px solid #b9c6da; border-radius: 3px; }
[data-theme="theseus2k"] .btn-ghost:hover{ background: linear-gradient(#ffffff,#eef3fa); }

/* Inputs */
[data-theme="theseus2k"] .auth-form input, [data-theme="theseus2k"] .modal-card input, [data-theme="theseus2k"] .modal-card select{ border: 1px solid #9fb4d4; box-shadow: inset 0 1px 2px rgba(0,0,0,.12); border-radius: 3px; background: #fff; }
[data-theme="theseus2k"] .auth-form input:focus{ border-color: #3a75bd; }

/* Login */
[data-theme="theseus2k"] .login-overlay{ background: linear-gradient(#cfe4f6,#e8f1fb); }
[data-theme="theseus2k"] .login-card{ background: linear-gradient(#ffffff,#f0f5fc); border: 1px solid #b9c6da; border-radius: 6px; box-shadow: 0 3px 10px rgba(30,60,100,.25), inset 0 1px 0 #fff; }
[data-theme="theseus2k"] .auth-form button{ background: linear-gradient(#5b9ce4,#2a5faa); border: 1px solid #1c4070; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }
[data-theme="theseus2k"] .auth-form button:hover{ background: linear-gradient(#6aa8ea,#3167b4); }
[data-theme="theseus2k"] .auth-form button.pw-eye { background: transparent; border: none; box-shadow: none; }
[data-theme="theseus2k"] .auth-form button.pw-eye:hover { background: rgba(0,0,0,.06); }

/* Modal */
[data-theme="theseus2k"] .modal-card{ background: linear-gradient(#ffffff,#eef3fa); border: 1px solid #b9c6da; border-radius: 6px; box-shadow: 0 4px 18px rgba(20,40,70,.35); }
[data-theme="theseus2k"] .modal-card h3{ background: linear-gradient(#5a9be0,#2a5faa); color: #fff; padding: 8px 12px; margin: -24px -24px 16px; border-radius: 5px 5px 0 0; text-shadow: 0 1px 1px rgba(0,0,0,.35); font-size: 115%; }
[data-theme="theseus2k"] .modal-actions button{ border-radius: 3px; }

/* Styled dialog (replaces native prompt/confirm/alert) */
[data-theme="theseus2k"] .dlg-body{ margin: 0 0 4px; }
[data-theme="theseus2k"] .dlg-input{ width: 100%; padding: 9px; border: 1px solid #9fb4d4; border-radius: 3px; font-size: 14px; background: #fff; box-shadow: inset 0 1px 2px rgba(0,0,0,.12); }
[data-theme="theseus2k"] .dlg-tarea{ min-height: 96px; resize: vertical; font: 14px/1.5 system-ui, -apple-system, sans-serif; }
[data-theme="theseus2k"] .dlg-msg{ margin: 0; font-size: 14px; color: var(--text); line-height: 1.5; }
[data-theme="theseus2k"] .dlg-blist{ list-style: none; margin: 0 0 10px; padding: 0; max-height: 220px; overflow-y: auto; border: 1px solid #b6c9e2; border-radius: 4px; background: #f4f9ff; }
[data-theme="theseus2k"] .dlg-blist li{ padding: 8px 10px; cursor: pointer; border-bottom: 1px solid #d9e6f5; display: flex; align-items: center; }
[data-theme="theseus2k"] .dlg-blist li:last-child{ border-bottom: 0; }
[data-theme="theseus2k"] .dlg-blist li:hover{ background: #eaf2fd; }
[data-theme="theseus2k"] .dlg-blist li.selected{ background: #d1e2f8; font-weight: 600; }
[data-theme="theseus2k"] .dlg-chk{ display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--subtext); }

/* Context menu */
[data-theme="theseus2k"] .ctx-menu{ background: linear-gradient(#fbfcfe,#e9eff7); border: 1px solid #9fb4d4; border-radius: 3px; box-shadow: 0 3px 10px rgba(20,40,70,.3), inset 0 1px 0 #fff; }
[data-theme="theseus2k"] .cm-item{ color: var(--text); }
[data-theme="theseus2k"] .cm-item:hover{ background: linear-gradient(#5b9ce4,#2f6fc8); color: #fff; }

/* Toast */
[data-theme="theseus2k"] .toast{ background: linear-gradient(#3a4a5c,#2a3542); border: 1px solid #1c2630; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.15); }

/* Emoji panel */
[data-theme="theseus2k"] .emoji-panel{ background: linear-gradient(#fbfcfe,#e9eff7); border: 1px solid #9fb4d4; box-shadow: 0 4px 12px rgba(20,40,70,.25); border-radius: 3px; }
[data-theme="theseus2k"] .emoji-panel img:hover{ background: linear-gradient(#5b9ce4,#2f6fc8); }

/* Admin nav */
[data-theme="theseus2k"] .ctx-menu, [data-theme="theseus2k"] .cm-item{ font-family: inherit; }

/* Link preview inside bubbles */
[data-theme="theseus2k"] a.link-preview{ display: block; text-decoration: none; color: inherit; }
[data-theme="theseus2k"] a.link-preview.wb-preview{ display: flex; }
[data-theme="theseus2k"] .link-preview{ border: 1px solid #c4d1e6; background: #f4f8fd; border-radius: 3px; }

/* Active chat hover states keep gradient */
[data-theme="theseus2k"] .chat-item.active:hover{ background: linear-gradient(#5b9ce4,#2f6fc8); }

/* Muted "(no chats)" placeholder row inside an empty chat folder or an empty
   list: looks like a row but is non-interactive (never clickable/draggable). */
[data-theme="theseus2k"] .chat-item.chat-empty-item{
  pointer-events: none; cursor: default; color: var(--muted);
  padding-left: 20px; text-shadow: none; border-bottom: none;
}
[data-theme="theseus2k"] .chat-item.chat-empty-item:hover,
[data-theme="theseus2k"] .chat-item.chat-empty-item.active,
[data-theme="theseus2k"] .chat-item.chat-empty-item.active:hover{ background: transparent; }

/* Chat rows indentation: chats nested inside a folder sit 20px from the left
   edge, while ungrouped chats (the unfiled section) keep the flat 6px. */
[data-theme="theseus2k"] .chat-folder .cf-body > .chat-item{ padding-left: 20px; }
[data-theme="theseus2k"] .chat-folder.chat-unfiled .cf-body > .chat-item{ padding-left: 6px; }

/* Whiteboard header: let it shrink/wrap when the window is resized instead of
   overflowing. The title wraps and the action row folds so the header adapts
   to narrow/tall windows while a whiteboard is open. */
[data-theme="theseus2k"] #boardView .chat-header{ flex-wrap: wrap; row-gap: 5px; }
[data-theme="theseus2k"] #boardView .chat-title{ min-width: 0; flex: 0 1 auto; white-space: normal; overflow-wrap: break-word; line-height: 1.25; }
[data-theme="theseus2k"] #boardView .chat-actions{ margin-left: auto; flex-wrap: wrap; }
[data-theme="theseus2k"] #boardView .board-presence{ align-self: center; white-space: nowrap; }

/* Author visibility window (board header "Authors" button) and the active state
   for the "moderators only" toggle. A single-select picker: "All users" first,
   then the individual non-mod authors. */
[data-theme="theseus2k"] #boardActions .icon-btn.active{ background: var(--blue, #3b82f6); }
[data-theme="theseus2k"] .board-authors-window{
  position: fixed; z-index: 1200; min-width: 230px; max-width: 300px;
  background: #fff; border: 1px solid #d4ddeb; border-radius: 10px;
  box-shadow: 0 8px 24px rgba(20, 30, 60, .18); overflow: hidden;
}
[data-theme="theseus2k"] .board-authors-window .ba-head{
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; background: #f5f7fb; border-bottom: 1px solid #e5e9f2;
}
[data-theme="theseus2k"] .board-authors-window .ba-title{ font-size: 13px; font-weight: 600; color: var(--text, #1f2430); }
[data-theme="theseus2k"] .board-authors-window .ba-close{ padding: 3px; }
[data-theme="theseus2k"] .board-authors-window .ba-close img{ width: 12px; height: 12px; opacity: .6; }
[data-theme="theseus2k"] .board-authors-window .ba-close:hover img{ opacity: 1; }
[data-theme="theseus2k"] .board-authors-window .ba-list{ max-height: 260px; overflow-y: auto; }
[data-theme="theseus2k"] .board-authors-window .ba-item{ display: flex; align-items: center; gap: 8px; padding: 7px 10px; cursor: pointer; font-size: 13px; color: var(--text, #1f2430); }
[data-theme="theseus2k"] .board-authors-window .ba-item:hover{ background: #f0f4fb; }
[data-theme="theseus2k"] .board-authors-window .ba-item.active{ background: #e8f1fe; }
[data-theme="theseus2k"] .board-authors-window .ba-dot{
  width: 22px; height: 22px; border-radius: 50%; background: var(--blue, #3b82f6);
  color: #fff; font-size: 12px; font-weight: 600; display: inline-flex;
  align-items: center; justify-content: center; flex: 0 0 auto;
}
[data-theme="theseus2k"] .board-authors-window .ba-dot.ba-all{ background: #64748b; }
[data-theme="theseus2k"] .board-authors-window .ba-name{ flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-theme="theseus2k"] .board-authors-window .ba-check{
  width: 15px; height: 15px; border-radius: 50%; border: 2px solid #c3ccdc;
  flex: 0 0 auto;
}
[data-theme="theseus2k"] .board-authors-window .ba-item.active .ba-check{
  border-color: var(--blue, #3b82f6);
  background: radial-gradient(circle, var(--blue, #3b82f6) 0 4px, #fff 5px);
}
/* Fix: ensure help button icon is visible in Theseus2k (was hidden by muted opacity) */
[data-theme="theseus2k"] .help-btn.footer-help { display:inline-flex !important; opacity:1; }
[data-theme="theseus2k"] .help-btn.footer-help img { opacity:1; filter:none; }

/* Theseus2k icons are skeuomorphic/glossy: do NOT recolor them with the flat
   brightness(0) invert(1) "whiten for dark/colored backgrounds" trick, which
   only suits the monochrome Theseus3k set. Restore the natural icon colors. */
[data-theme="theseus2k"] .send-btn img { filter: none; }
[data-theme="theseus2k"] .call-video .cv-camoff img { filter: none; }
[data-theme="theseus2k"] .board-topbar .board-x.active img,
[data-theme="theseus2k"] .board-header-controls .board-x.active img,
[data-theme="theseus2k"] .board-toolbar .board-x.active img { filter: none; }
[data-theme="theseus2k"] .iv-btn.iv-close img { filter: none; }
[data-theme="theseus2k"] .board-toolbar .board-pages-toggle.active img { filter: none; }
/* New-version reload banner: the flat blue pill clashes with the glossy set.
   Restyle it with the 2k skeuomorphic blue treatment (same gradient family as
   the primary action buttons) and a glossy white reload button. */
[data-theme="theseus2k"] .version-bar {
  background: linear-gradient(#6fb3ef, #3a7dce);
  border: 1px solid #1c4070;
  border-radius: 3px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 4px 14px rgba(20,40,90,.4);
  color: #fff;
  text-shadow: 0 1px 0 rgba(0,0,0,.35);
}
[data-theme="theseus2k"] .version-bar .vb-reload {
  background: linear-gradient(#ffffff, #e6eef8);
  border: 1px solid #9fb4d4;
  border-radius: 3px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
  color: var(--blue-dark);
  font-weight: 700;
}
[data-theme="theseus2k"] .version-bar .vb-close { color: #fff; }

/* ---- Дневник (diary): blue glossy exercise cards ----
   The diary inherits the flat foundation; here it gets the same glossy
   messenger chrome as the rest of this theme: gradient cards, beveled
   badges, a blue candy stripe, recessed wells and raised tabs. */
[data-theme="theseus2k"] .hw-ex {
  background: linear-gradient(#ffffff,#f2f6fc);
  border: 1px solid #b9c6da; border-radius: 6px;
  box-shadow: 0 1px 2px rgba(20,40,70,.14), inset 0 1px 0 rgba(255,255,255,.75);
}
[data-theme="theseus2k"] .hw-ex:hover { box-shadow: 0 4px 12px rgba(20,40,70,.20), inset 0 1px 0 rgba(255,255,255,.75); }
[data-theme="theseus2k"] .hw-ex::before { background: linear-gradient(#5a9be0,#2a5faa); }
[data-theme="theseus2k"] .hw-ex-off::before { background: #9fb4d4; }
[data-theme="theseus2k"] .hw-ex-n {
  border-radius: 4px; border: 1px solid #1c4070;
  background: linear-gradient(#5a9be0,#2a5faa); color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4);
  text-shadow: 0 1px 1px rgba(0,0,0,.35);
}
/* The student's status colour wins over the gloss: same candy stripe and badge,
   just in the state's hue. */
[data-theme="theseus2k"] .hw-ex-student.hw-st-over::before { background: linear-gradient(rgba(255,255,255,.3), rgba(0,0,0,.15)), var(--danger); }
[data-theme="theseus2k"] .hw-ex-student.hw-st-done::before { background: linear-gradient(rgba(255,255,255,.3), rgba(0,0,0,.15)), var(--green); }
[data-theme="theseus2k"] .hw-st-over .hw-ex-n,
[data-theme="theseus2k"] .hw-st-done .hw-ex-n {
  border-color: rgba(0,0,0,.2); color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
}
[data-theme="theseus2k"] .hw-st-over .hw-ex-n { background: linear-gradient(rgba(255,255,255,.28), rgba(0,0,0,.14)), var(--danger); }
[data-theme="theseus2k"] .hw-st-done .hw-ex-n { background: linear-gradient(rgba(255,255,255,.28), rgba(0,0,0,.14)), var(--green); }
[data-theme="theseus2k"] .hw-sec-c {
  border-radius: 9px; border: 1px solid #9fb4d4;
  background: linear-gradient(#ffffff,#e3edfb); color: #2f5fa6;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}
[data-theme="theseus2k"] .hw-ex-prompt {
  background: #fff; border-color: #b9c6da; border-radius: 4px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
[data-theme="theseus2k"] .hw-ex-meta {
  background: linear-gradient(#fbfcfe,#e9eff7);
  border-color: #c1cfe4; border-radius: 4px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
[data-theme="theseus2k"] .hw-empty-badge {
  background: linear-gradient(#ffffff,#e3edfb); border: 1px solid #9fb4d4;
}
[data-theme="theseus2k"] .hw-stu-row {
  background: linear-gradient(#ffffff,#f2f6fc);
  border: 1px solid #b9c6da; border-radius: 5px;
  box-shadow: 0 1px 2px rgba(20,40,70,.14), inset 0 1px 0 rgba(255,255,255,.75);
}
[data-theme="theseus2k"] .hw-stu-row:hover { box-shadow: 0 3px 9px rgba(20,40,70,.18), inset 0 1px 0 rgba(255,255,255,.75); }
[data-theme="theseus2k"] .hw-table-wrap {
  background: linear-gradient(#ffffff,#f2f6fc);
  border: 1px solid #b9c6da; border-radius: 6px;
  box-shadow: 0 1px 2px rgba(20,40,70,.14), inset 0 1px 0 rgba(255,255,255,.75);
}
[data-theme="theseus2k"] .hw-th,
[data-theme="theseus2k"] .hw-th-name {
  background: linear-gradient(#e8eff9,#d5e3f5);
  border-bottom: 1px solid #b9c6da;
}
[data-theme="theseus2k"] .hw-cell { border-color: #cdd8ea; }
[data-theme="theseus2k"] .hw-legend-sw { border-color: #9fb4d4; }

/* Messages <-> Дневник switch: recessed blue well with a raised glossy thumb,
   so the control reads at a glance against the pale header. */
[data-theme="theseus2k"] .vs-switch{
  border-radius: 15px; border: 1px solid #7c93b5;
  background: linear-gradient(#b9c9e2, #dbe5f3);
  box-shadow: inset 0 1px 3px rgba(20,40,70,.35), inset 0 -1px 0 rgba(255,255,255,.5);
}
[data-theme="theseus2k"] .vs-slider{
  border-radius: 15px; background: linear-gradient(#ffffff, #e3edfb);
  border: 1px solid #7c93b5;
  box-shadow: inset 0 1px 0 #fff, 0 1px 1px rgba(20,40,70,.3);
}
/* Tab bars (diary tabs, editor panes): classic segmented chrome — the strip
   is a recessed bevel, the active tab a raised glossy card. */
[data-theme="theseus2k"] .hw-tabs,
[data-theme="theseus2k"] .hw-ed-tabs{
  background: linear-gradient(#dbe5f3, #c9d6e8);
  border: 1px solid #9fb4d4; border-radius: 5px; padding: 2px; gap: 2px;
  box-shadow: inset 0 1px 2px rgba(20,40,70,.18);
}
[data-theme="theseus2k"] .hw-tab-btn,
[data-theme="theseus2k"] .hw-ed-tab{
  border-radius: 3px; border: 1px solid transparent;
}
[data-theme="theseus2k"] .hw-tab-btn:hover,
[data-theme="theseus2k"] .hw-ed-tab:hover{ background: rgba(255,255,255,.4); }
[data-theme="theseus2k"] .hw-tab-btn.active,
[data-theme="theseus2k"] .hw-ed-tab.active{
  background: linear-gradient(#ffffff, #e9eff7);
  border-color: #7c93b5; color: var(--text); font-weight: 700;
  box-shadow: inset 0 1px 0 #fff, 0 1px 1px rgba(20,40,70,.15);
}

/* Editor + toolbars read as one unit: no gaps between label, rows and pane. */
[data-theme="theseus2k"] .hw-ed { gap: 0; }
[data-theme="theseus2k"] .hw-ed-lbl + .hw-ed-tools { margin-top: 4px; }
/* Toolbar on-state: same fill as the row, a touch darker, pressed in. */
[data-theme="theseus2k"] .hw-ed-tools .on {
  background: rgba(20,40,70,.10);
  box-shadow: inset 0 1px 3px rgba(20,40,70,.25);
}

/* Date-filter + on/off switches: raised track when off, sunken blue well
   with a glossy knob when on. */
[data-theme="theseus2k"] .hw-ex-switch{
  border-radius: 12px; border: 1px solid #9fb4d4;
  background: linear-gradient(#fafafa, #e3ebf6);
  box-shadow: inset 0 1px 0 #fff, 0 1px 1px rgba(20,40,70,.15);
  width: 46px;
}
[data-theme="theseus2k"] .hw-ex-switch .hw-ex-knob{
  border-radius: 50%; background: linear-gradient(#ffffff, #cfdcee);
  border: 1px solid #9fb4d4;
  box-shadow: 0 1px 1px rgba(20,40,70,.25), inset 0 1px 0 #fff;
}
[data-theme="theseus2k"] .hw-ex-switch.on{
  background: linear-gradient(#5a9be0, #2a5faa);
  box-shadow: inset 0 1px 3px rgba(0,0,0,.3);
  border-color: #1c4070;
}
[data-theme="theseus2k"] .hw-ex-switch.on .hw-ex-knob{
  background: linear-gradient(#ffffff, #e3edfb);
  border-color: #1c4070;
}

/* ---- Дневник hand-in widgets: recessed inputs, glossy load buttons ---- */
[data-theme="theseus2k"] .hw-text-in,
[data-theme="theseus2k"] .hw-ed-conf{
  border: 1px solid #9fb4d4; background: #fff;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.12); border-radius: 3px;
}
[data-theme="theseus2k"] .hw-text-in:focus,
[data-theme="theseus2k"] .hw-ed-conf:focus{ border-color: #3a75bd; box-shadow: inset 0 1px 2px rgba(0,0,0,.12), 0 0 3px #6aa5e4; }
[data-theme="theseus2k"] .hw-file-picklbl,
[data-theme="theseus2k"] .hw-upload-chip{ border-color: #9fb4d4; background: linear-gradient(#ffffff,#eef3fa); }
[data-theme="theseus2k"] .hw-file-picklbl:hover{ border-color: #2a5faa; color: var(--text); }
[data-theme="theseus2k"] .hw-drop-add{ border-color: #9fb4d4; background: transparent; box-shadow: none; }
[data-theme="theseus2k"] .hw-drop-add:hover{ border-color: #2a5faa; }
[data-theme="theseus2k"] .hw-stu-row.hw-drop-add{ border-color: #9fb4d4; background: transparent; box-shadow: none; }
[data-theme="theseus2k"] .hw-embed-load{
  background: linear-gradient(#5a9be0,#2a5faa); border: 1px solid #1c4070; border-radius: 4px;
  color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 1px 1px rgba(0,0,0,.2);
  text-shadow: 0 1px 1px rgba(0,0,0,.3);
}
[data-theme="theseus2k"] .hw-embed-load:hover{ background: linear-gradient(#6aa8ea,#3167b4); }
[data-theme="theseus2k"] .hw-embed{ background: linear-gradient(#fbfcfe,#e9eff7); border: 1px solid #b9c6da; }
