:root{--bg: var(--tg-theme-bg-color, #ffffff);--bg-secondary: var(--tg-theme-secondary-bg-color, #f2f4f7);--card: var(--tg-theme-section-bg-color, var(--bg-secondary));--text: var(--tg-theme-text-color, #1c2430);--muted: var(--tg-theme-hint-color, #6b7480);--link: var(--tg-theme-link-color, #2a6b7c);--accent: var(--tg-theme-button-color, #1f3a5f);--accent-text: var(--tg-theme-button-text-color, #ffffff);--error: var(--tg-theme-destructive-text-color, #b3261e);--success: #2e7d32;--on-status: #ffffff;--radius: 14px;--radius-sm: 10px;--radius-pill: 999px;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading: var(--font-body)}@media(prefers-color-scheme:dark){:root{--bg: var(--tg-theme-bg-color, #17212b);--bg-secondary: var(--tg-theme-secondary-bg-color, #0e1621);--text: var(--tg-theme-text-color, #f5f5f5);--muted: var(--tg-theme-hint-color, #8b98a5);--accent: var(--tg-theme-button-color, #5288c1);--error: var(--tg-theme-destructive-text-color, #ff8a80);--success: #81c784}}:root[data-theme=brand]{--bg: #f3eee6;--bg-secondary: #ebe4d8;--card: #fbf8f3;--text: #1e2430;--muted: #5e6470;--link: #2a6b7c;--accent: #1f3a5f;--accent-text: #f3eee6;--error: #a65f3e;--success: #7d8b6a;--font-heading: "Manrope", var(--font-body)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.45;background:var(--bg-secondary);color:var(--text)}h1,h2{font-family:var(--font-heading)}h1{font-size:24px;line-height:1.2;margin:0 0 4px}h2{font-size:18px;margin:24px 0 12px}p{margin:0}button{font:inherit;color:inherit}.screen{max-width:640px;margin:0 auto;padding:16px 16px 32px;min-height:100vh}.center{display:grid;place-items:center;text-align:center}.muted,.hint{color:var(--muted)}.hint{font-size:14px}.error{color:var(--error)}.success{color:var(--success)}.notice{margin-bottom:12px}.eyebrow{color:var(--muted);font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:12px}.card{display:grid;gap:6px;padding:14px 16px;border-radius:var(--radius);background:var(--card)}.card-button{width:100%;border:0;text-align:left;cursor:pointer}.card-button:disabled{cursor:default;opacity:.75}.roadmap{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px;position:relative}.roadmap:before{content:"";position:absolute;left:15px;top:16px;bottom:16px;width:2px;background:var(--muted);opacity:.3}.roadmap-item{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start}.roadmap-dot{position:relative;z-index:1;width:32px;height:32px;margin-top:12px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:600;background:var(--card);color:var(--muted);border:2px solid var(--muted)}.roadmap-item.available .roadmap-dot{border-color:var(--accent);color:var(--accent)}.roadmap-item.passed .roadmap-dot{background:var(--success);border-color:var(--success);color:var(--on-status)}.chip{justify-self:start;font-size:13px;padding:2px 10px;border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--muted)}.chip.available{color:var(--accent)}.chip.passed{color:var(--success)}.theses .card{position:relative;padding-left:52px}.thesis-number{position:absolute;left:16px;top:14px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;background:var(--accent);color:var(--accent-text)}.quiz-card{margin-top:20px}.button{border:0;border-radius:var(--radius-sm);padding:12px 18px;font-weight:600;background:var(--accent);color:var(--accent-text);cursor:pointer}.button.secondary{background:var(--card);color:var(--text)}.button:disabled{opacity:.5;cursor:default}.actions{display:flex;gap:12px;margin-top:24px}.actions .button{flex:1}.progress{height:4px;border-radius:2px;background:var(--card);overflow:hidden;margin:8px 0 20px}.progress div{height:100%;background:var(--accent);transition:width .2s}.question-text{margin:0 0 16px}.options{display:grid;gap:10px}.options.two{grid-template-columns:1fr 1fr}.option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 14px;border-radius:var(--radius-sm);border:2px solid transparent;background:var(--card);cursor:pointer}.option.selected{border-color:var(--accent)}.checkbox{flex:none;width:20px;height:20px;border-radius:5px;border:2px solid var(--muted);display:grid;place-items:center;font-size:13px}.option.selected .checkbox{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.order-row{cursor:default}.order-number{flex:none;font-weight:600;color:var(--muted);width:18px}.order-text{flex:1}.icon-button{flex:none;width:36px;height:36px;border:0;border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer}.icon-button:disabled{opacity:.3}.match-row{flex-wrap:wrap;cursor:default}.match-row span{flex:1 1 140px}.match-row select{flex:1 1 140px;min-width:0;padding:8px;border-radius:8px;border:1px solid var(--muted);background:var(--bg);color:var(--text);font:inherit}.score{text-align:center;justify-items:center;padding:24px 16px}.score-value{font-size:44px;font-weight:700;line-height:1}.score.passed .score-value{color:var(--success)}.score.failed .score-value{color:var(--error)}.review-mark{font-size:14px;font-weight:600}.review.correct .review-mark{color:var(--success)}.review.wrong .review-mark{color:var(--error)}.explanation{color:var(--muted);font-size:15px}.group-link{margin-top:16px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chip-button{border:0;border-radius:var(--radius-pill);padding:6px 14px;font-size:14px;background:var(--card);cursor:pointer}.chip-button.active{background:var(--accent);color:var(--accent-text)}.card.risk{box-shadow:inset 3px 0 0 var(--error)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.segment{border:0;border-radius:var(--radius-sm);padding:8px 4px;font-size:14px;background:var(--bg-secondary);cursor:pointer}.segment.active.present{background:var(--success);color:var(--on-status)}.segment.active.absent{background:var(--error);color:var(--on-status)}.segment.active.excused{background:var(--accent);color:var(--accent-text)}.legal p{margin:0 0 12px}.legal-note{font-size:14px;color:var(--muted);border-left:3px solid var(--muted);padding-left:10px}.link-button{border:0;background:none;padding:0;color:var(--link);text-decoration:underline;cursor:pointer;margin-bottom:12px}.consent-check{display:flex;gap:10px;align-items:flex-start;margin-top:16px}.consent-check input{width:20px;height:20px;flex:none;margin-top:2px}.brand-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.brand-logo{width:32px;height:32px;border-radius:50%;flex:none}.brand-initials{display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--accent);color:var(--accent-text)}.brand-name{font-family:var(--font-heading);font-weight:600;color:var(--muted)}.roadmap-body{display:grid;gap:8px}.join-button{width:100%}.text-input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--muted);background:var(--bg);color:var(--text);font:inherit}.actions.compact{margin-top:4px}.homework-card{margin-top:16px}.chip.late{color:var(--error)}.video{width:100%;max-height:60vh;border-radius:var(--radius-sm);background:#000}.upload-progress{display:grid;gap:6px}.lecture-links{display:flex;gap:16px;flex-wrap:wrap}.homework-task{margin-top:12px}.homework-task summary{cursor:pointer;font-weight:600}.scale-legend{display:block;margin-top:16px}.criterion{gap:8px}.score-picker{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.score-picker .segment{padding:10px 4px;font-size:16px;font-weight:600}.segment.active{background:var(--accent);color:var(--accent-text)}.criterion .link-button{justify-self:start;margin-bottom:0}.markers{display:grid;gap:6px}.markers .option{background:var(--bg-secondary);padding:10px 12px;font-size:14px;align-items:flex-start}.field{display:grid;gap:8px;margin-top:20px}textarea.text-input{resize:vertical}.grade-total{margin-top:16px}.grade-result{display:grid;gap:8px}.grade-result .score{display:grid;gap:4px;padding:12px 0 4px}.grade-comment{margin:0;white-space:pre-line}.marker-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px;color:var(--muted)}.competency-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.competency-value{flex:none;font-weight:600}.chart{margin:16px 0 0;padding:12px 8px 8px;border-radius:var(--radius);background:var(--card)}.chart svg{display:block;width:100%;height:auto;touch-action:manipulation}.chart figcaption{display:block;padding:4px 8px 0}.chart-grid{stroke:var(--muted);stroke-opacity:.25;stroke-width:1}.chart-axis{fill:var(--muted);font-size:11px}.chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--accent);stroke:var(--card);stroke-width:2}.chart-crosshair{stroke:var(--muted);stroke-opacity:.5;stroke-dasharray:3 3}.chart-label{fill:var(--text);font-size:13px;font-weight:600}.filters.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}.filters.scroll .chip-button{flex:none;white-space:nowrap}.grade-result .card{background:var(--bg-secondary)}.manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.manage-grid .card-button{align-content:start}.button.wide{width:100%;margin-top:16px}.button.danger{background:var(--error);color:var(--on-status)}.invite-link{display:block;padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-secondary);font-size:13px;word-break:break-all;-webkit-user-select:all;user-select:all}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}select.text-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.owner-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.owner-row .link-button{margin-bottom:0}.list.compact{margin-top:4px;gap:8px}.section-toggle{display:block;margin-top:20px}.settings-card{margin-top:20px}.add-lecture{margin-top:16px}.card .button.secondary{background:var(--bg-secondary)}.card .link-button{justify-self:start;margin-bottom:0}.rich-text p{margin:0 0 8px}.rich-text ul{margin:0 0 8px;padding-left:20px}.hw-part{margin-top:24px}.part-title{margin-bottom:8px}.disclosure{margin:4px 0 8px}.disclosure .link-button{margin-bottom:6px}.info-table,.log-row-view{display:grid;gap:8px}.info-row{display:grid;gap:2px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--card);font-size:14px}.log-row-view{gap:2px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-secondary);font-size:14px;margin-bottom:6px}.disclosure .log-row-view{background:var(--card)}.progress-card{margin-top:16px}.log-editor{display:grid;gap:10px;margin-top:8px}.log-entry{gap:8px}.field.compact{margin-top:0;gap:4px}.submit-bar{display:grid;gap:8px;margin-top:28px}.submit-bar .button{width:100%}.notice-card{margin-top:12px;box-shadow:inset 3px 0 0 var(--accent)}.notice-card.success-card{box-shadow:inset 3px 0 0 var(--success)}.part-progress{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}.part-progress li.done{color:var(--success)}.answer-card{margin-top:12px}.log-entry-view{display:grid;gap:4px}.qa{display:grid;gap:2px;white-space:pre-line}.audio{width:100%}.question-list{margin:0;padding-left:20px}.member-form{display:grid;gap:10px}.action-list{display:grid;gap:10px;justify-items:start}.action-list .link-button{margin-bottom:0}.link-button.danger-link{color:var(--error)}.materials-card{margin:12px 0 16px}.materials-buttons{display:grid;gap:8px}.materials-manage{display:grid;gap:6px;margin-top:4px}.mentor-card{margin-top:12px;box-shadow:inset 3px 0 0 var(--accent)}.mentor-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.mentor-score{font-weight:700;color:var(--accent);white-space:nowrap}.mentor-label{margin-top:4px;font-size:13px;font-weight:600;color:var(--muted)}.mentor-list{margin:0;padding-left:20px;display:grid;gap:6px}.mentor-fix{display:block;margin-top:2px;color:var(--muted)}.mentor-question{margin:0;font-style:italic}.mentor-dialog{display:grid;gap:8px}.mentor-bubble{margin:0;padding:8px 12px;border-radius:12px;background:var(--bg-secondary);white-space:pre-wrap;max-width:90%}.mentor-bubble.mine{justify-self:end;background:var(--accent);color:var(--accent-text)}.mentor-summary{margin-top:4px;padding-top:8px;border-top:1px solid var(--muted)}.mentor-summary p{margin:4px 0 0}.mentor-talk{display:grid;gap:8px;margin-top:4px}
