@font-face{font-family:system-fa;src:local('Vazirmatn'),local('IRANSans'),local('Tahoma')}*{box-sizing:border-box}body{margin:0;background:#f5f7f8;color:#253b43;font-family:system-fa,Tahoma,Arial,sans-serif;font-size:14px;line-height:1.85}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button[aria-busy="true"]{cursor:wait}a{color:inherit;text-decoration:none}button{border:0}svg{width:20px;height:20px;flex-shrink:0;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1{font-size:26px;font-weight:700;letter-spacing:-.6px}h2{font-size:19px}h3{font-size:15px}small{font-size:12px;color:#7c8d95}.muted{color:#7c8d95}.en{direction:ltr;unicode-bidi:embed;font-family:Arial,sans-serif}.btn{display:inline-flex;gap:8px;justify-content:center;align-items:center;border:1px solid #dfe6e8;background:#fff;color:#30474f;border-radius:9px;padding:9px 15px;white-space:nowrap;line-height:1.5}.btn.primary{background:#168377;color:white;border-color:#168377}.btn.dark{background:#203f48;border-color:#203f48;color:#fff}.btn.danger{color:#b04e4e;border-color:#f0d7d7}.btn.link{border:0;background:none;padding:6px;color:#168377}.btn:hover{filter:brightness(.97)}.btn.small{padding:5px 9px;font-size:12px}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:6px;font-size:11px;background:#eef2f4;color:#6a7c84;white-space:nowrap}.pill.green{background:#e9f5ef;color:#378163}.pill.amber{background:#fff5e0;color:#9e7b30}.pill.blue{background:#eaf0fb;color:#567fba}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:#142c34;color:#a2b7bf;position:fixed;right:0;top:0;bottom:0;width:230px;padding:26px 16px 20px;display:flex;flex-direction:column;overflow:auto;z-index:30}.brand{display:flex;gap:12px;align-items:center;margin:0 10px 28px;color:white}.brandmark{width:42px;height:42px;background:#1f847c;color:#a6e7d3;display:grid;place-items:center;border-radius:12px}.brandmark svg{width:25px;height:25px}.brand strong{font-size:21px;letter-spacing:-.8px}.brand small{display:block;font-size:10px;color:#8ca6af;line-height:1.2;margin-top:4px}.side-label{font-size:10px;margin:13px 15px 7px;color:#69868f;letter-spacing:1px}.nav-item{width:100%;text-align:right;background:none;color:inherit;display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:8px;margin-bottom:3px;font-size:12px}.nav-item.active{color:#d4f8ed;background:#24454c}.nav-item.active svg{color:#7dd9ba}.nav-item:hover{background:#1e3c44}.nav-item .count{margin-right:auto;font-size:10px;background:#365258;color:#d0e3e5;padding:0 7px;border-radius:5px}.sidebar-bottom{margin-top:auto;padding-top:24px}.period-card{background:#1e3b43;border:1px solid #2b4b53;border-radius:10px;padding:14px;font-size:11px}.period-card strong{display:block;color:#d7e5e6;font-size:12px;margin-bottom:3px}.period-card .pill{margin-top:10px;background:#244f47;color:#b2dcc5}.main{grid-column:2;min-width:0}.topbar{height:76px;background:white;border-bottom:1px solid #e7ecee;display:flex;align-items:center;justify-content:space-between;padding:0 35px;gap:20px}.topbar-title{color:#819198;font-size:11px}.topbar-title b{color:#475e66;font-weight:400}.topbar-actions{display:flex;align-items:center;gap:15px}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e7f2ef;color:#308479;font-size:12px;font-weight:700}.profile{display:flex;gap:9px;align-items:center}.profile strong{font-size:11px;display:block}.profile small{display:block;font-size:9px}.content{padding:30px 35px 36px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.page-heading p{font-size:12px;color:#7d9097;margin-top:4px}.eyebrow{font-size:10px;color:#168377;display:flex;gap:6px;align-items:center;margin-bottom:6px}.hero{display:grid;grid-template-columns:1fr auto;background:#e7f2ee;border:1px solid #d4e7df;border-radius:13px;padding:22px 25px;margin-bottom:24px;gap:20px;align-items:center}.hero h2{font-size:19px;color:#23564f;margin-bottom:7px}.hero p{color:#6d8c82;font-size:12px;max-width:650px}.hero-art{display:flex;align-items:end;gap:5px;direction:ltr;height:64px;margin:0 20px}.hero-art span{width:17px;background:#acd4c6;border-radius:4px}.hero-art span:nth-child(2n){background:#659d8e}.hero-art span:nth-child(3){background:#2e7a68}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat{background:white;border:1px solid #e3e9ec;border-radius:12px;padding:18px 20px;text-align:right;color:inherit}.stat-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7a8c94}.stat-icon{display:grid;place-items:center;width:33px;height:33px;background:#f0f6f4;border-radius:9px;color:#4a9688}.stat-value{font-size:29px;font-weight:700;margin:10px 0 2px;line-height:1.3}.stat-foot{font-size:10px;color:#91a0a7}.split{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:20px}.card{background:white;border:1px solid #e3e9ec;border-radius:12px;overflow:hidden;margin-bottom:20px}.card-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #edf1f3;gap:10px}.card-head h2{font-size:14px}.card-body{padding:20px}.progress-row{display:flex;gap:10px;align-items:center;margin-bottom:17px}.progress-row:last-child{margin:0}.step-no{width:28px;height:28px;background:#e6f4ed;color:#328764;border-radius:50%;display:grid;place-items:center;font-size:10px}.step-no.wait{background:#f0f2f4;color:#90a0a6}.progress-row b{font-size:11px;display:block}.progress-row small{font-size:10px}.progress-row .pill{margin-right:auto}.notice{background:#fff8e9;border:1px solid #f1e6cc;padding:13px 17px;border-radius:9px;color:#967b3c;font-size:11px;margin-bottom:20px;display:flex;gap:10px;align-items:start}.notice.info{background:#f0f5fa;border-color:#dce7f0;color:#678296}.notice svg{width:17px;height:17px;margin-top:3px}.toolbar{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #edf1f3}.search-box{position:relative;max-width:320px;width:100%}.search-box svg{position:absolute;right:11px;top:11px;width:17px;height:17px;color:#98a8ae}.search-box input{width:100%;border:1px solid #e2e9ec;border-radius:8px;padding:8px 36px 8px 12px;background:#fafcfc;color:#344c54;font-size:11px}.filters{display:flex;gap:8px;align-items:center;font-size:11px}.filters select{border:1px solid #e1e7ea;border-radius:7px;padding:7px;background:white;color:#667d85;font-size:11px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:right;font-size:11px}th{background:#fafcfc;color:#8a9aa1;font-weight:400;white-space:nowrap;padding:12px 20px;border-bottom:1px solid #e9eef0}td{padding:14px 20px;border-bottom:1px solid #eef2f4;vertical-align:middle;max-width:420px}tr:last-child td{border-bottom:0}tr:hover td{background:#fbfdfc}.person-cell{display:flex;align-items:center;gap:9px}.person-cell strong{display:block;font-size:11px}.person-cell small{font-size:10px}.person-cell .avatar{width:30px;height:30px;font-size:10px}.row-actions{display:flex;gap:5px;white-space:nowrap}.empty{text-align:center;color:#8a9da5;padding:40px!important}.table-footer{padding:13px 20px;font-size:10px;color:#94a4ab;background:#fdfefe;border-top:1px solid #edf1f3;display:flex;justify-content:space-between}.capacity{display:inline-block;width:55px;height:4px;background:#edf1f2;border-radius:5px;margin-right:7px;vertical-align:middle}.capacity i{display:block;height:4px;background:#7bb6a5;border-radius:5px}.equip{display:inline-flex;align-items:center;gap:4px;color:#769084;margin:0 3px;font-size:10px}.week-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-mini{text-align:center;border:1px solid #e5edeb;border-radius:8px;padding:13px 3px}.day-mini strong{font-size:10px;font-weight:400;display:block}.day-mini b{font-size:21px;color:#499581;display:block;margin:8px 0}.day-mini small{font-size:8px}.activity{display:flex;gap:10px;margin-bottom:15px;font-size:11px}.activity .dot{margin-top:8px;background:#8cb9aa}.activity time{display:block;font-size:9px;color:#a0adb3}.phase-footer{display:flex;justify-content:space-between;color:#a5b1b7;font-size:9px;padding-top:5px}.availability-grid{min-width:690px;table-layout:fixed}.availability-grid th,.availability-grid td{padding:12px 8px;text-align:center}.availability-grid td:first-child,.availability-grid th:first-child{width:95px}.slot-label{display:block;cursor:pointer}.slot-label input{appearance:none;width:25px;height:25px;border:1px solid #dce6e5;background:#f7faf9;border-radius:7px;vertical-align:middle;cursor:pointer}.slot-label input:checked{background:#168377;border-color:#168377;position:relative}.slot-label input:checked:after{content:'✓';color:white;position:absolute;inset:0;font-size:17px;line-height:23px;text-align:center}.slot-label input:disabled{opacity:.45;cursor:not-allowed}.slot-meta{font-size:9px;color:#9aaaaf;margin-top:3px}.availability-actions{padding:20px;display:flex;align-items:center;gap:12px;border-top:1px solid #e8eeef}.availability-actions small{margin-right:auto;font-size:10px}.details{font-size:11px;line-height:2.4;display:flex;flex-wrap:wrap;gap:6px}.detail-chip{background:#f1f6f5;padding:3px 9px;border-radius:6px;color:#4b7c6d;white-space:nowrap}.report-summary{padding:18px;background:#f9fbfa;font-size:12px;display:flex;gap:22px;flex-wrap:wrap;border-bottom:1px solid #e9efeb}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#617982}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid #dae4e7;border-radius:8px;background:white;color:#344d57;font-size:12px}.field textarea{min-height:80px;resize:vertical}.field.checkbox{flex-direction:row;align-items:center;gap:8px}.field.checkbox input{width:16px;height:16px;accent-color:#168377}.form-actions{display:flex;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid #edf1f3}.form-error{color:#b25151;font-size:11px;min-height:24px;margin-top:10px}dialog{border:0;border-radius:14px;padding:26px;width:min(620px,92vw);box-shadow:0 20px 80px #122c3440;color:#30464f}dialog::backdrop{background:#142c3466;backdrop-filter:blur(2px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.modal-heading h2{font-size:18px}.close{background:#f1f5f5;color:#7b9198;border-radius:6px;width:29px;height:29px}.login-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-brand{background:#142c34;color:white;padding:8vh 8vw;display:flex;flex-direction:column;justify-content:center}.login-brand .brand{margin:0 0 55px}.login-brand h1{font-size:40px;line-height:1.75;max-width:410px}.login-brand p{color:#8ca9ae;max-width:400px;margin-top:20px;font-size:13px;line-height:2.2}.login-calendar{margin-top:50px;display:grid;grid-template-columns:repeat(6,1fr);gap:7px;max-width:350px}.login-calendar span{height:43px;border:1px solid #335158;border-radius:7px;background:#1c3841}.login-calendar span:nth-child(3n){background:#32695d;border-color:#428671}.login-calendar span:nth-child(4n){background:#aecbb2;border-color:#aecbb2}.login-form-side{padding:45px;display:flex;align-items:center;justify-content:center;background:#fff}.login-form{width:100%;max-width:380px}.login-form h2{font-size:24px;margin-bottom:8px}.login-form>p{font-size:12px;color:#90a0a7;margin-bottom:28px}.login-form .field{margin-bottom:14px}.login-form .btn{width:100%;padding:13px}.demo-accounts{border-top:1px solid #e5ebed;margin-top:30px;padding-top:22px}.demo-accounts small{display:block;font-size:10px;margin-bottom:12px}.demo-buttons{display:flex;gap:10px}.demo-buttons .btn{font-size:11px;padding:10px}.demo-banner{background:#fff5db;color:#8a783c;font-size:10px;padding:7px 16px;text-align:center;border-bottom:1px solid #ecdfbc}.mobile-menu{display:none;background:none;color:#51717a;padding:4px}.guide-list{padding-right:20px;font-size:12px;line-height:2.6}.settings-layout{max-width:820px}.read-only-profile{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px}.read-only-profile label{font-size:10px;color:#93a3a9;display:block}.read-only-profile b{font-size:12px;font-weight:400}.status-bar{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:20px;font-size:11px}.csv-note{font-size:10px;color:#8a9da4}.list-rule td:nth-child(2){min-width:320px}#toast{position:fixed;bottom:24px;left:24px;z-index:100;background:#203f48;color:white;padding:12px 20px;border-radius:10px;font-size:12px;box-shadow:0 5px 30px #16313b30;display:none;max-width:calc(100vw - 40px)}#toast.error{background:#98524f}.bottom-mobile{display:none}.unsaved{color:#b59443;font-size:11px}.settings-badge{padding:10px 13px;border:1px dashed #c5d8d2;background:#f5faf7;font-size:11px;border-radius:8px;margin-bottom:18px}.week-mini .day-mini:last-child{background:#fcfaf4}.form-help{font-size:10px;color:#92a0a7;margin-top:4px}@media(min-width:1500px){.content{padding:40px 50px}.topbar{padding:0 50px}.split{grid-template-columns:2fr 1fr}}@media(max-width:1100px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{width:205px}.content{padding:25px 22px}.topbar{padding:0 22px}.split{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:15px}.topbar-actions>small{display:none}}@media(max-width:760px){.shell{display:block}.sidebar{transform:translateX(100%);transition:transform .2s}.sidebar.open{transform:translateX(0);box-shadow:-20px 0 80px #12323b55;width:230px}.main{width:100%}.mobile-menu{display:block}.topbar{height:65px;padding:0 15px}.content{padding:22px 15px}.stats{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:25px}.page-heading{align-items:start}.page-heading h1{font-size:22px}.page-heading p{font-size:10px}.page-heading .btn{padding:8px 10px;font-size:11px}.hero{padding:18px}.hero-art{display:none}.hero h2{font-size:16px}.hero p{font-size:10px}.toolbar{flex-wrap:wrap;padding:12px}.search-box{max-width:none}.filters{width:100%;justify-content:space-between}.form-grid{grid-template-columns:1fr}.field.full{grid-column:1}.login-layout{display:block}.login-brand{display:none}.login-form-side{min-height:100vh;padding:30px}.availability-actions{flex-wrap:wrap;padding:15px}.availability-actions small{width:100%;margin:0}.week-mini{grid-template-columns:repeat(4,1fr)}th,td{padding:11px 13px}.read-only-profile{grid-template-columns:1fr 1fr}.phase-footer{display:block}.phase-footer span{display:block}.profile small{display:none}.topbar-title{font-size:10px}.card-head{padding:15px}.status-bar{gap:10px}}
/* Phase two: decision workflow, retaining the first release's visual language. */
.heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.decision-status{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#eaf4ee;border:1px solid #d5e8dc;border-radius:12px;padding:20px 22px;margin-bottom:22px}.decision-status.stale{background:#fff8eb;border-color:#eddfc3}.decision-status p{font-size:11px;margin:8px 0 5px;color:#5e8376}.decision-status.stale p{color:#947940}.decision-status small{font-size:10px}.decision-table{font-size:10px;min-width:950px}.decision-table td{padding:13px 14px}.decision-table th{padding:12px 14px}.decision-table td:nth-child(1){min-width:170px}.decision-table td:nth-child(2){max-width:230px;min-width:180px}.decision-table td:nth-child(4){min-width:160px}.decision-table td:nth-child(5){min-width:110px}.decision-table .person-cell strong{font-size:10px}.decision-table small{font-size:9px}.decision-status .btn:disabled{cursor:not-allowed}.decision-table .btn:disabled{cursor:not-allowed}@media(max-width:760px){.decision-status{flex-direction:column;align-items:start;padding:16px}.heading-actions{gap:6px}.heading-actions .btn{padding:7px 9px;font-size:10px}.page-heading .heading-actions{max-width:150px;justify-content:flex-end}}
.week-wrap{overflow:auto;max-height:930px}.week-layout{display:grid;width:max-content;min-width:100%;direction:rtl}.week-header{height:51px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:1px solid #dce7e5;border-left:1px solid #e5edeb;background:#f8fbfa;position:sticky;top:0;z-index:5;font-size:11px}.week-header small{font-size:9px}.week-times{height:816px;background:#f8fbfa}.week-times div{height:68px;border-bottom:1px solid #e7eeeb;text-align:center;font-size:10px;padding-top:8px;color:#7f969f}.week-day{position:relative;height:816px;border-left:1px solid #e5edeb;background:repeating-linear-gradient(to bottom,#fff 0px,#fff 67px,#e8efeb 67px,#e8efeb 68px)}.sport-day.week-day{background:repeating-linear-gradient(to bottom,#fdfbf5 0px,#fdfbf5 67px,#ece9df 67px,#ece9df 68px)}.sport-day.week-header{background:#f9f5e9}.week-event{position:absolute;text-align:right;overflow:hidden;background:#e5f3ee;border:1px solid #c5dfd5;border-right:3px solid #248c73;border-radius:7px;padding:6px 8px;display:flex;flex-direction:column;gap:2px;color:#356a5c;line-height:1.55;box-shadow:0 1px 2px #122b3310}.week-event strong{font-size:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-shrink:0}.week-event span{font-size:9px}.week-event small{font-size:9px;color:#73988c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-event:hover{background:#d8eee4}.week-event.sport-event{background:#f8eed7;border-color:#e9d8b0;border-right-color:#bca051;color:#8e7836}.week-event.sport-event small{color:#9f8c57}@media print{@page{size:landscape;margin:10mm}body{background:white}.sidebar,.topbar,.demo-banner,.page-heading .heading-actions,.toolbar,#toast,.form-actions,.notice,.table-footer,.phase-footer{display:none!important}.shell{display:block}.main{width:100%}.content{padding:0;max-width:none}.card{border:0;overflow:visible}.week-wrap{max-height:none;overflow:visible}.week-layout{zoom:.72}.week-event{-webkit-print-color-adjust:exact;print-color-adjust:exact}.page-heading{margin-bottom:10px}.status-bar{margin-bottom:10px}.week-header{position:static}}
.week-event.short-event{padding:4px 6px;gap:1px}.week-event.short-event strong{-webkit-line-clamp:1;font-size:9px;line-height:1.4}.week-event.short-event span,.week-event.short-event small{font-size:8px;line-height:1.3}
.field-title{display:flex;align-items:center;gap:8px;min-height:26px}.field-title label{flex:1}.pref-help-trigger{flex:0 0 21px;width:21px;height:21px;display:inline-grid;place-items:center;border:1px solid #b8cbc6;border-radius:50%;background:#edf5f2;color:#367e6d;font-family:Arial,sans-serif;font-weight:700;font-size:13px;padding:0;line-height:1;cursor:help}.pref-help-trigger:hover,.pref-help-trigger:focus-visible{background:#168377;color:white;border-color:#168377}.preference-help-popover{position:fixed;width:min(330px,calc(100vw - 24px));z-index:120;background:#203f48;color:#eff8f4;border:1px solid #365c66;border-radius:10px;padding:13px 16px;box-shadow:0 8px 35px #142c3440;font-size:11px;line-height:2;direction:rtl;text-align:right}.preference-help-popover[hidden]{display:none}.preference-help-popover strong{display:block;margin-bottom:5px;font-size:12px;color:#bde9d8}.preference-help-popover p{margin:0}.daily-day-controls{padding:18px 20px;border-bottom:1px solid #e4ece9;background:#fcfefd}.daily-day-heading{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:14px;text-align:center}.daily-day-heading h2{font-size:18px}.daily-day-heading small{font-size:10px}.daily-day-heading .btn:disabled{cursor:default}.daily-tabs{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.daily-tab{padding:7px 15px;background:#f1f5f4;color:#6e8a82;border:1px solid #e0e9e5;border-radius:8px;font-size:11px}.daily-tab.active{background:#168377;border-color:#168377;color:white}.daily-tab:hover{filter:brightness(.97)}.daily-timetable{min-width:1024px;direction:rtl}.daily-grid{display:grid;min-width:1024px}.daily-head{position:sticky;top:0;z-index:15;height:54px;background:#f2f7f5}.daily-room{grid-column:1;grid-row:1;position:sticky;right:0;z-index:10;background:#f6faf8;border-left:1px solid #dbe6e0;border-bottom:1px solid #e1eae5;display:flex;flex-direction:column;justify-content:center;padding:12px 18px;font-size:12px;text-align:right}.daily-room strong{font-size:14px;color:#466f61}.daily-room small{font-size:10px}.daily-corner{z-index:20;font-size:12px;font-weight:700;background:#e9f2ed}.daily-time{display:flex;align-items:center;justify-content:center;border-left:1px solid #dbe6e0;border-bottom:1px solid #dbe6e0;font-size:12px;color:#618674}.daily-row{height:102px;position:relative}.daily-hour-cell{background:#fff;border-left:1px solid #dbe6e0;border-bottom:1px solid #e5ede8}.daily-hour-cell.subhour{border-left:1px dashed #edf1ee}.daily-row:nth-child(2n) .daily-hour-cell{background:#fcfefd}.daily-event-cell{z-index:2;min-width:0;min-height:0;padding:6px 4px}.daily-event{display:flex;flex-direction:column;justify-content:center;gap:3px;width:100%;height:100%;min-width:0;text-align:right;background:#e4f3ec;border:1px solid #c1ded0;border-right:3px solid #268e70;border-radius:8px;padding:7px 10px;color:#326e59;line-height:1.6;overflow:hidden}.daily-event strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.daily-event span{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-event small{font-size:9px;color:#6e9584;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-event:hover{background:#d5eddf}.daily-event.short-event{padding:5px 5px;gap:2px}.daily-event.short-event strong{font-size:10px;-webkit-line-clamp:2}.daily-event.short-event span,.daily-event.short-event small{font-size:8px}.daily-event.sport-event{background:#faf0d9;border-color:#e6d4a7;border-right-color:#bfa052;color:#8c763b}@media(max-width:760px){.daily-day-controls{padding:15px 10px}.daily-day-heading{gap:15px}.daily-tab{padding:6px 9px;font-size:10px}.daily-day-heading h2{font-size:17px}}@media print{.daily-tabs,.daily-day-heading .btn,.pref-help-trigger,.preference-help-popover{display:none!important}.daily-day-controls{padding:8px}.daily-day-heading{margin-bottom:0}.daily-timetable{zoom:.8}.daily-head{position:static}.daily-room{position:static}.daily-event{-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-row{break-inside:avoid;page-break-inside:avoid}}
.catalog-controls{display:flex;gap:12px;flex-wrap:wrap;padding:18px 22px;background:#f8fbf9;border-top:1px solid #e3ece7;border-bottom:1px solid #e3ece7;align-items:flex-end}.catalog-filter{display:flex;flex-direction:column;gap:6px;flex:1 1 145px;min-width:140px;max-width:260px;font-size:10px;color:#587d6f}.catalog-filter select{width:100%;height:38px;min-width:0;max-width:100%;background:#fff;border:1px solid #d7e4dc;border-radius:8px;padding:0 9px;font-family:inherit;font-size:11px;color:#365f50}.catalog-filter.group-mode{flex-basis:190px}.catalog-group-label{font-size:12px;font-weight:700;color:#447761;align-self:center}.catalog-group-tools,.slot-matrix-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 22px;font-size:10px;color:#708a7e}.catalog-group{border-top:1px solid #e1eae5}.catalog-group>summary{display:flex;align-items:center;gap:12px;padding:17px 22px;background:#f7fbf8;cursor:pointer;list-style:none}.catalog-group>summary::-webkit-details-marker{display:none}.catalog-group>summary:hover{background:#edf6f0}.catalog-chevron{font-size:20px;line-height:1;color:#24856a;transform:rotate(90deg);transition:transform .15s}.catalog-group[open]>summary .catalog-chevron{transform:rotate(0)}.catalog-group-title{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.catalog-group-title strong{font-size:12px;color:#386c56}.catalog-group-title small{font-size:10px;color:#769183}.catalog-group-meta{display:flex;flex-direction:column;gap:4px;text-align:left;font-size:10px;color:#6a8b7a}.catalog-group table{min-width:820px}.university-slot-grid{min-width:900px;width:100%;table-layout:fixed}.university-slot-grid th{font-size:11px;text-align:center;white-space:normal}.university-slot-grid th:first-child{width:112px;background:#f0f6f2;position:sticky;right:0;z-index:3}.university-slot-grid td{padding:9px!important;vertical-align:top;border:1px solid #e6eee8;text-align:center}.university-slot-toggle{width:100%;min-height:72px;border:1px solid #c6e3d2;border-radius:9px;background:#eaf6ee;color:#317151;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-family:inherit;cursor:pointer;padding:10px 5px}.university-slot-toggle:hover{background:#d6edde;border-color:#89bda0}.university-slot-toggle:focus-visible,.catalog-group>summary:focus-visible{outline:2px solid #168377;outline-offset:3px}.university-slot-toggle:disabled{cursor:wait;opacity:.65}.university-slot-toggle .slot-state{display:flex;gap:6px;align-items:center;font-size:11px;font-weight:700}.university-slot-toggle small{font-size:9px;color:inherit}.slot-disabled .university-slot-toggle{background:#f1f3f2;border-color:#d5dcd8;color:#88958e}.slot-disabled .university-slot-toggle:hover{background:#e7ebe8;color:#566d60}.slot-disabled .dot{background:#aab5ae}.slot-cell-actions{display:flex;justify-content:center;gap:12px;margin-top:4px}.slot-cell-actions .btn{padding:4px 5px}.slot-cell-actions svg{width:13px;height:13px}.slot-absent{color:#b6c3bb;background:#fafcfb;vertical-align:middle!important}.slot-matrix-tools .catalog-filter{max-width:180px}.slot-label:has(input:disabled){background:#f2f4f3;color:#99a59e}.slot-label:has(input:disabled) .slot-meta{color:#99a59e}@media(max-width:760px){.catalog-controls{padding:14px;gap:10px}.catalog-filter{max-width:none;flex-basis:calc(50% - 10px);min-width:130px}.catalog-group>summary{padding:15px 14px;gap:9px;align-items:flex-start}.catalog-group-meta{max-width:140px;font-size:9px}.catalog-group-tools,.slot-matrix-tools{padding:12px 14px}}@media print{.catalog-controls,.catalog-group-tools button,.slot-cell-actions{display:none!important}.university-slot-grid{min-width:0}.university-slot-grid th:first-child{position:static}.catalog-group>summary{break-after:avoid}.catalog-group table{min-width:0}}
#editor.assignment-dialog{width:min(930px,calc(100vw - 30px));max-width:930px}.assignment-steps{display:flex;gap:10px;margin:4px 0 22px}.assignment-steps span{flex:1;text-align:center;padding:9px;border-radius:8px;background:#f1f5f2;color:#8ba092;font-size:11px}.assignment-steps .current{background:#e0f1e6;color:#287451;font-weight:700}.assignment-course-toolbar{display:flex;gap:20px;align-items:flex-end;justify-content:space-between;margin:18px 0 10px}.assignment-course-toolbar .field{flex:1;margin:0}.assignment-course-toolbar>span{padding-bottom:12px;font-size:11px;color:#4c8368;white-space:nowrap}.assignment-course-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:390px;overflow:auto;padding:3px}.assignment-course-choice{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid #dce8df;border-radius:9px;background:#fafdfb;cursor:pointer}.assignment-course-choice:has(input:checked){background:#e5f3e9;border-color:#8dc2a0}.assignment-course-choice input{flex:0 0 auto;margin-top:3px;accent-color:#26875d}.assignment-course-choice strong{display:block;font-size:11px;line-height:1.8;color:#3d6c50}.assignment-course-choice small{display:block;font-size:9px;margin-top:5px;color:#819b89}.assignment-teacher-results{list-style:none;padding:3px;margin:10px 0 22px;max-height:230px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assignment-teacher-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:right;width:100%;height:100%;padding:12px;border:1px solid #dce8df;border-radius:9px;background:#fafdfb;color:#3f7054;font-family:inherit;cursor:pointer}.assignment-teacher-choice strong{display:block;font-size:11px}.assignment-teacher-choice small{display:block;font-size:9px;margin-top:5px;color:#829c8b;line-height:1.7}.assignment-teacher-choice>span:last-child{font-size:10px;flex:0 0 auto}.assignment-teacher-choice.selected{background:#e2f1e7;border-color:#84bc99}.assignment-teacher-choice:focus-visible{outline:2px solid #168377;outline-offset:2px}.assignment-teacher-selected{font-size:12px;font-weight:700;color:#40845d;padding:12px 0}.assignment-config-list{display:flex;flex-direction:column;gap:18px}.assignment-course-config{padding:18px;border:1px solid #d8e7dc;border-radius:10px;min-width:0;margin:0}.assignment-course-config legend{padding:0 8px;font-size:12px;font-weight:700;color:#407051}.assignment-course-config legend small{font-size:10px;font-weight:400;color:#8ba08f;margin-right:8px}.assignment-course-warning{font-size:11px;color:#a87927;line-height:1.9;margin-bottom:10px}.assignment-course-warning:empty{display:none}.assignment-course-config textarea{min-height:60px}@media(max-width:700px){.assignment-course-list,.assignment-teacher-results{grid-template-columns:1fr}.assignment-course-toolbar{gap:10px}.assignment-course-toolbar>span{font-size:10px}.assignment-course-config{padding:14px}.assignment-steps span{font-size:10px}}
.decision-table>thead th{padding:11px 14px}.decision-table>tbody>tr>td{padding:10px 14px}.teacher-assignment-row td{vertical-align:middle}.teacher-assignment-row .person-cell strong{font-size:12px}.teacher-assignment-row small{font-size:9px}.teacher-course-detail[hidden]{display:none}.decision-table>tbody>.teacher-course-detail>td{padding:0 16px 12px;background:#f5faf6}.teacher-courses-table{min-width:880px;border:1px solid #dce9df;border-radius:8px;background:white}.teacher-courses-table th,.teacher-courses-table td{padding:9px 10px;font-size:10px}.teacher-courses-table td small{font-size:9px}.assignment-course-actions{flex-wrap:wrap;gap:5px}.assignment-course-actions .btn{font-size:10px;padding:5px 8px}.daily-row{height:82px}.daily-head{height:42px}.daily-room{padding:8px 14px}.daily-event-cell{padding:4px 3px}.daily-event{padding:5px 8px;gap:2px;line-height:1.4}.daily-event strong{font-size:10px}.daily-event span{font-size:9px}.daily-event small{font-size:9px}.daily-event.short-event{padding:4px;gap:2px}.daily-event.short-event strong{font-size:9px}.daily-event.short-event span,.daily-event.short-event small{font-size:8px}

.daily-event{line-height:1.2}
#editor.import-dialog{width:min(1050px,calc(100vw - 30px));max-width:1050px}.import-section-title{font-size:13px;margin:22px 0 12px;color:#37745b}.import-mappings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.import-mappings .field{font-size:10px}.import-mappings select{font-size:10px}.import-preview-table{max-height:370px;overflow:auto;margin-top:12px}.import-preview-table th{position:sticky;top:0;z-index:1}.import-preview-table td{vertical-align:top;padding:10px 12px;font-size:11px}.import-record-details{padding:9px 0;font-size:10px;line-height:1.9}.import-warning{color:#aa7929;font-size:10px;line-height:1.8}.import-preview-table details summary{cursor:pointer;font-size:10px;color:#367a5b}.import-dialog input[type=file]{padding:9px;background:#f7fbf8}.import-dialog .status-bar{margin:18px 0 6px}@media(max-width:700px){.import-mappings{grid-template-columns:1fr}.import-preview-table table{min-width:650px}}

.daily-event.locked-event { outline: 2px solid #b58b35; outline-offset: -2px; }
.daily-event.locked-event::after { content: "قفل"; position: absolute; inset-inline-end: 5px; top: 3px; font-size: 9px; color: #7b591e; }
.daily-event { position: relative; }

.daily-event { text-align: center; align-items: center; justify-content: center; }
.daily-event strong { font-weight: 900; }
.daily-room, .daily-time { text-align: center; justify-content: center; font-weight: 800; }
.daily-head .daily-room, .daily-head .daily-time, .daily-row .daily-room strong { font-weight: 900; }
.degree-badge { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; }
.degree-associate { color: #167047; }
.degree-bachelor { color: #b83232; }
.generation-status { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: #4b6258; }
.generation-status:has(span:empty):has(button[hidden]) { display: none; }

.daily-event strong, .daily-event span, .daily-event small { width: 100%; max-width: 100%; text-align: center; }

.planning-choices-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 18px; }
.planning-choice { border: 1px solid #dce7e1; border-radius: 12px; padding: 16px; min-width: 0; }
.planning-choice legend { font-size: 14px; font-weight: 800; padding: 0 5px; }
.planning-choice > p { font-size: 11px; color: #69877a; margin-bottom: 12px; }
.planning-choice-options { display: grid; gap: 9px; }
.planning-option { display: flex; align-items: flex-start; gap: 9px; border: 1px solid #e0e9e4; border-radius: 9px; padding: 12px; cursor: pointer; background: #fff; }
.planning-option:has(input:checked) { background: #edf8f1; border-color: #268e70; }
.planning-option input { margin-top: 3px; accent-color: #268e70; flex: 0 0 auto; }
.planning-option strong { display: block; font-size: 12px; }
.planning-option small { display: block; margin-top: 5px; font-size: 10px; color: #637d70; line-height: 1.8; }
.weekly-edit-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px 18px; background: #edf8f1; border-bottom: 1px solid #dce7e1; font-size: 11px; }
#weekly-edit-status { flex-basis: 100%; min-height: 0; color: #286e53; }
#weekly-edit-status:empty { display: none; }
#weekly-edit-status.edit-error { color: #b33434; }
.daily-event-cell.has-edit-tools { display: flex; flex-direction: column; gap: 1px; }
.has-edit-tools .daily-event { flex: 1; min-height: 0; height: auto; gap: 1px; padding: 3px 5px; }
.has-edit-tools .daily-event strong { -webkit-line-clamp: 1; }
.daily-edit-tools { display: flex; align-items: center; justify-content: space-between; gap: 2px; height: 17px; flex: 0 0 17px; }
.daily-edit-tools button { border: 1px solid #c2d8cc; border-radius: 4px; background: #fff; color: #356750; font-size: 8px; padding: 0 3px; line-height: 15px; cursor: pointer; }
.daily-edit-tools .is-locked { background: #fff2d6; border-color: #d1a953; }
.daily-event-cell[draggable="true"] { cursor: grab; }
.daily-event-cell[draggable="true"]:active { cursor: grabbing; }
.daily-event.locked-event::after { display: none; }
.daily-hour-cell.drop-allowed { background: #d8f3df !important; box-shadow: inset 0 0 0 1px #80bd91; }
.daily-hour-cell.drop-denied { background: #faf0ed !important; }
.drop-hover { box-shadow: inset 0 0 0 2px #218b57 !important; }
.daily-tab.drag-day-allowed { outline: 2px dashed #51a66e; outline-offset: 1px; }
@media(max-width:800px){.planning-choices-grid{grid-template-columns:1fr}.weekly-edit-bar{padding:12px}}
@media print {.weekly-edit-bar,.daily-edit-tools{display:none!important}.daily-event-cell.has-edit-tools{display:block}.has-edit-tools .daily-event{height:100%}}

/* Visible controls and touch destinations, release 3.9 */
.daily-edit-tools{height:auto;flex:0 0 auto;flex-wrap:wrap;justify-content:center;gap:3px}
.daily-edit-tools button{min-height:28px;font-size:10px;line-height:1.4;padding:3px 5px}
.daily-row:has(.has-edit-tools){height:102px}
.daily-hour-cell[role=button]{cursor:pointer}
.daily-hour-cell[role=button]:focus-visible{outline:3px solid #168377;outline-offset:-3px;z-index:3}
.planning-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.planning-presets button{text-align:right;padding:16px;background:#f7fbf8;border:2px solid #dce7e1;border-radius:12px;color:#285b43;font:inherit;cursor:pointer}
.planning-presets button[aria-pressed=true]{border-color:#168377;background:#e6f5eb}
.planning-presets strong,.planning-presets small{display:block;line-height:1.9}
.planning-presets small{font-size:11px}
.planning-details summary{padding:14px;cursor:pointer;background:#f4f7f5;border-radius:8px;font-weight:bold}
.planning-summary{padding:12px;border-right:3px solid #168377;line-height:2}
@media(max-width:650px){.planning-presets{grid-template-columns:1fr}.daily-edit-tools button{min-height:32px}}

.weekly-session-list:empty{display:none}.weekly-session-list{padding:12px 18px;border-bottom:1px solid #dce7e1}.weekly-session-list-title{font-size:12px;font-weight:700;margin-bottom:8px}.weekly-session-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dce7e1;padding:10px;border-radius:8px;margin:6px 0;background:#f9fcfa}.weekly-session-item strong,.weekly-session-item small{display:block;line-height:1.8}.weekly-session-item small{font-size:10px;color:#638471}.weekly-session-item .daily-edit-tools button{min-height:38px;font-size:12px;padding:6px 10px}@media(max-width:650px){.weekly-session-item{flex-direction:column;align-items:stretch}.weekly-session-item .daily-edit-tools{justify-content:flex-start}}@media print{.weekly-session-list{display:none}}

#editor.history-dialog{width:min(1050px,calc(100vw - 24px));max-width:1050px}.history-dialog td small{display:block;font-size:10px;margin-top:4px;line-height:1.7}.history-version-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.history-version-summary>div{padding:12px;background:#f4f8f5;border:1px solid #dce7e1;border-radius:8px}.history-version-summary small{display:block;font-size:10px;margin-top:8px}.history-dialog .toolbar .field{margin:0;flex:1}.history-dialog .form-actions .form-help{width:100%;line-height:1.9}@media(max-width:650px){.history-version-summary{grid-template-columns:1fr}.history-dialog .toolbar{flex-wrap:wrap}}

/* Readable time headers and aligned faculty filters. */
.daily-head .daily-time,.university-slot-grid thead th,.presence-grid thead th{font-size:16px;font-weight:900;line-height:1.6}
.daily-head .daily-time small{font-size:13px}.week-header .en{font-size:16px}
.toolbar .filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.toolbar .filters .catalog-filter{min-width:155px;margin:0;flex:0 1 190px}.toolbar .filters select{min-height:38px}
.teacher-program-options{display:flex;flex-wrap:wrap;gap:8px}.teacher-program-options .field{flex:1 1 260px}
.practicum-report>summary{cursor:pointer;padding:15px 20px;font-weight:800;font-size:14px}.practicum-group{padding:12px 20px;border-top:1px solid #e1e8e5}.practicum-group h3{font-size:13px;margin:0 0 8px}

.presence-table thead th{font-size:16px;font-weight:800}
.shared-existing{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px}.shared-existing summary{cursor:pointer;font-weight:700}.shared-group{padding:12px 0;border-bottom:1px solid var(--line)}.shared-group>small{display:block}.shared-group li{font-size:12px;margin:5px 0}.assignment-course-choice[hidden]{display:none}

/* Mobile catalog cards and the daily agenda, release 3.18. */
.mobile-action-label{display:none}
.mobile-agenda{display:flex;flex-direction:column;gap:12px;padding:14px;min-width:0}
.agenda-session{width:100%;min-width:0;border:1px solid #c8ded3;border-inline-start:4px solid #27816b;border-radius:12px;background:#f5fbf7;color:#304d41;padding:15px;text-align:right;display:flex;flex-direction:column;gap:6px;line-height:1.8;white-space:normal;overflow-wrap:anywhere}
.agenda-session:hover{background:#edf7f0}
.agenda-session:focus-visible{outline:3px solid #168377;outline-offset:3px}
.agenda-session-top,.agenda-session-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.agenda-time{font-size:17px;font-weight:800;color:#236c57}
.agenda-room{margin-inline-start:auto;border:1px solid #d9e6dd;border-radius:7px;background:#fff;padding:3px 8px;font-size:12px;max-width:100%;overflow-wrap:anywhere}
.agenda-course{font-size:16px;font-weight:800;line-height:1.9}
.agenda-teacher,.agenda-program{font-size:13px;line-height:1.9}
.agenda-session-bottom{border-top:1px solid #dce9e0;padding-top:9px;margin-top:4px;font-size:12px}
.agenda-details{margin-inline-start:auto;color:#34765c;font-size:12px}
.agenda-lock,.agenda-shared{padding:2px 7px;border-radius:5px;font-size:11px;background:#fff0d9;color:#876125}
.agenda-shared{background:#e5eef9;color:#4a6a9a}
.agenda-sport{background:#fffaf0;border-color:#e8d9b9;border-inline-start-color:#b79649}
.agenda-sport .agenda-time{color:#8e7131}
.mobile-agenda-empty{padding:30px 18px;text-align:center;font-size:14px;color:#70847b;line-height:2}

@media screen and (max-width:900px){
 .page-heading{flex-direction:column;align-items:stretch;gap:12px}
 .page-heading>div{min-width:0}
 .page-heading p{font-size:12px;line-height:1.9}
 .page-heading .heading-actions{max-width:none;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .page-heading .heading-actions .btn,.row-actions .btn,.form-actions .btn{min-height:44px;min-width:0;white-space:normal;font-size:13px;line-height:1.7}
 .page-heading .heading-actions .btn{padding:9px 10px}
 .toolbar{flex-direction:column;align-items:stretch;gap:10px;padding:12px}
 .toolbar .search-box{max-width:none;width:100%;min-width:0}
 .toolbar .search-box input,.toolbar .filters select{min-height:44px;font-size:16px;max-width:100%}
 .toolbar .filters{width:100%;display:flex;flex-wrap:wrap;gap:8px;min-width:0}
 .toolbar .filters select,.toolbar .filters .catalog-filter{flex:1 1 120px;min-width:0;max-width:100%}
 .toolbar .filters .btn{min-height:44px;white-space:normal;flex:1 1 100px;font-size:13px}
 .catalog-controls{padding:12px;gap:10px}
 .catalog-controls .catalog-filter{flex:1 1 100%;width:100%;min-width:0}
 .catalog-controls select{width:100%;max-width:100%;min-height:44px;font-size:16px}
 .catalog-group-tools{padding:12px;gap:8px;font-size:12px}
 .catalog-group-tools>div{display:flex;flex-wrap:wrap;gap:6px}
 .catalog-group-tools button{min-height:44px}
 .catalog-group>summary{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:8px;padding:14px;align-items:start}
 .catalog-group-title{grid-column:1;grid-row:1;min-width:0}
 .catalog-group-title strong{font-size:16px;line-height:1.9;white-space:normal;overflow-wrap:anywhere}
 .catalog-group-title small{font-size:12px}
 .catalog-chevron{grid-column:2;grid-row:1;justify-self:end}
 .catalog-group-meta{grid-column:1/-1;grid-row:2;text-align:right;max-width:none;font-size:12px;line-height:1.9}
 .catalog-group-meta span{overflow-wrap:anywhere}
 table.mobile-stacked-table{display:block;min-width:0;width:100%;border-collapse:separate;font-size:13px}
 table.mobile-stacked-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 table.mobile-stacked-table tbody{display:flex;flex-direction:column;gap:12px;padding:12px;width:100%;min-width:0}
 table.mobile-stacked-table tbody>tr{display:flex;flex-direction:column;min-width:0;width:100%;border:1px solid #dce6e0;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 2px 6px #17372a05}
 table.mobile-stacked-table tr td[data-label]{display:grid;grid-template-columns:minmax(84px,30%) minmax(0,1fr);gap:10px;width:100%;min-width:0;max-width:none;padding:9px 13px;border:0;text-align:right;align-items:start;background:transparent;font-size:13px;line-height:1.9;white-space:normal;overflow-wrap:anywhere}
 table.mobile-stacked-table td[data-label]::before{content:attr(data-label);font-size:12px;color:#72837b;font-weight:500;overflow-wrap:anywhere}
 table.mobile-stacked-table td .entity-cell-value{min-width:0;overflow-wrap:anywhere;white-space:normal}
 table.mobile-stacked-table tr td.mobile-card-title{order:-1;display:block;padding:13px;background:#f1f7f3;border-bottom:1px solid #dce8df;color:#315e49;font-size:16px;font-weight:700;line-height:1.9}
 table.mobile-stacked-table td.mobile-card-title::before{content:none}
 table.mobile-stacked-table td.mobile-card-title strong{font-size:16px}
 table.mobile-stacked-table td.mobile-card-title small{display:block;font-size:11px;font-weight:400}
 table.mobile-stacked-table tr td.entity-actions{display:block;border-top:1px solid #edf1ef;margin-top:4px;padding:12px}
 table.mobile-stacked-table td.entity-actions::before{content:none}
 table.mobile-stacked-table .row-actions{display:flex;gap:8px;flex-wrap:wrap;white-space:normal}
 table.mobile-stacked-table .row-actions .btn{flex:1 1 100px;min-height:44px}
 table.mobile-stacked-table .mobile-action-label{display:inline}
 table.mobile-stacked-table .pill{white-space:normal;max-width:100%;font-size:12px}
 table.mobile-stacked-table .catalog-state{min-height:40px;font-size:13px;white-space:normal}
 table.mobile-stacked-table .empty{display:block;width:100%;font-size:14px}
 .table-footer{gap:8px;flex-wrap:wrap;font-size:11px;padding:12px}
 #week-chart.mobile-agenda-view{overflow:visible;min-width:0;max-width:100%;padding:0}
 .daily-day-controls{padding:14px 12px}
 .daily-day-heading{gap:10px;justify-content:space-between}
 .daily-day-heading .btn{min-height:44px;font-size:13px;padding:8px 10px}
 .daily-day-heading h2{font-size:19px}
 .daily-day-heading small{font-size:12px}
 .daily-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}
 .daily-tab{min-width:0;min-height:44px;font-size:13px;white-space:normal;padding:7px 2px}
 .weekly-edit-bar{flex-wrap:wrap;padding:12px;gap:8px}
 .weekly-edit-bar>span{width:100%;line-height:1.9}
 .weekly-edit-bar .btn{min-height:44px;font-size:13px;white-space:normal}
 dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:18px;overflow:auto}
 .modal-heading h2{overflow-wrap:anywhere;line-height:1.8}
 .close{min-width:40px;min-height:40px;flex-shrink:0}
 .read-only-profile{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;gap:15px}
 .read-only-profile>div{min-width:0}
 .read-only-profile label{font-size:12px}
 .read-only-profile b{font-size:14px;overflow-wrap:anywhere}
 .form-actions{flex-wrap:wrap;gap:8px}
 .form-actions .btn{flex:1 1 100px}
 .field input,.field select,.field textarea{font-size:16px;min-height:44px}
 .field.checkbox input{min-height:0}
 .form-help{font-size:12px;line-height:1.9}
 .practicum-group h3{font-size:14px;line-height:1.9;overflow-wrap:anywhere}
}
@media print{
 .mobile-action-label{display:none}
 .mobile-agenda{padding:0;gap:8px}
 .agenda-session{break-inside:avoid;background:white;color:black;box-shadow:none}
 .agenda-details{display:none}
}

.catalog-state{display:inline-flex;align-items:center;gap:7px;border:1px solid #d3dcdf;background:#f1f4f5;color:#56676e;border-radius:20px;padding:5px 11px;font:inherit;font-size:12px;cursor:pointer}.catalog-state.enabled{background:#e9f5ed;color:#276441;border-color:#bfddc7}.catalog-state.disabled .dot{background:#a6b1b7}.catalog-state:hover{box-shadow:0 0 0 2px #dbe9df}.sport-presence-choices{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.sport-presence-choices label{padding:10px;border:1px solid #d5e2da;border-radius:9px}.assignment-term-note{background:#eef6ff;padding:10px;border-radius:9px;margin-bottom:12px}
/* Compact teaching cards and live dashboard, release 3.19. */
.assignment-card-grid,.presence-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px;padding:16px;align-items:start}
.teacher-assignment-row,.presence-card{min-width:0;border:1px solid #dfe8e4;border-radius:16px;padding:17px;background:#fff;box-shadow:0 3px 12px #16372c05;overflow-wrap:anywhere}
.compact-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.compact-card-heading .person-cell{min-width:0}.compact-card-heading .pill{flex-shrink:0;font-size:10px}
.compact-card-meta{display:flex;flex-wrap:wrap;gap:7px 12px;color:#536968;font-size:12px;margin:12px 0}.compact-card-meta>span:not(.pill){background:#f4f7f6;padding:4px 8px;border-radius:7px}
.assignment-expand{width:100%;margin-top:2px}.teacher-course-detail[hidden]{display:none!important}.teacher-course-detail{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.assignment-course-card{border:1px solid #e3eae7;border-radius:12px;padding:12px;background:#fafcfb}.assignment-course-card p,.presence-card p{font-size:12px;color:#536968;margin:8px 0;line-height:1.9}.assignment-course-card .compact-card-heading>strong{font-size:14px}.assignment-course-card.is-pending{border-inline-start:3px solid #d5a75b}.assignment-course-card.is-approved{border-inline-start:3px solid #70a790}.assignment-course-actions{flex-wrap:wrap;gap:7px}.assignment-course-actions .btn{font-size:11px;min-height:36px}.teacher-assignment-row>.assignment-course-card{margin-top:10px}
.presence-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf1ef;padding-top:10px}.presence-card-footer small{color:#70807b;font-size:10px;line-height:1.9}
.agenda-room-group{min-width:0}.agenda-room-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 3px 10px;gap:10px}.agenda-room-heading h3{margin:0;font-size:16px;color:#204f42}.agenda-room-heading>span{font-size:12px;color:#6b7f76}.agenda-room-sessions{display:flex;flex-direction:column;gap:10px}
.dashboard-update{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:12px;color:#60776e;margin-bottom:20px}.dashboard-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.dashboard-intakes{grid-column:1/-1}.dashboard-chart-grid .card-head{flex-wrap:wrap;gap:10px}.dashboard-chart-grid h2{font-size:16px}.dashboard-bars{display:flex;flex-direction:column;gap:16px}.metric-bar-label{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:7px}.metric-bar-label>span{color:#61746c}.metric-bar-track{height:9px;background:#edf2ef;border-radius:9px;overflow:hidden}.metric-bar-track>i{display:block;background:#42856e;height:100%;border-radius:9px;min-width:0}.metric-bar-row small{font-size:10px;color:#708378;margin-top:5px;display:block}.chart-note{font-size:11px;line-height:1.9;color:#708378;margin:8px 0}.chart-legend{display:flex;align-items:center;gap:7px;font-size:11px}.chart-legend i{width:9px;height:9px;border-radius:50%}.gender-female,.metric-bar-track>i.gender-female{background:#af7198}.gender-male,.metric-bar-track>i.gender-male{background:#4b8baf}.intake-gender-chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:15px}.intake-gender-row{border:1px solid #e6ede8;border-radius:12px;padding:13px}.gender-row-title{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;font-size:13px}.gender-row-title small{font-size:10px;line-height:1.8;color:#6c7b73}.gender-bar{display:grid;grid-template-columns:50px minmax(0,1fr) 48px;gap:8px;align-items:center;font-size:11px;margin:8px 0}.gender-bar b{text-align:end;font-weight:600}
@media screen and (max-width:1100px){.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media screen and (max-width:900px){.agenda-session{padding:12px;gap:4px}.agenda-course{font-size:15px}.assignment-card-grid,.presence-card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));padding:12px;gap:12px}.teacher-assignment-row,.presence-card{padding:14px}.assignment-course-actions .btn{min-height:42px}.dashboard-chart-grid{grid-template-columns:minmax(0,1fr)}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-gender-chart{grid-template-columns:minmax(0,1fr)}}
@media print{.assignment-card-grid,.presence-card-grid{display:block}.teacher-assignment-row,.presence-card{break-inside:avoid;margin:10px 0}.agenda-room-group{break-inside:auto}.agenda-room-heading{break-after:avoid}}
/* Teacher cards and direct messaging, release 3.20. */
.teacher-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:14px;padding:16px;align-items:start}.teacher-profile-card{min-width:0;background:#fff;border:1px solid #dfe8e4;border-radius:16px;padding:16px;overflow-wrap:anywhere;box-shadow:0 3px 12px #16372c05}.teacher-profile-card .person-cell{align-items:flex-start}.teacher-profile-card .person-cell strong{font-size:14px}.teacher-profile-card .person-cell small{font-size:11px;line-height:1.8}.teacher-profile-card .catalog-state{flex-shrink:0}.teacher-profile-fields{display:flex;flex-direction:column;gap:9px;font-size:12px;margin:15px 0}.teacher-profile-fields>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px}.teacher-profile-fields span{color:#74847c}.teacher-profile-fields strong{font-weight:500}.teacher-profile-footer{border-top:1px solid #edf2ee;padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.teacher-profile-footer .btn{min-height:36px}.pill.presence-missing{background:#fbe9ec;color:#a3374b;border:1px solid #efc5cd;font-weight:600}.pill.presence-missing .dot{background:#b84b61}
.chat-notification-button{position:relative}.notification-count,.chat-contact-unread{background:#b84156;color:#fff;font-size:10px;min-width:19px;height:19px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.notification-count[hidden]{display:none}.chat-notification-button.has-unread{border-color:#e7b8c0;background:#fff5f6}.notification-label{font-size:11px}.chat-notification-list{margin-top:15px;display:flex;flex-direction:column;gap:7px;max-height:50dvh;overflow:auto}.chat-layout{display:grid;grid-template-columns:290px minmax(0,1fr);background:#fff;border:1px solid #dfe8e4;border-radius:18px;overflow:hidden;height:660px;max-height:calc(100dvh - 240px);min-height:420px}.chat-sidebar{background:#fafcfb;border-inline-end:1px solid #e5ebe7;overflow:auto}.chat-sidebar-head{padding:18px 14px 14px;border-bottom:1px solid #e6ede8}.chat-sidebar-head h2{font-size:15px;margin:0 0 12px}.chat-sidebar-head .search-box{width:100%;min-width:0}.chat-sidebar-head input{font-size:12px}.chat-contact{display:flex;align-items:center;gap:10px;width:100%;padding:14px;text-align:start;background:transparent;border:0;border-bottom:1px solid #eaf0ec;color:#29473a;cursor:pointer}.chat-contact:hover{background:#f0f5f2}.chat-contact.selected{background:#e8f2ec;border-inline-start:3px solid #438268}.chat-contact>.avatar{flex-shrink:0}.chat-contact-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.chat-contact-copy strong{font-size:12px}.chat-contact-copy small{font-size:11px;color:#728279;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-contact-copy time{font-size:10px;color:#88958d}.chat-panel{display:flex;flex-direction:column;min-height:0;min-width:0}.chat-thread-heading{display:flex;align-items:center;gap:12px;min-height:74px;padding:14px 18px;border-bottom:1px solid #e6ede8}.chat-thread-heading>div{min-width:0;overflow-wrap:anywhere}.chat-thread-heading strong{font-size:14px}.chat-thread-heading small{display:block;font-size:10px;color:#7a887f;margin-top:5px}.chat-back{display:none!important}.chat-history{flex:1;min-height:0;overflow:auto;background:#f4f7f5;padding:20px;overscroll-behavior:contain}.chat-older{display:flex!important;margin:0 auto 15px}.chat-older[hidden]{display:none!important}#chat-messages{display:flex;flex-direction:column;gap:12px}.chat-message{max-width:80%;width:fit-content;min-width:110px;border-radius:14px;padding:11px 14px;background:#fff;border:1px solid #e2eae4;align-self:flex-end;overflow-wrap:anywhere}.chat-message.mine{background:#e6f3eb;border-color:#d0e6d8;align-self:flex-start;border-start-start-radius:4px}.chat-message.received{border-start-end-radius:4px}.chat-message-sender{font-size:10px;font-weight:600;color:#49806a}.chat-message-body{white-space:pre-wrap;unicode-bidi:plaintext;font-size:13px;line-height:1.9;margin:5px 0}.chat-message-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:#7d8e83;font-size:10px}.chat-message-meta .btn{font-size:10px;padding:0 4px;min-height:24px}.chat-empty{font-size:12px;color:#75867c;text-align:center;padding:40px 15px}.chat-compose{padding:14px 18px;background:#fff;border-top:1px solid #e4ece7}.chat-compose[hidden]{display:none}.chat-compose-row{display:flex;align-items:flex-end;gap:10px}.chat-compose textarea{width:100%;min-width:0;resize:vertical;min-height:48px;max-height:150px;background:#fafcfb;border:1px solid #dce6df;border-radius:11px;font:inherit;font-size:13px;padding:10px 12px;line-height:1.6}.chat-compose .btn.primary{min-height:44px}.chat-compose-meta{display:flex;justify-content:space-between;color:#849188;font-size:10px;margin-top:6px;gap:10px}.chat-compose .form-error{margin:6px 0 0;font-size:11px;min-height:0}.chat-edit-banner{display:flex;align-items:center;justify-content:space-between;background:#fff7e9;border-inline-start:3px solid #c5a060;border-radius:8px;padding:5px 10px;font-size:11px;margin-bottom:10px}.chat-edit-banner[hidden]{display:none}.teacher-chat{grid-template-columns:minmax(0,1fr)}.teacher-chat .chat-sidebar{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media screen and (max-width:1000px){.notification-label{display:none}.chat-layout{grid-template-columns:240px minmax(0,1fr)}.teacher-chat{grid-template-columns:minmax(0,1fr)}}
@media screen and (max-width:900px){.teacher-card-grid{padding:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}.teacher-profile-card{padding:14px}.teacher-profile-footer .btn{min-height:42px}.chat-layout{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 235px);max-height:none;min-height:360px}.chat-layout .chat-sidebar{border:0}.chat-layout .chat-panel{display:none}.chat-layout.thread-open .chat-sidebar{display:none}.chat-layout.thread-open .chat-panel,.teacher-chat .chat-panel{display:flex}.chat-layout.thread-open .chat-back{display:inline-flex!important}.chat-thread-heading{padding:12px;min-height:65px;gap:9px}.chat-thread-heading .avatar{width:33px;height:33px}.chat-history{padding:13px}.chat-message{max-width:90%;padding:9px 11px}.chat-message-body{font-size:14px}.chat-compose{padding:11px}.chat-compose textarea{font-size:16px;resize:none}.chat-compose-meta small{display:none}.chat-notification-button{padding:5px 8px!important}.topbar-actions{gap:7px}.chat-notification-button .notification-count{position:absolute;top:-5px;inset-inline-end:-5px}.chat-compose-row{gap:7px}.chat-compose-row .btn{padding:8px 12px}}
/* Fixed phone messenger, media and day presence, release 3.21. */
.chat-layout{grid-template-rows:52px minmax(0,1fr)}.chat-app-header{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9fcfa;border-bottom:1px solid #e1eae4;min-width:0}.chat-app-header>strong{font-size:13px;flex:1;min-width:0;white-space:nowrap}.chat-app-header>div{display:flex;align-items:center;gap:6px}.chat-app-header .btn{min-height:36px;min-width:36px;padding:6px 8px}.chat-app-header .notification-count{font-size:9px;min-width:15px;height:15px;padding:0 4px}#chat-app-menu,#chat-mobile-notice{display:none}.chat-layout .chat-sidebar,.chat-layout .chat-panel{grid-row:2}.chat-panel{overflow:hidden}.chat-compose-row textarea{flex:1;min-width:0}.chat-tool{flex-shrink:0;width:36px;min-height:40px;justify-content:center;font-size:21px!important;padding:4px!important}.chat-pending-files{max-height:110px;overflow:auto;margin-bottom:8px;min-height:0}.chat-pending-files[hidden],.chat-emoji-picker[hidden],#chat-file-input[hidden]{display:none!important}.chat-pending-file{display:flex;align-items:center;gap:9px;min-width:0;background:#f6faf7;border:1px solid #e3ebe5;border-radius:10px;padding:7px;margin-bottom:5px}.chat-pending-file>img{width:38px;height:38px;object-fit:cover;border-radius:7px}.chat-file-symbol{font-size:25px}.chat-pending-file>span:not(.chat-file-symbol){flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-pending-file strong{font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-pending-file small{font-size:10px;color:#6f7f74}.chat-pending-file progress{width:100%;height:5px;accent-color:#45866d}.chat-pending-file .btn{flex-shrink:0;width:29px;min-height:29px}.chat-emoji-picker{max-height:200px;min-height:0;overflow:auto;padding:8px;background:#f8fbf9;border:1px solid #e4ece6;border-radius:12px;margin-bottom:8px}.chat-emoji-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.chat-emoji-tabs .btn{font-size:10px;min-height:30px}.chat-emoji-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.chat-emoji-grid button{border:0;background:transparent;border-radius:7px;font-size:24px;padding:5px;min-width:0;min-height:38px;cursor:pointer}.chat-emoji-grid button:hover{background:#e6f1e9}.chat-file{border:1px solid #dce7df;background:#f9fcfa;border-radius:11px;overflow:hidden;margin:8px 0;min-width:0;max-width:340px}.chat-file img{display:block;width:auto;max-width:100%;height:auto;max-height:300px;object-fit:contain;margin:auto}.chat-file video{display:block;width:100%;max-height:280px;background:#10241b}.chat-file audio{display:block;width:100%;min-width:0;height:42px}.chat-file-caption{padding:8px 10px;display:flex;align-items:center;gap:8px;min-width:0}.chat-file-caption>span{min-width:0;flex:1}.chat-file-caption strong{display:block;font-size:11px;overflow-wrap:anywhere;font-weight:500}.chat-file-caption small{display:block;font-size:9px;color:#77847b;margin-top:4px}.chat-file-caption .btn{flex-shrink:0;min-width:32px;min-height:32px;padding:4px}.chat-file-image{min-width:min(200px,100%)}.chat-file-audio,.chat-file-video{width:320px;max-width:100%}.chat-image-link{display:block}.chat-group-tools h3{font-size:15px;margin:0 0 12px}.chat-group-tools>div{display:flex;gap:7px;flex-wrap:wrap}.chat-group-tools input{width:100%;margin-top:12px;min-width:0;max-width:100%;font:inherit;font-size:13px;border:1px solid #d9e5dc;padding:10px;border-radius:9px}.chat-group-tools p{font-size:11px;color:#6f8476;line-height:1.8}.chat-group-list{display:flex;flex-direction:column;gap:8px}.chat-group-person{display:flex;align-items:center;gap:10px;background:white;border:1px solid #e1e9e3;padding:10px;border-radius:11px;cursor:pointer;min-width:0}.chat-group-person input{width:19px;height:19px;accent-color:#44866a}.chat-group-person>span:last-child{min-width:0}.chat-group-person strong{display:block;font-size:12px;overflow-wrap:anywhere}.chat-group-person small{display:block;font-size:10px;color:#77877b;margin-top:4px}.phone-presence{padding:14px;min-width:0}.presence-day-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.presence-day-tabs button{background:#f6f9f7;border:1px solid #dfe9e2;border-radius:10px;padding:9px 4px;font:inherit;font-size:12px;min-width:0;min-height:52px;color:#546f5e;cursor:pointer}.presence-day-tabs button.active{background:#e5f2e9;border-color:#599b73;color:#245d3c;font-weight:600}.presence-day-tabs small{display:block;font-size:9px;margin-top:6px;opacity:.75}.presence-day-title{display:flex;justify-content:space-between;align-items:center;margin:18px 0 12px;gap:10px}.presence-day-title h3{margin:0;font-size:16px}.presence-day-title span{font-size:11px;color:#6e8174}.presence-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.presence-time{display:flex;align-items:center;gap:8px;border:1px solid #dfe9e2;border-radius:11px;padding:13px 10px;min-width:0;cursor:pointer;background:#fbfdfb}.presence-time.selected,.presence-time:has(input:checked){background:#e5f3ea;border-color:#4d976b}.presence-time.disabled{opacity:.55;background:#edf1ee;cursor:default}.presence-time input{width:19px;height:19px;flex-shrink:0;accent-color:#34855a}.presence-time strong{display:block;font-size:16px;white-space:nowrap}.presence-time small{display:block;font-size:10px;color:#738477;margin-top:6px}.phone-presence>p{font-size:11px;color:#738477;line-height:1.9}.my-course-state{font-size:11px;line-height:1.8;overflow-wrap:anywhere}
@media screen and (max-width:900px){html.chat-screen,body.chat-screen{height:100%;overflow:hidden;overscroll-behavior:none}body.chat-screen .shell{min-height:0}body.chat-screen .topbar,body.chat-screen .demo-banner,body.chat-screen .page-heading,body.chat-screen .phase-footer{display:none}body.chat-screen .content{padding:0;margin:0;max-width:none}body.chat-screen .sidebar{z-index:400;transform:translateX(100%);height:100dvh;max-height:100%;overscroll-behavior:contain}body.chat-screen .sidebar.open{transform:translateX(0)}body.chat-screen .chat-layout{position:fixed;z-index:200;inset-inline:0;top:0;bottom:auto;width:100%;height:100dvh;min-height:0;max-height:none;margin:0;border:0;border-radius:0;grid-template-rows:50px minmax(0,1fr);overflow:hidden}#chat-app-menu,#chat-mobile-notice{display:inline-flex}.chat-app-header{padding:5px max(8px,env(safe-area-inset-right)) 5px max(8px,env(safe-area-inset-left));gap:5px}.chat-app-header>strong{font-size:12px}.chat-app-header>div{gap:4px}.chat-app-header .btn{font-size:10px;min-height:36px;padding:5px 7px}.chat-layout .chat-sidebar,.chat-layout .chat-panel{min-height:0;overflow:hidden}.chat-layout .chat-sidebar{display:flex;flex-direction:column}.chat-sidebar-head{flex-shrink:0;padding:12px}.chat-sidebar-head h2{margin-bottom:8px}#chat-contacts{min-height:0;overflow-y:auto;overscroll-behavior:contain}.chat-layout.thread-open .chat-sidebar,.teacher-chat .chat-sidebar{display:none}.chat-thread-heading{flex-shrink:0;min-height:54px;padding:9px 10px}.chat-history{min-height:0;flex:1 1 0;overflow-y:auto;overflow-x:hidden;padding:10px;touch-action:pan-y}.chat-message{max-width:90%;min-width:0;box-sizing:border-box}.chat-compose{display:flex;flex-direction:column;flex:0 0 auto;min-height:64px;max-height:70%;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:5px;overflow:hidden}.chat-compose-row{gap:5px;flex:0 0 auto;align-items:center;min-width:0}.chat-compose textarea{font-size:16px;height:44px;min-height:44px;max-height:80px;line-height:1.5;padding:9px 7px;resize:none;overflow-y:auto}.chat-tool{width:33px;min-width:33px;min-height:40px}.chat-compose-row .btn.primary{width:39px;min-width:39px;min-height:40px;padding:5px;flex-shrink:0}.chat-send-label{display:none}.chat-compose-meta{flex-shrink:0;margin:0;min-height:12px}.chat-compose-meta .btn{padding:0;font-size:10px;min-height:20px}.chat-compose .form-error{margin:0;max-height:34px;overflow:auto;flex-shrink:0;line-height:1.5}.chat-edit-banner{margin:0;flex-shrink:0;min-height:28px}.chat-pending-files,.chat-emoji-picker{flex:0 1 auto;min-height:0;margin:0;overscroll-behavior:contain}.chat-pending-files{max-height:80px}.chat-emoji-picker{max-height:150px;padding:5px}.chat-emoji-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.chat-emoji-grid button{font-size:23px;padding:3px;min-height:34px}.chat-emoji-tabs{margin-bottom:4px}.chat-emoji-tabs .btn{min-height:27px;padding:3px 7px}.chat-file{max-width:100%}.chat-file img{max-height:240px}.chat-file-caption strong{font-size:10px}.chat-file audio{height:38px}.chat-compact-viewport .chat-emoji-picker{max-height:70px}.chat-compact-viewport .chat-pending-files{max-height:48px}.chat-compact-viewport .chat-thread-heading{min-height:40px;padding:6px 9px}.chat-compact-viewport .chat-compose{max-height:78%}.chat-group-tools input{font-size:16px}.my-courses-table .mobile-card-title strong{font-size:15px}}
.chat-app-header>strong{overflow:hidden;text-overflow:ellipsis}.chat-media-error{font-size:11px;line-height:1.8;color:#8b6047;padding:8px 10px;margin:0}.chat-media-error[hidden]{display:none}
@media screen and (max-width:900px){.availability-actions{display:grid;grid-template-columns:minmax(0,1fr);padding:14px;gap:9px}.availability-actions .btn{min-height:44px;max-width:100%;white-space:normal}.availability-actions small{font-size:11px;line-height:1.9}}

/* v3.23: clearer slot headers, a full-height desktop messenger and direct file picking. */
.university-slot-grid thead th,.university-slot-grid thead th:first-child{background:#245d53;color:#fff;border:1px solid #457a70;font-weight:900}
.university-slot-grid tbody th[scope="row"]{background:#c7e4d8;color:#164b3d;border:1px solid #94bcaa;font-size:14px;font-weight:900}
.university-slot-grid thead th:first-child{z-index:4}
.chat-attachment-panel{flex:0 1 auto;min-height:0;max-height:150px;overflow:auto;padding:9px;background:#f0f7f3;border:1px solid #d2e5d9;border-radius:10px;margin-bottom:8px}
.chat-attachment-panel[hidden]{display:none!important}
.chat-attachment-panel>label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#2a6047}
.chat-attachment-panel input[type="file"]{display:block;width:100%;max-width:100%;min-width:0;font-size:12px;color:#415f4e;overflow:hidden}
.chat-attachment-panel input::file-selector-button{font:inherit;background:#fff;border:1px solid #b6d4c4;border-radius:7px;padding:7px 10px;cursor:pointer;margin-inline-end:8px;color:#245a40}
.chat-sample-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.chat-sample-actions small{font-size:10px;color:#526e5e}.chat-sample-actions .btn{font-size:11px}
@media screen and (min-width:901px){html.chat-workspace,body.chat-workspace{height:100%;overflow:hidden}body.chat-workspace .main{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}body.chat-workspace .topbar,body.chat-workspace .demo-banner{flex-shrink:0}body.chat-workspace .content{flex:1;min-height:0;display:flex;flex-direction:column;padding:14px 18px;max-width:none}body.chat-workspace .phase-footer{display:none}body.chat-workspace .chat-layout{flex:1;width:100%;height:100%;min-height:0;max-height:none}body.chat-workspace .chat-sidebar{display:flex;flex-direction:column;min-height:0;overflow:hidden}body.chat-workspace .chat-sidebar-head{flex-shrink:0}body.chat-workspace #chat-contacts{min-height:0;overflow-y:auto}}
@media screen and (max-width:900px){.chat-attachment-panel{margin:0;max-height:115px;padding:6px;overscroll-behavior:contain}.chat-compact-viewport .chat-attachment-panel{max-height:75px}.chat-attachment-panel input[type="file"]{font-size:12px}.chat-sample-actions{gap:4px;margin-top:5px}.chat-sample-actions .btn{font-size:10px;min-height:30px;padding:4px 7px}}

/* v3.24: the messenger occupies the viewport at every width. */
body.chat-workspace .topbar,body.chat-workspace .demo-banner,body.chat-workspace .phase-footer{display:none!important}
body.chat-workspace .chat-layout{position:fixed;z-index:200;inset-inline:0;top:0;bottom:auto;width:100%;height:100dvh;min-height:0;max-height:none;margin:0;border:0;border-radius:0;grid-template-rows:50px minmax(0,1fr);overflow:hidden}
body.chat-workspace .content{padding:0!important;margin:0!important;max-width:none}
body.chat-workspace .sidebar{z-index:400;transform:translateX(100%);height:100dvh;max-height:100%;overscroll-behavior:contain}
body.chat-workspace .sidebar.open{transform:translateX(0)}
body.chat-workspace #chat-app-menu,body.chat-workspace #chat-mobile-notice{display:inline-flex}
.chat-contact{align-items:center;gap:11px;padding:12px 14px}.chat-contact-copy{gap:4px}.chat-contact-copy strong{font-size:13px}.chat-contact-copy small{font-size:11px;max-width:100%}.chat-contact>.avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0}
.chat-message.group-continued{margin-bottom:-7px}.chat-message-meta:empty{display:none}.chat-message-sender{display:none}
.chat-file-control{position:relative;display:inline-flex;flex-shrink:0;width:36px;min-width:36px;height:40px}.chat-file-control input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0;padding:0}.chat-file-control:focus-within{outline:2px solid #168377;outline-offset:2px;border-radius:8px}.chat-file-control input:disabled{cursor:not-allowed}
.chat-voice-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:#fff0ed;border:1px solid #ecc6bc;border-radius:9px;padding:6px 9px;margin-bottom:7px;flex-shrink:0}.chat-voice-status[hidden]{display:none!important}.chat-voice-status>span{flex:1;min-width:100px;font-size:11px;color:#923f32}.chat-voice-status .btn{font-size:10px;min-height:32px}.chat-pending-file>audio{width:170px;max-width:45%;height:35px;flex-shrink:0}
@media screen and (max-width:900px){.chat-file-control{width:30px;min-width:30px}.chat-file-control .chat-tool{width:30px;min-width:30px}.chat-compose-row{gap:4px}.chat-compose-row .chat-tool{width:30px;min-width:30px;font-size:20px!important}.chat-voice-status{margin:0;padding:5px 6px;gap:4px}.chat-voice-status>span{font-size:10px}.chat-voice-status .btn{min-height:30px;padding:3px 6px}.chat-pending-file>audio{width:110px;max-width:38%}}

/* v3.25: fixed message input, contextual message actions and per-file cancellation. */
.chat-text-box{position:relative;flex:1;min-width:0;height:76px}.chat-compose-row .chat-text-box textarea{display:block;width:100%;height:100%;min-height:100%;max-height:100%;resize:none!important;padding-bottom:23px;overflow-y:auto}.chat-text-remaining{position:absolute;bottom:5px;left:9px;color:#6f8779;font-size:10px;line-height:1.2;pointer-events:none;background:#fafcfb;padding:2px 3px;border-radius:4px}
.chat-file-cancel{border-color:#e5c6c3;color:#a74c40;align-self:flex-start}.chat-file-cancel:disabled{opacity:.35}
.chat-message{cursor:pointer}.chat-message-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}.chat-menu-preview{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:130px;overflow:auto;color:#63796c}.chat-message-menu .btn{min-height:42px}.chat-deleted{font-style:italic;color:#89958d;font-size:12px}.chat-heart{background:#fff0f2;color:#aa4760;border:1px solid #edccd6;border-radius:10px;font:inherit;font-size:11px;padding:2px 7px;min-height:25px}.chat-heart.mine-heart{background:#ffe4ed;border-color:#d4839d}
.chat-reply-quote{display:flex;flex-direction:column;gap:3px;text-align:start;border:0;border-inline-start:3px solid #55977a;background:#eaf1ec;border-radius:6px;padding:6px 9px;max-width:100%;margin-bottom:6px;color:#54715e;cursor:pointer}.chat-reply-quote small{font-size:9px;color:#428364}.chat-reply-quote span{font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}.chat-reply-banner{display:flex;align-items:center;gap:8px;border-inline-start:3px solid #579c78;background:#eef6f0;padding:6px 9px;border-radius:8px;margin-bottom:7px;flex-shrink:0}.chat-reply-banner[hidden]{display:none!important}.chat-reply-banner>span{flex:1;min-width:0}.chat-reply-banner small{font-size:9px;display:block;color:#4d8665}.chat-reply-banner strong{display:block;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-reply-banner .btn{min-height:28px;width:28px;padding:3px}.voice-level{width:90px;height:6px;accent-color:#4c9773}
@media screen and (max-width:900px){.chat-text-box{height:64px}.chat-compose-row .chat-text-box textarea{font-size:16px;padding-bottom:22px}.chat-reply-banner{margin:0;padding:5px 7px}.chat-message-menu{gap:7px}.voice-level{width:65px}}
/* v3.27: both roles share the desktop messenger grid. */
@media screen and (min-width:901px){.teacher-chat{grid-template-columns:290px minmax(0,1fr)}.teacher-chat .chat-sidebar{display:flex;flex-direction:column}.teacher-chat .chat-panel{grid-column:2}.teacher-chat .chat-sidebar{grid-column:1}}
@media screen and (min-width:901px) and (max-width:1000px){.teacher-chat{grid-template-columns:240px minmax(0,1fr)}}
.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.profile-photo-editor{display:flex;align-items:center;gap:16px;padding:20px;border-bottom:1px solid #e2eae4}.profile-photo-editor>.avatar{width:76px;height:76px;flex-shrink:0}.profile-photo-editor strong{display:block;margin-bottom:10px}.profile-photo-editor input{max-width:210px}.profile-photo-editor p{font-size:12px;color:#a33}#chat-own-profile{display:flex;gap:8px;align-items:center;width:100%;margin-bottom:8px}
@media screen and (max-width:900px){.teacher-chat:not(.thread-open) .chat-sidebar{display:flex}.teacher-chat:not(.thread-open) .chat-panel{display:none}}
/* v3.28: persistent desktop navigation, personnel, and compact voice messages. */
@media screen and (min-width:901px){body.chat-workspace .topbar{display:flex!important}body.chat-workspace .sidebar{transform:none!important;height:100dvh}body.chat-workspace .chat-layout{position:relative!important;inset:auto!important;width:100%;height:calc(100dvh - 76px)!important;min-height:0}body.chat-workspace .main{grid-column:2}body.chat-workspace .shell{min-height:100dvh}}
.iran-clock{display:flex;flex-direction:column;align-items:center;gap:1px;white-space:nowrap;line-height:1.5;font-size:11px;color:#55747a;min-width:86px}.iran-clock time:last-child{font-size:10px;color:#168377;font-variant-numeric:tabular-nums}.chat-app-header .iran-clock{min-width:76px;font-size:10px}.chat-app-header .iran-clock time:last-child{font-size:9px}.chat-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:12px;background:#edf3f2;padding:4px;border-radius:11px}.chat-tabs button{font-size:12px;padding:7px 3px;background:transparent;border-radius:8px;color:#688084}.chat-tabs button.active{background:white;color:#117c75;box-shadow:0 2px 5px #183c3b12;font-weight:700}.chat-sidebar{display:flex;flex-direction:column;min-height:0}.chat-sidebar-head{flex-shrink:0}#chat-contacts{flex:1;overflow-y:auto;min-height:0}.chat-message-meta time{display:flex;flex-direction:column;line-height:1.5;gap:1px}.chat-message-meta time span:last-child{font-size:9px}.chat-message-menu{grid-template-columns:repeat(4,minmax(0,1fr))}.chat-heart{border:1px solid #dce8e4;background:#f8fbfa;border-radius:14px;padding:3px 7px;font-size:12px;color:#53746b}.chat-heart.mine-heart{background:#d7f1e8;border-color:#81bda9}.personnel-role-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:14px 20px;background:#f7faf9;border-bottom:1px solid #e3ebe6}.personnel-role-guide>span{font-size:11px;color:#537169}.personnel-role-guide small{font-size:9px;margin-inline-start:5px}.personnel-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px;padding:18px}.personnel-card{padding:16px;border:1px solid #deebe5;border-radius:15px;background:white;box-shadow:0 3px 10px #163c3210;min-width:0}.personnel-title{display:block;font-size:13px;margin:12px 0 9px;color:#2c6755}.personnel-actions{display:flex;gap:5px;flex-wrap:wrap;padding-top:12px;border-top:1px solid #edf2ef;margin-top:12px}.personnel-card .compact-card-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.read-only-account .row-actions,.read-only-account .assignment-course-actions,.read-only-account [data-edit],.read-only-account [data-delete],.read-only-account #add,.read-only-account #excel-import{display:none!important}.read-only-account .chat-message-menu .btn{display:inline-flex!important}
.voice-message{width:280px;max-width:100%;display:flex;align-items:center;gap:9px;padding:10px 11px!important;border-radius:19px!important;background:#f7fbfa;direction:ltr;position:relative}.chat-message.mine .voice-message{background:#dcf2e8;border-color:#c4e4d5}.voice-source{display:none!important}.voice-play{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:#168377;color:white;display:grid;place-items:center;font-size:17px;box-shadow:0 2px 6px #16837725;line-height:1}.voice-track{flex:1;min-width:0;position:relative}.voice-wave{height:29px;position:relative;display:flex;align-items:center;gap:2px;overflow:hidden;border-radius:3px}.voice-wave i{display:block;flex:1;height:var(--bar);background:#79a79b;border-radius:3px;min-width:2px}.voice-wave [data-voice-fill]{position:absolute;left:0;top:0;height:100%;width:0;background:#16837755;pointer-events:none}.voice-track input[type=range]{position:absolute;left:0;top:0;width:100%;height:31px;opacity:0;margin:0;cursor:pointer}.voice-track:focus-within .voice-wave{outline:2px solid #168377;outline-offset:2px}.voice-details{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-top:5px;color:#43756a;font-size:10px;white-space:nowrap}.voice-details small{font-size:8px}.voice-actions{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 25px}.voice-actions button{font-size:10px;line-height:1;background:#e6f1eb;border-radius:8px;padding:5px 3px;color:#3b7663;min-width:25px}.voice-actions a{display:grid;place-items:center;width:25px;height:24px;color:#437968}.voice-actions svg{width:16px;height:16px}.voice-message .chat-media-error{position:absolute;left:0;top:100%;font-size:10px;background:#fff4ef;padding:4px;width:100%;z-index:2}
@media screen and (max-width:900px){.personnel-role-guide{grid-template-columns:1fr;padding:12px}.personnel-card-grid{padding:12px}.chat-app-header{gap:4px}.chat-app-header #chat-broadcast-open{font-size:0;width:32px;min-width:32px;padding:3px}.chat-app-header #chat-broadcast-open:before{content:'📢';font-size:18px}.chat-app-header #chat-logout{width:32px;min-width:32px;padding:3px}.chat-app-header .iran-clock{min-width:68px;font-size:9px}.chat-app-header .iran-clock time:last-child{font-size:8px}.voice-message{width:260px;padding:9px!important;gap:7px}.voice-play{width:37px;height:37px;flex-basis:37px}.chat-message-menu{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media screen and (max-width:380px){.chat-app-header>strong{display:none}}

@media screen and (min-width:901px){body.chat-workspace .chat-app-header #chat-app-menu,body.chat-workspace .chat-app-header #chat-logout,body.chat-workspace .chat-app-header .iran-clock{display:none!important}}
.read-only-account [data-toggle-catalog]{pointer-events:none;opacity:1;cursor:default}.voice-message{flex-wrap:wrap}.voice-message .chat-media-error{position:static;flex-basis:100%;font-size:10px;line-height:1.6;padding:5px;border-radius:8px}
/* v3.29: personnel rows, conversation profiles and shared-media categories. */
.personnel-card-grid{grid-template-columns:minmax(0,1fr);gap:10px}.personnel-row{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(130px,.8fr) minmax(190px,1.2fr) auto;align-items:center;gap:12px;padding:13px 16px}.personnel-row .compact-card-heading{align-items:center;justify-content:flex-start;gap:10px}.personnel-name{min-width:0;flex:1}.personnel-name strong{display:block;font-size:14px}.personnel-name small{display:block;font-size:10px;line-height:1.7}.personnel-avatar-button,.chat-peer-profile,.chat-profile-portrait{padding:0;border:0;background:none;border-radius:12px;flex-shrink:0}.personnel-avatar-button .avatar{width:44px;height:44px}.personnel-row .personnel-title{margin:0;font-size:12px}.personnel-row .compact-card-meta{display:grid;gap:3px;margin:0;font-size:10px}.personnel-row .compact-card-meta>span{background:none;padding:0}.personnel-row .personnel-actions{margin:0;padding:0;border:0;justify-content:flex-end}.personnel-row .personnel-actions .btn{font-size:10px;padding:5px 8px;min-height:32px}.personnel-photo-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid #e5ede9}.personnel-photo-form input{max-width:180px}.personnel-photo-form small{flex-basis:100%;font-size:10px}.chat-profile-dialog{width:min(610px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:20px;overflow:auto}.chat-profile-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}.chat-profile-head strong{font-size:16px;display:block}.chat-profile-head small{font-size:11px;display:block}.chat-profile-portrait .avatar{width:68px;height:68px;border-radius:20px;font-size:24px}.chat-gallery-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:15px;background:#eff5f2;border-radius:10px;padding:4px}.chat-gallery-tabs button{padding:8px 2px;border-radius:7px;font-size:11px;background:none;color:#648477}.chat-gallery-tabs button.active{background:white;color:#168377;font-weight:700;box-shadow:0 2px 6px #173f3020}.chat-gallery-content{max-height:48dvh;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-item{min-width:0;padding:9px;background:#f6f9f8;border:1px solid #e2eae6;border-radius:12px;overflow-wrap:anywhere}.gallery-item img{width:100%;height:140px;object-fit:cover;border-radius:9px}.gallery-item audio,.gallery-item video{width:100%;max-width:100%}.gallery-item>a{display:block;font-size:11px;color:#167f74;margin-top:5px}.gallery-item>small{display:block;font-size:9px}.gallery-item .voice-message{width:100%}.chat-gallery-content .empty{grid-column:1/-1}.profile-photo-popup{text-align:center}.profile-photo-popup>img{width:280px;max-width:100%;max-height:60dvh;object-fit:contain;border-radius:18px}.profile-photo-popup .avatar{width:100px;height:100px;margin:0 auto 12px;font-size:35px}.chat-group-members{border:1px solid #e3ece6;border-radius:10px;padding:10px;margin-bottom:14px;font-size:11px}.chat-group-members>div{display:flex;gap:9px;align-items:center;padding:8px 0}.chat-group-members small{display:block;font-size:9px}.chat-group-sender{display:block;color:#168377;font-size:11px;margin-bottom:4px}.photo-overlay{position:fixed;inset:0;background:#122d3699;display:grid;place-items:center;z-index:10000}.photo-overlay img{width:280px;max-width:85vw;border-radius:18px}.photo-overlay>button{position:absolute;top:20px;left:20px;font-size:24px;border-radius:50%;background:#fff;width:40px;height:40px}
@media screen and (max-width:1100px){.personnel-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.personnel-row .compact-card-heading{grid-column:1/-1}.personnel-row .personnel-actions{justify-content:flex-start}}
@media screen and (max-width:600px){.personnel-row{grid-template-columns:minmax(0,1fr);gap:9px;padding:13px;border-radius:14px}.personnel-row .compact-card-heading{grid-column:auto}.personnel-row .personnel-title{display:none}.personnel-row .compact-card-meta{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:5px 12px}.personnel-row .personnel-actions{padding-top:9px;border-top:1px solid #e8eeea}.personnel-row .personnel-actions .btn{min-height:38px;font-size:11px}.chat-profile-dialog{padding:15px}.chat-gallery-content{grid-template-columns:minmax(0,1fr)}.gallery-item img{height:180px}.chat-gallery-tabs button{font-size:10px}.chat-profile-head{gap:10px}.chat-profile-head strong{font-size:14px}}

.chat-photo-dialog{width:min(360px,calc(100vw - 24px));padding:18px;max-height:calc(100dvh - 24px);overflow:auto}
/* Hepco identity and readable personnel role selection, v3.30. */
.institution-brand{gap:10px;align-items:center;margin-inline:0}.institution-brand>div:last-child{min-width:0}.institution-brand strong{font-size:14px;line-height:1.8;letter-spacing:0;overflow-wrap:anywhere}.institution-brand small{font-size:9px;line-height:1.7;margin-top:5px}.institution-logo{background:#fff;width:52px;height:52px;border-radius:13px;flex:0 0 52px;padding:3px;overflow:hidden}.institution-logo img{display:block;width:100%;height:100%;object-fit:contain}.login-brand .institution-brand{max-width:460px;margin-bottom:32px}.login-brand .institution-brand strong{font-size:24px}.login-brand .institution-logo{width:90px;height:90px;flex-basis:90px;padding:5px;border-radius:20px}.branding-logo-editor{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0}.branding-logo-editor .institution-logo{width:90px;height:90px;flex-basis:90px}.branding-logo-editor input[type=file]{max-width:210px}.branding-settings .form-help{font-size:11px;line-height:1.9}.personnel-role-picker{border:1px solid #ccdcd5;background:#fff;color:#253b43;border-radius:9px;overflow:hidden;color-scheme:light}.personnel-role-picker summary{padding:11px 13px;cursor:pointer;color:#253b43;background:#fff;font-size:13px;line-height:1.8}.personnel-role-options{border:0;padding:7px;margin:0;max-height:290px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f4f8f6}.personnel-role-option{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #dce6e0;border-radius:8px;background:#fff!important;color:#253b43!important;cursor:pointer;min-width:0}.personnel-role-option strong{display:block;font-size:12px;color:#253b43!important;line-height:1.8}.personnel-role-option small{display:block;font-size:10px;color:#53746b!important}.personnel-role-option input{width:16px!important;height:16px;flex:0 0 16px;accent-color:#168377;margin:0}.personnel-role-option:hover,.personnel-role-option:focus-within{background:#eaf4ef!important;color:#253b43!important;border-color:#84b9a6}.personnel-role-option.selected{background:#dcf1e7!important;color:#1d4c3a!important;border-color:#168377}.field select,.field select option{color-scheme:light;background-color:#fff;color:#253b43}
@media(max-width:600px){.personnel-role-options{grid-template-columns:minmax(0,1fr);max-height:260px}.personnel-role-option{min-height:48px}.institution-brand strong{font-size:13px}.branding-logo-editor .btn{min-height:40px}.branding-settings input{font-size:16px}}

/* v3.31: compact header, bounded mobile layout and message actions. */
html{max-width:100%;overflow-x:clip}body,#app,.shell,.main,.content{min-width:0;max-width:100%}body{overflow-wrap:break-word}.content>*{min-width:0;max-width:100%}.card,.card-body,.card-head,.toolbar,.form-grid,.field,.settings-layout{min-width:0}.toolbar{flex-wrap:wrap}.table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}.field input,.field select,.field textarea{min-width:0;max-width:100%}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading>div,.card-head>div,.compact-card-heading>div{min-width:0}.page-heading h1,.personnel-name strong,.profile strong,.compact-card-meta span{overflow-wrap:anywhere}.personnel-access-guide{margin-top:18px}.personnel-access-guide p{font-size:12px;color:#577269}.personnel-access-guide details{margin-top:14px}.personnel-access-guide summary{cursor:pointer;font-size:12px;color:#168377}.personnel-role-guide{border:0;border-radius:10px;margin-top:10px}.institution-logo,.login-brand .institution-logo{background:transparent;padding:0;border-radius:0}.sidebar .institution-logo{background:transparent;box-shadow:none}
.topbar{height:auto;min-height:88px;display:flex;gap:18px;padding:10px 26px}.topbar .mobile-menu{flex:0 0 36px;padding:6px}.topbar-identity{display:flex;align-items:center;gap:20px;min-width:0}.topbar-identity .profile{min-width:0}.topbar-identity .profile>div{min-width:0}.topbar-identity .avatar{flex-shrink:0}.topbar-tools{width:180px;min-width:0;flex:0 0 180px;margin-inline-start:auto;display:grid;gap:5px}.topbar .topbar-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px;width:100%}.topbar-actions .btn{padding:6px 5px;min-width:0;gap:5px;font-size:11px;min-height:33px}.topbar-actions .notification-label{display:inline;font-size:10px}.topbar-actions .notification-count{position:absolute;top:-5px;inset-inline-start:-5px;font-size:9px;min-width:16px;height:16px}.topbar-search{display:flex;align-items:center;width:100%;min-width:0;border:1px solid #dce7e2;border-radius:8px;background:#f6faf8;height:29px;overflow:hidden}.topbar-search input{width:100%;flex:1;min-width:0;border:0;background:transparent;padding:3px 8px;font-size:11px;outline-offset:-3px}.topbar-search button{height:100%;width:32px;flex:0 0 32px;border-inline-start:1px solid #dce7e2;background:#eaf3ee;color:#168377;display:grid;place-items:center}.topbar-search svg{width:15px;height:15px}.topbar .iran-clock{font-size:11px}.voice-timeline{position:relative}.audio-file-title{display:block;font-size:11px;font-weight:600;text-align:start;direction:rtl;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.6;margin-bottom:5px}.voice-message.music-message{width:290px}.voice-track .voice-timeline input[type=range]{top:0}.chat-message-dialog{width:min(300px,calc(100% - 24px));padding:10px;border:1px solid #dce8e1;border-radius:18px;box-shadow:0 18px 65px #112f3433;max-height:calc(100dvh - 24px);overflow:auto}.chat-message-dialog::backdrop{background:#142e343b;backdrop-filter:blur(2px)}.message-menu-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 6px;color:#768b82;font-size:10px}.message-menu-head .close{width:26px;height:26px;padding:0;font-size:20px;border-radius:50%;background:#f1f6f3;color:#678075}.message-reaction-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;background:#eff6f2;padding:5px 3px;border-radius:12px}.message-reaction{display:grid;place-items:center;min-width:0;min-height:34px;border-radius:9px;background:transparent;font-size:22px;padding:2px}.message-reaction:hover,.message-reaction:focus-visible{background:white;transform:translateY(-2px)}.message-reaction.selected{background:#cfe9dd;box-shadow:inset 0 0 0 1px #8ebea7}.chat-message-dialog .chat-menu-preview{font-size:10px;line-height:1.7;max-height:36px;overflow:hidden;padding:8px 7px 0;color:#85988f;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.message-action-list{display:flex;flex-direction:column;gap:2px;margin-top:7px;padding-top:5px;border-top:1px solid #e7eeea}.message-action-list button{display:flex;align-items:center;gap:11px;background:transparent;text-align:start;border-radius:9px;padding:8px 10px;font-size:12px;color:#345d4d;min-height:38px}.message-action-list button:hover,.message-action-list button:focus-visible{background:#edf5f0}.message-action-list button>span,.message-action-list svg{width:18px;height:18px;font-size:21px;display:grid;place-items:center}.message-action-list .danger{color:#b44b59}.message-action-list .danger:hover{background:#fff0f1}
@media(min-width:901px){body.chat-workspace .topbar{min-height:88px}body.chat-workspace .content{flex:1;min-height:0}body.chat-workspace .chat-layout{height:100%!important;min-height:0;flex:1}}
@media(max-width:1100px){.topbar{padding-inline:18px;gap:12px}.topbar-identity{gap:12px}.topbar-identity .profile strong{font-size:11px}.topbar-identity .profile small{font-size:9px}}
@media(max-width:760px){.shell{display:block;width:100%}.main{width:100%;min-width:0}.content{width:100%;padding:18px 12px}.sidebar{max-width:calc(100% - 32px)}.topbar{display:grid;grid-template-columns:36px minmax(0,1fr) 164px;gap:8px;min-height:86px;padding:9px 12px}.topbar-tools{width:164px;flex-basis:auto;grid-column:3;grid-row:1}.topbar .mobile-menu{display:inline-flex;grid-column:1;grid-row:1;align-self:start;margin-top:2px}.topbar-identity{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.topbar-identity .profile{gap:6px}.topbar-identity .profile .avatar{width:28px;height:28px;font-size:10px}.topbar-identity .profile strong{font-size:10px}.topbar-identity .profile small{font-size:8px}.topbar .iran-clock{align-items:flex-start;min-width:0;font-size:9px}.topbar .iran-clock time:last-child{font-size:8px}.page-heading{gap:12px;flex-wrap:wrap}.page-heading h1{font-size:22px}.card-head{flex-wrap:wrap;gap:10px}.card-head>.toolbar{max-width:100%}.toolbar .search-box{min-width:0;max-width:100%;flex:1 1 150px;width:auto}.search-box input{width:100%;min-width:0}.toolbar select{min-width:0;max-width:100%}.form-actions,.availability-actions{flex-wrap:wrap}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid>.full{grid-column:1/-1}.field input[type=file],input[type=file]{min-width:0;max-width:100%;width:100%}.card-body{padding:16px}.personnel-card-grid{padding:10px}.personnel-row>*{min-width:0}.settings-layout{grid-template-columns:minmax(0,1fr)}.phase-footer{flex-wrap:wrap;gap:8px}.chat-thread-heading{min-width:0}.chat-thread-heading .chat-thread-actions{flex-wrap:wrap}.chat-message{min-width:0;max-width:92%}.chat-file,.chat-attachment-panel{max-width:100%}.voice-message,.voice-message.music-message{width:260px;max-width:100%}.voice-wave i{min-width:0}.login-card,.login-brand{min-width:0;max-width:100%}.login-shell{min-width:0;width:100%}}
@media(max-width:480px){.topbar{grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;gap:7px 8px}.topbar-tools{grid-column:2;grid-row:1;justify-self:end;width:164px;margin:0}.topbar-identity{grid-column:1/-1;grid-row:2;flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.topbar-identity .profile strong{font-size:11px}.topbar-identity .profile small{font-size:9px}.topbar .iran-clock{align-items:flex-end;font-size:10px}.topbar .iran-clock time:last-child{font-size:9px}.message-reaction{font-size:21px}.chat-app-header>div{min-width:0;flex-wrap:wrap}.chat-app-header .iran-clock{min-width:0}.presence-time strong{font-size:14px}}

.institution-logo.official-logo img{object-fit:fill;clip-path:ellipse(39% 48% at 50.5% 49.2%);transform:scale(1.27,1.04)}
@media(max-width:760px){.toolbar .search-box{flex:0 1 auto;width:100%}.topbar-identity .profile small{display:block}.content .btn{max-width:100%;white-space:normal}.content .pill{max-width:100%;white-space:normal}.content .toolbar{width:100%}.profile-photo-editor{flex-wrap:wrap}.profile-photo-editor>div{min-width:0;max-width:100%}}
/* v3.32 login copy, contact and messaging settings. */
.login-brand h1{white-space:pre-line}.login-contact{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #e7eeea;margin-top:10px;color:#55776c;font-size:12px}.login-contact a{font-size:14px;font-weight:700;color:#168377}.login-footer{font-size:10px;color:#7d9188;text-align:center;margin-top:24px;overflow-wrap:anywhere}.forgot-password{margin-top:12px;font-size:12px}.teacher-contact-card{margin-top:18px}.missing-mobile{color:#b47c29!important;font-size:11px!important}.sms-test-form{border-top:1px solid #e4ece7;margin-top:20px;padding-top:18px;display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.sms-test-form>.field{flex:1;min-width:160px}.sms-test-form>p{flex-basis:100%;font-size:11px}.sms-log{margin-top:20px;font-size:11px}.sms-log summary{cursor:pointer;color:#168377}.sms-log>div{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid #e7eeea}.sms-log small{font-size:10px;overflow-wrap:anywhere}.login-settings,.sms-settings{min-width:0}.teacher-contact-card .form-help,.sms-settings .form-help{font-size:11px;line-height:1.9;margin:10px 0}
@media(max-width:760px){.login-form{min-width:0;max-width:100%}.sms-test-form>.field{min-width:0;flex-basis:100%}.login-contact{font-size:11px}.teacher-contact-card input{font-size:16px}}

/* v3.35: Telegram-style composer and compact role/date/action header. */
.chat-compose{padding:10px 12px;position:relative;background:#fff;border-top:1px solid #e3ece7}
.chat-compose-row{display:grid!important;grid-template-columns:36px 36px 36px minmax(0,1fr) 44px!important;align-items:end;gap:5px;direction:rtl!important}
.chat-compose-row .chat-file-control,.chat-compose-row .chat-tool{width:36px;min-width:36px;height:40px;min-height:40px;padding:6px;flex:none;border:0;background:transparent;font-size:21px;display:inline-flex;align-items:center;justify-content:center}
.chat-compose-row .chat-file-control{position:relative;padding:0}.chat-file-control input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.chat-compose-row .chat-text-box{min-width:0;width:100%;border:1px solid #dce9e2;border-radius:17px;background:#f6f9f7}
.chat-compose-row #chat-text{width:100%;min-height:44px;max-height:140px;resize:none;padding:11px 10px 16px;border:0;background:transparent;line-height:1.5;box-sizing:border-box;font-size:14px}
.chat-compose-row #chat-send{width:42px;min-width:42px;height:42px;min-height:42px;border-radius:50%;padding:10px;justify-content:center;align-self:end}
.chat-compose-row #chat-send .chat-send-label{display:none}.chat-compose-row #chat-send svg{width:20px;height:20px}.chat-compose-meta{display:none!important}
.chat-text-remaining{font-size:9px;bottom:2px;inset-inline-end:10px}.chat-voice-status{font-size:11px;flex-wrap:wrap;gap:8px}.voice-secure-link{color:#137e70;text-decoration:underline}
.toolbar .filters .catalog-filter{display:block;flex:0 1 175px;width:175px;margin:0;min-width:0}
.toolbar .filters select,.toolbar .filters .catalog-filter select{height:38px;min-height:38px;max-height:38px;padding:6px 10px;font-size:12px;line-height:1.5;width:auto;max-width:190px;box-sizing:border-box}
.toolbar .filters .catalog-filter select{width:100%}.mobile-account-role,.mobile-search-button{display:none!important}
.birthday-today{margin-bottom:18px;padding:14px;border:1px solid #d9e8df;border-radius:12px;background:#f4faf6}.birthday-today-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.birthday-today-heading h3{font-size:14px;margin:0}.birthday-today-list{display:grid;gap:8px}.birthday-today-person{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:#fff;border-radius:10px}.birthday-today-person strong,.birthday-today-person small{display:block}.birthday-today-person small{font-size:11px;color:#607b70}.birthday-today-person .pill{font-size:10px}
@media(max-width:900px){
 .topbar{display:grid!important;grid-template-columns:32px minmax(62px,1fr) auto auto!important;grid-template-rows:1fr!important;align-items:center;gap:6px!important;min-height:64px;padding:8px 10px!important;direction:rtl}
 .topbar .mobile-menu{grid-column:1;grid-row:1;width:32px;height:34px;min-width:32px;display:grid;place-items:center;padding:5px}
 .mobile-account-role{display:block!important;grid-column:2;grid-row:1;font-size:11px;font-weight:700;line-height:1.6;min-width:0;max-height:36px;overflow:hidden;overflow-wrap:anywhere}
 .topbar-identity{grid-column:3!important;grid-row:1!important;display:block;min-width:0;gap:0!important}.topbar-identity .profile{display:none!important}
 .topbar .iran-clock{display:flex;flex-direction:column;align-items:center!important;font-size:10px;line-height:1.6;gap:0;min-width:0;white-space:nowrap}.topbar .iran-clock time:last-child{font-size:9px}
 .topbar-tools{grid-column:4!important;grid-row:1!important;display:block!important;flex:none;width:auto!important;margin:0!important;justify-self:end}
 .topbar .topbar-actions{display:flex!important;align-items:center;gap:3px;width:auto!important;direction:rtl}.topbar-actions .btn{width:30px;height:32px;min-height:32px;min-width:30px;padding:5px;font-size:15px;border-radius:9px}
 .topbar-actions .notification-label,.topbar-actions #logout>span,.topbar-tools .topbar-search{display:none!important}.topbar-actions svg{width:17px;height:17px}.mobile-search-button{display:inline-flex!important}
 .topbar-actions .notification-count{font-size:8px;min-width:13px;height:13px;top:-4px}
 .chat-compose{padding:8px 6px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.chat-compose-row{grid-template-columns:30px 30px 30px minmax(0,1fr) 38px!important;gap:2px}
 .chat-compose-row .chat-file-control,.chat-compose-row .chat-tool{width:30px;min-width:30px;height:40px;min-height:40px;padding:4px;font-size:20px}.chat-compose-row #chat-send{width:36px;min-width:36px;height:36px;min-height:36px;padding:8px}.chat-compose-row #chat-text{font-size:16px;min-height:44px;padding-inline:7px}
 .toolbar .filters .catalog-filter{flex:1 1 135px;width:auto}.toolbar .filters select{max-width:100%}
}
@media(max-width:350px){.topbar{gap:3px!important;padding-inline:5px!important;grid-template-columns:28px minmax(48px,1fr) auto auto!important}.topbar .iran-clock{font-size:9px}.topbar .iran-clock time:last-child{font-size:8px}.topbar-actions .btn{width:28px;min-width:28px}.mobile-account-role{font-size:10px}}

@media(max-width:900px){.chat-app-header{display:grid!important;grid-template-columns:32px minmax(62px,1fr) auto auto;align-items:center;gap:6px;min-height:64px;padding:8px 10px}.chat-app-header>div{display:contents!important}.chat-app-header #chat-app-menu{grid-column:1;grid-row:1;width:32px;min-width:32px;padding:5px}.chat-app-header .chat-mobile-role{grid-column:2;grid-row:1;font-size:11px;line-height:1.6;min-width:0;overflow:hidden}.chat-app-header .iran-clock{grid-column:3;grid-row:1;font-size:10px;align-items:center;white-space:nowrap}.chat-app-header #chat-broadcast-open{display:none}.chat-app-header #chat-mobile-search,.chat-app-header #chat-logout,.chat-app-header #chat-mobile-notice{grid-row:1;width:29px;min-width:29px;height:32px;padding:5px}.chat-app-header{grid-template-columns:32px minmax(55px,1fr) auto 29px 29px 29px}.chat-app-header #chat-mobile-search{grid-column:4}.chat-app-header #chat-mobile-notice{grid-column:5}.chat-app-header #chat-logout{grid-column:6}.chat-app-header .iran-clock time:last-child{font-size:9px}}
