/* UniStudentDeck's own styles, loaded after css/style.css. css/style.css is shared with StudentDeck (tools/sync_shared.py);
   anything only UniStudentDeck needs goes here. */
html:not(.uni) .bn-uni,html.uni .bn-sd{display:none}
html.no-xp .xp-wrap{display:none}                                  /* XP and levels are off by default in UniStudentDeck */
html.uni .sx-medals,html.no-xp .sx-top .lvl{display:none}   /* no badges at all in UniStudentDeck */
.uni-note{font-size:11.5px;margin:6px 0 0}
html.uni .dock-item>span:last-child{letter-spacing:-.3px;hyphens:auto;-webkit-hyphens:auto}   /* "Assignments" fits a 74 px dock button instead of breaking as "Assignment s" */

/* ---------- UniDeck phase 1: Courses, Assignments, Grades (js/uni-courses-ui.js) ---------- */
.ud-pad{padding:10px 12px;overflow:auto;height:100%}
.ud-empty{padding:18px;text-align:center}
.ud-empty p{margin:6px 0}
.ud-card{background:rgba(0,0,0,.2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0}
.ud-card p{margin:4px 0}
.ud-k{font-weight:700}
.ud-h{margin:6px 0 2px;font-size:16px}
.ud-lbl{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:12px;color:var(--lo)}
.ud-lbl input,.ud-lbl select,.ud-pick select{font:inherit;color:var(--hi);background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:10px;padding:7px 10px}
.ud-lbl input[type=date]{color-scheme:dark}
.ud-pick{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--lo);margin-bottom:6px}
.ud-pick select{flex:1;min-width:0}
.ud-list{list-style:none;margin:6px 0;padding:0}
.ud-list li{display:flex;align-items:center;gap:8px}
.ud-list li.on{background:rgba(224,169,59,.12);border-radius:8px}
.ud-linkbtn{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;padding:2px 4px;border-radius:6px}
.ud-linkbtn:focus-visible{outline:2px solid var(--gold)}
.ud-back{flex-direction:row;color:var(--gold-hi);font-size:12px}
.ud-x{all:unset;cursor:pointer;color:var(--lo);font-size:18px;padding:0 6px}.ud-x:hover{color:var(--hi)}
.ud-tag{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:2px 8px;white-space:nowrap;color:var(--lo)}
.ud-tag.s{color:#8fd19e;border-color:rgba(143,209,158,.5)}.ud-tag.l{color:var(--gold-hi);border-color:var(--gold)}
.ud-tag.m{color:#f08a7e;border-color:rgba(240,138,126,.5)}.ud-tag.g{color:var(--hi);background:rgba(255,255,255,.08)}
.ud-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.ud-tiles div{background:rgba(255,255,255,.04);border-radius:10px;padding:6px 8px;display:flex;flex-direction:column}
.ud-tiles b{font-size:18px}.ud-tiles span{font-size:11px;color:var(--lo)}
.ud-instr{background:rgba(255,255,255,.04);border-radius:10px;padding:8px 10px;margin:8px 0;white-space:normal;line-height:1.5}
.ud-tbl{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}
.ud-tbl th{text-align:left;color:var(--lo);font-weight:600;padding:4px;border-bottom:1px solid var(--line)}
.ud-tbl td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.ud-total{display:flex;flex-direction:column;align-items:flex-start}.ud-total b{font-size:28px;line-height:1.2}
.ud-grade{border-color:var(--gold)}
.ud-warn{color:var(--gold-hi);font-size:12px}
.ud-foot{margin-top:12px}.ud-foot a{color:var(--gold-hi)}

/* ---------- UniDeck phase 2: Modules, Announcements ---------- */
.ud-mods{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.ud-mod{border:1px solid var(--line);border-radius:12px;padding:6px 8px;background:rgba(0,0,0,.15)}
.ud-mod.on{border-color:var(--gold)}.ud-mod.locked .ud-modhead b{opacity:.65}
.ud-modhead{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;padding:4px}
.ud-items{list-style:none;margin:6px 0 2px;padding:0}
.ud-items li{display:flex;gap:8px;align-items:flex-start;padding:6px 2px;border-top:1px solid var(--line)}
.ud-tick input{width:16px;height:16px;margin-top:2px;accent-color:var(--gold)}
.ud-item{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ud-item a{color:var(--gold-hi)}
.ud-page summary{cursor:pointer;color:var(--gold-hi);font-size:12px}
.ud-ann.unread{border-color:var(--gold)}
.ud-ann a,.ud-instr a{color:var(--gold-hi)}
.ud-ann-mini{background:rgba(255,255,255,.04);border-radius:10px;padding:6px 8px;margin:8px 0}

/* ---------- UniDeck phase 2: Discussions, Calendar, Office hours ---------- */
.ud-threads li{padding:6px 2px;border-bottom:1px solid var(--line)}
.ud-post{border-left:3px solid var(--line);padding:4px 10px;margin:10px 0}
.ud-post.staff{border-left-color:var(--gold)}
.ud-post p{margin:2px 0}.ud-post .row a{color:var(--gold-hi);font-size:12px}
.ud-post textarea,.ud-card textarea{font:inherit;color:var(--hi);background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:10px;padding:7px 10px;width:100%;box-sizing:border-box}
.ud-calbar{align-items:center;gap:6px;flex-wrap:wrap}.ud-grow{flex:1}.ud-callabel{margin:0 6px}
.chip.on{background:var(--gold);color:#231604;border-color:var(--gold)}
.ud-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:10px}
.ud-day{background:rgba(0,0,0,.15);border:1px solid var(--line);border-radius:10px;padding:6px;min-height:120px;min-width:0}
.ud-day.today{border-color:var(--gold)}
.ud-day ul{list-style:none;margin:0;padding:0}
.ud-ev{font-size:12px;padding:4px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.ud-ev.done{opacity:.6}.ud-ev a{color:var(--gold-hi)}
.ud-ev.k-exam,.ud-month i.k-exam{color:#f0a37e}.ud-ev.k-due{color:var(--hi)}
.ud-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:10px}
.ud-month>b{text-align:center;font-size:11px}
.ud-cell{all:unset;cursor:pointer;box-sizing:border-box;min-height:72px;background:rgba(0,0,0,.15);border:1px solid var(--line);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:1px;min-width:0}
.ud-cell.out{opacity:.45}.ud-cell.today{border-color:var(--gold)}
.ud-cell span{font-size:11px;color:var(--lo)}
.ud-cell i{font-style:normal;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:700px){.ud-week{grid-template-columns:1fr}}
.ud-slots{list-style:none;margin:4px 0 10px;padding:0}
.ud-slots li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ud-slots form input{font:inherit;color:var(--hi);background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:10px;padding:6px 8px;min-width:200px}

/* ---------- UniDeck phase 3: TAdeck (LectureDeck's Course mode screens, css/course-mode.css) ----------
   Course mode is styled with TeachersDeck's colour names; map them onto UniStudentDeck's inside the desk. */
.ta-desk{--text-hi:var(--hi);--text-lo:var(--lo);--amber:var(--gold);--amber-hi:var(--gold-hi);--ink-0:rgba(0,0,0,.25);--ink-1:rgba(0,0,0,.2);--ink-2:var(--panel2);
  display:flex;flex-direction:column;height:100%;min-height:0}
.ta-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px 0}
.ta-body{flex:1;min-height:0;overflow:hidden}
.ta-body>.cm-pad,.ta-body>div{height:100%}
.ta-desk .wbtn{font:inherit;border:1px solid var(--line);background:var(--panel2);color:var(--hi);border-radius:10px;padding:6px 11px;cursor:pointer}
.ta-desk .wbtn:hover{border-color:var(--gold)}
.ta-desk .wbtn.primary{background:var(--gold);border-color:var(--gold);color:#231604;font-weight:700}
.ta-desk .wbtn:disabled{opacity:.5;cursor:default}
.ta-desk .btn-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* ---------- Light mode (html[data-mode=light], js/mode.js): UniDeck's own widgets ---------- */
html[data-mode="light"] .ud-lbl input[type=date]{color-scheme:light}
html[data-mode="light"] .ud-card{background:rgba(15,23,42,.035)}
html[data-mode="light"] .ud-lbl input,html[data-mode="light"] .ud-lbl select,html[data-mode="light"] .ud-pick select{background:var(--panel2)}
html[data-mode="light"] .ud-tag.s{color:#2f7d43;border-color:rgba(47,125,67,.45)}
html[data-mode="light"] .ud-tag.m{color:#b4532a;border-color:rgba(180,83,42,.45)}
html[data-mode="light"] .ud-tag.g{background:rgba(15,23,42,.07)}
html[data-mode="light"] .ud-tiles div,html[data-mode="light"] .ud-instr{background:rgba(15,23,42,.045)}
html[data-mode="light"] .ta-desk{--ink-0:var(--panel2);--ink-1:rgba(15,23,42,.035)}

/* ---------- UniDeck phase 3: Group project ---------- */
.ud-people{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.ud-tasks li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:6px 2px;border-bottom:1px solid var(--line)}
.ud-task label{display:flex;gap:8px;align-items:flex-start;cursor:pointer;min-width:0}
.ud-task label span{overflow-wrap:anywhere}
.ud-task.done label span{text-decoration:line-through;color:var(--lo)}
.ud-task .muted{font-size:12px;white-space:nowrap}
.ud-done summary{cursor:pointer;margin:10px 0 4px}
.ud-groupnote{border-color:var(--gold)}
.ud-pick input[type=date]{font:inherit;color:var(--hi);background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:10px;padding:6px 8px;color-scheme:dark}
html[data-mode="light"] .ud-pick input[type=date]{color-scheme:light;background:var(--panel2)}
