.progress-percentage{color:var(--blue);font-size:.875rem;font-weight:750;line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width:520px){.progress-percentage{font-size:.8125rem}}.messenger{min-height:560px;max-height:min(76dvh,760px);display:grid;grid-template-columns:minmax(250px,290px) minmax(0,1fr);overflow:hidden;border:1px solid #dfe6f0;border-radius:18px;background:#fff;box-shadow:0 14px 38px rgba(20,46,82,.08)}.contact-column{min-width:0;padding:14px 12px;overflow-y:auto;border-inline-end:1px solid #e7ecf3;background:#fbfcfe;scrollbar-width:thin}.chat-contact-tabs{position:sticky;top:-14px;z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 -2px 12px;padding:14px 2px 8px;background:rgba(251,252,254,.96);backdrop-filter:blur(10px)}.chat-contact-tabs>button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 10px;border:1px solid #e0e7f0;border-radius:10px;background:#fff;color:#627087;font-size:.75rem;font-weight:650}.chat-contact-tabs>button.active{border-color:#b8cff2;color:var(--blue);background:#edf4ff;box-shadow:inset 0 0 0 1px rgba(7,91,221,.05)}.chat-contact-tabs b{min-width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;background:#eef2f7;color:#526279;font-size:.6875rem}.chat-contact-tabs>button.active b{background:#d9e7ff;color:var(--blue-dark)}.contact-column>button{width:100%;min-height:52px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;margin:2px 0;padding:8px 10px;border:1px solid transparent;border-radius:11px;background:transparent;color:#263b58;text-align:start;transition:background .15s ease,border-color .15s ease,transform .15s ease}.contact-column>button:hover{border-color:#e2e8f1;background:#fff}.contact-column>button.active{border-color:#c7d9f4;background:#edf4ff;color:#104f9f}.contact-column>button .mini-avatar{width:36px;height:36px;background:linear-gradient(145deg,#e5eefc,#d7e5f9);color:#245b9f}.contact-column>button strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:650}.chat-invite{margin-top:12px!important;padding-top:12px;border:0!important;border-top:1px solid #e7ecf3!important;border-radius:0!important;background:transparent!important}.chat-invite .btn,.chat-invite button{width:100%;min-height:38px;justify-content:center;font-size:.75rem}.conversation{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;background:#f6f8fb}.conversation>header{min-height:64px;position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 18px;border-bottom:1px solid #e3e9f1;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}.conversation>header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;color:#203956}.conversation>header .badge{flex-shrink:0;padding:4px 8px;background:#eef3f9;color:#61728a}.message-history{min-height:0;max-height:none;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:22px clamp(16px,3vw,32px);scrollbar-width:thin}.message{max-width:min(72%,620px);align-self:flex-start;padding:10px 13px 8px;border:1px solid #e1e7ef;border-radius:16px 16px 16px 5px;background:#fff;box-shadow:0 2px 9px rgba(24,44,70,.035)}.message.mine{align-self:flex-end;border-color:var(--blue);border-radius:16px 16px 5px 16px;background:var(--blue);color:#fff;box-shadow:0 5px 15px rgba(7,91,221,.15)}.message p{margin:0;color:inherit;font-size:.9rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.message small{display:block;margin-top:5px;color:#8290a4;font-size:.65rem}.message.mine small{color:rgba(255,255,255,.72);text-align:end}.message-file{margin-top:7px;border:1px solid rgba(120,145,180,.24);background:rgba(255,255,255,.8)}.message-compose{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-top:1px solid #e1e7ef;background:rgba(255,255,255,.97);backdrop-filter:blur(10px)}.message-compose textarea{min-height:46px;max-height:130px;resize:none;padding:11px 13px;border:1px solid #d6dee9;border-radius:13px;background:#f9fbfd;font-size:.875rem;line-height:1.45}.message-compose textarea:focus{border-color:#9dbcea;background:#fff;box-shadow:0 0 0 3px rgba(7,91,221,.08);outline:0}.message-compose .btn{min-width:48px;min-height:46px;border-radius:12px;padding-inline:14px}.conversation>.alert{margin:0 14px 12px;border-radius:10px;font-size:.8125rem}@media (max-width:760px){.messenger{min-height:560px;max-height:none;grid-template-columns:1fr;border-radius:14px}.contact-column{max-height:none;overflow-x:auto;overflow-y:hidden;display:grid;grid-template-columns:auto minmax(max-content,1fr);grid-template-rows:auto auto;gap:8px;padding:10px 12px;border-inline-end:0;border-bottom:1px solid #e3e9f1;background:#fff}.chat-contact-tabs{position:static;grid-column:1/-1;width:min(100%,360px);margin:0;padding:0;background:transparent}.contact-column>button{width:190px;min-width:190px;min-height:48px;display:grid;grid-template-columns:32px minmax(0,1fr);margin:0;border-color:#e7ecf3;background:#fbfcfe}.contact-column>button .mini-avatar{width:32px;height:32px}.chat-invite{display:none}.conversation{min-height:430px}.conversation>header{min-height:56px;padding:10px 13px}.message-history{min-height:300px;padding:16px 12px}.message{max-width:86%}.message-compose{padding:9px max(9px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left))}.message-compose .btn{width:46px;min-width:46px;padding:0;font-size:0}.message-compose .btn svg{width:18px;height:18px}}@media (max-width:420px){.messenger{border-inline:0;border-radius:0;margin-inline:-16px}.conversation>header .badge{display:none}.message{max-width:90%}}.dialog.wide:has(.messenger-v2){width:min(1180px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:min(860px,calc(100dvh - 32px));overflow:hidden}.dialog.wide[open]:has(.messenger-v2){display:flex;flex-direction:column}.dialog.wide:has(.messenger-v2)>header{flex-shrink:0;min-height:64px}.messenger-v2{width:100%;min-width:0;margin:0;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);height:min(720px,calc(100dvh - 130px));min-height:0;max-height:720px;overflow:hidden}.messaging-contact-pane{min-width:0;display:flex;flex-direction:column;border-inline-end:1px solid var(--line);background:#fff;overflow:hidden}.messaging-list-toolbar{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);background:#fff}.messaging-list-toolbar>div{min-width:0}.messaging-list-toolbar small,.messaging-list-toolbar strong{display:block}.messaging-list-toolbar strong{font-size:.9375rem}.messaging-list-toolbar small{margin-top:2px;font-size:.72rem;color:var(--muted)}.messaging-back-button,.messaging-qr-button,.messaging-send-button{display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);color:var(--ink);background:#fff}.messaging-qr-button{width:42px;height:42px;border-radius:50%}.messaging-back-button:hover,.messaging-qr-button:hover{color:var(--blue);background:#edf4ff;border-color:#bfd2ef}.messaging-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px;margin:0;border-bottom:1px solid var(--line);background:#fff}.messaging-tabs>button{min-width:0;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 7px;border:1px solid var(--line);border-radius:999px;color:#66758a;background:#fff;font-size:clamp(.68rem,1.5vw,.78rem);font-weight:650;line-height:1.15}.messaging-tabs>button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messaging-tabs>button>b{min-width:21px;height:21px;display:inline-grid;place-items:center;padding:0 5px;border-radius:999px;color:#607189;background:#eef2f7;font-size:.67rem}.messaging-tabs>button.active{color:var(--blue);border-color:#a9c7f2;background:#eaf2ff}.messaging-tabs>button.active>b{color:#1456aa;background:#d6e6ff}.messaging-contact-list{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#fff}.messaging-promotion-controls{display:grid;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.messaging-promotion-controls select{width:100%;min-width:0}.messaging-subtabs{display:flex;gap:6px}.messaging-subtabs button{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px}.messaging-subtabs button.active{background:#eaf2ff;color:var(--blue)}.messaging-unread{display:inline-grid;place-items:center;min-width:20px;padding:2px 5px;border-radius:20px;background:#bd2b45;color:white;font-size:11px}.messaging-contact-row{width:100%;min-width:0;min-height:70px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 13px;border-bottom:1px solid #edf1f6;background:#fff;text-align:start}.messaging-contact-row:hover{background:#f7faff}.messaging-contact-row.active{background:#edf4ff}.messaging-avatar{width:42px;height:42px;display:inline-grid;place-items:center;border-radius:50%;color:#194f91;background:#e8f1ff;font-size:.78rem;font-weight:750;letter-spacing:.02em}.messaging-avatar.role-student{color:#7b2756;background:#faeaf3}.messaging-avatar.role-admin{color:#6d5412;background:#fff2c9}.messaging-contact-copy{min-width:0}.messaging-contact-copy small,.messaging-contact-copy strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messaging-contact-copy strong{color:var(--ink);font-size:.875rem;font-weight:700}.messaging-contact-copy small{margin-top:4px;color:#78879a;font-size:.75rem}.messaging-contact-meta{align-self:start;padding-top:4px;color:#8794a6;font-size:.68rem;white-space:nowrap}.messaging-contact-list>.empty{padding:28px 18px}.messaging-conversation-pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:#f6f8fb}.messaging-conversation-header{min-height:64px;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:11px;padding:9px 16px!important;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97)}.messaging-conversation-header>div{min-width:0;flex:1}.messaging-conversation-header small,.messaging-conversation-header strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messaging-conversation-header strong{font-size:.9rem!important}.messaging-conversation-header small{margin-top:3px!important;color:var(--muted)!important;font-size:.72rem!important}.messaging-back-button{display:none;width:40px;height:40px;border-radius:50%}.messaging-history{min-height:0;max-height:none;flex:1;gap:8px;padding:18px clamp(14px,3vw,30px) 14px;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(rgba(246,248,251,.94),rgba(246,248,251,.94)),radial-gradient(circle at 1px 1px,#dfe7f2 1px,transparent 1.2px);background-size:auto,24px 24px}.messenger-v2 .message{width:fit-content;max-width:min(680px,78%);margin:0;padding:9px 12px 8px;border:1px solid #e2e8f1;border-radius:16px 16px 16px 5px;color:#283b55;background:#fff;box-shadow:0 2px 8px rgba(19,41,74,.04)}.messenger-v2 .message.mine{align-self:flex-end;color:#113963;border-color:#c9daf2;border-radius:16px 16px 5px 16px;background:#e4efff}.messenger-v2 .message p{margin:0;color:inherit;font-size:.9rem;line-height:1.48;overflow-wrap:anywhere;white-space:pre-wrap}.messenger-v2 .message small{margin-top:5px;color:#8491a3;font-size:.65rem;text-align:end}.messaging-history>.empty{margin:auto;max-width:360px;background:transparent}.messaging-compose{position:sticky;z-index:3;bottom:0;min-height:68px;display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:end;gap:9px;padding:10px 13px;border-top:1px solid var(--line);background:rgba(255,255,255,.98);backdrop-filter:blur(12px)}.messaging-compose textarea{min-height:46px;max-height:132px;resize:vertical;border:1px solid #d7e0ec;border-radius:16px;padding:12px 14px;background:#fff;font-size:.875rem;line-height:1.4}.messaging-compose textarea:focus{border-color:#99bce9}.messaging-send-button{width:46px;height:46px;border:0;border-radius:50%;color:#fff;background:var(--blue);box-shadow:0 5px 14px rgba(7,91,221,.2)}.messaging-send-button:hover:not(:disabled){background:var(--blue-dark)}.messaging-send-button:disabled{opacity:.45}.messaging-error{margin:0 13px 10px}@media (max-width:1024px){.messenger-v2{grid-template-columns:minmax(250px,300px) minmax(0,1fr)}}@media (max-width:720px){.dialog.wide:has(.messenger-v2){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.dialog.wide:has(.messenger-v2)>header{min-height:60px;padding:max(12px,env(safe-area-inset-top)) 14px 12px}.messenger-v2{grid-template-columns:1fr;flex:1;height:auto;border:0;border-radius:0;min-height:0;max-height:none}.messaging-contact-pane,.messaging-conversation-pane{min-height:0;height:100%}.messenger-v2:not(.has-chat) .messaging-contact-pane{display:flex}.messenger-v2.has-chat .messaging-contact-pane,.messenger-v2:not(.has-chat) .messaging-conversation-pane{display:none}.messenger-v2.has-chat .messaging-conversation-pane{display:flex}.messaging-list-toolbar{min-height:58px;padding:9px 12px}.messaging-list-toolbar strong{font-size:.9rem}.messaging-tabs{position:sticky;z-index:3;top:0;padding:8px 9px;gap:5px}.messaging-tabs>button{min-height:36px;padding-inline:6px;font-size:clamp(.64rem,2.7vw,.75rem)}.messaging-tabs>button>b{min-width:19px;height:19px;font-size:.62rem}.messaging-contact-row{min-height:68px;grid-template-columns:42px minmax(0,1fr) auto;padding:9px 12px}.messaging-avatar{width:40px;height:40px}.messaging-contact-copy strong{font-size:.84rem}.messaging-contact-copy small{font-size:.72rem}.messaging-back-button{display:inline-grid}.messaging-conversation-header{min-height:58px;padding:8px 10px!important}.messaging-conversation-header>.messaging-avatar{width:38px;height:38px}.messaging-history{padding:13px 10px 12px}.messenger-v2 .message{max-width:88%}.messaging-compose{min-height:64px;grid-template-columns:minmax(0,1fr) 44px;padding:8px max(9px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left))}.messaging-compose textarea{min-height:44px;border-radius:15px;padding:11px 12px;resize:none}.messaging-send-button{width:44px;height:44px}}@media (max-width:360px){.messaging-tabs>button{gap:3px;padding-inline:4px}.messaging-tabs>button>b{display:none}.messaging-contact-row{grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding-inline:9px}.messaging-avatar{width:38px;height:38px}.messaging-contact-meta{font-size:.62rem}}.messaging-promotion-controls .messaging-promotion-note{display:block;padding:2px 4px;color:#516680;font-size:.75rem;line-height:1.45}.messaging-promotion-controls>.btn{min-width:0;min-height:42px;white-space:normal;text-align:center}.messaging-promotion-controls select{max-width:100%;border-radius:10px;text-overflow:ellipsis}.dialog:has(.messaging-promotion-note) .form-body textarea{min-height:115px}.dialog.wide:has(.messenger-v2){border-radius:18px;box-shadow:0 22px 75px rgba(10,38,77,.2)}.messenger-v2{--messenger-ink:#132f56;--messenger-blue:#0a5dd3;--messenger-muted:#647893;--messenger-line:#dfe8f3;background:#fff;color:var(--messenger-ink)}.messenger-v2 .messaging-contact-pane{background:linear-gradient(180deg,#fff,#fbfdff);border-inline-end:1px solid var(--messenger-line)}.messenger-v2 .messaging-list-toolbar{min-height:69px;gap:10px;padding:12px 15px;border-bottom:1px solid var(--messenger-line)}.messenger-v2 .messaging-toolbar-eyebrow{display:flex;gap:6px;align-items:center;color:#3372b4;font-size:.64rem;text-transform:uppercase;font-weight:780;letter-spacing:.07em}.messenger-v2 .messaging-list-toolbar strong{margin-top:4px;color:var(--messenger-ink);letter-spacing:-.025em;font-size:1.08rem}.messenger-v2 .messaging-list-toolbar small{margin-top:2px;color:#6b8097;font-size:.72rem}.messenger-v2 .messaging-qr-button{border-radius:12px;width:44px;height:44px;color:#175caf;background:#f4f8ff;border-color:#dce8f8}.messenger-v2 .messaging-tabs{gap:6px;padding:10px 11px;border-bottom:1px solid var(--messenger-line)}.messenger-v2 .messaging-tabs>button{min-height:42px;min-width:0;padding:7px 5px;gap:5px;border-radius:12px;font-size:.73rem;background:#f6f8fc;border-color:transparent;color:#486581;font-weight:730}.messenger-v2 .messaging-tabs>button.active{background:#e6f1ff;border-color:#b6d1f4;color:#0b58bd}.messenger-v2 .messaging-tabs>button>b{min-width:21px;height:21px;font-size:.65rem;padding:0 4px}.messenger-v2 .messaging-tab-name{min-width:0}.messenger-v2 .messaging-tab-short{display:none}.messenger-v2 .messaging-promotion-controls{gap:9px;padding:10px 12px;border-bottom:1px solid var(--messenger-line)}.messenger-v2 .messaging-subtabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:4px;background:#f2f6fc;border:1px solid #e4eaf4;border-radius:11px}.messenger-v2 .messaging-subtabs button{border:1px solid transparent;border-radius:8px;background:transparent;min-height:42px;padding:8px;font-size:.8rem;font-weight:710;color:#55708d;line-height:1.25;cursor:pointer}.messenger-v2 .messaging-subtabs button.active{background:#fff;color:#0c59bb;border-color:#d8e4f6;box-shadow:0 2px 6px rgba(20,65,120,.06)}.messenger-v2 .messaging-promotion-picker{display:grid;gap:8px}.messenger-v2 .messaging-promotion-trigger{display:flex;align-items:center;justify-content:space-between;gap:9px;width:100%;min-width:0;min-height:45px;padding:9px 11px;border:1px solid #ccdff3;border-radius:10px;background:#fff;color:#254565;font:inherit;text-align:start;cursor:pointer}.messenger-v2 .messaging-promotion-trigger:hover{border-color:#80b1e9;background:#f8fbff}.messenger-v2 .messaging-promotion-title{flex:1 1 auto;display:flex;gap:8px;align-items:center;min-width:0;font-size:.79rem;font-weight:730}.messenger-v2 .messaging-promotion-title svg{flex:0 0 auto;color:#1d64b4}.messenger-v2 .messaging-promotion-title>span{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.messenger-v2 .messaging-promotion-end{flex:0 0 auto;display:flex;align-items:center;gap:6px;color:#356aa8}.messenger-v2 .messaging-promotion-end small{display:grid;place-items:center;min-width:28px;min-height:25px;padding:3px 5px;border-radius:8px;background:#edf4ff;font-size:.7rem;color:#1c5da7}.messenger-v2 .messaging-promotion-picker>.btn{width:100%;min-height:42px;justify-content:center;border-radius:10px;background:#075bd7;color:#fff;border-color:#075bd7;font-size:.82rem;font-weight:730}.messenger-v2 .messaging-promotion-note{font-size:.7rem;line-height:1.42;color:#6f8095;margin:0;padding:0 3px}.messenger-v2 .messaging-contact-search{padding:10px 12px 8px;border-bottom:1px solid #e9eff7;background:#fff}.messaging-promotion-dialog .messaging-search-field,.messenger-v2 .messaging-search-field{min-width:0;width:100%;min-height:43px;display:flex;align-items:center;gap:9px;padding:6px 10px;border:1px solid #d7e2f1;border-radius:11px;background:#f8fafd;color:#65819d}.messaging-promotion-dialog .messaging-search-field:focus-within,.messenger-v2 .messaging-search-field:focus-within{border-color:#5399eb;box-shadow:0 0 0 2px #1973d51b;background:#fff}.messaging-promotion-dialog .messaging-search-field>svg,.messenger-v2 .messaging-search-field>svg{flex:0 0 auto}.messaging-promotion-dialog .messaging-search-field input,.messenger-v2 .messaging-search-field input{flex:1;width:0;min-width:0;border:0;outline:0;padding:4px 0;background:transparent;color:#1f4164;font:inherit;font-size:.8rem}.messenger-v2 .messaging-search-field input::placeholder{color:#8a9bb1}.messenger-v2 .messaging-search-field button{flex:0 0 auto;display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:8px;background:#eaf1fb;color:#57779a;cursor:pointer}.messenger-v2 .messaging-search-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 2px 0}.messenger-v2 .messaging-search-meta span{color:#78889e;font-size:.69rem}.messenger-v2 .messaging-search-meta button{border:1px solid #d9e5f4;border-radius:999px;min-height:32px;padding:6px 10px;color:#3c678e;background:#fff;font-size:.69rem;font-weight:750;cursor:pointer}.messenger-v2 .messaging-search-meta button.is-active{background:#0b58be;color:#fff;border-color:#0b58be}.messenger-v2 .messaging-contact-list{background:#fff;padding-bottom:max(10px,env(safe-area-inset-bottom))}.messenger-v2 .messaging-contact-row{grid-template-columns:38px minmax(0,1fr) auto;min-height:66px;gap:10px;padding:10px 12px;border-bottom-color:#edf1f6}.messenger-v2 .messaging-contact-row.active,.messenger-v2 .messaging-contact-row:hover{background:#f0f6ff}.messenger-v2 .messaging-avatar{width:38px;height:38px;border-radius:12px}.messenger-v2 .messaging-avatar.role-student{color:#694785;background:#f4edfa}.messenger-v2 .messaging-contact-copy strong{font-size:.8rem;color:#213d61;line-height:1.4}.messenger-v2 .messaging-contact-copy small{font-size:.72rem;margin-top:4px;color:#77899d}.messenger-v2 .messaging-contact-meta{font-variant-numeric:tabular-nums;font-size:.69rem}.messenger-v2 .messaging-compact-empty{display:grid;justify-items:center;text-align:center;gap:9px;padding:37px 18px 30px;color:#6e849c}.messenger-v2 .messaging-compact-empty>svg{color:#7b9ac0}.messenger-v2 .messaging-compact-empty strong{font-size:.9rem;color:#2c5079}.messenger-v2 .messaging-compact-empty p{max-width:300px;font-size:.75rem;line-height:1.6}.messenger-v2 .messaging-compact-empty button{min-height:39px;padding:8px 13px;border:1px solid #bed5f3;border-radius:10px;color:#1559af;background:#f2f7ff;font-size:.79rem;font-weight:730}.messenger-v2 .messaging-load-more{display:grid;justify-items:center;gap:8px;padding:14px;background:#fafdff;border-top:1px solid #e6edf7}.messenger-v2 .messaging-load-more span{font-size:.7rem;color:#72859a}.messenger-v2 .messaging-load-more button{min-height:41px;width:100%;border:1px solid #d5e4f5;border-radius:10px;background:#fff;color:#1559ad;font-size:.78rem;font-weight:740;cursor:pointer}.messenger-v2 .messaging-conversation-header{border-bottom:1px solid #e2eaf5;background:#fbfdff}.messenger-v2 .messaging-conversation-pane{min-width:0}.messenger-v2 :where(.messaging-tabs button,.messaging-subtabs button,.messaging-promotion-trigger,.messaging-search-meta button,.messaging-load-more button,.messaging-contact-row,.messaging-send-button):focus-visible{outline:3px solid #bd9338;outline-offset:2px}.messaging-promotion-dialog{padding:15px;min-width:0;display:grid;gap:12px}.messaging-promotion-dialog .messaging-promotion-options{display:grid;gap:7px;max-height:min(55dvh,460px);overflow:auto;overscroll-behavior:contain;padding:2px}.messaging-promotion-dialog .messaging-promotion-options>button{display:flex;justify-content:space-between;align-items:center;gap:13px;width:100%;padding:12px 13px;min-height:62px;text-align:start;border:1px solid #dce7f3;border-radius:12px;background:#fff;color:#1a3f69;font:inherit;cursor:pointer}.messaging-promotion-dialog .messaging-promotion-options>button.is-selected{background:#ecf5ff;border-color:#80b4ef}.messaging-promotion-dialog .messaging-promotion-options button span{min-width:0}.messaging-promotion-dialog .messaging-promotion-options button strong{display:block;font-size:.83rem;line-height:1.5;overflow-wrap:anywhere}.messaging-promotion-dialog .messaging-promotion-options button small{display:block;margin-top:4px;color:#667e97;font-size:.73rem}.messaging-promotion-dialog .messaging-promotion-options button>svg{flex:0 0 auto;color:#1262bb}.messaging-promotion-dialog .messaging-promotion-unselected{opacity:.24;transform:rotate(-90deg)}.messaging-promotion-dialog .messaging-promotion-options>p{padding:14px;color:#61758d;font-size:.82rem}.messaging-promotion-dialog .messaging-promotion-options>button:focus-visible{outline:3px solid #bd9338;outline-offset:2px}@media(max-width:720px){.dialog.wide:has(.messenger-v2){border-radius:0;box-shadow:none}.messenger-v2 .messaging-list-toolbar{min-height:57px;padding:7px 13px}.messenger-v2 .messaging-list-toolbar strong{font-size:.96rem}.messenger-v2 .messaging-toolbar-eyebrow{font-size:.6rem}.messenger-v2 .messaging-tabs{gap:5px;padding:8px 10px}.messenger-v2 .messaging-tabs>button{min-height:40px;font-size:.7rem;padding:6px 4px}.messenger-v2 .messaging-tab-full{display:none}.messenger-v2 .messaging-tab-short{display:inline}.messenger-v2 .messaging-contact-search{padding:9px 11px 6px}.messenger-v2 .messaging-promotion-controls{padding:8px 11px}.messenger-v2 .messaging-contact-row{min-height:65px;gap:9px;padding:9px 11px}.messenger-v2 .messaging-contact-copy strong{font-size:.78rem}.messenger-v2 .messaging-contact-copy small{font-size:.69rem}}@media(max-width:360px){.messenger-v2 .messaging-tabs>button>b{display:inline-grid;min-width:18px;padding:0 3px;font-size:.61rem}.messenger-v2 .messaging-tabs>button{gap:3px;font-size:.65rem}.messenger-v2 .messaging-tab-short{font-size:.62rem}}@media(prefers-reduced-motion:reduce){.messaging-promotion-dialog *,.messenger-v2 *{scroll-behavior:auto;transition:none!important}}.dialog:has(.qr-workbench){width:min(565px,calc(100vw - 24px));max-width:100%;max-height:calc(100dvh - 24px);border-radius:18px;overflow-y:auto}.dialog:has(.qr-workbench)>header{position:sticky;top:0;z-index:5;padding:16px 20px;min-height:66px;border-bottom:1px solid #e2e9f2;background:#fff}.dialog:has(.qr-workbench)>header h2{font-size:clamp(1rem,2.4vw,1.16rem);letter-spacing:-.015em}.qr-workbench{--qr-blue:#095dd6;--qr-navy:#123b69;display:grid;grid-template-columns:minmax(0,1fr);box-sizing:border-box;width:100%;max-width:100%;min-width:0;gap:14px;padding:15px clamp(14px,3vw,22px) 20px}.qr-workbench-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));align-items:center;gap:5px;padding:5px;border:1px solid #e0e9f5;border-radius:13px;background:#f3f7fd}.qr-workbench-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:43px;padding:9px 10px;border:1px solid transparent;border-radius:9px;background:transparent;font:inherit;font-size:.86rem;font-weight:740;color:#5c6f85;cursor:pointer}.qr-workbench-tabs button.is-active{background:#fff;border-color:#d3e3fa;color:var(--qr-blue);box-shadow:0 3px 9px #1a549114}.qr-gallery-button:focus-within,.qr-workbench-actions button:focus-visible,.qr-workbench-tabs button:focus-visible{outline:3px solid #b18a2e;outline-offset:3px}.qr-workbench-generated{display:grid;grid-template-columns:minmax(0,1fr);justify-items:stretch;width:100%;max-width:100%;min-width:0;gap:13px}.qr-image-frame{display:flex;align-items:center;justify-content:center;max-width:368px;padding:13px;border:1px solid #dce6f4;border-radius:18px;background:#fff;box-shadow:0 5px 20px #15345612}.qr-image-frame,.qr-image-frame canvas{box-sizing:border-box;width:100%;min-width:0;aspect-ratio:1}.qr-image-frame canvas{display:block;flex:0 1 auto;max-width:100%;height:auto;object-fit:contain;image-rendering:auto}.qr-workbench-caption{max-width:400px;margin:0;font-size:.8rem;line-height:1.55;text-align:center;color:#59738d}.qr-workbench-actions{display:grid;width:100%;gap:9px;padding-top:13px;border-top:1px solid #e5eaf2}.qr-workbench-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px;padding:10px 8px;border-radius:11px;font-size:.78rem;font-weight:690;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.qr-workbench-scanner{display:grid;gap:12px;min-width:0}.qr-camera-frame{position:relative;isolation:isolate;display:grid;place-items:center;overflow:hidden;width:100%;max-width:410px;aspect-ratio:1/1;margin-inline:auto;border:1px solid #304a6d;border-radius:16px;background:radial-gradient(circle at center,#152e51,#081b34 80%)}.qr-camera-frame video{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover;max-height:none}.qr-target{position:absolute;inset:14%;border-radius:18px;box-shadow:0 0 0 80px rgba(3,18,43,.36);pointer-events:none}.qr-target span{position:absolute;width:30px;height:30px;border:4px solid #a8d0ff}.qr-target span:first-child{top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:10px}.qr-target span:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:10px}.qr-target span:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:10px}.qr-target span:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:10px}.qr-scan-guidance{margin:0;text-align:center;font-size:.81rem;line-height:1.5;color:#607891}.qr-gallery-button{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;padding:10px 14px;border:1px solid #c9ddef;border-radius:11px;background:#f2f7ff;color:#1257ac;font-size:.84rem;font-weight:710;cursor:pointer;text-align:center}.qr-gallery-button:hover{background:#e6f0fe}.qr-gallery-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.qr-gallery-button input:disabled{cursor:wait}.qr-privacy-hint{text-align:center;color:#697e97;font-size:.74rem;line-height:1.4}.qr-scan-success{display:grid;justify-items:center;gap:11px;padding:17px;border:1px solid #cee9d8;border-radius:13px;background:#f3fbf6;color:#1f704c;text-align:center}.qr-scan-success strong{font-size:1.02rem}.qr-scan-success p{font-size:.79rem;line-height:1.5;color:#4d6b5a}.qr-scan-success .btn{min-height:43px;border-radius:10px;width:100%;max-width:340px}.qr-workbench .alert.error{max-width:100%;overflow-wrap:anywhere;font-size:.79rem}@media (max-width:500px){.dialog:has(.qr-workbench){width:min(100vw,100%);max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}.dialog:has(.qr-workbench)>header{padding:max(14px,env(safe-area-inset-top)) 15px 14px}.qr-workbench{padding:12px 15px 19px;gap:12px}.qr-image-frame{width:min(100%,335px);padding:11px}.qr-workbench-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.qr-workbench-actions .btn{flex-direction:column;gap:5px;font-size:.73rem;padding:9px 4px}.qr-camera-frame{max-width:min(100%,370px)}}@media (max-width:345px){.qr-workbench-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.qr-workbench button{transition:none}}.dialog:has(.qr-workbench){box-shadow:0 22px 62px rgba(8,35,76,.17)}.qr-workbench{--qr-gold:#D6A63A;gap:13px}.qr-workbench-generated{gap:12px;align-items:start}.qr-brand-intro{display:flex;align-items:center;gap:10px;box-sizing:border-box;min-width:0;width:100%;flex-wrap:wrap;padding:12px;border:1px solid #dce8f6;border-radius:13px;background:linear-gradient(112deg,#f4f8ff,#fff)}.qr-brand-intro-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#145fca,#0a3676);color:#fff}.qr-brand-intro>div{flex:1 1 auto;display:grid;gap:3px;min-width:0}.qr-brand-kicker{color:#2a65a6;font-size:.65rem;letter-spacing:.075em;font-weight:820}.qr-brand-intro strong{color:#153758;font-size:clamp(.84rem,2vw,.97rem);line-height:1.3}.qr-brand-status{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:6px 8px;border-radius:100px;background:#ecf8f1;color:#207051;font-size:.65rem;font-weight:730}.qr-showcase{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;box-sizing:border-box;min-width:0;max-width:395px;gap:9px;width:100%;justify-self:center;margin-inline:auto;padding:clamp(13px,3vw,18px);border:1px solid #dce5f2;border-radius:21px;background:linear-gradient(150deg,#fbfdff 10%,#f1f6ff);box-shadow:0 11px 28px rgba(17,57,107,.07);overflow:hidden}.qr-showcase-glow{position:absolute;z-index:-1;width:230px;height:230px;inset:auto -100px -130px auto;border-radius:100%;background:radial-gradient(circle,rgba(13,92,199,.12),transparent 73%);pointer-events:none}.qr-showcase .qr-image-frame{position:relative;z-index:1;box-sizing:border-box;width:100%;max-width:345px;min-width:0;padding:9px;border:1px solid #dae6f2;border-radius:16px;aspect-ratio:1;background:#fff;box-shadow:0 3px 14px rgba(22,56,101,.08)}.qr-showcase .qr-image-frame canvas{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;aspect-ratio:1;height:auto;image-rendering:auto}.qr-showcase-signature{display:flex;align-items:center;justify-content:center;gap:8px;padding:2px 0 0;color:#1d4c83}.qr-signature-symbol{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1px solid #c2d8fa;background:#fff;color:#135fc3;font-weight:870;letter-spacing:-.04em;font-size:.79rem}.qr-showcase-signature>span:last-child{display:grid;gap:1px}.qr-showcase-signature strong{font-size:.77rem;line-height:1.2;font-weight:830;letter-spacing:.09em}.qr-showcase-signature small{font-size:.66rem;color:#6682a1}.qr-workbench-caption{width:min(100%,395px);margin-inline:auto;color:#58718c;font-size:.76rem;line-height:1.5}.qr-workbench-actions{padding-top:12px}.qr-workbench-actions .btn{min-height:44px;border:1px solid #d5e3f5;background:#fff;color:#1c4b80;font-weight:720;box-shadow:0 3px 9px rgba(20,63,113,.035)}.qr-workbench-actions .btn:hover:not(:disabled){background:#eaf3ff;border-color:#a4c5ec}.qr-workbench-actions .btn:last-child{color:#fff;background:#075bd7;border-color:#075bd7}.qr-workbench-actions .btn:last-child:hover:not(:disabled){background:#094faf}.qr-workbench-actions .btn:disabled{opacity:.57}@media (max-width:500px){.qr-workbench{padding:12px 14px max(18px,env(safe-area-inset-bottom));gap:11px}.qr-brand-intro{gap:8px;padding:10px}.qr-brand-intro-icon{width:32px;height:32px;flex-basis:32px}.qr-brand-status{font-size:.6rem;padding:5px 7px}.qr-showcase{width:100%;max-width:356px;padding:11px;border-radius:17px}.qr-showcase .qr-image-frame{width:100%;max-width:323px;padding:7px;border-radius:13px}.qr-workbench-actions .btn{flex-direction:row;padding:9px 6px;font-size:.73rem;gap:5px;min-height:45px}}@media (max-width:365px){.qr-brand-status{display:none}.qr-showcase .qr-image-frame{padding:6px}.qr-workbench-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-contrast:more){.qr-showcase .qr-image-frame{border-color:#2b4770}.qr-workbench-actions .btn{border-color:#1b4476}}.dialog:has(.qr-workbench){box-sizing:border-box;min-width:0;max-width:100vw;overflow-x:hidden}.qr-showcase>*,.qr-workbench-generated>*,.qr-workbench-scanner>*,.qr-workbench>*{min-width:0;max-width:100%}.qr-brand-intro>div{overflow-wrap:anywhere}.qr-workbench-actions{min-width:0;grid-template-columns:repeat(3,minmax(0,1fr))}.qr-camera-frame,.qr-workbench-actions .btn{min-width:0}@media (max-width:500px){.qr-showcase{max-width:min(100%,356px)}.qr-showcase .qr-image-frame{max-width:min(100%,323px,42dvh)}.qr-workbench-caption{width:100%}.qr-workbench-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:365px){.qr-workbench-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:270px){.qr-workbench{padding-inline:8px}.qr-workbench-tabs button{gap:4px;font-size:.71rem;padding-inline:4px}.qr-brand-intro .qr-brand-kicker{font-size:.58rem}.qr-workbench-actions{grid-template-columns:minmax(0,1fr)}}@media (max-height:650px){.qr-workbench{gap:8px;padding-top:8px;padding-bottom:12px}.qr-showcase{padding:8px}.qr-showcase .qr-image-frame{max-width:min(100%,34dvh)}.qr-brand-intro{padding:8px}}.institution-selector,.topbar,.topbar-right{min-width:0}.institution-selector>button{min-width:0;max-width:100%}html[data-header-responsive=ready] .topbar-right{position:relative}html[data-header-responsive=ready] .topbar .language-select{width:clamp(132px,11vw,164px);max-width:none;color:transparent;text-shadow:none}html[data-header-responsive=ready] .topbar .language-select option{color:var(--ink);background:#fff}html[data-header-responsive=ready] .topbar-right:before{content:attr(data-language-full);position:absolute;z-index:2;inset-inline-start:10px;top:50%;width:calc(clamp(132px, 11vw, 164px) - 38px);transform:translateY(-50%);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;color:var(--ink);font-size:.8125rem;line-height:1}.topbar-right>.btn{flex:0 0 auto}@media (max-width:1180px) and (min-width:801px){html[data-header-responsive=ready] .institution-selector>button{overflow:visible;white-space:nowrap;text-overflow:clip;font-size:0}html[data-header-responsive=ready] .institution-selector>button:before{content:attr(data-institution-medium);font-size:.875rem;font-weight:650}html[data-header-responsive=ready] .topbar .language-select{width:84px;min-width:84px}html[data-header-responsive=ready] .topbar-right:before{content:attr(data-language-short);inset-inline-start:8px;width:54px;font-size:.75rem}.topbar-right{gap:7px}.topbar-right>.btn{width:40px;min-width:40px;min-height:40px;padding:0;font-size:0}.topbar-right>.btn svg{width:18px;height:18px}.qr-scanner-label,.topbar-right .user-avatar{display:none}.year-selector{width:138px}}@media (max-width:800px){.topbar{column-gap:clamp(4px,1.3vw,9px);row-gap:8px;padding-inline:max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-right))}.institution-selector{flex:1 1 64px;max-width:none;overflow:hidden;gap:4px}.institution-selector>svg{display:none}html[data-header-responsive=ready] .institution-selector>button{max-width:100%;overflow:visible;padding-inline:2px;white-space:nowrap;text-overflow:clip;font-size:0}html[data-header-responsive=ready] .institution-selector>button:before{content:attr(data-institution-short);font-size:.875rem;font-weight:700}.topbar-right{flex:0 0 auto;margin-inline-start:0;gap:clamp(3px,1vw,6px)}html[data-header-responsive=ready] .topbar .language-select{width:76px;min-width:76px;max-width:76px;min-height:40px;padding:8px 24px 8px 7px}html[data-header-responsive=ready] .topbar-right:before{content:attr(data-language-short);inset-inline-start:7px;width:48px;font-size:.75rem;text-overflow:clip}.topbar-right .icon-btn,.topbar-right>.btn{width:40px;min-width:40px;min-height:40px}.topbar-right>.btn{padding:0;font-size:0}.topbar-right>.btn svg{width:18px;height:18px}.qr-scanner-label,.topbar-right .user-avatar{display:none}.year-selector{order:5;flex:0 0 100%;width:100%;max-width:none;min-height:40px}}@media (max-width:430px){.topbar{padding:8px max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left));column-gap:3px}.mobile-menu,.topbar-right .icon-btn,.topbar-right>.btn{width:36px;min-width:36px;min-height:38px}.institution-selector{flex-basis:48px}html[data-header-responsive=ready] .topbar .language-select{width:60px;min-width:60px;max-width:60px;min-height:38px;padding-inline:6px 20px}html[data-header-responsive=ready] .topbar-right:before{inset-inline-start:6px;width:36px;font-size:.6875rem}.topbar-right{gap:3px}.year-selector{min-height:38px}}@media (max-width:340px){.topbar{padding-inline:max(6px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-right));column-gap:2px}.mobile-menu,.topbar-right .icon-btn,.topbar-right>.btn{width:34px;min-width:34px;min-height:36px}html[data-header-responsive=ready] .topbar .language-select{width:46px;min-width:46px;max-width:46px;min-height:36px;padding-inline:5px 18px}html[data-header-responsive=ready] .topbar-right:before{content:attr(data-language-compact);inset-inline-start:6px;width:22px;font-size:.6875rem;font-weight:700}html[data-header-responsive=ready] .institution-selector>button:before{font-size:.8125rem}}@media (forced-colors:active){html[data-header-responsive=ready] .topbar-right:before{display:none}html[data-header-responsive=ready] .topbar .language-select{color:ButtonText}}.assignments-space{--tptd-navy:#0c2e59;--tptd-royal:#075bd7;--tptd-ink:#173456;--tptd-muted:#5d708a;--tptd-line:#dbe5f1;--tptd-focus:#b7861f;min-width:0;container-type:inline-size}.assignments-space>.heading{margin-bottom:clamp(12px,2vw,20px)}.assignments-space :where(button,.btn,input,select,textarea):focus-visible,.dialog:has(.tptd-review-options) :where(button,input,textarea):focus-visible{outline:3px solid var(--tptd-focus,#b7861f);outline-offset:3px}.tptd-command{position:relative;display:flex;align-items:center;justify-content:space-between;gap:clamp(12px,3vw,28px);isolation:isolate;overflow:hidden;padding:clamp(18px,3vw,28px);margin-bottom:13px;border:1px solid #183f78;border-radius:19px;background:linear-gradient(113deg,#081e3a 5%,#114a94 80%,#145fb3);box-shadow:0 14px 36px rgba(11,44,92,.15);color:#fff}.tptd-command:before{content:"";position:absolute;right:-9%;top:-130%;width:min(360px,65%);aspect-ratio:1;z-index:-1;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 34px rgba(255,255,255,.025),0 0 0 72px rgba(255,255,255,.025);pointer-events:none}.tptd-command-copy{flex:1 1 300px;min-width:0}.tptd-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:.71rem;font-weight:780;letter-spacing:.085em;text-transform:uppercase}.tptd-command .tptd-eyebrow{color:#bfdbff}.tptd-command h2{max-width:650px;margin:8px 0 5px;color:#fff;font-size:clamp(1.17rem,2.5vw,1.75rem);font-weight:760;letter-spacing:-.028em;line-height:1.25;text-wrap:balance}.tptd-command p{max-width:550px;color:#dae8fc;font-size:clamp(.79rem,1.5vw,.92rem);line-height:1.55}.tptd-command>.btn{flex:0 0 auto;min-height:47px;background:#fff;border-color:rgba(255,255,255,.65);color:#0a4087;box-shadow:0 7px 18px rgba(6,27,62,.18);font-weight:730}.tptd-command>.btn:hover{background:#e8f2ff}.tptd-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-bottom:16px}.tptd-metric{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 7px;min-width:0;padding:12px 11px;border:1px solid var(--tptd-line);border-radius:14px;background:linear-gradient(150deg,#fff,#f7faff)}.tptd-metric-icon{display:grid;place-items:center;width:30px;height:30px;grid-row:1/3;border-radius:9px;background:#e9f1ff;color:#1755a6}.tptd-metric strong{color:#13335a;font-size:clamp(1rem,1.8vw,1.3rem);line-height:1.25;font-weight:780}.tptd-metric>span:last-child{min-width:0;color:#566f8d;font-size:.7rem;white-space:normal}.tptd-metric--pending{border-color:#c6d9f7;background:#eef5ff}.tptd-metric--pending .tptd-metric-icon{background:#d9e9ff;color:#0753bc}.tptd-metric--validated .tptd-metric-icon{color:#127457;background:#dcf8ec}.tptd-metric--revision .tptd-metric-icon{color:#976508;background:#fff3d4}.tptd-metric--rejected .tptd-metric-icon{color:#b8354d;background:#ffe7ed}.tptd-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 13px;margin:17px 0 11px}.tptd-toolbar .search-box{flex:1 1 260px;min-width:0;max-width:590px;border-radius:12px}.tptd-toolbar .assignments-result-count{margin-left:auto;color:#61748b;font-size:.8rem}.tptd-filter-strip,.tptd-review-filters{display:flex;align-items:center;gap:7px;width:100%;min-width:0;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;padding:4px 1px 10px;-webkit-overflow-scrolling:touch}.tptd-filter-chip,.tptd-review-chip{appearance:none;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:39px;padding:8px 15px;border:1px solid #d7e2f0;border-radius:999px;background:#fff;color:#3f5776;font:inherit;font-size:.82rem;font-weight:670;line-height:1.25;cursor:pointer;transition:border-color .18s,background-color .18s,color .18s,transform .18s;scroll-snap-align:start}.tptd-filter-chip:hover,.tptd-review-chip:hover{border-color:#8fb7ec;color:#144d98}.tptd-filter-chip.is-active,.tptd-review-chip.is-active{color:#fff;border-color:#075bd7;background:#075bd7;box-shadow:0 3px 10px #0b60cf22}.assignments-space .assignments-list{gap:11px}.assignments-space .assignment-card{grid-template-columns:55px minmax(0,1fr);gap:13px 18px;align-items:start;padding:clamp(14px,2vw,20px);border-radius:17px;border-color:#d9e5f1;background:linear-gradient(155deg,#fff 60%,#fbfdff);box-shadow:0 4px 18px rgba(19,54,100,.045)}.assignments-space .assignment-card:hover{transform:translateY(-1px);border-color:#9ebfe8;box-shadow:0 11px 26px #0b397512}.assignments-space .assignment-symbol{width:55px;height:55px;border-radius:13px;background:#e4efff;color:#104e9c;font-size:.86rem}.assignments-space .assignment-symbol.td{background:#fdf1d8;border-color:#f2dcb1;color:#895c17}.assignments-space .assignment-info{min-width:0}.assignments-space .assignment-info h2{margin:7px 0 4px;font-size:clamp(.96rem,1.4vw,1.13rem);line-height:1.35}.assignments-space .assignment-course{color:#647991;font-size:.81rem}.assignments-space .assignment-card .due{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:7px 10px;margin-top:10px;color:#31567e;background:#f1f5fb;font-size:.75rem;border-radius:9px}.tptd-card-review-count{display:inline-flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:10px;color:#4b6480;font-size:.78rem}.tptd-card-review-count strong{color:#0b58c3;font-weight:720}.assignments-space .assignment-buttons.tptd-card-actions{min-width:0;width:100%;grid-column:2;display:flex;flex-wrap:wrap;flex-direction:row;gap:8px;justify-content:flex-start;border-top:1px solid #edf1f7;padding-top:10px}.assignments-space .tptd-card-actions .btn{min-height:39px;width:auto;flex:0 0 auto;font-size:.76rem;border-radius:10px;padding-inline:12px;justify-content:center}.assignments-space .tptd-card-actions .btn.primary{background:#095dcc}.dialog.wide:has(.assignment-detail){width:min(1070px,calc(100vw - 34px));max-height:calc(100dvh - 32px);border-radius:18px}.dialog.wide:has(.assignment-detail)>header{padding:17px clamp(15px,3vw,26px);border-bottom:1px solid #e3e9f3}.assignment-detail.form-body{gap:13px;padding:clamp(15px,2.7vw,25px)}.assignment-detail-intro{border-radius:13px;padding:13px 16px}.assignment-detail-intro p{margin-top:5px}.tptd-detail-tabs{display:flex;flex-wrap:wrap;gap:7px;padding:4px;border:1px solid #e0e7f1;border-radius:12px;background:#f4f7fc}.tptd-detail-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:9px 16px;border:1px solid transparent;border-radius:9px;color:#486283;font:inherit;font-size:.85rem;font-weight:700;background:transparent;cursor:pointer}.tptd-detail-tabs button.is-active{background:#fff;color:#0755b9;border-color:#d6e5f8;box-shadow:0 3px 8px #153c6d0c}.tptd-detail-tabs button strong{display:grid;place-items:center;min-width:25px;height:25px;border-radius:8px;background:#e9f2ff;color:#1456a7;font-size:.72rem}.assignment-detail-deadline{padding:10px 14px;border-radius:12px}.assignment-detail-deadline strong{font-size:.86rem}.assignment-submissions-heading h3{font-size:clamp(1.03rem,2vw,1.22rem)}.tptd-review-filters{padding:2px 0 12px}.tptd-review-chip{min-height:36px;font-size:.77rem;padding:8px 12px}.tptd-review-chip span{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:7px;background:#ebf1fa;color:#426487;font-size:.72rem}.tptd-review-chip.is-active span{background:#ffffff30;color:#fff}.tptd-submission-list{display:grid;gap:10px}.assignment-submissions .submission-details{padding:clamp(13px,2vw,18px);border-radius:13px;background:#fff;box-shadow:0 4px 16px #163c6808}.assignment-submissions .submission-details-head h3{font-size:.98rem;line-height:1.5}.assignment-submissions .submission-details .card-actions .btn{min-height:39px;font-size:.8rem}.assignment-submissions .submission-history summary{min-height:40px;display:flex;align-items:center}.dialog.wide:has(.tptd-review-options){width:min(690px,calc(100vw - 26px));border-radius:18px;max-height:calc(100dvh - 24px)}.dialog.wide:has(.tptd-review-options)>header{padding:17px 22px;border-bottom:1px solid #e7ecf4}.dialog:has(.tptd-review-options) .form-body{padding:19px 22px 23px;gap:17px}.tptd-review-intro{padding:14px 16px;border:1px solid #dce8f8;border-radius:13px;background:linear-gradient(120deg,#eff5ff,#fbfdff)}.tptd-review-intro .tptd-eyebrow{color:#1656a8}.tptd-review-intro p{margin-top:7px;color:#4f6887;font-size:.84rem;line-height:1.55}.tptd-review-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.tptd-review-option{position:relative;display:flex;flex-direction:column;gap:9px;min-width:0;padding:16px 12px;border:1.5px solid #d9e4f1;border-radius:13px;background:#fff;color:#2d4c70;cursor:pointer;transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s}.tptd-review-option input{position:absolute;width:100%;height:100%;inset:0;opacity:0;cursor:pointer;margin:0}.tptd-review-option:focus-within{outline:3px solid #b7861f;outline-offset:2px}.tptd-review-option:hover{border-color:#98bdec;transform:translateY(-1px)}.tptd-review-option.is-selected{border-color:#1768dc;box-shadow:0 0 0 2px #1768dc24;background:#f0f6ff}.tptd-review-option--validated.is-selected{border-color:#1d9975;background:#effbf5;box-shadow:0 0 0 2px #1d997522}.tptd-review-option--revision_required.is-selected{border-color:#b37a17;background:#fff9ea;box-shadow:0 0 0 2px #b37a1724}.tptd-review-option--rejected.is-selected{border-color:#c44659;background:#fff1f4;box-shadow:0 0 0 2px #c4465924}.tptd-review-option-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e9f1fc;color:#155bb0}.tptd-review-option--validated .tptd-review-option-icon{background:#e3f7ee;color:#16835c}.tptd-review-option--revision_required .tptd-review-option-icon{background:#fff1d8;color:#92631c}.tptd-review-option--rejected .tptd-review-option-icon{background:#ffebee;color:#b23a4c}.tptd-review-option strong{display:block;font-size:.85rem;color:#19385d}.tptd-review-option small{display:block;max-width:100%;margin-top:4px;color:#64758a;font-size:.73rem;line-height:1.4}.tptd-review-hint{display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:10px;background:#fff4f5;color:#8a2b3e;font-size:.8rem}.dialog:has(.tptd-review-options) footer{position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid #e4eaf2}@container (max-width: 950px){.tptd-metrics{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.tptd-metric{padding:11px}}@container (max-width: 560px){.tptd-command{align-items:stretch;flex-direction:column;gap:13px}.tptd-command>.btn{width:fit-content;max-width:100%}.tptd-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.assignments-space .assignment-card{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:14px}.assignments-space .assignment-symbol{width:44px;height:44px;border-radius:11px;font-size:.77rem}.assignments-space .assignment-buttons.tptd-card-actions{grid-column:1/-1;padding-top:10px}.assignments-space .tptd-card-actions .btn{flex:1 1 110px}.tptd-toolbar .search-box{flex:1 1 100%;max-width:none}.tptd-toolbar .assignments-result-count{margin-left:0}}@media (max-width:640px){.dialog.wide:has(.assignment-detail),.dialog.wide:has(.tptd-review-options){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}.dialog.wide:has(.assignment-detail)>header,.dialog.wide:has(.tptd-review-options)>header{padding:max(15px,env(safe-area-inset-top)) 16px 15px}.assignment-detail.form-body{padding:16px 14px 26px}.tptd-review-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tptd-review-option{padding:13px 9px;gap:8px}.tptd-review-option-icon{width:34px;height:34px}.tptd-review-option strong{font-size:.8rem}.tptd-review-option small{font-size:.67rem}.dialog:has(.tptd-review-options) .form-body{padding:15px}.dialog:has(.tptd-review-options) footer{padding-bottom:max(13px,env(safe-area-inset-bottom))}}@media (max-width:370px){.tptd-review-options{grid-template-columns:1fr}.tptd-review-option{flex-direction:row;align-items:center}.tptd-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.assignments-space .assignment-card,.tptd-filter-chip,.tptd-review-chip,.tptd-review-option{transition:none}.assignments-space .assignment-card:hover,.tptd-review-option:hover{transform:none}}.tptd-review-navigator{position:sticky;top:72px;z-index:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:11px;padding:12px 14px;margin:2px 0 14px;border:1px solid #bfd6f5;border-radius:14px;background:rgba(241,247,255,.97);box-shadow:0 7px 22px rgba(15,67,128,.09);backdrop-filter:blur(12px);scroll-margin-top:85px}.tptd-review-navigator-counter{display:grid;min-width:0;gap:3px}.tptd-review-navigator-counter strong{font-size:.91rem;font-weight:760;color:#123a72}.tptd-review-navigator-counter span{font-size:.73rem;color:#59718e}.tptd-review-navigator-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:8px}.tptd-navigation-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:1px solid #cadef6;border-radius:11px;background:#fff;color:#164e98;font:inherit;font-size:.84rem;font-weight:720;cursor:pointer;transition:background-color .16s,border-color .16s,box-shadow .16s}.tptd-navigation-button.is-next{background:#075bd7;border-color:#075bd7;color:#fff}.tptd-navigation-button:hover:not(:disabled){background:#e4efff;border-color:#89b4ea}.tptd-navigation-button.is-next:hover:not(:disabled){background:#084cbb;color:#fff}.tptd-navigation-button:disabled{cursor:not-allowed;opacity:.43;box-shadow:none}.tptd-navigation-button:focus-visible{outline:3px solid #bf8b21;outline-offset:2px}.tptd-submission-list>.submission-details{min-width:0;animation:tptd-fade-in .16s ease-out}@keyframes tptd-fade-in{0%{opacity:.65}to{opacity:1}}@container (max-width: 540px){.tptd-review-navigator{top:66px;padding:9px 10px;gap:7px}.tptd-review-navigator-counter strong{font-size:.82rem}.tptd-review-navigator-counter span{display:none}.tptd-navigation-button{padding:9px;min-width:44px}.tptd-navigation-button span{display:none}}@media (prefers-reduced-motion:reduce){.tptd-navigation-button{transition:none}.tptd-submission-list>.submission-details{animation:none}}.tptd-submission-attachment,.tptd-submission-text,.tptd-teacher-response{min-width:0;margin-top:14px;padding:clamp(13px,2vw,19px);border:1px solid #dce7f3;border-radius:13px;background:#f7faff}.tptd-submission-section-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:11px;color:#1753a3;font-size:.78rem;font-weight:780}.tptd-submission-text .pre-wrap,.tptd-teacher-response .pre-wrap{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;font-size:clamp(.85rem,1.5vw,.97rem);line-height:1.75;color:#223f60}.tptd-submission-attachment{background:#fff}.tptd-submission-attachment .btn{min-height:43px;max-width:100%;justify-content:flex-start;overflow-wrap:anywhere;white-space:normal;text-align:left;background:#eff5ff;color:#164e97}.tptd-teacher-response{border-color:#efdfbb;background:linear-gradient(130deg,#fffdfa,#fff8ec)}.tptd-teacher-response .tptd-submission-section-label{color:#76521a}.tptd-teacher-response small{display:block;margin-top:13px;color:#667792}@container (max-width: 540px){.tptd-submission-attachment .btn{width:100%}}.students-workspace{--students-blue:#075bd7;--students-ink:#122f56;--students-muted:#5d718c;--students-line:#dce6f1;--students-gold:#b38a2d;container-type:inline-size;min-width:0}.students-workspace--upl>.heading{margin-bottom:clamp(15px,2.5vw,24px)}.students-workspace--upl>.heading h1{letter-spacing:-.032em}.students-workspace :where(button,summary,input,select):focus-visible{outline:3px solid var(--students-gold);outline-offset:3px}.students-header-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.students-header-actions .btn{border-radius:11px;min-height:44px;padding:10px 14px}.students-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#3368a6;font-size:.72rem;font-weight:790;letter-spacing:.09em;text-transform:uppercase}.students-promotion-shell{margin-bottom:14px;padding:clamp(15px,2.3vw,21px);border:1px solid var(--students-line);border-radius:16px;background:linear-gradient(140deg,#fff 66%,#f7faff);box-shadow:0 5px 20px rgba(20,52,102,.035)}.students-promotion-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.students-promotion-header h2{color:var(--students-ink);font-size:clamp(1.02rem,2vw,1.19rem);line-height:1.3;letter-spacing:-.018em;margin-top:5px}.students-list-count,.students-promotion-count{align-self:center;display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #d4e2f4;border-radius:999px;background:#f0f6ff;color:#245894;font-size:.76rem;font-weight:720;white-space:nowrap}.students-promotion-shell .field{margin:0;max-width:100%}.students-promotion-shell select{border-radius:11px;min-height:47px;width:100%;text-overflow:ellipsis}.students-invitation{min-width:0;padding:clamp(17px,2.6vw,23px);margin-bottom:19px;border:1px solid #d5e3f3;border-radius:17px;background:linear-gradient(154deg,#fff 67%,#f8fbff);box-shadow:0 9px 27px rgba(18,59,114,.065)}.students-invitation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.students-invitation-identity{display:flex;align-items:center;gap:12px;min-width:0}.students-invitation-icon{display:grid;place-items:center;flex:0 0 auto;width:45px;height:45px;border:1px solid #d9e6f8;border-radius:13px;background:linear-gradient(135deg,#e6f1ff,#edf5ff);color:#1556ac}.students-invitation-heading h2{margin:3px 0 0;color:var(--students-ink);font-size:clamp(1.08rem,2vw,1.32rem);letter-spacing:-.022em;line-height:1.25}.students-invitation-badge{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 10px;border-radius:999px;font-size:.73rem;font-weight:750}.students-invitation-badge.is-active{color:#176344;background:#e8f8ef;border:1px solid #c5ecd7}.students-invitation-badge.is-inactive{color:#975123;background:#fff3e8;border:1px solid #f0d7c1}.students-invitation-promotion{margin:11px 0 12px;color:#506782;font-size:.84rem;line-height:1.55;overflow-wrap:anywhere}.students-invitation-promotion span{color:#a7b5c6;padding:0 2px}.students-invitation-metrics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px}.students-invitation-metrics>span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 10px;border:1px solid #e1e9f5;border-radius:10px;background:#f6f9fe;color:#47627e;font-size:.76rem}.students-invitation-metrics svg{color:#1b63bb}.students-invitation-metrics strong{color:#193f72;font-weight:810;font-size:.85rem;font-variant-numeric:tabular-nums}.students-invitation-content{padding-top:12px;border-top:1px solid #e8edf5}.students-invitation-expiry{display:flex;align-items:center;gap:8px;color:#4b688a;font-size:.8rem;margin-bottom:11px}.students-invitation-expiry svg{color:#326cb1}.students-invitation-link-row{display:flex;align-items:center;gap:10px;min-width:0;padding:5px 6px 5px 13px;border:1px solid #d4e2f3;border-radius:12px;background:#f5f8fd}.students-invitation-link-row>svg{flex:0 0 auto;color:#3173c7}.students-invitation-link-row input{min-width:0;flex:1 1 auto;width:0;padding:10px 0;border:0!important;background:transparent!important;box-shadow:none!important;color:#3b597d;font-size:.81rem;text-overflow:ellipsis;outline:none}.students-invitation-link-row input:focus-visible{outline:2px solid #b38a2d!important;outline-offset:1px}.students-invitation-link-row button{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border:1px solid #d5e3f5;border-radius:9px;background:#fff;color:#145db5;cursor:pointer}.students-invitation-link-row button:hover{background:#e8f2ff}.students-invitation-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.students-invitation-actions .btn{flex:0 1 auto;min-height:42px;max-width:100%;border-radius:10px;padding:9px 14px;font-size:.8rem;white-space:normal}.students-invitation-actions .btn.primary{background:#075bd7;border-color:#075bd7}.students-invitation-actions .btn.danger{background:#fff7f8;color:#a52a40;border:1px solid #ecc5cf}.students-invitation-loading{color:#637a96;font-size:.82rem;margin:14px 0}.students-list-panel{min-width:0;padding:clamp(14px,2.7vw,22px);border:1px solid var(--students-line);border-radius:17px;background:#fff;box-shadow:0 8px 25px rgba(20,58,110,.04);margin-bottom:clamp(20px,4vw,40px)}.students-list-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}.students-list-heading h2{margin:4px 0 0;color:var(--students-ink);font-size:clamp(1.03rem,2vw,1.24rem);letter-spacing:-.02em}.students-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:13px}.students-list-toolbar .search-box{flex:1 1 280px;max-width:640px;min-width:0;border-radius:10px}.students-list-toolbar>span{color:#728198;font-size:.75rem;font-variant-numeric:tabular-nums}.students-directory-desktop{border-radius:12px;border:1px solid #e1e8f1;overflow-x:auto;max-width:100%}.students-directory-desktop table{width:100%;border-collapse:separate;border-spacing:0;min-width:680px}.students-directory-desktop thead th{position:sticky;top:0;background:#f4f7fc;color:#63738b;font-size:.75rem;letter-spacing:.012em}.students-directory-desktop td{padding-block:13px;vertical-align:middle;font-size:.82rem}.students-directory-desktop td strong{font-size:.85rem;color:var(--students-ink)}.students-directory-desktop td code{white-space:nowrap;color:#24538c}.students-directory-desktop td .btn{font-size:.75rem;min-height:37px}.students-directory-desktop tbody tr:hover{background:#f7faff}.students-directory-mobile{display:none}.students-person{display:flex;align-items:flex-start;gap:11px;padding:13px 11px;min-width:0;border-bottom:1px solid #e7edf5}.students-person:last-child{border-bottom:0}.students-person-avatar{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#e4eeff,#f1f5ff);border:1px solid #d6e5fb;color:#205ea7;font-size:.77rem;font-weight:790}.students-person-main{flex:1 1 auto;min-width:0;display:grid;gap:5px}.students-person-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}.students-person-top>strong{min-width:0;color:var(--students-ink);font-size:.86rem;line-height:1.43;overflow-wrap:anywhere}.students-person-top .badge{flex:0 0 auto;font-size:.68rem}.students-matricule{color:#657b93;font-size:.79rem;overflow-wrap:anywhere}.students-matricule strong{color:#21528e;font-size:.8rem}.students-person-email,.students-person-promotion{color:#73849a;font-size:.73rem;line-height:1.4;overflow-wrap:anywhere}.students-person-actions{margin-top:7px;border:1px solid #dfe8f4;border-radius:10px;background:#f8fbff}.students-person-actions summary{display:flex;align-items:center;gap:7px;cursor:pointer;padding:8px 11px;min-height:39px;color:#1854a0;font-weight:720;font-size:.79rem}.students-person-actions summary::-webkit-details-marker{display:none}.students-person-actions-content{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px;border-top:1px solid #e1eaf5}.students-person-actions-content .btn{min-height:38px;font-size:.76rem}.students-pagination{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-top:13px;padding-top:11px;border-top:1px solid #e6edf7}.students-pagination>span{font-size:.79rem;color:#607591;text-align:center;font-variant-numeric:tabular-nums}.students-pagination .btn{min-height:41px;border-radius:10px;font-size:.8rem;padding-inline:11px}@container (max-width:800px){.students-directory-desktop{display:none}.students-directory-mobile{display:block;border:1px solid #e1e9f4;border-radius:12px;overflow:hidden}.students-invitation-actions .btn{flex:1 1 125px}}@container (max-width:520px){.students-header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.students-header-actions .btn{width:100%;white-space:normal;font-size:.78rem;justify-content:center}.students-list-heading,.students-promotion-header{gap:7px}.students-list-count,.students-promotion-count{font-size:.7rem}.students-invitation{padding:14px}.students-invitation-icon{width:40px;height:40px}.students-invitation-heading h2{font-size:1.04rem}.students-invitation-metrics{gap:6px}.students-invitation-metrics>span{font-size:.71rem;padding:7px 9px}.students-list-panel{padding:12px}.students-list-toolbar .search-box{flex:1 1 100%}.students-list-toolbar>span{flex:1 1 auto}.students-invitation-actions .btn{flex:1 1 calc(50% - 8px)}.students-pagination .btn{flex:1 1 95px;justify-content:center}}@container (max-width:355px){.students-invitation-heading{flex-wrap:wrap}.students-invitation-actions .btn{flex:1 1 100%}.students-pagination>span{order:-1;flex:1 0 100%}}@media (prefers-reduced-motion:reduce){.students-invitation-actions .btn,.students-invitation-link-row button,.students-person-actions{transition:none}}.courses-workspace{container-type:inline-size;min-width:0;padding-bottom:60px;--courses-ink:#142f55;--courses-soft:#5b7190;--courses-blue:#0a5dd0;--courses-line:#dce6f2}.courses-workspace>.heading{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:15px}.courses-workspace>.heading h1{letter-spacing:-.032em;line-height:1.19}.courses-workspace>.heading p{max-width:620px;margin-top:6px;line-height:1.45;font-size:.83rem}.courses-workspace>.heading .heading-actions .btn{min-height:43px;border-radius:11px;padding:9px 16px;font-weight:740;white-space:nowrap}.courses-toolbar{display:flex;align-items:center;justify-content:space-between;gap:11px 16px;flex-wrap:wrap;margin:15px 0 12px}.courses-toolbar .search-box{min-width:min(100%,260px);max-width:590px;flex:1 1 270px;border-radius:12px}.courses-overview-count{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--courses-soft)}.courses-overview-count>span{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;min-height:34px;border:1px solid #e1e9f5;border-radius:999px;background:#fff;font-size:.73rem}.courses-overview-count svg{color:#2367ad}.courses-overview-count strong{color:#1d477b;font-size:.79rem;font-variant-numeric:tabular-nums}.courses-filter-strip{display:flex;align-items:center;gap:7px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:3px 1px 12px;margin-bottom:5px;-webkit-overflow-scrolling:touch}.courses-filter-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:39px;padding:8px 12px;color:#435d7a;background:#fff;border:1px solid #dce6f2;border-radius:999px;font:inherit;font-size:.79rem;line-height:1.2;font-weight:680;white-space:nowrap;cursor:pointer;scroll-snap-align:start;transition:background-color .18s,border-color .18s,color .18s}.courses-filter-chip:hover{border-color:#9ebfe7;color:#135aad}.courses-filter-chip.is-selected{background:#0a5dd0;color:#fff;border-color:#0a5dd0}.courses-filter-chip span{display:grid;place-items:center;padding:0 5px;min-width:23px;height:23px;border-radius:999px;background:#eff4fa;color:#486786;font-size:.71rem;font-variant-numeric:tabular-nums}.courses-filter-chip.is-selected span{background:#ffffff33;color:#fff}.courses-workspace .course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,315px),1fr));align-items:stretch;gap:14px;min-width:0}.courses-workspace .course-card-modern{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #d9e4f2;border-radius:17px;background:linear-gradient(160deg,#fff 68%,#fbfdff);box-shadow:0 5px 21px rgba(19,58,101,.06);transition:border-color .18s,box-shadow .18s,transform .18s}.courses-workspace .course-card-modern:hover{border-color:#b7cde9;box-shadow:0 12px 28px rgba(19,58,101,.095);transform:translateY(-1px)}.courses-workspace .course-card-modern .course-color,.courses-workspace .course-card-modern:nth-child(3n+2) .course-color,.courses-workspace .course-card-modern:nth-child(3n+3) .course-color{display:flex;align-items:center;gap:10px;min-width:0;min-height:62px;padding:13px 17px;border:0;border-bottom:1px solid #dbe7f8;background:linear-gradient(100deg,#edf4ff 10%,#f6f9ff);color:#1754a4}.courses-workspace .course-card-modern:nth-child(3n+2) .course-color{border-bottom-color:#eadfca;background:linear-gradient(100deg,#fff7e8,#fffaf2);color:#946a21}.courses-workspace .course-card-modern .course-color>.course-code-icon{flex:0 0 38px;display:grid;place-items:center;width:38px;height:38px;border:1px solid #d8e6fb;border-radius:12px;background:#fff;color:inherit}.courses-workspace .course-code{flex:1 1 auto;min-width:0;color:inherit;font-size:.88rem;font-weight:790;overflow-wrap:anywhere}.courses-workspace .course-card-modern .course-color>.badge{flex:0 0 auto;max-width:52%;font-size:.68rem;font-weight:700}.courses-workspace .course-card-modern .course-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;padding:clamp(15px,2vw,19px)}.courses-workspace .course-promotion{display:flex;align-items:flex-start;gap:7px;min-width:0;color:#617993;font-size:.76rem;line-height:1.5}.courses-workspace .course-promotion svg{margin-top:2px;flex:0 0 auto;color:#4d82bc}.courses-workspace .course-promotion span{overflow-wrap:anywhere}.courses-workspace .course-body h2{min-height:0;margin:10px 0 11px;color:var(--courses-ink);font-size:clamp(1.04rem,1.45vw,1.21rem);line-height:1.38;font-weight:760;letter-spacing:-.014em;overflow-wrap:anywhere;text-wrap:pretty}.courses-workspace .course-attributes{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:4px}.courses-workspace .course-attributes>span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:8px;background:#f1f5fb;color:#456384;font-size:.73rem;font-weight:630;line-height:1.3}.courses-workspace .course-attributes .course-resource-ready{background:#eaf6ef;color:#237150}.courses-workspace .course-owner{display:flex;align-items:center;gap:8px;min-width:0;margin-top:auto;padding-top:15px;padding-bottom:13px;color:#415e7f;font-size:.79rem;line-height:1.35}.courses-workspace .course-owner>span:last-child{overflow-wrap:anywhere}.courses-workspace .mini-avatar{width:32px;height:32px;border:1px solid #dce7f5;border-radius:10px;background:#eaf1fb;color:#285b9a;font-weight:790;font-size:.73rem}.courses-workspace .course-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;padding-top:13px;border-top:1px solid #e5edf5}.courses-workspace .course-actions>.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;max-width:100%;min-height:43px;padding:9px 11px;border-radius:10px;text-align:center;white-space:normal;overflow-wrap:anywhere;line-height:1.3;font-size:.78rem;font-weight:690;text-decoration:none}.courses-workspace .course-actions>.btn svg{flex:0 0 auto;width:16px;height:16px}.courses-workspace .course-actions>.course-download{border-color:#0a5dd0;color:#fff;background:#0a5dd0;box-shadow:0 4px 13px rgba(8,88,195,.14)}.courses-workspace .course-actions>.course-download:hover{background:#064cb0}.courses-workspace .course-support-note{margin-top:12px;padding:9px 10px;border-radius:9px;background:#f7f9fc;color:#617893;font-size:.73rem;line-height:1.45}.courses-workspace .course-actions>:focus-visible,.courses-workspace .courses-filter-chip:focus-visible{outline:3px solid #bd9338;outline-offset:3px}@container (min-width:900px){.courses-workspace .course-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width:620px){.courses-workspace>.heading{align-items:flex-start}.courses-workspace>.heading>div:first-child{min-width:0}.courses-workspace>.heading h1{font-size:clamp(1.65rem,5vw,2rem)}.courses-workspace>.heading p{font-size:.78rem}.courses-workspace .courses-toolbar{margin:11px 0 9px}.courses-workspace .courses-toolbar .search-box{flex:1 1 100%;max-width:none;min-width:0}.courses-workspace .courses-overview-count{width:100%;gap:6px}.courses-workspace .courses-overview-count>span{padding:6px 8px;font-size:.7rem}.courses-workspace .course-grid{grid-template-columns:minmax(0,1fr);gap:12px}.courses-workspace .course-card-modern .course-color{min-height:54px;padding:10px 14px}.courses-workspace .course-card-modern .course-body{padding:14px}.courses-workspace .course-body h2{font-size:1.08rem;margin:8px 0 11px}.courses-workspace .course-owner{padding-top:12px}}@container (max-width:365px){.courses-workspace .course-actions>.btn{padding:8px 6px;font-size:.72rem}.courses-workspace .course-color>.badge{max-width:48%}}@media (prefers-reduced-motion:reduce){.courses-workspace .course-card-modern{transition:none}.courses-workspace .course-card-modern:hover{transform:none}.courses-workspace .courses-filter-chip{transition:none}}.grades-workspace{container-type:inline-size;min-width:0;padding-bottom:60px;--grades-navy:#13375e;--grades-blue:#075bd7;--grades-line:#dce6f2;--grades-muted:#60768d}.grades-workspace>.heading{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 16px;margin-bottom:17px}.grades-workspace>.heading h1{letter-spacing:-.035em;line-height:1.2}.grades-workspace>.heading p{max-width:650px;font-size:.84rem;line-height:1.5;margin-top:8px}.grades-top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.grades-top-actions>.btn{flex:1 1 auto;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:43px;max-width:100%;white-space:normal;text-align:center;border-radius:11px;font-size:.81rem;font-weight:700;line-height:1.35;padding:9px 13px}.grades-top-actions .grades-import-button{position:relative;border-color:#075bd7;background:#075bd7;color:#fff;cursor:pointer}.grades-top-actions .grades-import-button:hover{background:#064db7}.grades-import-button.is-busy{opacity:.58;cursor:wait}.grades-course-bar{display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;padding:13px 15px;margin-bottom:14px;border:1px solid var(--grades-line);border-radius:14px;background:#fff;box-shadow:0 4px 15px #1d477506}.grades-course-caption{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;color:#255c9e;font-size:.78rem}.grades-course-bar select{flex:1 1 240px;min-width:0;width:100%;min-height:46px;padding:10px 34px 10px 13px;border:1px solid #d4e0f0;border-radius:11px;background-color:#f8faff;color:#234361;font:inherit;font-size:.84rem;overflow:hidden;text-overflow:ellipsis}.grades-formula{min-width:0;padding:14px 16px;margin-bottom:14px;border:1px solid #d4e3f6;border-radius:14px;background:linear-gradient(112deg,#eff6ff 55%,#f8fbff)}.grades-formula-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#144b93;margin-bottom:10px;font-size:.82rem}.grades-formula-heading strong{font-weight:800}.grades-formula-heading span{margin-left:auto;font-size:.7rem;color:#59779f;background:#fff;border:1px solid #e0eaf8;padding:5px 9px;border-radius:999px}.grades-formula-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:#426489;font-size:.76rem;line-height:1.45}.grades-formula-line>span{padding:5px 8px;background:#fff;border-radius:7px;color:#34577e}.grades-formula-line>b{color:#7192ba;font-size:.77rem}.grades-formula-line>strong{padding:5px 9px;border-radius:7px;background:#dceaff;color:#1356a7;font-size:.77rem}.grades-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:17px}.grades-stat{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:2px 10px;min-width:0;padding:13px 12px;border:1px solid var(--grades-line);border-radius:13px;background:#fff}.grades-stat-icon{display:grid;place-items:center;width:35px;height:35px;grid-row:1/3;border-radius:10px;background:#e9f3ff;color:#1658ad}.grades-stat strong{font-size:1.15rem;color:#163b69;font-weight:810;line-height:1.3;font-variant-numeric:tabular-nums}.grades-stat>span:last-child{min-width:0;color:#637b95;font-size:.7rem;line-height:1.2}.grades-stat--published .grades-stat-icon{background:#e3f7ee;color:#16714a}.grades-stat--missing .grades-stat-icon{background:#fff1dc;color:#9b671e}.grades-claims-panel,.grades-directory{min-width:0;padding:clamp(14px,2.5vw,21px);border:1px solid #dbe5f1;border-radius:17px;background:#fff;box-shadow:0 7px 24px rgba(19,54,97,.045);margin-bottom:15px}.grades-claims-heading,.grades-directory-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.grades-eyebrow{display:inline-block;color:#3672b5;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.grades-claims-heading h2,.grades-directory-heading h2{margin:3px 0 0;color:var(--grades-navy);font-size:clamp(1rem,2vw,1.19rem);line-height:1.25}.grades-directory-result{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #dbe7f6;border-radius:999px;background:#f3f8ff;color:#3c648d;font-size:.72rem;font-variant-numeric:tabular-nums}.grades-directory-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px;margin-bottom:10px}.grades-directory-toolbar .search-box{max-width:520px;min-width:0;flex:1 1 240px;border-radius:11px}.grades-directory-toolbar>span{color:#647b94;font-size:.74rem}.grades-filter-strip{display:flex;align-items:center;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding:3px 1px 10px;margin-bottom:8px}.grades-filter-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-height:39px;padding:8px 12px;border:1px solid #dce7f4;border-radius:999px;background:#fff;color:#48647f;cursor:pointer;font:inherit;font-size:.78rem;font-weight:710;line-height:1.2;white-space:nowrap;scroll-snap-align:start}.grades-filter-chip span{display:grid;place-items:center;min-width:24px;height:24px;padding:0 4px;border-radius:9px;background:#eef4fc;color:#44658b;font-size:.7rem}.grades-filter-chip.is-active{border-color:#0a5dd0;background:#0a5dd0;color:#fff}.grades-filter-chip.is-active span{background:#ffffff30;color:#fff}.grades-mobile-list{display:none}.grades-table-desktop{max-width:100%;min-width:0;overflow-x:auto;border:1px solid #e2e9f2;border-radius:12px;scrollbar-width:thin}.grades-table-desktop table{width:100%;border-collapse:separate;border-spacing:0;min-width:860px}.grades-table-desktop th{background:#f3f7fc;color:#526c87;font-size:.74rem;font-weight:760;padding:13px 12px;white-space:nowrap}.grades-table-desktop td{padding:11px 12px;font-size:.81rem;vertical-align:middle;border-bottom:1px solid #edf1f6;color:#365575;font-variant-numeric:tabular-nums}.grades-table-desktop tbody tr:hover{background:#f8fbff}.grades-table-desktop td:first-child strong{display:block;font-size:.81rem;color:#1a3859;overflow-wrap:anywhere;font-variant-numeric:normal}.grades-table-desktop td:first-child small{display:block;color:#70849b;margin-top:5px;font-size:.72rem}.grades-table-desktop .grades-table-average{font-weight:820;font-size:.93rem;color:#0959bc}.grades-table-desktop td .badge{white-space:nowrap}.grades-table-desktop td small{display:block;margin-top:6px;font-size:.67rem;color:#76889b}.grades-table-desktop td .btn{min-height:36px;border-radius:9px;font-size:.75rem;white-space:nowrap}.grades-missing-label{display:inline-block;border:1px solid #e3eaf3;background:#f4f6f9;color:#71849a;border-radius:8px;padding:5px 8px;font-size:.72rem;font-weight:680}.grades-empty-list{margin:0;padding:22px 15px;border:1px dashed #d6e2f1;border-radius:12px;background:#f9fbfe;color:#5a7692;font-size:.83rem;line-height:1.5;text-align:center}.grades-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:13px;margin-top:13px;border-top:1px solid #e7edf5}.grades-pagination .btn{min-height:42px;border-radius:10px;font-size:.78rem}.grades-pagination span{color:#647a92;font-size:.77rem;font-variant-numeric:tabular-nums}.grades-no-claims{display:flex;align-items:center;gap:9px;margin:0;padding:10px 13px;border:1px solid #dbece4;border-radius:11px;color:#3b6b58;background:#f4fbf7;font-size:.81rem;line-height:1.5}.grades-no-claims svg{flex:0 0 auto}.grades-claims-list{display:grid;gap:8px}.grades-claim-card{display:flex;align-items:flex-start;justify-content:space-between;gap:11px;padding:12px 13px;border:1px solid #e0e7f2;border-radius:12px;background:#f9fbff}.grades-claim-card>div{min-width:0;flex:1}.grades-claim-card p{margin:0;color:#2e4b6d;font-size:.83rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.grades-claim-card small{display:block;color:#697d93;font-size:.74rem;margin-top:7px}.grades-claim-card .btn{flex:0 0 auto;min-height:38px;border-radius:9px;font-size:.78rem}.grades-workspace :where(.grades-filter-chip,.grades-pagination button,.grades-course-bar select,.grades-student-detail summary):focus-visible{outline:3px solid #bd913a;outline-offset:3px}@container (max-width:900px){.grades-table-desktop{display:none}.grades-mobile-list{display:grid;gap:9px}.grades-student-card{min-width:0;border:1px solid #dce7f3;border-radius:13px;background:linear-gradient(155deg,#fff,#fafdff);overflow:hidden}.grades-student-top{display:flex;align-items:flex-start;gap:10px;padding:14px 12px}.grades-student-avatar{flex:0 0 36px;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:#255c9d;background:#ebf3ff;border:1px solid #dce8fa;font-size:.75rem;font-weight:800}.grades-student-identity{flex:1 1 auto;min-width:0;display:grid;gap:5px}.grades-student-identity>strong{font-size:.83rem;line-height:1.4;color:#1a3b63;overflow-wrap:anywhere}.grades-student-identity>small{font-size:.72rem;color:#647d98;overflow-wrap:anywhere}.grades-student-status .badge{font-size:.66rem}.grades-student-score{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;flex:0 0 auto;color:#1260bc;font-variant-numeric:tabular-nums;padding:8px 10px;background:#f0f6ff;border:1px solid #e1eafa;border-radius:11px}.grades-student-score strong{font-size:1.05rem;font-weight:830}.grades-student-score span{font-size:.7rem;font-weight:680;color:#7891b0}.grades-student-detail{border-top:1px solid #e6edf7;background:#fff}.grades-student-detail summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;cursor:pointer;color:#1a5bac;font-size:.77rem;font-weight:760;min-height:42px}.grades-student-detail summary::-webkit-details-marker{display:none}.grades-student-detail summary::marker{content:""}.grades-student-detail[open] summary svg{transform:rotate(90deg)}.grades-score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:3px 13px 11px}.grades-score-item{display:grid;gap:5px;min-width:0;padding:10px 11px;border:1px solid #e4ebf5;border-radius:10px;background:#f8faff}.grades-score-item small{font-size:.72rem;color:#5b7591;overflow-wrap:anywhere}.grades-score-item strong{font-size:.94rem;color:#1d456e;font-variant-numeric:tabular-nums}.grades-score-item strong span{font-size:.68rem;color:#7a8ea6;font-weight:620}.grades-score-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 13px;border-top:1px solid #e5ecf5}.grades-score-footer small{font-size:.7rem;color:#6c809a}.grades-score-footer .btn{min-height:40px;border-radius:9px;font-size:.78rem}.grades-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grades-stat{padding:11px;grid-template-columns:33px 1fr}.grades-stat-icon{width:32px;height:32px}.grades-stat strong{font-size:1.04rem}}@container (max-width:520px){.grades-workspace>.heading{align-items:flex-start}.grades-workspace>.heading h1{font-size:clamp(1.65rem,5vw,2.05rem)}.grades-top-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.grades-top-actions>.btn{width:100%;font-size:.75rem;padding:9px 8px}.grades-course-bar{padding:12px;gap:8px}.grades-course-caption{width:100%}.grades-course-bar select{flex:1 1 100%;min-height:45px}.grades-formula{padding:12px}.grades-formula-heading{font-size:.78rem}.grades-formula-line{gap:5px;font-size:.71rem}.grades-formula-line>span,.grades-formula-line>strong{padding:5px 7px}.grades-claims-panel,.grades-directory{padding:12px}.grades-directory-toolbar .search-box{flex:1 1 100%;max-width:100%}.grades-directory-result{font-size:.69rem}.grades-pagination .btn{flex:0 0 auto}}@container (max-width:350px){.grades-top-actions{grid-template-columns:1fr}.grades-pagination>span{order:-1;width:100%;text-align:center}.grades-student-avatar{display:none}.grades-student-score{padding:6px 8px}}@media (prefers-reduced-motion:reduce){.grades-student-detail summary svg{transition:none}}