@font-face{font-family:"Baloo Da 2";src:url("/assets/fonts/BalooDa2.ttf?v=2") format("truetype");font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:"Hind Siliguri";src:url("/assets/fonts/HindSiliguri-Regular.ttf?v=2") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Hind Siliguri";src:url("/assets/fonts/HindSiliguri-SemiBold.ttf?v=2") format("truetype");font-style:normal;font-weight:600 700;font-display:swap}
:root{color-scheme:dark;--night:#050c10;--surface:#09161b;--surface-2:#0d2026;--surface-3:#11282f;--ink:#edf8f7;--muted:#8ba5a8;--quiet:#5e7b80;--line:rgba(134,215,216,.14);--line-strong:rgba(134,215,216,.28);--teal:#68dad6;--teal-soft:#a6ebe4;--gold:#d4aa72;--danger:#ffaaa9;--shadow:0 28px 90px rgba(0,0,0,.45);font-family:"Hind Siliguri","Noto Sans Bengali",system-ui,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{min-height:100%;background:var(--night);scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--night);color:var(--ink);overflow-x:hidden;position:relative;isolation:isolate}button,input{font:inherit}button{touch-action:manipulation}.atmosphere{position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 76% 3%,rgba(60,149,153,.11),transparent 27%),linear-gradient(180deg,#071217 0,#050c10 42%,#061014 100%)}.files-page .atmosphere:after{content:"";position:absolute;inset:0 0 auto;height:180px;background:linear-gradient(180deg,rgba(5,13,16,.72),#050c10),url("/brand/hero-wide") center 36%/cover no-repeat;opacity:.12;filter:saturate(.55);mask-image:linear-gradient(#000,transparent)}.login-page .atmosphere{background:linear-gradient(90deg,rgba(2,9,12,.98) 0%,rgba(3,12,15,.77) 52%,rgba(3,10,13,.93) 100%),url("/brand/hero-wide") center 32%/cover no-repeat;filter:saturate(.72)}.login-page .atmosphere:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 28%,rgba(87,205,202,.18),transparent 29%),linear-gradient(180deg,transparent 50%,#050c10 100%)}
.site-header{height:78px;display:flex;align-items:center;width:min(1180px,calc(100% - 40px));margin:auto;position:relative;z-index:2}.login-page .site-header{height:92px}.brand{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:11px;align-items:center;color:var(--ink);text-decoration:none}.brand img{display:none;grid-row:1/3;width:48px;height:48px;object-fit:contain}.brand.has-image img{display:block}.brand-name{font:750 24px/1 "Baloo Da 2","Hind Siliguri",sans-serif;letter-spacing:.01em}.brand-kicker{font:700 9px/1.2 "Segoe UI",sans-serif;color:var(--teal);letter-spacing:.22em;text-transform:uppercase;margin-top:4px}.page-shell{width:min(1180px,calc(100% - 40px));min-height:calc(100vh - 138px);margin:0 auto}footer{padding:27px;text-align:center;color:#527076;font:650 10px/1 "Segoe UI",sans-serif;letter-spacing:.15em;text-transform:uppercase}footer span{color:var(--teal);padding:0 7px}.glass-card{border:1px solid var(--line);background:linear-gradient(145deg,rgba(11,27,32,.95),rgba(6,17,21,.87));box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.eyebrow{margin:0 0 17px;color:var(--teal);font:750 10px/1.2 "Segoe UI",sans-serif;letter-spacing:.23em;text-transform:uppercase}.primary-button{min-height:54px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--teal-soft),#4bc8cb);color:#041417;padding:0 20px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:28px;cursor:pointer;box-shadow:0 14px 36px rgba(64,194,199,.15);text-decoration:none;transition:transform .18s,filter .18s}.primary-button:hover{transform:translateY(-2px);filter:brightness(1.05)}.primary-button b{font:500 22px/1 "Segoe UI"}.primary-button.inline{display:inline-flex;margin-top:12px}
.login-page .page-shell{display:flex;align-items:center;justify-content:flex-start;padding:3vh 0 8vh}.login-card{width:min(510px,100%);padding:clamp(34px,5vw,56px);border-radius:27px;animation:rise .6s ease}.login-card h1{font:650 clamp(40px,5vw,62px)/1.06 "Baloo Da 2","Hind Siliguri",sans-serif;letter-spacing:-.025em;margin:0 0 18px}.login-card h1 em{font-style:normal;color:var(--teal-soft)}.lead{max-width:400px;margin:0 0 28px;color:var(--muted);font-size:16px;line-height:1.6}.login-form label{display:block;margin:0 0 8px;color:#c9d9da;font-size:13px;font-weight:700}.input-wrap{height:58px;border:1px solid rgba(143,217,217,.24);border-radius:14px;background:rgba(2,11,14,.68);display:flex;align-items:center;padding:0 16px;margin-bottom:13px;transition:border-color .18s,box-shadow .18s}.input-wrap:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px rgba(96,216,213,.08)}.input-wrap span{color:var(--teal);margin-right:12px}.input-wrap input{border:0;outline:0;background:none;color:var(--ink);width:100%;font-size:16px}.input-wrap input::placeholder{color:#58767b}.input-helper{display:block;margin:-5px 3px 14px;color:#829da1;font-size:12px}.login-form .primary-button{width:100%}.microcopy{font-size:11px;color:#6f8c91;margin:19px 0 0}.microcopy span{font-size:7px;color:var(--teal);vertical-align:2px;margin-right:6px}.alert{border-radius:12px;padding:12px 14px;margin:0 0 19px;font-size:13px}.alert.error{background:rgba(142,54,61,.2);border:1px solid rgba(255,156,156,.2);color:#ffc1c1}.alert.info{border:1px solid rgba(94,176,211,.4);background:rgba(38,116,150,.14);color:#bfe7f6}.alert small{display:block;margin-top:3px;color:#dda7a7}
.verification-card{max-width:650px}.verification-form fieldset{border:0;padding:0;margin:0 0 20px;display:grid;gap:10px}.verification-form legend{font-weight:700;margin-bottom:10px}.verification-option{display:flex!important;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid rgba(96,216,213,.2);border-radius:13px;background:rgba(3,14,18,.52);cursor:pointer;margin:0!important;min-height:54px}.verification-option:has(input:checked){border-color:rgba(96,216,213,.72);background:rgba(96,216,213,.09)}.verification-option input{margin-top:5px;accent-color:var(--teal)}.verification-option span{display:grid;gap:3px}.verification-option small{color:var(--muted);line-height:1.45}.verification-back{display:inline-block;margin-top:18px;color:#d8e4e2;text-decoration:none}
.message-page .page-shell{display:grid;place-items:center;padding:8vh 0}.message-card{max-width:590px;text-align:center;padding:54px;border-radius:27px}.message-icon{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;margin:0 auto 27px;background:rgba(96,216,213,.1);border:1px solid rgba(96,216,213,.25);color:var(--teal);font:700 24px/1 "Segoe UI"}.message-icon.pulse{animation:pulse 2s infinite}.message-card h1{font:700 clamp(30px,5vw,47px)/1.1 "Baloo Da 2","Hind Siliguri",sans-serif;margin:0 0 14px}.message-card p{color:var(--muted);font-size:16px;line-height:1.6}
.portal-head{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0 16px}.portal-head>div{min-width:0;flex:1}.portal-head h1{font:680 clamp(27px,3vw,38px)/1.15 "Baloo Da 2","Hind Siliguri",sans-serif;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-head p{color:var(--muted);font-size:13px;margin:5px 0 0}.logout-button{min-height:46px;border:1px solid rgba(255,255,255,.11);background:rgba(7,18,22,.73);color:#d9e7e7;border-radius:12px;padding:10px 15px;display:flex;gap:13px;align-items:center;cursor:pointer;transition:.18s}.logout-button:hover{border-color:rgba(255,156,156,.42);color:#ffb9b8}.logout-button b{font:400 16px/1 "Segoe UI"}.announcement{display:flex;align-items:center;gap:12px;border:1px solid rgba(189,150,103,.23);background:rgba(83,60,38,.2);padding:12px 15px;border-radius:13px;margin-bottom:11px;color:#e6d4bf}.announcement span{color:#d4a56d}.announcement p{margin:0}
.compact-disclosure{border:1px solid var(--line);border-radius:13px;background:rgba(8,23,27,.7);margin:0 0 10px;overflow:hidden}.compact-disclosure summary{list-style:none;min-height:48px;display:grid;grid-template-columns:25px auto 1fr;align-items:center;gap:9px;padding:9px 13px;cursor:pointer;color:#d9e8e8}.compact-disclosure summary::-webkit-details-marker{display:none}.compact-disclosure summary>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(96,216,213,.09);color:var(--teal);font:750 11px/1 "Segoe UI"}.compact-disclosure summary>strong{font-size:13px}.compact-disclosure summary>small{justify-self:end;color:#66868a;font-size:10px}.compact-disclosure[open] summary{border-bottom:1px solid var(--line)}.session-note>div{display:flex;align-items:center;gap:14px;padding:12px 14px}.session-note p{flex:1;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.shutdown-chip{border-radius:20px;background:rgba(96,216,213,.07);padding:7px 10px;color:#9bc8ca;font-size:11px;white-space:nowrap}.download-help ol{margin:0;padding:13px 20px 14px 45px;color:#a8bec1;line-height:1.75;font-size:13px}
.files-card{margin:18px 0 25px;min-height:390px}.folder-navigation{min-height:55px;display:flex;align-items:center;gap:13px;padding:0 0 11px;border-bottom:1px solid var(--line);margin-bottom:10px}.folder-back{min-height:43px;border:1px solid var(--line-strong);background:rgba(96,216,213,.07);color:#c1e2e1;border-radius:11px;padding:8px 13px;cursor:pointer;font-weight:700;white-space:nowrap}.folder-back:hover{background:rgba(96,216,213,.13)}.breadcrumb{display:flex;align-items:center;gap:7px;min-width:0;overflow:auto;scrollbar-width:none}.breadcrumb::-webkit-scrollbar{display:none}.breadcrumb button{min-height:40px;border:0;background:transparent;color:#76979b;padding:7px 2px;cursor:pointer;white-space:nowrap}.breadcrumb button[aria-current="page"]{color:#d9e8e8;font-weight:700;pointer-events:none}.breadcrumb>span{color:#3f686d}.breadcrumb-current{color:#d5e7e7;font-weight:700}.folder-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 0}.folder-card{min-height:86px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(14,35,41,.88),rgba(8,23,28,.82));border-radius:16px;padding:15px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;color:var(--ink);text-align:left;cursor:pointer;transition:transform .17s,border-color .17s,background .17s}.folder-card:hover,.folder-card:focus-visible{transform:translateY(-2px);border-color:rgba(96,216,213,.32);background:linear-gradient(145deg,rgba(18,46,53,.92),rgba(9,27,32,.9));outline:0}.folder-card:disabled{opacity:.5;cursor:not-allowed;transform:none}.folder-icon{width:46px;height:46px;border-radius:13px;background:rgba(224,175,107,.09);display:grid;place-items:center}.folder-icon svg{width:29px;height:29px;fill:rgba(230,184,116,.94)}.folder-copy{min-width:0}.folder-copy strong,.folder-copy small{display:block}.folder-copy strong{font-size:16px;line-height:1.35;overflow-wrap:anywhere}.folder-copy small{color:#759499;font-size:11px;margin-top:3px}.folder-card>b{color:var(--teal);font-size:12px;white-space:nowrap}.mother-home{padding-top:5px}.mother-folder-card{min-height:100px}
.file-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 18px;padding:14px 15px;border:1px solid rgba(134,215,216,.12);border-radius:15px;background:linear-gradient(90deg,rgba(12,29,34,.92),rgba(7,20,24,.84));transition:border-color .17s,background .17s}.file-card:hover{border-color:rgba(96,216,213,.25);background:linear-gradient(90deg,rgba(15,37,43,.94),rgba(8,23,27,.9))}.file-card-main{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px;align-items:center;min-width:0}.file-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:rgba(96,216,213,.07);color:#8fd3d2}.file-icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.file-icon-video{color:#72dbd5}.file-icon-video svg path:last-child{fill:currentColor;stroke:none}.file-icon-pdf{color:#ffaaa8;background:rgba(215,84,86,.09)}.file-icon-archive{color:#e6bb7e;background:rgba(218,165,89,.09)}.file-icon-archive svg path:nth-child(n+2){fill:currentColor;stroke:none}.file-icon-audio{color:#b99bea;background:rgba(146,105,210,.09)}.file-copy{min-width:0}.file-copy h3{font-size:15px;line-height:1.4;margin:0 0 5px;font-weight:650;overflow-wrap:anywhere}.file-copy p{font-size:12px;color:#718f93;margin:0}.file-copy p strong{color:#bfd4d5}.file-copy p span{color:#365e64;margin:0 5px}.download-button{min-height:48px;min-width:165px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--teal-soft),#4bc8cb);color:#041619;padding:0 17px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 9px 24px rgba(64,194,199,.11);transition:transform .17s,filter .17s}.download-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.download-button span{font:700 19px/1 "Segoe UI"}.large-file-warning{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:rgba(214,160,82,.08);border:1px solid rgba(224,175,107,.17);color:#d9bc91;font-size:12px}.large-file-warning span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgba(224,175,107,.13);font-weight:800}.download-progress{grid-column:1/-1}.progress-track,.dock-meter{height:5px;background:#12272c;border-radius:6px;overflow:hidden}.progress-track i,.dock-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#42bec2,var(--teal-soft));border-radius:6px;box-shadow:0 0 12px rgba(96,216,213,.38);transition:width .2s}.progress-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#729398;font-size:10px;margin-top:6px}.progress-status.resumed{color:#d2ad7d}.empty-state{grid-column:1/-1;text-align:center;padding:65px 20px;color:#6d8b90}.empty-state span{font-size:31px;color:#3b7076}.empty-state h3{color:#b6cdcf;margin:8px 0 4px}.empty-state p{margin:0;color:#6d8b90;font-size:13px}
.download-dock{position:fixed;right:20px;bottom:20px;z-index:8;width:min(370px,calc(100% - 28px));max-height:min(54vh,430px);overflow:auto;background:rgba(7,22,27,.97);border:1px solid var(--line-strong);box-shadow:0 18px 60px #000b;border-radius:16px;padding:12px}.download-dock>header{display:flex;gap:10px;align-items:center;padding:2px 3px 10px}.download-dock>header>div{flex:1}.download-dock strong,.download-dock small{display:block}.download-dock>header strong{font-size:13px}.download-dock>header small{color:#708f93;font-size:9px}.download-dock>header>b{font:750 19px/1 "Segoe UI";color:var(--teal)}.dock-pulse{width:9px;height:9px;background:var(--teal);border-radius:50%;box-shadow:0 0 0 5px rgba(96,216,213,.08);animation:pulse 1.7s infinite}.dock-items{display:grid;gap:7px}.dock-item{padding:10px;border:1px solid rgba(134,215,216,.1);border-radius:11px;background:#091a1f}.dock-item>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.dock-item strong{max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.dock-status{color:#8eb3b6;font-size:10px}.dock-meta{color:#6d8b90;font-size:9px;margin-top:6px}
[hidden]{display:none!important}@keyframes rise{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.45;transform:scale(.92)}}
@media(max-width:768px){.site-header,.page-shell{width:calc(100% - 28px)}.site-header{height:68px}.login-page .site-header{height:76px}.brand-name{font-size:22px}.login-page .atmosphere{background-image:linear-gradient(180deg,rgba(3,10,13,.79),rgba(3,11,14,.97)),url("/brand/hero-portrait");background-position:center top}.login-page .page-shell{align-items:flex-end;padding:9vh 0 3vh}.login-card{padding:30px 22px;border-radius:22px}.login-card h1{font-size:40px}.portal-head{min-height:90px;padding:12px 0}.portal-head h1{font-size:28px}.logout-button span{display:none}.logout-button{width:46px;padding:0;justify-content:center}.session-note>div{align-items:flex-start;flex-wrap:wrap}.session-note p{min-width:100%}.folder-view{grid-template-columns:1fr}.file-card{grid-template-columns:minmax(0,1fr) auto}.download-dock{left:14px;right:14px;bottom:14px;width:auto}.message-card{padding:38px 22px}}
@media(max-width:520px){.site-header,.page-shell{width:calc(100% - 22px)}.site-header{height:64px}.brand img{width:43px;height:43px}.brand-name{font-size:21px}.brand-kicker{font-size:8px}.login-page .page-shell{padding-top:6vh}.login-card{padding:27px 19px}.login-card h1{font-size:37px}.lead{font-size:15px}.portal-head{gap:10px}.portal-head h1{font-size:25px}.portal-head p{font-size:12px}.compact-disclosure summary{grid-template-columns:24px minmax(0,1fr) auto;padding:9px 10px}.compact-disclosure summary>small{font-size:9px}.folder-navigation{align-items:flex-start;flex-direction:column;gap:4px}.folder-back{min-height:41px;padding:7px 11px}.breadcrumb{width:100%}.folder-card{min-height:80px;grid-template-columns:43px minmax(0,1fr) auto;padding:13px;gap:10px}.folder-icon{width:42px;height:42px}.folder-icon svg{width:27px;height:27px}.folder-card>b{font-size:0}.folder-card>b:after{content:"→";font-size:18px}.file-card{grid-template-columns:1fr;padding:13px;gap:11px}.file-card-main{grid-template-columns:48px minmax(0,1fr)}.file-icon{width:47px;height:47px}.file-icon svg{width:29px;height:29px}.download-button{width:100%;min-width:0;min-height:51px;font-size:16px}.download-help ol{padding-left:37px}.progress-meta{font-size:9px}.message-card{padding:34px 18px}.download-dock{max-height:46vh}}
@media(max-width:370px){.site-header,.page-shell{width:calc(100% - 18px)}.login-card h1{font-size:34px}.portal-head h1{font-size:23px}.folder-card{grid-template-columns:40px minmax(0,1fr) auto;padding:12px 10px}.folder-icon{width:39px;height:39px}.folder-copy strong{font-size:15px}.file-card-main{grid-template-columns:43px minmax(0,1fr);gap:10px}.file-icon{width:43px;height:43px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Update 3: responsive login artwork + lightweight CSS-only floating ambience. */
.student-login-art{position:fixed;inset:0;z-index:-4;display:block;overflow:hidden;background:#071317;contain:strict}
.student-login-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 34%}
.atmosphere{z-index:-3;background:radial-gradient(circle at 76% 3%,rgba(60,149,153,.11),transparent 27%),linear-gradient(180deg,#071217 0,#050c10 42%,#061014 100%)}
.login-page .atmosphere{background:linear-gradient(90deg,rgba(2,9,12,.98) 0%,rgba(3,12,15,.82) 48%,rgba(3,10,13,.88) 100%),radial-gradient(circle at 72% 28%,rgba(87,205,202,.13),transparent 30%);filter:none}
.files-page .atmosphere:after{content:none!important;background:none!important}
.ambient-layer{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict}
.ambient-object{position:absolute;left:var(--ambient-x);top:var(--ambient-y);width:var(--ambient-size);height:var(--ambient-size);opacity:var(--ambient-o0);color:#83dcda;will-change:transform,opacity;transform:translate3d(var(--ambient-x0),var(--ambient-y0),0) rotate(calc(var(--ambient-angle) + var(--ambient-r0)));animation:ambient-drift var(--ambient-duration) cubic-bezier(.42,0,.32,1) var(--ambient-delay) infinite var(--ambient-direction)}
.ambient-object svg{display:block;width:100%;height:100%;overflow:visible;filter:none}
.ambient-object svg path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ambient-folder{color:#e1b779}.ambient-folder svg path{fill:currentColor;stroke:none}
.ambient-zip{color:#d6b17b}
@keyframes ambient-drift{0%{transform:translate3d(var(--ambient-x0),var(--ambient-y0),0) rotate(calc(var(--ambient-angle) + var(--ambient-r0)));opacity:var(--ambient-o0)}34%{transform:translate3d(var(--ambient-x1),var(--ambient-y1),0) rotate(calc(var(--ambient-angle) + var(--ambient-r1)));opacity:var(--ambient-o1)}69%{transform:translate3d(var(--ambient-x2),var(--ambient-y2),0) rotate(calc(var(--ambient-angle) + var(--ambient-r2)));opacity:var(--ambient-o2)}100%{transform:translate3d(var(--ambient-x3),var(--ambient-y3),0) rotate(calc(var(--ambient-angle) + var(--ambient-r3)));opacity:var(--ambient-o3)}}
@media(max-width:768px){.student-login-art img{object-position:center 18%}.login-page .atmosphere{background:linear-gradient(180deg,rgba(3,10,13,.6) 0%,rgba(3,11,14,.8) 45%,rgba(3,11,14,.98) 100%),radial-gradient(circle at 50% 18%,rgba(87,205,202,.08),transparent 34%)}.ambient-object{width:min(var(--ambient-size),48px);height:min(var(--ambient-size),48px)}.ambient-object:nth-child(n+7){display:none}}
@media(prefers-reduced-motion:reduce){.ambient-object{animation:none!important;transform:translate3d(var(--ambient-x0),var(--ambient-y0),0) rotate(calc(var(--ambient-angle) + var(--ambient-r0)));opacity:var(--ambient-o0)}.student-login-art img{transform:none!important}}

/* Update 4: the numeric reminder follows the currently selected verification option. */
.verification-number-hint{display:none}.verification-form:has(input[data-number-option="true"]:checked) .verification-number-hint{display:block}

/* Update 6: native download-manager progress is display-only. */
.download-button{text-decoration:none}.download-dock{width:min(390px,calc(100% - 28px))}.download-dock>header small{line-height:1.45}.dock-item.complete{border-color:rgba(91,209,155,.3)}.dock-item.interrupted{border-color:rgba(224,175,107,.28)}.student-toast{position:fixed;left:50%;bottom:24px;z-index:12;max-width:min(480px,calc(100% - 28px));padding:11px 15px;border:1px solid var(--line-strong);border-radius:12px;background:#0b2228;color:#c9e3e3;box-shadow:0 16px 45px #000b;opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .18s,transform .18s,bottom .18s}.student-toast.above-download-dock{bottom:calc(var(--download-dock-height,0px) + 28px)}.student-toast.show{opacity:1;transform:translate(-50%,0)}

/* Update 6: remembered grid/list views and safe lazy folder artwork. */
.file-view-toggle{display:flex;gap:3px;margin-left:auto;padding:3px;border:1px solid var(--line);border-radius:10px;background:rgba(3,13,16,.55);white-space:nowrap}.file-view-toggle button{min-height:34px;border:0;border-radius:7px;padding:5px 9px;background:transparent;color:#78979b;cursor:pointer;font-size:11px}.file-view-toggle button[aria-pressed="true"]{background:rgba(96,216,213,.13);color:#d6eded}.folder-thumbnail{position:relative;width:46px;height:46px;border-radius:13px;overflow:hidden;background:#10272d;display:block}.folder-thumbnail>img{width:100%;height:100%;display:block;object-fit:cover}.folder-thumbnail>i{position:absolute;right:3px;bottom:3px;width:19px;height:19px;border-radius:6px;display:grid;place-items:center;background:rgba(6,18,22,.9);border:1px solid rgba(230,184,116,.38)}.folder-thumbnail>i svg{width:13px;height:13px;fill:#e6b874}.folder-icon-custom{background:rgba(96,216,213,.09)}.folder-icon-custom svg{fill:none;stroke:#81dcd8;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.files-card[data-view="list"] .folder-view{grid-template-columns:1fr;gap:6px}.files-card[data-view="list"] .folder-card{min-height:62px;border-radius:11px;padding:8px 11px;grid-template-columns:40px minmax(0,1fr) auto}.files-card[data-view="list"] .folder-icon,.files-card[data-view="list"] .folder-thumbnail{width:38px;height:38px;border-radius:10px}.files-card[data-view="list"] .folder-icon svg{width:24px;height:24px}.files-card[data-view="list"] .folder-thumbnail>i{width:17px;height:17px}.files-card[data-view="list"] .file-card{padding:8px 11px;border-radius:10px;gap:8px 12px}.files-card[data-view="list"] .file-card-main{grid-template-columns:40px minmax(0,1fr);gap:10px}.files-card[data-view="list"] .file-icon{width:38px;height:38px;border-radius:10px}.files-card[data-view="list"] .file-icon svg{width:24px;height:24px}.files-card[data-view="list"] .file-copy h3{margin-bottom:2px}.files-card[data-view="list"] .download-button{min-height:39px;min-width:132px;font-size:13px}
@media(max-width:520px){.file-view-toggle{align-self:flex-end;margin-top:-41px}.folder-navigation{padding-bottom:9px}.files-card[data-view="list"] .download-button{min-height:44px;width:100%}}
