html.hsm-personal-theme :is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,dialog[class*="hsm-"],.hsm-modal) { --hsm-primary:var(--hsm-personal-primary); --hsm-primary-dark:var(--hsm-personal-primary-dark); --hsm-success:var(--hsm-personal-success); --hsm-danger:var(--hsm-personal-danger); --hsm-warning:var(--hsm-personal-warning); }
html.hsm-personal-theme .hsm-learning { --learning-primary:var(--hsm-personal-primary); }
html.hsm-personal-theme :is(.hsm-button--primary,.hsm-learning-button--primary,.hsm-workspace-button.is-primary,.hsm-td-primary,.hsm-tt-primary,.hsm-exams-button--primary,.hsm-attendance button.primary,.hsm-composition button.primary,.hsm-composition-dialog button.primary) { background:var(--hsm-personal-primary)!important; border:1px solid var(--hsm-personal-primary-border)!important; color:var(--hsm-personal-primary-text)!important; }
html.hsm-personal-theme :is(.hsm-button--soft,.hsm-workspace-button.is-active) { background:var(--hsm-personal-primary-soft); color:var(--hsm-personal-primary-ink)!important; }
html.hsm-personal-theme :is(.hsm-message--success,.hsm-learning-announcer.is-success) { background:var(--hsm-personal-success-soft); color:var(--hsm-personal-success-ink); border-inline-start:3px solid var(--hsm-personal-success); }
html.hsm-personal-theme .hsm-message--warning { background:var(--hsm-personal-warning-soft); color:var(--hsm-personal-warning-ink); border-inline-start:3px solid var(--hsm-personal-warning); }
html.hsm-personal-theme :is(.hsm-message--error,.hsm-learning-announcer.is-error,.hsm-attendance [data-attendance-message].error) { background:var(--hsm-personal-danger-soft); color:var(--hsm-personal-danger-ink); border-inline-start:3px solid var(--hsm-personal-danger); }
html.hsm-personal-theme :is(.hsm-teacher-desk [data-teacher-message].is-error,.hsm-timetable [data-timetable-message].is-error,.hsm-tt-form-message.is-error,.hsm-composition-message.error,.hsm-composition-dialog .error,.hsm-exams-form-message,.hsm-learning-form-message) { color:var(--hsm-personal-danger-ink); }
.hsm-personal-preferences { display:grid; gap:14px; }
.hsm-person-avatar { position:relative; display:inline-grid; place-items:center; flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--hsm-personal-primary-soft,#eeecff); color:var(--hsm-personal-primary-ink,#4337c3); font-weight:700; overflow:hidden; vertical-align:middle; }
.hsm-person-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; }
.hsm-person-avatar img.is-loaded { opacity:1; }
.hsm-avatar>.hsm-person-avatar { width:100%; height:100%; border-radius:inherit; }
.hsm-person-avatar.hsm-profile-photo { width:96px; height:96px; font-size:30px; }
.hsm-preference-accordion { border:1px solid var(--hsm-border,#e4e8f0); border-radius:14px; background:#fff; min-width:0; }
.hsm-preference-accordion>summary { padding:14px; cursor:pointer; min-height:44px; overflow-wrap:anywhere; }
.hsm-preference-accordion>summary strong { margin-inline-end:12px; }
.hsm-preference-accordion>summary small { color:var(--hsm-muted,#6b7488); }
.hsm-preference-form { padding:0 14px 14px; }
.hsm-preference-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.hsm-preference-grid>label { display:grid; gap:7px; min-width:0; }
.hsm-preference-grid :is(input,select) { min-height:44px; width:100%; min-width:0; max-width:100%; border:1px solid #dbe2ec; border-radius:9px; background:#fff; color:#172033; font:inherit; }
.hsm-preference-grid input[type="color"] { padding:4px; cursor:pointer; }
.hsm-preference-form fieldset { min-width:0; padding:12px; border:1px solid #e4e8f0; border-radius:12px; margin:14px 0; }
.hsm-preference-notifications { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.hsm-preference-notifications label { display:flex; gap:9px; align-items:flex-start; min-height:44px; padding:8px; border:1px solid #edf0f5; border-radius:9px; min-width:0; cursor:pointer; }
.hsm-preference-notifications input { flex:0 0 auto; margin-top:4px; }
.hsm-preference-notifications small { display:block; margin-top:4px; color:#596579; line-height:1.7; }
.hsm-preference-help { margin-top:12px; color:var(--hsm-muted,#6b7488); }
.hsm-preference-help>summary { min-height:44px; cursor:pointer; line-height:2; }
.hsm-preference-help dt { margin-top:10px; font-weight:700; color:#172033; }
.hsm-preference-help dd { margin:4px 0 0; line-height:1.8; }
.hsm-preference-preview { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.hsm-preference-preview>span { padding:9px 12px; border-radius:9px; line-height:1.7; }
.hsm-preference-preview-button { background:var(--hsm-personal-primary); color:var(--hsm-personal-primary-text); }
.hsm-preference-preview [data-preference-preview-status="success"] { background:var(--hsm-personal-success-soft); color:var(--hsm-personal-success-ink); border-inline-start:3px solid var(--hsm-personal-success); }
.hsm-preference-preview [data-preference-preview-status="warning"] { background:var(--hsm-personal-warning-soft); color:var(--hsm-personal-warning-ink); border-inline-start:3px solid var(--hsm-personal-warning); }
.hsm-preference-preview [data-preference-preview-status="danger"] { background:var(--hsm-personal-danger-soft); color:var(--hsm-personal-danger-ink); border-inline-start:3px solid var(--hsm-personal-danger); }
.hsm-preference-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:16px; }
.hsm-preference-actions [role="status"] { overflow-wrap:anywhere; }
.hsm-task-summary { padding:14px; margin:14px 0; border:1px solid var(--hsm-border,#e4e8f0); border-radius:14px; background:#fff; }
.hsm-task-summary>header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:7px; margin-bottom:10px; }
.hsm-task-summary>header small { color:var(--hsm-muted,#6b7488); }
.hsm-task-summary-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.hsm-task-summary-metric { display:flex; justify-content:space-between; align-items:center; gap:6px; padding:10px; border-radius:10px; background:#f7f9fc; min-width:0; }
.hsm-task-summary-metric span { font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.hsm-task-summary-metric strong { font-size:18px; }
.hsm-task-summary-metric.is-overdue { border-inline-start:3px solid var(--hsm-personal-warning,#b45309); }
@media(max-width:900px) { .hsm-task-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { .hsm-preference-grid { gap:10px; } .hsm-preference-form { padding:0 10px 12px; } .hsm-preference-notifications { gap:8px; } .hsm-preference-notifications label { padding:7px; font-size:12px; } .hsm-task-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .hsm-preference-accordion>summary small { display:block; margin-top:5px; } }
.hsm-personal-notices summary{cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:10px;list-style:none}.hsm-personal-notices summary:before{content:'+';margin-inline-end:4px}.hsm-personal-notices details[open]>summary:before{content:'−'}.hsm-personal-notices summary strong{grid-column:1}.hsm-personal-notices summary small{grid-column:2;grid-row:1/3;align-self:start}.hsm-personal-notices summary span{grid-column:1/-1;overflow-wrap:anywhere;color:#526072}.hsm-personal-notice-body{padding:0 10px 10px}.hsm-personal-notices details{border:1px solid #e1e6ef;border-radius:10px}.hsm-personal-notices summary:focus-visible{outline:2px solid #5b4ee8;outline-offset:2px}
.hsm-personal-notices li{border:0;padding:0}
