:root{--ink:#192538;--muted:#738096;--line:#e8ecf2;--canvas:#f6f7fb;--panel:#fff;--purple:#6b5ce7;--purple-soft:#f0eeff;--teal:#087d76;--teal-soft:#e6f5f3;--orange:#ed8b3a;--orange-soft:#fff1e5;--blue:#4179e6;--blue-soft:#edf4ff;--green:#2a9c70;--green-soft:#eaf8f1;--danger:#db5f5f;--shadow:0 10px 30px rgba(34,49,73,.05)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Vazirmatn,Tahoma,sans-serif;font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:264px;min-height:100vh;background:#192b40;color:#d8e1ec;padding:25px 16px;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:3}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:18px;font-weight:700;padding:0 10px 25px}.brand small{display:block;color:#91a2b6;font-size:10px;font-weight:400;margin-top:2px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#66c2b5;color:#163148;font-size:19px}.role-switch{margin:0 7px 25px;padding:3px;border-radius:9px;background:rgba(255,255,255,.08);display:flex}.role{border:0;background:transparent;color:#afbdcb;font:inherit;padding:7px 8px;flex:1;border-radius:6px;cursor:pointer;font-size:11px}.role.active{color:#fff;background:rgba(255,255,255,.14)}.nav-label{font-size:10px;color:#75889c;padding:0 12px;margin:0 0 8px}.nav-list{display:grid;gap:4px}.nav-item{border:0;background:transparent;color:#b5c2d0;padding:10px 12px;display:flex;align-items:center;gap:12px;font:inherit;text-align:right;border-radius:8px;cursor:pointer;width:100%;transition:.2s}.nav-item span{font-size:18px;line-height:15px;color:#a9bacb;width:16px;text-align:center}.nav-item b{font-size:10px;background:#e76a66;color:#fff;border-radius:9px;padding:1px 6px;margin-right:auto}.nav-item:hover,.nav-item.active{background:#29445b;color:#fff}.nav-item.active span{color:#74d4c7}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:12px}.mini-profile{display:flex;align-items:center;gap:9px;padding:14px 8px 0}.mini-profile strong,.mini-profile small{display:block}.mini-profile small{font-size:10px;color:#90a3b7;margin-top:2px}.dots{color:#92a1b2;margin-right:auto}.content-area{margin-right:264px;width:calc(100% - 264px);padding:0 44px 50px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between}.page-context{display:flex;align-items:baseline;gap:13px}.breadcrumb{color:#9aa5b4;font-size:12px}.topbar h1{font-size:16px;margin:0}.top-actions{display:flex;align-items:center;gap:9px}.icon-button,.more,.arrow{border:0;background:transparent;color:#738096;font-size:20px;cursor:pointer;position:relative}.notification i{position:absolute;width:6px;height:6px;border-radius:50%;background:#e96962;top:3px;left:2px}.new-task,.approve{border:0;border-radius:8px;background:var(--teal);color:#fff;font:inherit;font-weight:600;padding:10px 15px;cursor:pointer;box-shadow:0 4px 12px rgba(8,125,118,.14)}.new-task b{background:rgba(255,255,255,.2);padding:0 5px;border-radius:8px}.menu-button{display:none}.view{display:none;animation:fade .2s ease}.view.active{display:block}@keyframes fade{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}.welcome-row,.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin:23px 0}.eyebrow{color:var(--teal);font-size:11px;font-weight:600;margin:0 0 5px}.welcome-title,.section-header h2{font-size:25px;letter-spacing:-.7px;margin:0 0 5px}.muted,.panel-heading p{color:var(--muted);font-size:12px;margin:0}.secondary-btn{background:#fff;border:1px solid var(--line);color:#4b5b70;border-radius:8px;padding:9px 13px;font:inherit;cursor:pointer}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.stat-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.stat-card{padding:18px;display:flex;gap:13px;align-items:center}.stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:22px}.violet{background:var(--purple-soft);color:var(--purple)}.orange{background:var(--orange-soft);color:var(--orange)}.blue{background:var(--blue-soft);color:var(--blue)}.green{background:var(--green-soft);color:var(--green)}.teal{background:var(--teal-soft);color:var(--teal)}.stat-card small,.stat-card em{display:block;color:var(--muted);font-size:11px;font-style:normal}.stat-card strong{font-size:24px;line-height:1.35;display:block}.stat-card em{color:#2f9c6e}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-top:16px}.panel{padding:21px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:13px}.panel-heading h3{margin:0 0 5px;font-size:15px}.text-button{border:0;background:transparent;color:var(--teal);font:inherit;font-size:12px;cursor:pointer}.review-list{display:grid}.review-item{display:flex;align-items:center;gap:11px;padding:13px 0;border-top:1px solid var(--line)}.review-item strong{font-size:13px}.review-item p,.equipment-request p{font-size:11px;margin:3px 0;color:var(--muted)}.grow{flex:1;min-width:0}.avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;font-weight:600;font-size:13px;flex:none}.avatar.purple{background:#eeeaff;color:#6557d7}.avatar.orange{background:#fff0e4;color:#cd792d}.avatar.green{background:#e7f8f1;color:#188a5c}.avatar.blue{background:#e8f1ff;color:#3973d4}.status{font-size:10px;padding:4px 7px;border-radius:5px;white-space:nowrap}.pending{background:#fff2e2;color:#c47a2d}.blue-status{background:#eaf2ff;color:#4975c5}.equipment{background:#e6f6f4;color:#137f77}.good{background:#eaf8f1;color:#21885e}.attention{background:#fff0e8;color:#cd6d3c}.agenda{display:grid;gap:17px;margin-top:22px}.agenda>div{display:flex;gap:9px}.agenda time{color:#718097;font-size:11px;width:35px;direction:ltr}.agenda-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;position:relative}.agenda-dot:after{content:"";position:absolute;right:3px;top:12px;width:1px;height:32px;background:#e5e9ef}.agenda>div:last-child .agenda-dot:after{display:none}.purple-dot{background:var(--purple)}.orange-dot{background:var(--orange)}.green-dot{background:var(--green)}.agenda p{margin:0;font-size:12px}.agenda strong,.agenda small{display:block}.agenda small{font-size:10px;color:var(--muted);margin-top:4px}.full-calendar{margin-top:20px;width:100%;border:1px dashed #c9d2df;background:#fbfcfd;border-radius:7px;padding:8px;color:var(--teal);font:inherit;cursor:pointer;font-size:12px}.student-progress{margin-top:16px}.progress-table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:right}th{color:#8a96a7;font-weight:500;font-size:10px;padding:7px 0 11px}td{font-size:12px;padding:12px 0;border-top:1px solid var(--line);white-space:nowrap}td>small{color:var(--muted);font-size:10px;margin-right:5px}.person{display:flex;align-items:center;gap:8px;white-space:normal}.person small{display:block;color:var(--muted);font-size:10px}.progress{width:82px;display:inline-block;height:5px;border-radius:5px;background:#edf0f5;margin-left:4px;vertical-align:middle;overflow:hidden}.progress i,.task-progress i{height:100%;display:block;border-radius:5px;background:var(--teal)}.filter-row{display:flex;align-items:center;gap:8px;margin:-8px 0 18px}.filter{font:inherit;font-size:12px;border:1px solid var(--line);background:#fff;padding:8px 11px;border-radius:7px;color:#667388;cursor:pointer}.filter.active{border-color:#a8d9d3;background:#eefaf8;color:var(--teal)}.search{margin-right:auto;display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;padding:0 10px;border-radius:7px;color:#8b98a9}.search input{border:0;outline:0;font:inherit;padding:8px;width:160px}.student-list{padding:8px 20px}.row-action{border:1px solid #c7e4df;background:#effbf9;color:var(--teal);font:inherit;font-size:11px;border-radius:6px;padding:6px 9px;cursor:pointer}.task-board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.task-column{min-height:390px;background:#eef1f6;border-radius:11px;padding:13px}.task-column header{display:flex;align-items:center;gap:7px;margin-bottom:11px}.task-column h3{font-size:12px;margin:0}.task-column h3 span{font-size:10px;color:#718097;background:#e1e6ee;border-radius:8px;padding:1px 6px}.task-card{background:#fff;border:1px solid #e7ebf0;border-radius:9px;padding:13px;margin-bottom:10px;box-shadow:0 2px 5px rgba(28,39,56,.03)}.task-card.highlight{border-right:3px solid var(--teal)}.task-card.done{opacity:.72}.task-card h4{margin:10px 0 5px;font-size:12px}.task-card p{color:var(--muted);font-size:10px;margin:0}.task-card footer{display:flex;justify-content:space-between;align-items:center;margin-top:13px;color:#8290a3;font-size:10px}.task-tag{font-size:9px;border-radius:4px;padding:3px 6px}.research{color:#5f51c9;background:#efedff}.writing{color:#cb7229;background:#fff0e3}.lab{color:#147e74;background:#e5f6f3}.report{color:#3d70c4;background:#eaf1fe}.done-tag{color:#21885e;background:#eaf8f1}.tiny{width:21px;height:21px;font-size:9px}.task-progress{height:4px;background:#edf0f4;border-radius:4px;margin-top:12px;overflow:hidden}.small-primary{background:#e7f6f3;border:0;color:var(--teal);font:inherit;font-size:10px;padding:5px 7px;border-radius:5px;cursor:pointer}.calendar-controls{display:flex;gap:4px}.calendar-panel{padding:0;overflow:hidden}.calendar-legend{padding:15px 20px;border-bottom:1px solid var(--line);display:flex;gap:20px;color:#748196;font-size:11px}.legend{display:inline-block;width:8px;height:8px;border-radius:3px;margin-left:5px}.meeting{background:var(--purple)}.deadline{background:var(--orange)}.booking{background:var(--teal)}.pending-legend{background:#d6a360}.calendar-grid{display:grid;grid-template-columns:70px repeat(7,1fr);min-width:780px}.calendar-grid .day-head{padding:13px 8px;text-align:center;border-left:1px solid var(--line);font-size:11px;color:#788599}.calendar-grid .day-head b{display:block;color:var(--ink);margin-top:3px;font-size:14px}.calendar-grid .time{height:62px;padding:7px;color:#a1abb9;font-size:10px;border-top:1px solid var(--line);text-align:center;direction:ltr}.calendar-cell{height:62px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:3px;position:relative}.event{font-size:9px;border-radius:4px;padding:4px;color:#fff;overflow:hidden;white-space:nowrap;cursor:pointer}.event.meeting-event{background:#7768df}.event.deadline-event{background:#e69a52}.event.booking-event{background:#219389}.event.pending-event{background:#d5a05e}.equipment-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:16px}.equipment-request{display:flex;align-items:center;gap:11px;padding:13px 0;border-top:1px solid var(--line)}.equipment-icon{color:var(--teal);background:var(--teal-soft);display:grid;place-items:center;width:37px;height:37px;border-radius:10px;font-size:20px}.equipment-request strong{font-size:13px}.equipment-request small{font-size:10px;color:#8996a7}.request-actions{display:flex;gap:5px}.request-actions .approve{padding:6px 10px;font-size:11px}.decline{border:0;background:#fff0f0;color:#ca5e5e;font:inherit;padding:6px 9px;border-radius:6px;cursor:pointer}.equipment-row{display:flex;justify-content:space-between;padding:15px 0;border-top:1px solid var(--line)}.equipment-row strong,.equipment-row span{display:block}.equipment-row strong{font-size:12px}.equipment-row div>span{font-size:10px;color:var(--muted);margin-top:4px}.empty-state{text-align:center;padding:70px}.empty-state>span{font-size:42px;color:var(--teal)}.empty-state h3{font-size:15px;font-weight:500;margin:10px}.modal{width:min(560px,calc(100% - 25px));border:0;border-radius:15px;padding:0;box-shadow:0 25px 70px rgba(22,34,51,.25);font-family:inherit;color:var(--ink)}.modal::backdrop{background:rgba(19,35,53,.36)}.modal form{padding:24px}.modal header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.modal h2{font-size:18px;margin:0}.close-modal{font-size:25px;border:0;background:transparent;cursor:pointer;color:#8a96a7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label,.modal label{font-size:11px;color:#516076;display:grid;gap:6px}.form-grid input,.form-grid select,.form-grid textarea,.modal label input{font:inherit;border:1px solid #dfe5ed;border-radius:7px;padding:9px;outline-color:var(--teal);background:#fff}.form-grid textarea{height:76px;resize:vertical}.wide{grid-column:1/-1}.modal footer,.account-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.application{display:flex;align-items:center;gap:9px;padding:14px 0;border-top:1px solid var(--line)}.application strong,.application p,.application small{display:block}.application p,.application small{font-size:10px;color:var(--muted);margin:3px 0}.application .approve{font-size:11px;padding:8px}.small-modal{max-width:450px}.security-note{padding:10px;background:#fff7ec;color:#9b6a31;border-radius:7px;font-size:11px;line-height:1.9}.toast{position:fixed;bottom:20px;left:20px;z-index:7;background:#1b3446;color:#fff;padding:10px 16px;border-radius:8px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
.hidden{display:none!important}.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(360px,42%) 1fr;direction:ltr}.auth-aside{direction:rtl;background:#192b40;color:#fff;padding:38px 56px;display:flex;flex-direction:column;min-height:100vh;overflow:hidden;position:relative}.auth-brand{padding:0}.auth-art{height:355px;display:grid;place-items:center;position:relative}.auth-calendar-card{width:265px;background:#fff;color:var(--ink);border-radius:14px;padding:18px;box-shadow:0 24px 45px rgba(0,0,0,.2);z-index:1;direction:rtl}.auth-card-title{display:flex;justify-content:space-between;font-size:13px;font-weight:600;border-bottom:1px solid #edf0f4;padding-bottom:13px}.auth-card-title b{font-size:10px;color:var(--teal);background:var(--teal-soft);padding:3px 6px;border-radius:5px}.auth-event{display:flex;gap:9px;align-items:center;padding:14px 0 1px}.auth-event i{display:block;width:8px;height:33px;background:#7567dd;border-radius:6px}.auth-event.orange-event i{background:#e69b52}.auth-event strong,.auth-event small{display:block;font-size:11px}.auth-event small{color:var(--muted);font-size:10px;margin-top:3px}.orbit{position:absolute;border:1px solid rgba(111,211,198,.22);border-radius:50%}.orbit-one{width:360px;height:360px}.orbit-two{width:490px;height:490px}.auth-copy{direction:rtl;margin-top:auto;max-width:340px}.auth-copy p{font-size:25px;font-weight:600;margin:0 0 8px}.auth-copy span{font-size:12px;line-height:2;color:#aebdcb}.auth-content{direction:rtl;display:grid;place-items:center;padding:44px;background:#fbfcfd}.login-card,.register-card{width:min(430px,100%)}.login-card h1,.register-card h1{margin:0 0 7px;font-size:27px;letter-spacing:-.7px}.login-intro{line-height:1.8}.login-role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:25px 0 18px}.login-role{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px;text-align:right;cursor:pointer;color:#637188;font-family:inherit}.login-role span{font-size:18px;color:#8290a4;display:block}.login-role b,.login-role small{display:block}.login-role b{font-size:12px;color:#435269;margin:4px 0}.login-role small{font-size:9px}.login-role.active{border-color:#86c9c0;background:#f0fbf9}.login-role.active span,.login-role.active b{color:var(--teal)}#login-form{display:grid;gap:14px}.auth-content label{color:#506075;font-size:11px;display:grid;gap:6px}.auth-content input,.auth-content select,.auth-content textarea{border:1px solid #dce3ec;background:#fff;border-radius:7px;padding:11px;font-family:inherit;outline-color:var(--teal);width:100%}.login-options{display:flex;justify-content:space-between;align-items:center}.checkbox{display:flex!important;align-items:center;gap:5px}.checkbox input{width:auto}.login-submit{border:0;border-radius:8px;background:var(--teal);color:#fff;padding:12px 15px;font:inherit;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.login-submit span{font-size:17px}.register-hint{text-align:center;color:#78869a;font-size:11px;margin-top:20px}.back-login{border:0;background:transparent;color:#68768b;font:inherit;font-size:11px;padding:0;cursor:pointer;margin-bottom:28px}.public-register{display:grid;gap:17px;margin-top:20px}.public-register .form-grid textarea{height:64px}.public-register input[type=file]{font-size:10px;padding:7px}.public-register .login-submit{margin-top:3px}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.task-board{grid-template-columns:repeat(2,1fr)}.content-area{padding:0 26px 40px}.equipment-layout{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.week-panel{display:none}}@media(max-width:760px){.sidebar{transform:translateX(100%);transition:.25s;width:240px}.sidebar.open{transform:none}.content-area{margin:0;width:100%;padding:0 16px 30px}.menu-button{display:block;border:0;background:transparent;font-size:20px}.topbar{height:68px}.breadcrumb{display:none}.top-actions .icon-button{display:none}.top-actions .new-task{padding:8px 10px;font-size:11px}.welcome-row,.section-header{margin:16px 0;gap:10px}.welcome-title,.section-header h2{font-size:20px}.stat-grid{gap:9px}.stat-card{padding:12px}.stat-icon{width:32px;height:32px}.stat-card strong{font-size:20px}.stat-card em{display:none}.student-progress{padding:12px}.filter-row{overflow:auto;padding-bottom:4px}.filter{white-space:nowrap}.search{display:none}.task-board{grid-template-columns:1fr}.task-column{min-height:0}.calendar-panel{overflow:auto}.calendar-grid{min-width:700px}.equipment-request{align-items:flex-start;flex-wrap:wrap}.equipment-request .status{margin-right:auto}.request-actions{width:100%;margin-right:48px}.application{flex-wrap:wrap}.application .secondary-btn{margin-right:auto}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.application .approve{margin-right:auto}}

button,input,select,textarea{font-family:inherit}.logout-button{border:0;background:transparent;color:#9eb0c2;font:inherit;font-size:10px;margin-right:auto;cursor:pointer;padding:7px}.logout-button:hover{color:#fff}.dialog-body{padding:24px}.dialog-body header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.table-empty,.column-empty{color:var(--muted);text-align:center;padding:24px!important;font-size:11px}.task-next{border:0;background:var(--teal-soft);color:var(--teal);border-radius:5px;padding:5px 8px;font:inherit;font-size:9px;cursor:pointer}.message-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.conversation-list{padding:8px}.conversation{border:0;background:transparent;width:100%;display:flex;align-items:center;gap:10px;text-align:right;padding:12px;border-radius:9px;color:var(--ink);cursor:pointer}.conversation:hover,.conversation.active{background:var(--teal-soft)}.conversation strong,.conversation small{display:block}.conversation strong{font-size:12px}.conversation small{color:var(--muted);font-size:9px;margin-top:3px}.conversation b{margin-right:auto;background:var(--teal);color:#fff;border-radius:10px;min-width:20px;padding:2px 5px;font-size:9px;text-align:center}.chat-panel{padding:0;overflow:hidden}.chat-panel>header{padding:17px 20px;border-bottom:1px solid var(--line)}.chat-panel>header strong,.chat-panel>header small{display:block}.chat-panel>header small{color:var(--muted);font-size:10px;margin-top:4px}.chat-messages{height:360px;overflow:auto;padding:20px;background:#fafbfc;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.chat-bubble{max-width:75%;background:#fff;border:1px solid var(--line);border-radius:12px 12px 12px 3px;padding:9px 12px}.chat-bubble.mine{align-self:flex-end;background:var(--teal);color:#fff;border-color:var(--teal);border-radius:12px 12px 3px 12px}.chat-bubble p{margin:0;font-size:12px;line-height:1.9;white-space:pre-wrap}.chat-bubble small{display:block;font-size:8px;opacity:.7;margin-top:4px}.chat-compose{display:flex;gap:9px;padding:12px;border-top:1px solid var(--line)}.chat-compose textarea{flex:1;resize:none;height:48px;border:1px solid var(--line);border-radius:8px;padding:10px;outline-color:var(--teal)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-card{display:grid;gap:13px;align-content:start}.settings-card>label{display:grid;gap:6px;color:#516076;font-size:11px}.settings-card input{border:1px solid #dfe5ed;border-radius:7px;padding:9px;outline-color:var(--teal)}.settings-card .new-task{justify-self:start}.backup-actions{display:flex;flex-wrap:wrap;gap:8px}.file-button{display:inline-block;cursor:pointer}.file-button input{display:none}.danger-btn{border:1px solid #f1caca;background:#fff4f4;color:#b84f4f;border-radius:8px;padding:9px 13px;font:inherit;cursor:pointer}.account-checkbox{display:flex!important;margin:15px 0}.account-checkbox input{width:auto}.modal input,.modal select,.modal textarea{min-width:0}.modal[open]{animation:dialog-in .18s ease}@keyframes dialog-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

@media(max-width:760px){.auth-screen{grid-template-columns:1fr}.auth-aside{display:none}.auth-content{padding:24px 18px;min-height:100vh}.message-layout,.settings-grid{grid-template-columns:1fr}.conversation-list{display:flex;overflow:auto}.conversation{min-width:190px}.chat-messages{height:320px}.chat-compose{align-items:flex-end}.chat-compose .new-task{padding:10px}.student-list{overflow:auto}.application .approve{margin-right:0}.role-switch{margin-bottom:18px}.toast{right:16px;left:16px;text-align:center}.section-header{flex-wrap:wrap}.backup-actions>*{width:100%;text-align:center}}
.compose-main{display:grid;gap:7px;flex:1;min-width:0}.file-row{display:flex;align-items:center;gap:9px;min-width:0}.attachment-picker{position:relative;display:inline-flex;align-items:center;gap:5px;border:1px solid #c7e4df;background:#effbf9;color:var(--teal);border-radius:6px;padding:6px 9px;font-size:10px;cursor:pointer;white-space:nowrap}.attachment-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-row>span{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-file{display:flex;align-items:center;gap:8px;margin:5px 0 2px;padding:8px 10px;border-radius:8px;background:#f0f4f8;color:#31516d;text-decoration:none;min-width:190px;max-width:100%}.mine .message-file{background:rgba(255,255,255,.16);color:#fff}.message-file>span:first-child{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:rgba(20,126,118,.12);font-size:16px}.mine .message-file>span:first-child{background:rgba(255,255,255,.14)}.message-file strong,.message-file small{display:block;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-file strong{font-size:10px}.message-file small{font-size:8px!important;margin-top:2px!important;opacity:.72!important}@media(max-width:560px){.chat-compose{display:grid}.chat-compose .new-task{width:100%}.message-file{min-width:0}}

/* Server-backed application additions */
.login-role-tabs.three{grid-template-columns:repeat(3,1fr)}.login-role-tabs.three .login-role{padding:10px 7px}.current-role{margin:0 7px 24px;padding:9px 12px;border-radius:8px;background:rgba(255,255,255,.08);color:#dbe7f2;font-size:11px}.dashboard-summary{margin-top:16px}.member-modal{width:min(760px,calc(100% - 25px))}.member-modal small{font-size:9px;color:var(--muted)}.member-modal textarea{min-height:68px}.settings-card textarea{min-height:100px;border:1px solid #dfe5ed;border-radius:7px;padding:9px;font:inherit;resize:vertical}.application .new-task{font-size:10px;padding:7px 10px}.chat-panel>header{min-height:60px}.modal>form>label{margin-bottom:13px}.credential-box{display:grid;gap:12px;margin-top:16px}.credential-box label{display:grid;gap:6px;color:#516076;font-size:11px}.credential-box input{border:1px solid #dfe5ed;border-radius:7px;padding:10px;background:#f8fafc;font:inherit}.credential-box input[dir=ltr]{font-family:Consolas,monospace;text-align:left;font-size:13px}
@media(max-width:760px){.login-role-tabs.three{grid-template-columns:1fr}.login-role-tabs.three .login-role{display:grid;grid-template-columns:30px 1fr;column-gap:8px}.login-role-tabs.three .login-role span{grid-row:1/3}.login-role-tabs.three .login-role b,.login-role-tabs.three .login-role small{margin:0}.member-modal{max-height:92vh}.topbar>.new-task{font-size:10px;padding:8px}.stat-grid{grid-template-columns:1fr 1fr}}

/* Responsive calibration */
html,body{max-width:100%;overflow-x:hidden}.content-area,.view,.panel,.grow{min-width:0}.sidebar-overlay{display:none;border:0;padding:0}.progress-table-wrap{max-width:100%;overscroll-behavior-inline:contain}dialog{max-height:calc(100dvh - 24px);overflow:auto}table{min-width:680px}
@media(max-width:1280px) and (min-width:901px){.sidebar{width:230px;padding-inline:13px}.content-area{margin-right:230px;width:calc(100% - 230px);padding-inline:24px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.message-layout{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:900px){body.menu-open{overflow:hidden}.sidebar{width:min(290px,84vw);height:100dvh;min-height:0;overflow-y:auto;transform:translateX(105%);transition:transform .24s ease;box-shadow:-18px 0 45px rgba(13,28,44,.2);z-index:20}.sidebar.open{transform:translateX(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(12,28,43,.42);opacity:0;visibility:hidden;transition:.24s;z-index:19}.sidebar-overlay.open{opacity:1;visibility:visible}.content-area{margin-right:0;width:100%;padding:0 clamp(16px,4vw,30px) 40px}.menu-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);cursor:pointer}.topbar{position:sticky;top:0;height:72px;background:rgba(246,247,251,.94);backdrop-filter:blur(8px);z-index:10}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-board{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-layout,.dashboard-grid{grid-template-columns:1fr}.filter-row{flex-wrap:wrap}.search{display:flex}.message-layout{grid-template-columns:1fr}.conversation-list{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:7px}.conversation{min-width:180px;scroll-snap-align:start}.settings-grid{grid-template-columns:1fr}.chat-messages{height:clamp(300px,48dvh,440px)}}
@media(max-width:640px){body{font-size:13px}.content-area{padding-inline:12px;padding-bottom:24px}.topbar{height:64px;gap:8px}.page-context{display:block;min-width:0}.page-context h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb{display:none}.topbar>.new-task{font-size:10px;padding:8px 9px;white-space:nowrap}.welcome-row,.section-header{align-items:stretch;flex-direction:column;margin:14px 0}.section-header>.new-task,.section-header>.secondary-btn{width:100%}.welcome-title,.section-header h2{font-size:20px}.panel{padding:15px;border-radius:11px}.stat-grid{gap:8px}.stat-card{padding:12px;gap:9px}.stat-icon{width:34px;height:34px}.stat-card strong{font-size:19px}.stat-card small{font-size:10px}.stat-card em{display:none}.task-board{grid-template-columns:1fr;gap:10px}.task-column{min-height:0}.filter-row{display:flex;flex-wrap:wrap;overflow:visible;margin-bottom:12px}.filter{flex:1;min-width:max-content}.search{display:flex;order:2;width:100%;margin:0}.search input{width:100%;min-width:0}.student-list{padding:6px 12px}.equipment-request{align-items:flex-start;flex-wrap:wrap}.equipment-request .status{margin-right:auto}.request-actions{width:100%;margin-right:47px}.application{align-items:flex-start;flex-wrap:wrap}.application .new-task,.application .approve{width:100%;margin:4px 0 0}.chat-panel>header{padding:13px 15px;min-height:50px}.chat-messages{height:44dvh;min-height:280px;padding:13px}.chat-bubble{max-width:88%}.chat-compose{display:grid;padding:10px}.chat-compose textarea{width:100%;font-size:16px}.chat-compose .new-task{width:100%;min-height:42px}.file-row{align-items:flex-start}.modal{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:12px}.modal form,.dialog-body{padding:17px}.modal header{margin-bottom:14px}.modal footer{position:sticky;bottom:-17px;background:#fff;padding:10px 0 2px;z-index:1}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.modal input,.modal select,.modal textarea,.auth-content input,.auth-content select,.auth-content textarea,.settings-card input,.settings-card textarea{font-size:16px;width:100%}.auth-content{padding:24px 16px;align-items:start;overflow-y:auto}.login-role-tabs.three{gap:7px;margin:18px 0 14px}.toast{right:12px;left:12px;bottom:12px;text-align:center}.review-item{align-items:flex-start}.message-file strong,.message-file small{max-width:180px}}
@media(max-width:430px){.stat-grid{grid-template-columns:1fr}.stat-card{justify-content:flex-start}.topbar>.new-task{max-width:104px;overflow:hidden;text-overflow:ellipsis}.conversation{min-width:155px}.chat-bubble{max-width:94%}.message-file{min-width:0}.modal footer{flex-direction:column-reverse}.modal footer button{width:100%}.mini-profile{padding-inline:3px}.auth-content{padding-inline:13px}}

/* Workdesk and group conversations */
.work-tabs{display:flex;gap:8px;margin:-5px 0 16px;overflow-x:auto;padding-bottom:3px}.work-tabs .filter{white-space:nowrap}.work-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.work-card{display:flex;flex-direction:column;gap:8px}.work-card>header{display:flex;justify-content:space-between;align-items:center}.work-card h3{font-size:15px;margin:2px 0}.work-card p{margin:0}.work-badge{font-size:10px;padding:5px 8px;border-radius:6px;background:var(--teal-soft);color:var(--teal)}.work-badge.report{background:var(--blue-soft);color:var(--blue)}.work-badge.student_project{background:var(--purple-soft);color:var(--purple)}.work-badge.private_project{background:var(--orange-soft);color:#bc6726}.work-members,.work-time{font-size:11px;color:#66758a}.work-description{font-size:11px;color:var(--muted);line-height:1.9;white-space:pre-wrap}.work-card>footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:10px;margin-top:auto}.work-card>footer small{font-size:9px;color:var(--muted)}.work-file{font-size:10px;color:var(--teal);text-decoration:none;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-work{grid-column:1/-1;text-align:center;padding:60px}.empty-work span{font-size:35px;color:var(--teal)}.empty-work p{color:var(--muted);font-size:11px}.member-picker{border:1px solid #dfe5ed;border-radius:9px;padding:12px;min-width:0}.member-picker legend{padding:0 7px;color:#516076;font-size:11px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:180px;overflow:auto}.check-grid label{display:flex!important;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fafbfc;cursor:pointer}.check-grid input{width:auto!important;margin:0}.check-grid span{font-size:11px;color:var(--ink)}.conversation-label{font-size:9px;color:var(--muted);padding:7px 10px 2px;margin:0}.group-conversation .avatar{border-radius:10px}.message-sender{display:block;font-size:9px;color:var(--teal);margin-bottom:3px}.mine .message-sender{color:#d8fffa}
@media(max-width:900px){.work-list{grid-template-columns:1fr}.work-tabs{margin-top:0}.conversation-label{display:none}}
@media(max-width:640px){.work-card>footer{align-items:flex-start;flex-direction:column}.work-file{max-width:100%}.check-grid{grid-template-columns:1fr}.member-picker{padding:9px}.empty-work{padding:40px 15px}.work-tabs .filter{flex:none}.work-tabs{scroll-snap-type:x proximity}.work-tabs .filter{scroll-snap-align:start}}
.section-actions{display:flex;gap:8px;align-items:center}.meeting-requests{margin-bottom:16px}.meeting-request{display:flex;align-items:center;gap:10px;padding:13px 0;border-top:1px solid var(--line)}.meeting-request:first-child{border-top:0}.meeting-request strong{font-size:12px}.meeting-request p,.meeting-request small{display:block;font-size:10px;color:var(--muted);margin:3px 0}.meeting-request .request-actions{width:auto;margin:0}.meeting-request .approve,.meeting-request .decline{white-space:nowrap}@media(max-width:640px){.section-actions{width:100%;display:grid}.section-actions .new-task{width:100%}.meeting-request{align-items:flex-start;flex-wrap:wrap}.meeting-request .grow{width:calc(100% - 48px)}.meeting-request>.status{margin-right:45px}.meeting-request .request-actions{width:100%;margin-right:45px}.meeting-request .request-actions button{flex:1}}

/* Keep feedback visible on both the sign-in screen and inside user panels. */
.toast{z-index:50;max-width:min(420px,calc(100% - 32px));line-height:1.8}
.task-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-delete{border:0;background:#fff0f0;color:#bd4f58;border-radius:6px;padding:4px 7px;font:inherit;font-size:9px;cursor:pointer}.task-delete:hover{background:#f9dfe1}.task-delete:disabled{opacity:.55;cursor:wait}
.task-manager-fields{border:1px solid #d9ebe8;background:#f7fcfb;border-radius:10px;padding:13px}.task-manager-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.task-manager-heading strong{color:var(--teal);font-size:13px}.task-manager-heading small{color:var(--muted);font-size:10px}.project-manager-brief{margin-top:10px;padding:9px 10px;border-right:3px solid var(--teal);border-radius:7px;background:var(--teal-soft)}.project-manager-brief strong,.project-manager-brief small{display:block}.project-manager-brief strong{font-size:10px;color:#176f69}.project-manager-brief small{font-size:9px;color:#5e7d7a;margin-top:3px}.project-manager-brief p{margin-top:7px!important;color:#365d59!important;line-height:1.8;white-space:pre-wrap}.task-description{line-height:1.8;white-space:pre-wrap}
@media(max-width:640px){.task-manager-heading{align-items:flex-start;flex-direction:column}}

/* Role-aware task management */
.admin-task-groups{display:grid;gap:16px}.teacher-task-group{padding:0;overflow:hidden}.teacher-task-head{display:flex;align-items:center;gap:11px;padding:16px 18px;background:#fafbfc;border-bottom:1px solid var(--line)}.teacher-task-head strong,.teacher-task-head small{display:block}.teacher-task-head strong{font-size:14px}.teacher-task-head small{font-size:10px;color:var(--muted);margin-top:3px}.student-task-groups{display:grid;gap:12px;padding:14px}.student-task-group{border:1px solid var(--line);border-radius:10px;background:#f7f9fb;overflow:hidden}.student-task-group>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:#fff;border-bottom:1px solid var(--line)}.student-task-group>header strong,.student-task-group>header small{display:block}.student-task-group>header strong{font-size:12px}.student-task-group>header small{font-size:9px;color:var(--muted);margin-top:3px}.student-task-group>header>span{font-size:10px;color:var(--teal);background:var(--teal-soft);border-radius:7px;padding:4px 8px;white-space:nowrap}.admin-task-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:11px}.admin-task-cards .task-card{margin:0}.task-state{margin-right:auto;font-size:9px;color:#587089;background:#eef2f6;border-radius:5px;padding:3px 6px}.task-person{line-height:1.8}.task-person b{display:inline-block;color:var(--teal);font-size:9px;background:var(--teal-soft);border-radius:5px;padding:1px 5px;margin-right:4px}.task-status-select{max-width:125px;border:1px solid #c7e4df;background:#effbf9;color:var(--teal);border-radius:6px;padding:5px 7px;font:inherit;font-size:9px;cursor:pointer}.empty-admin-tasks{text-align:center;color:var(--muted);padding:55px}.task-card-head .task-delete{flex:none}
@media(max-width:1100px){.admin-task-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.teacher-task-head{padding:13px}.student-task-groups{padding:9px}.admin-task-cards{grid-template-columns:1fr;padding:9px}.student-task-group>header{align-items:flex-start}.task-status-select{max-width:115px}.task-card-head{flex-wrap:wrap}.task-state{margin-right:0}.task-card-head .task-delete{margin-right:auto}}

/* Admin activity report */
.activity-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.activity-stats article{display:flex;align-items:center;justify-content:space-between;padding:17px 19px}.activity-stats small{color:var(--muted);font-size:11px}.activity-stats strong{font-size:24px;color:var(--teal)}.activity-panel{padding:8px 20px}.activity-exit{display:inline-block;max-width:300px;white-space:normal;line-height:1.8;font-size:10px;padding:4px 7px;border-radius:6px}.activity-exit.online{color:#21885e;background:#eaf8f1}.activity-exit.closed{color:#587089;background:#eef2f6}.activity-exit.stale{color:#b56b28;background:#fff2e2}
@media(max-width:640px){.activity-stats{grid-template-columns:1fr}.activity-stats article{padding:13px 15px}.activity-panel{padding:7px 12px}}
.delete-task-note{background:#fff2f2;color:#9d4249}.delete-task-note strong{color:#722e34}.dialog-body footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.danger-btn:disabled{opacity:.55;cursor:wait}

/* 2026 workspace redesign: calm login, light role-aware shell and weekly planner. */
:root{--ink:#182237;--muted:#778196;--line:#e7eaf0;--canvas:#f7f8fb;--panel:#fff;--teal:#168e87;--teal-soft:#e8f7f5;--blue:#3969df;--blue-soft:#edf3ff;--purple:#7358d5;--shadow:0 8px 30px rgba(25,35,55,.055)}
body{background:radial-gradient(circle at 15% 0,#edf8f7 0,transparent 28%),var(--canvas)}
.sidebar{width:238px;background:rgba(255,255,255,.96);color:var(--ink);border-left:1px solid var(--line);padding:20px 13px;box-shadow:-8px 0 30px rgba(26,36,54,.025)}
.sidebar .brand{color:var(--ink);padding:0 9px 20px}.sidebar .brand small{color:var(--muted)}.brand-mark{background:linear-gradient(145deg,#263c73,#315fc7);color:#fff;box-shadow:0 7px 18px rgba(49,95,199,.2)}
.current-role{background:#f1f5ff;color:#365fb9;border:1px solid #e0e8fb;margin-bottom:18px}.nav-label{color:#a0a8b7}.nav-list{gap:5px}.nav-item{color:#4e586b;border-radius:11px;padding:11px 12px}.nav-item span{color:#7f899a}.nav-item:hover{background:#f3f6fb;color:#1e2d47}.nav-item.active{background:linear-gradient(135deg,#243971,#315ec6);color:#fff;box-shadow:0 7px 18px rgba(43,77,155,.17)}.nav-item.active span{color:#fff}.sidebar-bottom{border-top-color:var(--line)}.mini-profile small{color:var(--muted)}.logout-button{color:#818b9d}.logout-button:hover{color:#c34f58}
.content-area{margin-right:238px;width:calc(100% - 238px);padding:0 clamp(22px,3vw,46px) 48px}.topbar{height:88px;border-bottom:1px solid rgba(225,229,236,.75);gap:20px}.page-context{min-width:max-content}.page-context h1{font-size:18px}.topbar-tools{display:flex;align-items:center;gap:10px;margin-right:auto}.global-search-wrap{position:relative}.global-search{width:min(360px,30vw);height:44px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e1e5ec;border-radius:12px;padding:0 13px;color:#8b94a5}.global-search input{border:0;outline:0;width:100%;font:inherit;font-size:11px;background:transparent}.search-results{position:absolute;top:51px;right:0;width:100%;min-width:310px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 45px rgba(21,31,49,.16);z-index:40}.search-results button{display:grid;gap:3px;width:100%;border:0;background:transparent;text-align:right;padding:10px;border-radius:8px;font:inherit;cursor:pointer}.search-results button:hover{background:#f2f6ff}.search-results strong{font-size:11px}.search-results small,.search-results p{font-size:9px;color:var(--muted);margin:0}.notification-button{width:43px;height:43px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;place-items:center;position:relative;color:#4f5b70;cursor:pointer}.notification-button span{font-size:20px}.notification-button b{position:absolute;top:-5px;left:-4px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border:2px solid #fff;border-radius:9px;background:#f05f64;color:#fff;font-size:8px}
.stat-card,.panel{border-color:#e5e9ef;border-radius:16px;box-shadow:var(--shadow)}.stat-card{transition:.2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(25,35,55,.09)}.new-task,.approve{background:linear-gradient(135deg,#315fd9,#376ce9);box-shadow:0 7px 17px rgba(49,95,217,.2);border-radius:10px}.filter.active{border-color:#bbcdf6;background:#edf3ff;color:#315ec6}
.auth-screen{direction:rtl;grid-template-columns:minmax(410px,52%) 1fr;padding:28px;background:radial-gradient(circle at 12% 10%,#d8f6f2,transparent 34%),radial-gradient(circle at 90% 90%,#f8e8d8,transparent 33%),#f5f7f6;gap:0}.auth-aside{order:1;min-height:calc(100vh - 56px);padding:42px 58px;background:linear-gradient(145deg,#0d4744 0%,#116c64 64%,#7b7652 145%);border-radius:0 28px 28px 0}.auth-content{order:2;min-height:calc(100vh - 56px);background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);border-radius:28px 0 0 28px;padding:48px}.auth-content .login-card,.auth-content .register-card{padding:8px 14px}.login-card h1,.register-card h1{font-size:31px}.login-role{border-radius:13px;padding:13px 10px}.login-role.active{background:#eaf7f5;border-color:#8fcfc7}.auth-content input,.auth-content select,.auth-content textarea{border-radius:11px;padding:12px}.login-submit{min-height:48px;border-radius:11px;background:linear-gradient(135deg,#167f77,#21978f);box-shadow:0 9px 22px rgba(22,127,119,.2)}.auth-calendar-card{border-radius:20px;box-shadow:0 28px 65px rgba(0,0,0,.22);transform:rotate(-2deg)}
.calendar-page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0 18px}.calendar-page-head h2{font-size:26px;margin:0 0 4px}.calendar-actions{display:flex;align-items:center;gap:8px}.calendar-arrow{width:39px;height:39px;border:1px solid var(--line);background:#fff;border-radius:10px;color:#29354a;font:inherit;font-size:22px;cursor:pointer}.planner-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:16px;direction:ltr}.planner-layout>*{direction:rtl}.agenda-panel{order:2;padding:18px}.week-calendar{order:1;padding:0;overflow:hidden}.progress-summary{display:flex;align-items:center;gap:20px;padding:15px 3px 22px;border-bottom:1px solid var(--line)}.progress-ring{--progress:0;width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle closest-side,#fff 72%,transparent 73% 99%),conic-gradient(#25a7a0 calc(var(--progress)*1%),#e9edf1 0)}.progress-ring strong{font-size:21px}.progress-summary dl{display:grid;gap:8px;margin:0;flex:1}.progress-summary dl div{display:flex;justify-content:space-between;gap:10px}.progress-summary dt{font-size:10px;color:var(--muted)}.progress-summary dd{font-size:11px;font-weight:700;margin:0}.agenda-filter{display:flex;align-items:center;justify-content:space-between;margin:18px 0 9px}.agenda-filter strong{font-size:12px}.agenda-filter button{border:0;background:transparent;color:var(--blue);font:inherit;font-size:10px;cursor:pointer}.calendar-agenda{display:grid;gap:8px}.agenda-card{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;text-align:right;background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px;font:inherit;cursor:pointer}.agenda-card:hover{border-color:#b7c8ef;background:#f9fbff}.agenda-card strong,.agenda-card small{display:block}.agenda-card strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-card small{font-size:8px;color:var(--muted);margin-top:3px}.agenda-card em{font-size:8px;font-style:normal;color:#c27624;background:#fff4e1;border-radius:5px;padding:3px 5px}.agenda-check{width:18px;height:18px;border:1px solid #c5cbd5;border-radius:5px;display:grid;place-items:center;color:#fff;font-size:10px}.agenda-check.checked{background:var(--blue);border-color:var(--blue)}.calendar-scroll{overflow:auto;overscroll-behavior-inline:contain}.week-head{display:grid;grid-template-columns:58px repeat(7,minmax(118px,1fr));min-width:900px;border-bottom:1px solid var(--line);direction:rtl}.week-corner,.week-day-head{height:70px;display:grid;place-items:center;text-align:center;border-left:1px solid var(--line)}.week-day-head strong{font-size:11px}.week-day-head span{font-size:9px;color:var(--muted)}.week-day-head.today{color:var(--blue);background:#f5f8ff}.week-body{display:grid;grid-template-columns:58px minmax(842px,1fr);min-width:900px;height:660px;direction:rtl}.time-axis{display:grid;grid-template-rows:repeat(12,55px);border-left:1px solid var(--line)}.time-axis span{font-size:9px;color:#8a94a6;padding-top:7px;text-align:center;border-bottom:1px solid var(--line);direction:ltr}.week-days{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));direction:rtl}.calendar-day-column{position:relative;height:660px;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 54px,#edf0f4 55px)}.calendar-day-column.today{background:repeating-linear-gradient(to bottom,#f8faff 0,#f8faff 54px,#dfe7f8 55px)}.calendar-event{position:absolute;right:5px;left:5px;min-height:56px;border:0;border-radius:9px;padding:9px;color:#fff;text-align:right;font:inherit;box-shadow:0 7px 18px rgba(44,65,105,.13);cursor:pointer;overflow:hidden;z-index:2}.calendar-event strong,.calendar-event span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event strong{font-size:10px}.calendar-event span{font-size:8px;margin-top:5px;opacity:.92;direction:ltr;text-align:right}.blue-event{background:linear-gradient(145deg,#5c8cf0,#3970df)}.teal-event{background:linear-gradient(145deg,#41bab5,#159a95)}.amber-event{background:linear-gradient(145deg,#ffd16a,#efae32);color:#47350a}.coral-event{background:linear-gradient(145deg,#ff8f8c,#ef6263)}.violet-event{background:linear-gradient(145deg,#8a75e5,#6754c9)}
@media(max-width:1180px){.planner-layout{grid-template-columns:1fr}.agenda-panel{order:1}.week-calendar{order:2}.agenda-panel{display:grid;grid-template-columns:240px 1fr;gap:18px}.agenda-panel>.panel-heading{grid-column:1/-1}.progress-summary{border-bottom:0;border-left:1px solid var(--line);padding:0 0 0 18px}.agenda-filter{display:none}.calendar-agenda{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}}
@media(max-width:900px){.sidebar{width:min(290px,84vw)}.content-area{margin-right:0;width:100%}.topbar-tools{margin-right:auto}.global-search-wrap{display:none}.calendar-page-head{align-items:flex-start;flex-direction:column}.calendar-actions{width:100%;overflow-x:auto;padding-bottom:3px}.calendar-actions .new-task{white-space:nowrap}.agenda-panel{display:block}.progress-summary{border-left:0;border-bottom:1px solid var(--line);padding:10px 0 18px}.agenda-filter{display:flex}.calendar-agenda{grid-template-columns:1fr}}
@media(max-width:640px){.auth-screen{display:block;padding:0;background:#f7faf9}.auth-aside{display:none}.auth-content{border:0;border-radius:0;min-height:100vh;padding:22px 15px}.auth-content .login-card,.auth-content .register-card{padding:16px 2px}.login-card h1,.register-card h1{font-size:26px}.topbar-tools{gap:6px}.notification-button{width:39px;height:39px}.topbar-tools>.new-task{display:none!important}.calendar-page-head{margin-top:15px}.calendar-page-head h2{font-size:22px}.calendar-actions{display:grid;grid-template-columns:1fr 40px 40px}.calendar-actions .new-task{grid-column:1/-1;width:100%}.planner-layout{gap:10px}.agenda-panel{padding:14px}.progress-summary{justify-content:center}.week-calendar{border-radius:12px}.calendar-scroll{scrollbar-width:thin}.week-head,.week-body{min-width:790px}.week-head{grid-template-columns:52px repeat(7,minmax(105px,1fr))}.week-body{grid-template-columns:52px minmax(738px,1fr)}.week-corner,.week-day-head{height:62px}.calendar-event{right:4px;left:4px;padding:7px}.calendar-event strong{font-size:9px}}

/* Mobile navigation keeps the account controls visible while the menu list scrolls. */
@media(max-width:900px){.sidebar{overflow:hidden;display:flex}.sidebar .nav-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}.sidebar-bottom{flex:none;margin-top:0;padding:12px 2px 2px;background:rgba(255,255,255,.98);box-shadow:0 -9px 18px rgba(25,35,55,.04)}.mini-profile{display:grid;grid-template-columns:35px minmax(0,1fr);gap:9px;padding:10px 6px 0}.logout-button{grid-column:1/-1;width:100%;min-height:42px;margin:3px 0 0;padding:9px 12px;border:1px solid #f2d5d7;border-radius:9px;background:#fff5f5;color:#b94750;font-size:12px;font-weight:600;text-align:center}.logout-button:hover{background:#ffe9e9;color:#993b43}}

/* Student visual guide */
.guide-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.guide-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;box-shadow:0 8px 20px rgba(28,48,76,.05)}.guide-card h3{font-size:14px;margin:14px 0 7px}.guide-card p{font-size:11px;line-height:2;color:var(--muted);margin:0}.guide-number{position:absolute;top:11px;right:11px;z-index:1;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#203c7e;color:#fff;font-size:11px;font-weight:700}.guide-visual{height:126px;border-radius:11px;padding:17px;display:flex;flex-direction:column;justify-content:center;gap:8px;overflow:hidden}.guide-visual>*{font-style:normal}.auth-visual{align-items:center;background:linear-gradient(135deg,#e6f7f4,#eff4ff);color:#166f68}.auth-visual span{display:grid;place-items:center;width:42px;height:42px;background:#fff;border-radius:50%;font-size:24px;box-shadow:0 5px 12px rgba(20,99,93,.13)}.auth-visual i{font-size:11px;font-weight:700}.credential-visual{background:#f5f7fb;color:#5b687b;align-items:flex-start;padding:22px 18px}.credential-visual b,.credential-visual i{display:block;width:78%;border:1px solid #dfe5ee;background:#fff;border-radius:6px;padding:6px 8px;font-size:9px}.credential-visual i{width:61%;color:#9ba7b6}.credential-visual span{font-size:9px;color:#168269;background:#e5f7f1;border-radius:5px;padding:4px 7px;align-self:flex-end}.task-visual{background:linear-gradient(135deg,#f1edff,#ebf8f7);color:#4a4883;align-items:flex-start}.task-visual strong{font-size:12px;background:#fff;padding:7px 9px;border-radius:7px;box-shadow:0 4px 10px rgba(78,72,139,.09)}.task-visual i{font-size:9px;color:#7771b8;background:#e9e5ff;border-radius:5px;padding:3px 6px}.task-visual b{font-size:9px;color:#158178;margin-top:auto;align-self:flex-end}.meeting-visual{background:linear-gradient(135deg,#e8f7fb,#eff3ff);color:#2c6493;align-items:center;text-align:center}.meeting-visual span{font-size:28px}.meeting-visual b{font-size:12px}.meeting-visual i{font-size:9px;color:#5e84a5}.message-visual{background:#fff4ee;color:#a65c39;align-items:flex-start}.message-visual i{max-width:82%;padding:8px;background:#fff;border-radius:9px 9px 2px 9px;font-size:9px;box-shadow:0 4px 9px rgba(165,91,56,.08)}.message-visual b{align-self:flex-end;font-size:9px;background:#e98257;color:#fff;border-radius:7px;padding:7px 8px}.profile-visual{background:#f4f3fb;color:#59548c;align-items:center;text-align:center}.profile-visual span{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#766ddd;color:#fff;font-weight:700}.profile-visual b{font-size:11px}.profile-visual i{font-size:9px;color:#817caa}.guide-note{display:flex;align-items:flex-start;gap:10px;margin-top:16px;background:#fffbf2;border-color:#f0dfbd}.guide-note strong{color:#a66f23;white-space:nowrap;font-size:12px}.guide-note p{margin:0;color:#7b6a4d;font-size:11px;line-height:2}.student-guide-modal{width:min(980px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto}.student-guide-modal .dialog-body{padding:24px}.guide-modal-intro{margin:-5px 0 19px;line-height:1.9}.guide-modal-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.guide-modal-steps .guide-card{padding:12px}.guide-modal-steps .guide-visual{height:108px}.guide-modal-steps .guide-card h3{font-size:12px;margin:12px 0 5px}.guide-modal-steps .guide-card p{font-size:10px;line-height:1.85}.student-guide-modal footer{display:flex;justify-content:flex-end;margin-top:20px}
@media(max-width:980px){.guide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-modal-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.guide-steps,.guide-modal-steps{grid-template-columns:1fr}.guide-card{padding:14px}.guide-visual{height:115px}.student-guide-modal .dialog-body{padding:17px}.student-guide-modal footer .new-task{width:100%}}

/* Full-screen, on-panel student tour */
.tour-intro{display:flex;align-items:center;gap:13px;margin:-5px 0 16px;background:linear-gradient(135deg,#effaf8,#f5f7ff)}.tour-intro>span{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:#d9f3ee;color:var(--teal);font-size:23px}.tour-intro strong{display:block;font-size:13px;margin-bottom:4px}.tour-intro p{margin:0;color:var(--muted);font-size:11px;line-height:1.9}.student-tour{position:fixed;inset:0;z-index:100;direction:rtl}.student-tour.hidden{display:none}.tour-dim{position:absolute;inset:0;background:transparent;pointer-events:auto}.tour-focus{position:absolute;z-index:1;border:3px solid #7ce1d0;border-radius:15px;box-shadow:0 0 0 9999px rgba(10,24,42,.64),0 0 0 7px rgba(124,225,208,.22),0 0 28px rgba(88,220,198,.72);pointer-events:none;transition:all .32s ease}.tour-focus:after{content:'↙';position:absolute;left:-25px;bottom:-27px;color:#7ce1d0;font-size:34px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));transform:rotate(15deg)}.tour-card{position:fixed;left:clamp(18px,4vw,58px);bottom:clamp(18px,4vh,42px);width:min(380px,calc(100vw - 36px));background:#fff;border:1px solid rgba(255,255,255,.8);border-radius:17px;padding:16px 18px;box-shadow:0 22px 60px rgba(0,0,0,.3);z-index:2}.tour-card-top{display:flex;align-items:center;justify-content:space-between;color:#52647a;font-size:11px}.tour-card-top span{background:#ecf7f5;color:#147d73;border-radius:6px;padding:4px 7px;font-weight:700}.tour-card-top button{border:0;background:transparent;color:#7f8ca0;font-size:25px;line-height:1;cursor:pointer}.tour-card h3{margin:13px 0 7px;font-size:17px;color:#1d2b45}.tour-card p{margin:0;color:#56657a;font-size:12px;line-height:2}.tour-arrow-note{display:flex;align-items:center;gap:7px;margin:11px 0 14px;color:#19847a;font-size:10px}.tour-arrow-note b{font-size:19px}.tour-card footer{display:flex;justify-content:space-between;gap:8px}.tour-card footer button{min-height:38px}.tour-card footer .secondary-btn:disabled{opacity:.4;cursor:default}
@media(max-width:640px){.tour-intro{align-items:flex-start;padding:13px}.tour-card{right:12px;left:12px;bottom:12px;width:auto;padding:14px}.tour-card h3{font-size:15px;margin:9px 0 4px}.tour-card p{font-size:11px;line-height:1.85}.tour-arrow-note{display:none}.tour-focus{border-width:2px;border-radius:11px;box-shadow:0 0 0 9999px rgba(10,24,42,.58),0 0 0 5px rgba(124,225,208,.22),0 0 22px rgba(88,220,198,.72)}.tour-focus:after{font-size:26px;left:-17px;bottom:-22px}.tour-card footer{margin-top:12px}.tour-card footer button{flex:1;padding-inline:7px;font-size:11px}}

/* Laboratory reservation calendar */
.lab-calendar-panel{padding:0;overflow:hidden}.lab-calendar-note{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);background:#f5fbfa;color:#52667a}.lab-calendar-note span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#dff4f0;color:var(--teal);font-size:18px}.lab-calendar-note p{margin:0;font-size:10px;line-height:1.9}.lab-calendar-day{background:repeating-linear-gradient(to bottom,#fff 0,#fff 54px,#edf0f4 55px)}.lab-reservation-event{position:absolute;right:5px;left:5px;min-height:62px;padding:8px;border-radius:9px;color:#fff;box-shadow:0 6px 16px rgba(36,71,107,.15);overflow:hidden;z-index:2}.lab-reservation-event strong,.lab-reservation-event span,.lab-reservation-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-reservation-event strong{font-size:10px}.lab-reservation-event span{font-size:9px;margin-top:3px}.lab-reservation-event small{font-size:8px;margin-top:4px;opacity:.9;direction:rtl}.approved-reservation{background:linear-gradient(145deg,#29a89f,#16847e)}.pending-reservation{background:linear-gradient(145deg,#efb454,#d98537)}
.jalali-date-input{display:flex;border:1px solid #dfe5ed;border-radius:7px;overflow:hidden;background:#fff}.jalali-date-input input{border:0!important;border-radius:0!important;min-width:0;flex:1}.jalali-picker-open{width:42px;border:0;border-right:1px solid #dfe5ed;background:#f4fbfa;color:var(--teal);font:inherit;font-size:17px;cursor:pointer}.jalali-picker-open:hover{background:#e3f5f2}.jalali-picker-modal{max-width:390px}.jalali-picker-controls{display:grid;grid-template-columns:40px minmax(0,1fr) 84px 40px;gap:7px;align-items:center;margin:4px 0 15px}.jalali-picker-controls select,.jalali-picker-controls input{height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;padding:0 8px;text-align:center}.jalali-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;direction:rtl}.jalali-picker-grid>b{color:#7d8a9d;font-size:11px;text-align:center;padding:7px 0}.jalali-picker-grid>i{height:35px}.jalali-day{height:35px;border:0;border-radius:8px;background:#f5f7fa;color:#314056;font:inherit;cursor:pointer}.jalali-day:hover{background:#dff4f0;color:#0d7069}.jalali-day.selected{background:var(--teal);color:#fff;font-weight:700}
@media(max-width:640px){.lab-calendar-note{align-items:flex-start;padding:11px 13px}.lab-calendar-note p{font-size:9px}.lab-reservation-event{right:4px;left:4px;padding:7px}.lab-reservation-event strong{font-size:9px}}
.login-role-tabs.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.section-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lab-overview{display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:14px;margin-bottom:18px}
#equipment-catalog{display:grid;gap:14px}
.device-card{border:1px solid #e4e8ef;border-radius:16px;padding:16px;background:#fff;box-shadow:0 8px 24px rgba(22,34,61,.04)}
.device-card.device-unavailable{background:#fffafa;border-color:#f0d9d9}
.device-card>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.device-card>header div{display:grid;gap:4px}.device-card>header strong{font-size:1rem;color:#172036}.device-card>header span{font-size:.82rem;color:#70788a}
.device-card>p,.device-card details p{white-space:pre-line;line-height:1.9;color:#586174;margin:8px 0}
.reservation-minimum{display:inline-block!important;padding:5px 8px;border-radius:7px;background:#eef7ff;color:#3368a6!important;font-size:.78rem!important}
.notification-wrap{position:relative}.notification-panel{position:absolute;top:51px;left:0;width:min(360px,calc(100vw - 24px));max-height:430px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 55px rgba(19,36,54,.2);z-index:60}.notification-panel>header{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--line)}.notification-panel>header button{border:0;background:transparent;font-size:22px;color:var(--muted);cursor:pointer}.notification-panel>div{padding:7px}.notification-panel>div>button{display:grid;gap:4px;width:100%;padding:11px;border:0;border-radius:9px;background:transparent;text-align:right;font:inherit;cursor:pointer}.notification-panel>div>button:hover{background:#f2f8f7}.notification-panel strong{font-size:11px}.notification-panel small{font-size:9px;color:var(--muted)}.notification-panel p{padding:18px;text-align:center;color:var(--muted);font-size:10px}
.device-image{width:100%;max-height:230px;object-fit:cover;border-radius:11px;margin-bottom:13px;background:#eef1f4}.aparat-link{display:inline-flex;align-items:center;gap:7px;margin:9px 0;padding:8px 11px;border-radius:8px;background:#fff1f2;color:#b4273c;text-decoration:none;font-size:10px}.staff-operated-note,.student-operated-note{padding:9px 11px;border-radius:8px;font-size:10px!important;line-height:1.8}.staff-operated-note{background:#fff4df;color:#8a5a16}.student-operated-note{background:#eef9f7;color:#226f69}.reservation-locked{display:block;color:#9a5960;font-size:9px;margin-top:7px}
.drive-row label{display:grid;gap:5px;font-size:9px;color:var(--muted)}.drive-row input{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:inherit;background:#fff}.drive-file{border-color:#bfe2d9!important;background:#f2fbf8!important}.project-links-report,.project-student-report{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:11px}.project-links-report h3,.project-student-report h3{display:flex;justify-content:space-between;margin:0 0 10px;font-size:14px}.project-links-report>a{display:grid;gap:3px;padding:9px 10px;margin-top:7px;border-radius:8px;background:#f2f8ff;color:#245b9b;text-decoration:none}.project-links-report>a small{font-size:9px;color:#6d7b8e}.project-link-form{display:grid;grid-template-columns:1fr 1.5fr auto;gap:8px;margin-top:12px}.project-link-form input{min-width:0;border:1px solid var(--line);border-radius:8px;padding:9px;font:inherit}.project-student-report dl{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.project-student-report dl div{display:flex;justify-content:space-between;padding:9px;border-radius:8px;background:#f8fafc}.project-student-report dt{color:var(--muted)}.project-student-report dd{margin:0;font-weight:600}.project-events{display:grid;gap:7px;margin-top:10px}.project-events article{display:flex;justify-content:space-between;gap:10px;padding:9px;border-right:3px solid var(--teal);background:#f7fbfb;border-radius:7px}.project-events small{color:var(--muted)}
@media(max-width:640px){.notification-panel{position:fixed;top:66px;right:10px;left:10px;width:auto;max-height:65dvh}.project-link-form{grid-template-columns:1fr}.project-student-report dl{grid-template-columns:1fr}.project-events article{display:grid}}
.device-card details{border-top:1px solid #edf0f5;padding:10px 0}.device-card summary{cursor:pointer;font-weight:700;color:#25324d}
.device-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.maintenance-list{margin-top:10px;padding:12px;border-radius:12px;background:#fff4e8;display:grid;gap:8px}.maintenance-list>strong{color:#945810}.maintenance-list>div{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.84rem}.maintenance-delete,.reservation-delete{border:0;background:#ffe0df;color:#a83f3f;border-radius:8px;padding:5px 9px;cursor:pointer;white-space:nowrap}.reservation-delete:disabled{opacity:.6;cursor:wait}
.message-layout{align-items:stretch;min-height:540px}.conversation-list{max-height:600px;overflow-y:auto;scrollbar-width:thin}.chat-panel{min-height:540px;display:flex;flex-direction:column}.chat-messages{height:auto;min-height:360px;flex:1}.chat-compose{margin-top:auto}.chat-compose .new-task:disabled{opacity:.72;cursor:wait;box-shadow:none}
.meeting-management{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.meeting-management .secondary-btn{padding:6px 9px;font-size:10px}.meeting-delete{border:0;background:#fff0f0;color:#b44a52;border-radius:7px;padding:6px 9px;font:inherit;font-size:10px;cursor:pointer;white-space:nowrap}.meeting-delete:hover{background:#ffe0e1}
@media(max-width:760px){.login-role-tabs.four{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-overview{grid-template-columns:1fr}.section-actions{width:100%}.section-actions button{flex:1}.device-card>header{flex-direction:column}}
@media(max-width:900px){.message-layout{min-height:0}.conversation-list{max-height:none;overflow-x:auto;overflow-y:hidden}.chat-panel{min-height:0}.chat-messages{min-height:280px}}

/* Professional messenger */
.messenger{display:grid;grid-template-columns:290px minmax(360px,1fr) 235px;min-height:620px;max-height:calc(100dvh - 170px);padding:0;overflow:hidden}.conversation-pane{display:flex;min-width:0;flex-direction:column;border-left:1px solid var(--line);background:#fff}.conversation-pane-head{padding:13px;border-bottom:1px solid var(--line)}.messenger-search{display:flex;align-items:center;gap:7px;height:42px;border:1px solid var(--line);border-radius:10px;background:#f7f9fa;padding:0 10px}.messenger-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(22,134,127,.1)}.messenger-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:11px}.conversation-tabs{display:flex;gap:4px;margin-top:10px}.conversation-tabs button{border:0;border-radius:7px;background:transparent;padding:7px 8px;font:inherit;font-size:9px;color:var(--muted);cursor:pointer;white-space:nowrap}.conversation-tabs button.active{background:var(--teal-soft);color:var(--teal);font-weight:700}.conversation-tabs b{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:var(--teal);color:#fff;margin-right:3px}.messenger .conversation-list{flex:1;max-height:none;overflow-y:auto;padding:0}.messenger .conversation{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:3px 9px;min-width:0;padding:13px 12px;border:0;border-bottom:1px solid #edf1f2;border-radius:0}.messenger .conversation.active{background:linear-gradient(90deg,#f4fbfa,#eaf7f5);box-shadow:inset -3px 0 var(--teal)}.messenger .conversation .avatar{grid-row:1/3}.conversation-copy{grid-row:1/3;align-self:center;min-width:0}.messenger .conversation time{font-size:8px;color:#8b979f;direction:rtl}.messenger .conversation .unread{grid-column:3;align-self:end;margin:0}.group-avatar{background:#e8e3f7!important;color:#67529e!important}.chat-pane{display:flex;min-width:0;flex-direction:column;background:#f8fafb}.chat-head-pro{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff}.chat-person{display:flex;align-items:center;gap:10px;min-width:0}.chat-person div{min-width:0}.chat-person strong,.chat-person small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-person strong{font-size:12px}.chat-person small{font-size:9px;color:var(--muted);margin-top:4px}.chat-actions{display:flex;gap:5px}.chat-actions .icon-btn{width:36px;height:36px}.messenger .chat-messages{flex:1;height:auto;min-height:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column;align-items:stretch;gap:13px;background:#f8fafb}.date-divider{display:flex;align-items:center;gap:10px;color:#8b979f;font-size:9px}.date-divider:before,.date-divider:after{content:"";height:1px;background:#e1e7e9;flex:1}.message-row{display:flex;align-items:flex-end;gap:8px}.message-row.mine-row{justify-content:flex-start;direction:ltr}.avatar.tiny{width:30px;height:30px;font-size:9px}.messenger .chat-bubble{max-width:min(78%,520px);padding:10px 12px;border:1px solid #e0e6e8;border-radius:13px 13px 3px 13px;background:#fff;box-shadow:0 3px 10px rgba(25,50,60,.04);overflow-wrap:anywhere}.messenger .chat-bubble.mine{margin:0;border:0;border-radius:13px 13px 13px 3px;background:var(--teal);color:#fff;direction:rtl}.chat-empty{margin:auto;text-align:center;color:var(--muted)}.chat-empty span{display:block;font-size:38px;color:var(--teal)}.chat-empty strong{display:block;margin-top:8px;color:var(--ink)}.chat-empty p{font-size:10px}.compose-pro{display:flex;align-items:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:#fff}.compose-pro .compose-main{flex:1;min-width:0}.compose-pro textarea{display:block;width:100%;height:46px;max-height:100px}.compose-hint{display:block;margin:4px 2px 0;color:#98a3aa;font-size:8px}.chat-info{border-right:1px solid var(--line);background:#fff;overflow-y:auto}.chat-info>header{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line);font-size:11px}.chat-info>header .icon-btn{width:32px;height:32px}.chat-profile{text-align:center;padding:22px 12px;border-bottom:1px solid var(--line)}.avatar.large{width:58px;height:58px;margin:0 auto 9px;font-size:16px}.chat-profile strong,.chat-profile small{display:block}.chat-profile strong{font-size:12px}.chat-profile small{font-size:9px;color:var(--muted);margin-top:5px}.info-links{display:grid;padding:8px}.info-links button{display:flex;align-items:center;justify-content:space-between;border:0;border-radius:8px;background:#fff;padding:10px;text-align:right;font:inherit;font-size:9px;cursor:default}.info-links button:hover{background:#f1f6f6}.info-links b{display:grid;place-items:center;min-width:22px;height:22px;border-radius:7px;background:#eef2f3;color:var(--muted);font-size:9px}
@media(max-width:1250px){.messenger{grid-template-columns:270px minmax(340px,1fr)}.chat-info{position:absolute;left:0;width:250px;height:100%;z-index:3;box-shadow:12px 0 35px rgba(20,45,55,.15);transform:translateX(-110%);transition:.2s}.messenger{position:relative}.chat-info.open{transform:none}}
@media(max-width:760px){.messenger{display:block;max-height:none;min-height:0}.conversation-pane{border:0}.messenger .conversation-list{display:block;max-height:290px;overflow-y:auto;overflow-x:hidden;border-bottom:1px solid var(--line)}.messenger .conversation{min-width:0}.chat-pane{min-height:560px}.messenger .chat-bubble{max-width:88%}.compose-pro{position:sticky;bottom:0;display:grid}.compose-hint{display:none}.conversation-pane-head{position:sticky;top:0;background:#fff;z-index:2}.chat-info{position:fixed;top:0;bottom:0;left:0;height:100dvh;width:min(280px,85vw);z-index:30}.messenger-search input,.compose-pro textarea,.drive-row input{font-size:16px}}
/* Keep the message composer inside the visible messenger frame. */
.messenger{height:clamp(500px,calc(100dvh - 240px),620px);min-height:0;max-height:none}.conversation-pane,.chat-pane{min-height:0;height:100%;max-height:100%;overflow:hidden}.messenger .chat-messages{flex:1 1 0;height:0;min-height:0}.compose-pro{flex:0 0 auto;margin-top:0}
@media(max-width:760px){.messenger{height:auto;max-height:none}.conversation-pane{height:auto}.chat-pane{height:560px;min-height:560px}.messenger .chat-messages{height:0}.compose-pro{position:static}}
.task-report-open{width:100%;margin-top:10px;border:1px solid #b9ddd8;background:#f0faf8;color:#147c73;border-radius:7px;padding:8px 10px;font:inherit;font-size:10px;cursor:pointer}.task-report-open:hover{background:#e2f4f1}.task-report-modal{width:min(760px,calc(100% - 25px))}.task-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.task-report-summary>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.task-report-summary small,.task-report-summary strong{display:block}.task-report-summary small{font-size:10px;color:var(--muted)}.task-report-summary strong{font-size:17px;margin-top:3px}.task-report-progress{height:8px;background:#e8edf2;border-radius:8px;margin:14px 0;overflow:hidden}.task-report-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#4ec4ba);border-radius:inherit}.task-stepper{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin:19px 0 22px}.task-stepper:before{content:"";position:absolute;top:15px;right:12%;left:12%;height:2px;background:#e3e8ee}.task-step{position:relative;text-align:center;color:#8994a5;font-size:10px;z-index:1}.task-step i{display:grid;place-items:center;width:31px;height:31px;margin:0 auto 6px;border-radius:50%;background:#edf1f5;border:3px solid #fff;font-style:normal}.task-step.reached{color:#157b72}.task-step.reached i{background:#d8f2ee;color:#147c73}.task-step.current i{background:var(--teal);color:#fff}.task-report-details{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.task-report-details>div{display:flex;justify-content:space-between;gap:10px;padding:9px 11px;background:#f7f9fb;border-radius:8px}.task-report-details dt{font-size:10px;color:var(--muted)}.task-report-details dd{margin:0;font-size:10px;font-weight:700;text-align:left}.task-report-text,.task-history{border-top:1px solid var(--line);padding-top:13px;margin-top:13px}.task-report-text h3,.task-history h3{font-size:13px;margin:0 0 6px}.task-report-text p,.task-history>p{font-size:11px;color:var(--muted);line-height:1.9;white-space:pre-wrap}.task-history>div{display:flex;gap:9px;padding:6px 0}.task-history>div>i{width:8px;height:8px;border-radius:50%;background:var(--teal);margin-top:7px;flex:none}.task-history span,.task-history small{display:block}.task-history strong{font-size:11px}.task-history small{font-size:9px;color:var(--muted);margin-top:2px}
@media(max-width:640px){.task-report-summary{grid-template-columns:1fr}.task-report-details{grid-template-columns:1fr}.task-step span{font-size:9px}.task-report-modal footer{flex-wrap:wrap}.task-report-modal footer button{flex:1}}
.task-search-toolbar{position:relative;display:grid;grid-template-columns:minmax(190px,.7fr) minmax(320px,1.5fr) auto;align-items:center;gap:16px;margin:-2px 0 18px;padding:15px 17px;border:1px solid #dce7e6;border-radius:15px;background:linear-gradient(135deg,#f2fbf9 0%,#fff 48%,#f5f7ff 100%);box-shadow:0 10px 28px rgba(25,64,76,.07);overflow:hidden}.task-search-toolbar:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-75px;top:-105px;background:rgba(34,160,148,.09)}.task-search-intro{display:flex;align-items:center;gap:11px;position:relative}.task-search-orb{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:linear-gradient(145deg,#1fa194,#167d75);color:#fff;font-size:23px;box-shadow:0 7px 17px rgba(24,139,130,.24)}.task-search-intro>span:last-child,.task-search-intro strong,.task-search-intro small{display:block}.task-search-intro strong{font-size:12px;color:#24364a}.task-search-intro small{font-size:9px;line-height:1.8;color:#7b899b;margin-top:2px}.task-search-box{display:flex;align-items:center;min-width:0;height:48px;border:1px solid #d7e2e5;border-radius:12px;background:#fff;padding:0 10px;color:#7e8b9d;box-shadow:0 5px 16px rgba(29,48,70,.06);transition:border-color .2s,box-shadow .2s,transform .2s}.task-search-box:focus-within{border-color:#5bb9b0;box-shadow:0 0 0 4px rgba(31,156,145,.12),0 8px 20px rgba(29,48,70,.08);transform:translateY(-1px)}.task-search-icon{font-size:20px;color:#28988e}.task-search-toolbar input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:11px;font:inherit;font-size:12px;color:var(--ink)}.task-search-toolbar input::placeholder{color:#a0aab8}.task-search-toolbar button{display:grid;place-items:center;border:0;background:#eef3f5;color:#718095;width:27px;height:27px;border-radius:50%;font:inherit;cursor:pointer;transition:.2s}.task-search-toolbar button:hover{background:#dcebea;color:#167d75}.task-search-toolbar kbd{margin-right:7px;padding:4px 7px;border:1px solid #e2e7ed;border-radius:6px;background:#f7f9fb;color:#8a95a4;font:inherit;font-size:8px}.task-search-result{position:relative;padding:7px 10px;border-radius:9px;background:#eef2f7;color:#647286;font-size:10px;white-space:nowrap;transition:.2s}.task-search-toolbar.searching .task-search-result{background:#dff4f0;color:#147d74}.task-search-toolbar.searching .task-search-orb{animation:search-pulse 1.6s ease-in-out infinite}@keyframes search-pulse{50%{box-shadow:0 7px 22px rgba(24,139,130,.4)}}@media(max-width:900px){.task-search-toolbar{grid-template-columns:1fr auto}.task-search-intro{grid-column:1/-1}.task-search-box{min-width:0}}@media(max-width:640px){.task-search-toolbar{grid-template-columns:1fr;padding:13px;gap:11px;border-radius:13px}.task-search-intro{grid-column:auto}.task-search-orb{width:39px;height:39px}.task-search-box{width:100%}.task-search-toolbar input{font-size:16px}.task-search-toolbar kbd{display:none}.task-search-result{justify-self:start}}
.subtask-report{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}.subtask-report h3{display:flex;align-items:center;gap:7px;font-size:13px;margin:0 0 10px}.subtask-report h3 span{padding:2px 7px;border-radius:8px;background:var(--teal-soft);color:var(--teal);font-size:9px}.subtask-report article{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px;margin-top:8px;border:1px solid var(--line);border-radius:10px;background:#fafcfd}.subtask-report article>div{min-width:0}.subtask-report strong,.subtask-report small{display:block}.subtask-report strong{font-size:11px}.subtask-report small{font-size:9px;color:var(--muted);margin-top:4px;line-height:1.8}.subtask-report p{font-size:10px;color:var(--muted);margin:6px 0 0;white-space:pre-wrap}.subtask-status{flex:none;max-width:125px;border:1px solid #c7e4df;background:#effbf9;color:var(--teal);border-radius:7px;padding:6px;font:inherit;font-size:9px}.task-edit-modal input[readonly]{background:#eef1f5;color:#7f8a99;cursor:not-allowed}@media(max-width:640px){.subtask-report article{display:grid}.subtask-status{width:100%;max-width:none}.task-report-modal footer{display:grid;grid-template-columns:1fr 1fr}.task-report-modal footer button{width:100%}}

/* Resume builder */
#members-table td:last-child{display:flex;gap:7px;flex-wrap:wrap;align-items:center}#members-table .danger-btn{font-size:10px;padding:7px 10px}.admin-link-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:12px;padding:12px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:#f8fafc}#task-admin-fields h3{font-size:14px;margin:18px 0 12px}#member-delete-modal p{line-height:1.9}@media(max-width:640px){.admin-link-edit{grid-template-columns:minmax(0,1fr)}}
.resume-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;isolation:isolate}.resume-form{min-width:0;max-width:100%;overflow:hidden}.resume-form fieldset{min-width:0}.resume-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resume-form label,.resume-form input,.resume-form textarea,.resume-form select{min-width:0;max-width:100%;box-sizing:border-box}.resume-form input,.resume-form textarea,.resume-form select{width:100%}.resume-form-actions{position:static!important;backdrop-filter:none!important}.resume-preview-column{min-width:0;max-width:100%;overflow:hidden;position:static!important}.resume-preview-shell{direction:ltr;overflow:hidden!important;max-height:none!important;box-sizing:border-box;margin-inline:0!important}.resume-preview-toolbar{flex-wrap:wrap}.resume-form-head{flex-wrap:wrap}.resume-form-head>div{min-width:0;flex:1 1 180px}.resume-form-head>label{flex:0 1 150px}
@media(max-width:1450px){.resume-workspace{grid-template-columns:minmax(0,1fr)!important}}
@media(max-width:640px){.resume-form .form-grid{grid-template-columns:minmax(0,1fr)}.resume-form{padding:16px}.resume-form fieldset{padding:12px}.resume-form-actions{margin:0;padding:12px 0 0}.resume-preview-toolbar span{overflow-wrap:anywhere}}
.resume-paper,.resume-side{min-height:1120px!important}.resume-paper{box-sizing:border-box;flex-shrink:0}.resume-paper *{box-sizing:border-box}.resume-paper.rtl h3,.resume-paper.rtl .resume-keywords{letter-spacing:0!important}.resume-workspace>*{min-width:0}
.resume-quota{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 16px;border:1px solid #dce7f2;border-radius:14px;background:#fff;color:#172b4d}.resume-quota strong{font-size:14px}.resume-quota small{color:#718096}.resume-locked{max-width:620px;margin:60px auto;padding:44px;text-align:center}.resume-locked>span{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 16px;border-radius:22px;background:#eaf1ff;color:#315bd7;font-size:30px}.resume-locked h3{margin:0 0 8px}.resume-locked p{margin:0;color:#667085;line-height:1.9}.resume-workspace{display:grid;grid-template-columns:minmax(380px,.78fr) minmax(540px,1.22fr);gap:20px;align-items:start}.resume-form{padding:22px}.resume-form-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.resume-form-head h3{margin:0 0 5px}.resume-form-head p{margin:0;color:#7a8497;font-size:12px;line-height:1.8}.resume-form-head>label{min-width:150px}.resume-form fieldset{margin:0 0 18px;padding:17px;border:1px solid #e3e9f1;border-radius:16px}.resume-form legend{padding:0 9px;color:#183153;font-weight:800}.resume-form>fieldset>label{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;font-size:13px;font-weight:700}.resume-form>fieldset>label:last-child{margin-bottom:0}.resume-form textarea{resize:vertical;line-height:1.75}.resume-form-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;margin:0 -22px -22px;padding:15px 22px;background:rgba(255,255,255,.96);border-top:1px solid #e8edf3;border-radius:0 0 18px 18px;backdrop-filter:blur(8px)}.resume-access-admin{display:grid;grid-template-columns:1fr auto minmax(170px,.35fr);align-items:end;gap:14px;padding:16px;border:1px solid #cfe0f6;border-radius:15px;background:#f7faff}.resume-access-admin>div strong,.resume-access-admin>div small{display:block}.resume-access-admin>div small{margin-top:4px;color:#718096}.resume-access-admin .checkbox{align-self:center}.resume-preview-column{position:sticky;top:20px;min-width:0}.resume-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 13px;border:1px solid #e1e7ef;border-radius:14px;background:#fff}.resume-preview-toolbar span{color:#667085;font-size:12px}.resume-preview-shell{overflow:auto;max-height:calc(100vh - 195px);padding:14px;border-radius:18px;background:#dfe6ee;box-shadow:inset 0 0 0 1px #d0d8e2}.resume-paper{display:flex;width:794px;min-height:1123px;margin:0 auto;background:#fff;color:#162844;box-shadow:0 16px 42px rgba(23,43,77,.16);font-family:Vazirmatn,Tahoma,Arial,sans-serif}.resume-paper.rtl{direction:rtl}.resume-paper.ltr{direction:ltr;font-family:Georgia,'Times New Roman',serif}.resume-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8a96a8}.resume-empty>span{font-size:44px}.resume-empty strong{font-size:19px}.resume-side{position:relative;flex:0 0 235px;min-height:1123px;padding:38px 28px 30px;color:#edfaff;background:linear-gradient(160deg,#0a2947 0%,#0d3b61 65%,#07243f 100%);overflow:hidden}.resume-side:after{content:'⌬';position:absolute;bottom:-36px;left:-15px;color:rgba(99,209,223,.11);font-size:180px;line-height:1}.resume-photo{display:block;width:150px;height:150px;margin:0 auto 34px;border:4px solid #fff;border-radius:50%;object-fit:cover;background:#eaf3f7}.resume-photo.placeholder{display:grid;place-items:center;color:#0c385a;font-size:58px;font-weight:800}.resume-side h3{margin:26px 0 13px;padding-bottom:9px;border-bottom:2px solid #65cfda;color:#fff;font-size:17px;letter-spacing:.02em}.resume-contact{display:flex;flex-direction:column;gap:10px;font-size:11px;line-height:1.6;word-break:break-word}.resume-side ul{margin:0;padding:0 18px 0 0;font-size:11px;line-height:1.8}.resume-paper.ltr .resume-side ul{padding:0 0 0 18px}.resume-side li::marker{color:#6fdae2}.resume-side blockquote{margin:32px 0 0;padding:18px 0;border-block:1px solid rgba(255,255,255,.35);color:#d9f6fa;font-size:13px;line-height:1.9;text-align:center}.resume-science-mark{position:absolute;right:25px;bottom:30px;z-index:1;display:flex;align-items:center;gap:9px;color:#84dce4}.resume-paper.ltr .resume-science-mark{right:auto;left:25px}.resume-science-mark span{font-size:28px}.resume-science-mark small{max-width:120px;font-size:8px;letter-spacing:.16em}.resume-main{flex:1;padding:48px 34px 34px;min-width:0}.resume-main header{margin-bottom:27px;padding-bottom:17px;border-bottom:1px solid #d7e7ef}.resume-main h1{margin:0;color:#0b2746;font-size:32px;line-height:1.25}.resume-main header h2{margin:6px 0 11px;color:#1995a6;font-size:20px;font-weight:600}.resume-keywords{color:#596b82;font-size:9px;letter-spacing:.17em}.resume-main section{margin-bottom:21px}.resume-main section>h3{display:flex;align-items:center;gap:10px;margin:0 0 10px;color:#0c2948;font-size:16px}.resume-main section>h3:after{content:'';flex:1;height:1px;background:#49adbd}.resume-summary{margin:0;color:#2e3d51;font-size:11.5px;line-height:1.9;text-align:justify;white-space:pre-wrap}.cv-entry{display:grid;grid-template-columns:105px 1fr;gap:13px;padding:6px 0;color:#24364e;font-size:10.5px;break-inside:avoid}.resume-paper.rtl .cv-entry{grid-template-columns:95px 1fr}.cv-entry time{font-weight:700;white-space:nowrap}.cv-entry strong,.cv-entry small,.cv-entry p{display:block;margin:0}.cv-entry strong{font-size:11.5px}.cv-entry small{color:#617089}.cv-entry p{margin-top:3px;color:#42536a;line-height:1.65}.resume-publications{margin:0;padding:0 20px;font-size:10.5px;line-height:1.75}.resume-publications li{padding-inline-start:5px;break-inside:avoid}.resume-publications li::marker{color:#1398a8;font-weight:800}
@media(max-width:1200px){.resume-workspace{grid-template-columns:1fr}.resume-preview-column{position:static}.resume-preview-shell{max-height:none}.resume-form{order:1}.resume-preview-column{order:2}}
@media(max-width:720px){.resume-quota{width:100%;box-sizing:border-box}.resume-form-head{flex-direction:column}.resume-form-head>label{width:100%}.resume-access-admin{grid-template-columns:1fr}.resume-preview-shell{margin-inline:-12px;padding:8px;border-radius:12px}.resume-paper{transform-origin:top right}.resume-workspace{display:block}.resume-preview-column{margin-top:16px}.resume-preview-toolbar{align-items:flex-start;flex-direction:column}.resume-preview-toolbar button{width:100%}.resume-form-actions{position:static;margin:0 -22px -22px}.resume-form-actions>*{flex:1}}
