@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #0e1116;--bg-deep: #090c10;--surface: #171d26;--surface-hi: #1e2531;--surface-soft: #141922;--line: #262e3a;--line-soft: #1f2733;--glass-tint: rgba(23, 29, 38, .55);--glass-tint-strong: rgba(23, 29, 38, .92);--glass-border: rgba(255, 255, 255, .14);--glass-highlight: rgba(255, 255, 255, .3);--glass-edge-lo: rgba(0, 0, 0, .3);--glass-shadow: 0 24px 64px rgba(0, 0, 0, .45);--glass-blur: 22px;--glass-distort: blur(6px) url(#liquid-glass-distortion) saturate(180%) brightness(1.04);--glass-distort-soft: blur(9px) url(#liquid-glass-distortion) saturate(150%) brightness(1.02);--text: #e9eef5;--text-dim: #a3b1c1;--text-faint: #8494a6;--on-accent: #ffffff;--teal: #01a1af;--teal-hi: #3fd2e0;--teal-deep: #00828e;--bordo: #8e2b41;--bordo-hi: #d4607a;--bordo-deep: #611d2c;--gradient: linear-gradient(115deg, #00828e 0%, #01a1af 100%);--gradient-soft: linear-gradient(115deg, rgba(1, 161, 175, .2), rgba(0, 130, 142, .12));--gradient-line: linear-gradient(90deg, #00828e, #01a1af);--gradient-ink: linear-gradient(180deg, #01a1af 0, #00828e 4px);--campus-ink: linear-gradient(115deg, var(--campus-tcc-ink) 0%, var(--bordo) 100%);--campus-accent: var(--teal-hi);--campus-soft: var(--gradient-soft);--campus-stripe: linear-gradient(90deg, var(--campus-tcc-stripe), var(--bordo-hi));--campus-icon: linear-gradient(120deg, var(--campus-tcc-accent) 10%, var(--bordo-hi) 90%);--campus-ink-from: var(--campus-tcc-accent);--campus-ink-to: var(--bordo-hi);--campus-tcc-ink: #00828e;--campus-tcc-accent: #3fd2e0;--campus-tcc-soft: rgba(1, 161, 175, .16);--campus-tcc-stripe: #01a1af;--danger: #e0576f;--danger-bg: rgba(224, 87, 111, .12);--danger-line: rgba(224, 87, 111, .4);--danger-ink: #ffc7d0;--danger-strong: #f0655a;--danger-strong-deep: #9c231b;--success: #35c9a4;--success-bg: rgba(53, 201, 164, .12);--success-line: rgba(53, 201, 164, .4);--success-ink: #b6f0e0;--warn: #e0a458;--warn-bg: rgba(224, 164, 88, .12);--warn-line: rgba(224, 164, 88, .4);--warn-ink: #f4dcb7;--info-hi: #a78bfa;--info-line: rgba(167, 139, 250, .4);--accent-line: rgba(1, 161, 175, .38);--bordo-line: rgba(212, 96, 122, .4);--ring: rgba(1, 161, 175, .24);--select-bg: rgba(1, 161, 175, .32);--overlay: rgba(6, 9, 13, .72);--header-bg: linear-gradient(180deg, rgba(14, 17, 22, .96), rgba(14, 17, 22, .88));--logo-ink: #ffffff;--bg-illustration: url(/bg/dark.png);--chart-ink: #a3b1c1;--chart-grid: rgba(38, 46, 58, .6);--chart-tooltip-bg: #171d26;--chart-tooltip-line: #262e3a;--chart-a: #01a1af;--chart-a-fill: rgba(1, 161, 175, .18);--chart-b: #d4607a;--chart-b-fill: rgba(212, 96, 122, .12);--chart-slices: #01a1af, #3fd2e0, #00828e, #8a97a8, #d4607a, #8e2b41, #5f6e80;--ink-shadow: 0 1px 2px rgba(0, 40, 44, .5);--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 12px 32px rgba(0, 0, 0, .38);--shadow-glow: 0 18px 48px rgba(1, 161, 175, .14);--tap: 44px;--header-h: 64px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .36s}[data-campus=ac]{--campus-ink: var(--bordo);--campus-icon: var(--bordo-hi);--campus-ink-from: var(--bordo-hi);--campus-ink-to: var(--bordo-hi);--campus-accent: var(--bordo-hi);--campus-soft: rgba(142, 43, 65, .16);--campus-stripe: var(--bordo-hi)}[data-campus=tcc]{--campus-ink: var(--campus-tcc-ink);--campus-icon: var(--campus-tcc-accent);--campus-ink-from: var(--campus-tcc-accent);--campus-ink-to: var(--campus-tcc-accent);--campus-accent: var(--campus-tcc-accent);--campus-soft: var(--campus-tcc-soft);--campus-stripe: var(--campus-tcc-stripe)}:root[data-theme=light]{color-scheme:light;--bg: #eff2f6;--bg-deep: #e6ebf1;--surface: #ffffff;--surface-hi: #e9eef4;--surface-soft: #f5f7fa;--line: #ccd6e1;--line-soft: #e0e7ee;--glass-tint: rgba(255, 255, 255, .55);--glass-tint-strong: rgba(255, 255, 255, .92);--glass-border: rgba(255, 255, 255, .65);--glass-highlight: rgba(255, 255, 255, .85);--glass-edge-lo: rgba(15, 23, 42, .1);--glass-shadow: 0 24px 64px rgba(15, 23, 42, .16);--text: #101820;--text-dim: #4c5a68;--text-faint: #58677a;--teal: #00929f;--teal-hi: #00727d;--teal-deep: #00828e;--bordo: #8e2b41;--bordo-hi: #a32c47;--bordo-deep: #611d2c;--gradient-soft: linear-gradient(115deg, rgba(1, 161, 175, .16), rgba(0, 130, 142, .1));--campus-tcc-accent: #00727d;--campus-tcc-stripe: #00929f;--danger: #c62a44;--danger-bg: rgba(198, 42, 68, .1);--danger-line: rgba(198, 42, 68, .35);--danger-ink: #8f1024;--danger-strong: #c8362a;--success: #0d7d61;--success-bg: rgba(13, 125, 97, .12);--success-line: rgba(13, 125, 97, .35);--success-ink: #0a5c47;--warn: #96610f;--warn-bg: rgba(150, 97, 15, .14);--warn-line: rgba(150, 97, 15, .35);--warn-ink: #7a4d08;--info-hi: #6d28d9;--info-line: rgba(109, 40, 217, .35);--accent-line: rgba(0, 130, 142, .3);--bordo-line: rgba(163, 44, 71, .35);--ring: rgba(0, 130, 142, .18);--select-bg: rgba(1, 161, 175, .22);--overlay: rgba(17, 26, 34, .48);--header-bg: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .88));--logo-ink: #00828e;--bg-illustration: url(/bg/light.png);--chart-ink: #4c5a68;--chart-grid: rgba(76, 90, 104, .18);--chart-tooltip-bg: #101820;--chart-tooltip-line: #3a4553;--chart-a: #00828e;--chart-a-fill: rgba(0, 130, 142, .14);--chart-b: #a32c47;--chart-b-fill: rgba(163, 44, 71, .1);--chart-slices: #00828e, #35a9b5, #005f68, #7d8b9c, #a32c47, #6f2135, #4c5a68;--shadow-sm: 0 1px 2px rgba(16, 24, 32, .1);--shadow-md: 0 12px 32px rgba(16, 24, 32, .16);--shadow-glow: 0 10px 24px rgba(0, 130, 142, .2)}@media (prefers-color-scheme: light){:root:not([data-theme]){color-scheme:light;background:#eff2f6}:root:not([data-theme]) body{background:#eff2f6;color:#101820}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}#root{position:relative;z-index:0}html{background:var(--bg);scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:var(--bg-illustration);background-repeat:no-repeat;background-position:center 38%;background-size:cover;opacity:.9;transform:scale(1.04) translate3d(var(--bg-shift-x, 0px),var(--bg-shift-y, 0px),0);transition:opacity .9s ease,transform .9s ease;will-change:transform,opacity;animation:bg-reveal 2.2s var(--ease-out) both}@keyframes bg-reveal{0%{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(150% at 50% 50%)}}.bg-layer--hidden{opacity:0}.bg-aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none;opacity:0;transition:opacity 1.2s var(--ease-in-out)}.bg-aurora--visible{opacity:1}.bg-aurora__blob{position:absolute;width:52vmax;height:52vmax;border-radius:50%;filter:blur(90px);will-change:transform}.bg-aurora__blob--a{top:-20vmax;left:-14vmax;background:radial-gradient(circle,var(--teal-deep),transparent 70%);opacity:.28;animation:bg-aurora-a 34s var(--ease-in-out) infinite}.bg-aurora__blob--b{bottom:-22vmax;right:-16vmax;background:radial-gradient(circle,var(--teal-hi),transparent 70%);opacity:.22;animation:bg-aurora-b 40s var(--ease-in-out) infinite}@keyframes bg-aurora-a{0%,to{transform:translate(0) scale(1)}50%{transform:translate(6vmax,5vmax) scale(1.1)}}@keyframes bg-aurora-b{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-5vmax,-4vmax) scale(1.08)}}:root{scrollbar-width:thin;scrollbar-color:var(--line) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--line);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--teal-deep)}*::-webkit-scrollbar-corner{background:transparent}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=password]::-ms-reveal,input[type=password]::-ms-clear{display:none}h1,h2,h3,h4,p,figure{margin:0}a{color:var(--teal-hi);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--select-bg)}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;z-index:80;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);padding:5px 9px;border-radius:var(--r-sm);background:var(--surface-hi);border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap;box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}[data-tip=""]:after{content:none}.tip-end[data-tip]:after{left:auto;right:0;transform:translateY(4px)}.tip-end[data-tip]:hover:after,.tip-end[data-tip]:focus-visible:after{transform:translateY(0)}.h1{font-size:24px;font-weight:700;letter-spacing:-.015em}.h2{font-size:18px;font-weight:600;letter-spacing:-.01em}.muted{color:var(--text-dim)}.faint{color:var(--text-faint);font-size:13px}.logo-mark{display:block;width:fit-content;flex:none}.logo-mark__img{display:block;height:var(--logo-h);width:auto}:root[data-theme=light] .logo-mark__img{filter:brightness(.16)}@supports ((-webkit-mask-image: url(logo.svg)) or (mask-image: url(logo.svg))){.logo-mark{background-color:var(--logo-ink);-webkit-mask-image:var(--logo-src);mask-image:var(--logo-src);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.logo-mark__img{visibility:hidden}}@media print{.logo-mark{background:none;-webkit-mask-image:none;mask-image:none}:root[data-theme] .logo-mark__img{visibility:visible;filter:brightness(0)}}.theme-toggle{display:inline-grid;place-items:center;flex:none;width:var(--tap);height:var(--tap);padding:0;border:1px solid var(--line);border-radius:var(--r-md);background:transparent;color:var(--text-dim);cursor:pointer;transition:color .15s,background .15s,border-color .15s}.theme-toggle:hover{color:var(--text);background:var(--surface-hi);border-color:var(--teal-deep)}.theme-toggle svg{display:block;animation:theme-icon-in var(--dur-base) var(--ease-out) both}@keyframes theme-icon-in{0%{opacity:0;transform:rotate(-45deg) scale(.6)}to{opacity:1;transform:rotate(0) scale(1)}}.dd{position:relative;flex:none}.dd__button{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-soft);color:var(--text-dim);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.dd__button:hover{color:var(--text);background:var(--surface-hi);border-color:var(--teal-deep)}.dd__button:focus-visible,.dd__menu:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px}.dd.is-open .dd__button{color:var(--text);border-color:var(--teal-hi)}.dd__caret{width:7px;height:7px;margin-top:-3px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);transition:transform .15s ease}.dd.is-open .dd__caret{margin-top:2px;transform:rotate(-135deg)}.dd__menu{z-index:60;min-width:100%;margin:0;padding:4px;max-height:300px;overflow-y:auto;overflow-x:hidden;list-style:none;border:1px solid var(--glass-border);border-radius:var(--r-md);background:var(--glass-tint-strong);backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(150%);-webkit-backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(150%);backdrop-filter:var(--glass-distort-soft);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight);transform-origin:top center;animation:dd-in var(--dur-fast) var(--ease-out) both}.dd__menu--up{transform-origin:bottom center;animation-name:dd-in-up}.dd__menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.4;mix-blend-mode:overlay;animation:glass-sheen 8s var(--ease-in-out) infinite;pointer-events:none}.dd__option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);color:var(--text-dim);font-size:13px;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.dd__option.is-active{background:var(--surface-soft);color:var(--text)}.dd__option.is-chosen{color:var(--text)}.dd__option.is-disabled{color:var(--text-faint);opacity:.55;cursor:not-allowed;pointer-events:none}.dd__option-code{min-width:24px;font-weight:700;font-size:12px;letter-spacing:.02em;color:var(--teal-hi)}.dd__value{display:inline-flex;align-items:center;gap:7px}.dd__flag{display:inline-flex;flex:none;width:16px;height:16px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px var(--line)}.dd__flag svg{width:100%;height:100%;display:block}.dd__option-label{flex:1}.dd__option-mark{width:12px;text-align:right;color:var(--teal-hi)}.dd__button:disabled{opacity:.6;cursor:not-allowed}.dd__button:disabled:hover{color:var(--text-dim);background:var(--surface-soft);border-color:var(--line)}.dd--block{width:100%}.dd--block .dd__button{width:100%;justify-content:space-between}.dd--block .dd__menu{width:100%}.ckbox{position:relative;display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer}.ckbox__input{position:absolute;top:0;left:0;width:20px;height:20px;margin:0;opacity:0;cursor:pointer}.ckbox__box{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:var(--bg-deep);display:grid;place-items:center;transition:background .15s ease,border-color .15s ease}.ckbox__mark{width:13px;height:13px;fill:none;stroke:var(--on-accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .15s ease}.ckbox__input:checked~.ckbox__box{background:var(--gradient-ink);border-color:transparent}.ckbox__input:checked~.ckbox__box .ckbox__mark{stroke-dashoffset:0}.ckbox:hover .ckbox__box{border-color:var(--teal-deep)}.ckbox__input:focus-visible~.ckbox__box{outline:2px solid var(--teal-hi);outline-offset:2px}.ckbox__input:disabled~.ckbox__box{opacity:.55;cursor:not-allowed}.ckbox__input:disabled{cursor:not-allowed}.ckbox__label{padding-top:1px;font-size:14px;color:var(--text)}.dp{position:relative;flex:none}.dp__button{min-width:132px;justify-content:flex-start}.dp__calmark{flex:none;width:14px;height:13px;margin-top:1px;border:1.6px solid currentColor;border-radius:3px;position:relative}.dp__calmark:before{content:"";position:absolute;left:-1.6px;right:-1.6px;top:-1.6px;height:4px;border-bottom:1.6px solid currentColor;background:currentColor;border-radius:2px 2px 0 0}.dp__panel{z-index:60;width:296px;padding:10px;overflow:hidden;border:1px solid var(--glass-border);border-radius:var(--r-md);background:var(--glass-tint-strong);backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(150%);-webkit-backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(150%);backdrop-filter:var(--glass-distort-soft);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight)}.dp__panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.4;mix-blend-mode:overlay;animation:glass-sheen 8s var(--ease-in-out) infinite;pointer-events:none}.dp__nav{display:flex;gap:8px;margin-bottom:10px}.dp__nav .dd{flex:1;min-width:0}.dp__nav .dd__button{width:100%;justify-content:center}.dp__grid{display:grid;gap:2px}.dp__row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp__weekday{display:grid;place-items:center;height:26px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-faint)}.dp__day{height:34px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer;transition:background .12s ease,color .12s ease}.dp__day:hover{background:var(--surface-soft)}.dp__day.is-outside{color:var(--text-faint)}.dp__day.is-today{box-shadow:inset 0 0 0 1px var(--accent-line)}.dp__day.is-selected{background:var(--gradient-ink);color:var(--on-accent);text-shadow:var(--ink-shadow)}.dp__day.is-disabled{color:var(--text-faint);opacity:.45;cursor:not-allowed}.dp__day.is-disabled:hover{background:transparent}.dp__day:focus-visible{outline:2px solid var(--teal-hi);outline-offset:1px}.slider{position:relative;display:flex;align-items:center;height:var(--tap);cursor:pointer;touch-action:none}.slider__track{position:relative;width:100%;height:4px;border-radius:999px;background:var(--line)}.slider__fill{position:absolute;top:0;left:0;height:100%;border-radius:999px;background:var(--gradient-line)}.slider__thumb{position:absolute;top:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--on-accent);box-shadow:var(--shadow-sm);transform:translateY(-50%);transition:transform .1s ease}.slider:hover .slider__thumb,.slider:focus-visible .slider__thumb{transform:translateY(-50%) scale(1.15)}.slider:focus-visible{outline:2px solid var(--teal-hi);outline-offset:3px;border-radius:999px}.slider.is-disabled{opacity:.5;cursor:not-allowed;touch-action:auto}.shell{display:flex;flex-direction:column;min-height:100%;animation:screen-in var(--dur-slow) var(--ease-out) both}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dd-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dd-in-up{0%{opacity:0;transform:translateY(4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-static{0%{opacity:0}to{opacity:1}}@keyframes page-out{0%{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(10px)}}@keyframes page-in{0%{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0)}}.glass,.glass-panel{position:relative;overflow:hidden;backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:var(--glass-distort);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-edge-lo)}.glass{background:var(--glass-tint)}.glass-panel{background:var(--glass-tint-strong);backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(140%);-webkit-backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(140%);backdrop-filter:var(--glass-distort-soft)}.glass:before,.glass-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.55;mix-blend-mode:overlay;animation:glass-sheen 7s var(--ease-in-out) infinite;pointer-events:none}.glass-panel:before{opacity:.3;animation-duration:9s}@keyframes glass-sheen{0%,to{background-position:0% 0%}50%{background-position:100% 100%}}.shell__header{position:sticky;top:0;z-index:20;background:var(--header-bg);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);border-bottom:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-highlight)}.shell__header:after{content:"";display:block;height:2px;background:var(--campus-stripe);opacity:.9}.shell__bar{max-width:1440px;margin:0 auto;padding:0 20px;min-height:var(--header-h);display:flex;align-items:center;gap:20px}.shell__brand{display:flex;align-items:center;gap:12px;min-width:0}.shell__logo{--logo-h: 26px}.shell__brand-name{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap}.shell__nav{display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}.shell__nav::-webkit-scrollbar{display:none}.navlink{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:0 14px;border-radius:var(--r-md);color:var(--text-dim);font-weight:500;font-size:14px;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.navlink:hover{background:var(--surface);color:var(--text);text-decoration:none}.navlink--active{color:var(--text);background:var(--gradient-soft);box-shadow:inset 0 0 0 1px var(--line)}.shell__user{display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid var(--line-soft)}.avatar{width:34px;height:34px;flex:none;border-radius:50%;background:var(--gradient-ink);color:var(--on-accent);text-shadow:var(--ink-shadow);display:grid;place-items:center;font-size:13px;font-weight:700}.um{position:relative;flex:none}.um__trigger{display:inline-flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.um__trigger:hover{background:var(--surface-hi)}.um__trigger:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px}.um.is-open .um__trigger{background:var(--surface-hi);border-color:var(--line)}.um__caret{width:7px;height:7px;flex:none;margin-left:2px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;color:var(--text-faint);transform:rotate(45deg);transition:transform var(--dur-fast) var(--ease-out)}.um.is-open .um__caret{transform:rotate(-135deg)}.um__menu{z-index:60;min-width:220px;margin:0;padding:6px;list-style:none;border:1px solid var(--glass-border);border-radius:var(--r-md);background:var(--glass-tint-strong);backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(150%);-webkit-backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(150%);backdrop-filter:var(--glass-distort-soft);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight);transform-origin:top right;animation:dd-in var(--dur-fast) var(--ease-out) both}.um__menu:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px}.um__menu--up{transform-origin:bottom right;animation-name:dd-in-up}.um__menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.4;mix-blend-mode:overlay;animation:glass-sheen 8s var(--ease-in-out) infinite;pointer-events:none}.um__item{display:flex;width:100%;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-dim);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.um__item:hover,.um__item:focus-visible{background:var(--surface-soft);color:var(--text);outline:none}.um__divider{margin:4px 2px;border:none;border-top:1px solid var(--line-soft)}.um__header{padding:8px 10px 10px;margin-bottom:4px;border-bottom:1px solid var(--line-soft)}.um__header-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.um__header-role{font-size:12px;margin-top:1px}.um-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:var(--overlay);overflow:auto;scrollbar-gutter:stable;animation:overlay-in var(--dur-fast) var(--ease-out) both}.um-modal{position:relative;width:min(480px,100%);background:var(--glass-tint-strong);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:var(--glass-distort);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-edge-lo);animation:modal-in var(--dur-base) var(--ease-out) both}.um-modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.4;mix-blend-mode:overlay;animation:glass-sheen 9s var(--ease-in-out) infinite;pointer-events:none}.um-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--line)}.um-modal__close{flex:none;width:var(--tap);height:var(--tap);border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-faint);font-size:22px;line-height:1;cursor:pointer}.um-modal__close:hover{color:var(--text);background:var(--surface-hi)}.um-modal__body{padding:18px 20px}.shell__main{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:28px 20px 56px}.shell__page{animation:page-in var(--dur-base) var(--ease-out)}.shell__page.is-leaving{animation:page-out var(--dur-base) var(--ease-in-out) forwards}.shell__footer{border-top:1px solid var(--line-soft);padding:18px 20px 28px;text-align:center;color:var(--text-faint);font-size:12px}.card{position:relative;background:var(--glass-tint-strong);backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(140%);-webkit-backdrop-filter:blur(calc(var(--glass-blur) / 2)) saturate(140%);backdrop-filter:var(--glass-distort-soft);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight);padding:22px}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.25;mix-blend-mode:overlay;animation:glass-sheen 10s var(--ease-in-out) infinite;pointer-events:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.stack{display:flex;flex-direction:column;gap:16px}.stack--tight{gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border:1px solid transparent;border-radius:var(--r-md);background:var(--surface-hi);color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.btn:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px);box-shadow:var(--shadow-sm)}:root[data-theme=light] .btn:hover:not(:disabled){filter:brightness(.95)}.btn:active:not(:disabled){transform:translateY(1px) scale(.97);transition-duration:70ms}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--gradient-ink);color:var(--on-accent);text-shadow:var(--ink-shadow);box-shadow:var(--shadow-glow)}.btn--primary:hover:not(:disabled),:root[data-theme=light] .btn--primary:hover:not(:disabled){filter:brightness(.94)}.btn--ghost{background:transparent;border-color:var(--line);color:var(--text-dim)}.btn--ghost:hover:not(:disabled){color:var(--text);background:var(--surface)}.btn--wide{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:13px;color:var(--text-dim);font-weight:500}.field__input{min-height:var(--tap);padding:0 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-deep);color:var(--text);font:inherit;transition:border-color .15s,box-shadow .15s}.field__input::placeholder{color:var(--text-faint)}.field__input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--ring)}.field__input:disabled{opacity:.6}.field__hint{font-size:12px;color:var(--text-faint)}.alert{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r-md);border:1px solid transparent;font-size:14px;line-height:1.45;animation:fade-in var(--dur-base) var(--ease-out) both}.alert--error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.alert--success{background:var(--success-bg);border-color:var(--success-line);color:var(--success-ink)}.alert--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.alert--info{background:var(--surface-hi);border-color:var(--line);color:var(--text-dim)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-hi);border:1px solid var(--line);color:var(--text-dim)}.badge--accent{background:var(--gradient-soft);border-color:var(--accent-line);color:var(--teal-hi)}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:56px 24px;border:1px dashed var(--line);border-radius:var(--r-lg);background:var(--surface-soft);animation:fade-in var(--dur-base) var(--ease-out) both}.empty__mark{width:52px;height:52px;border-radius:var(--r-md);background:var(--gradient-soft);border:1px solid var(--line);display:grid;place-items:center;color:var(--teal-hi)}.empty__title{font-size:17px;font-weight:600}.empty__text{color:var(--text-dim);max-width:460px;font-size:14px}.stub-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.stub-list li{position:relative;padding-left:22px;color:var(--text-dim);font-size:14px}.stub-list li:before{content:"";position:absolute;left:4px;top:9px;width:6px;height:6px;border-radius:2px;background:var(--gradient-line)}.props{margin:0;display:grid;gap:12px}.props>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line-soft);padding-bottom:10px}.props>div:last-child{border-bottom:none;padding-bottom:0}.props dt{color:var(--text-dim);font-size:13px}.props dd{margin:0;text-align:right;word-break:break-word}.badges{display:flex;flex-wrap:wrap;gap:6px}.spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--teal);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:64px 20px;color:var(--text-dim)}.auth{min-height:100%;display:grid;place-items:center;padding:32px 20px;position:relative}.auth:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(640px 460px at 50% 42%,color-mix(in srgb,var(--bg) 55%,transparent) 0%,transparent 72%),linear-gradient(180deg,transparent 0%,var(--bg) 94%);pointer-events:none}.auth__card{position:relative;z-index:1;width:100%;max-width:400px;background:var(--glass-tint);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:var(--glass-distort);border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-edge-lo);overflow:hidden;animation:screen-in .42s ease both}.auth__card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.5;mix-blend-mode:overlay;animation:glass-sheen 9s var(--ease-in-out) infinite;pointer-events:none}.boot-preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;overflow:hidden;background:var(--bg);opacity:1;transition:opacity 1.1s var(--ease-in-out)}.boot-preloader--leaving{opacity:0;pointer-events:none}.boot-preloader__aurora{position:absolute;width:62vmax;height:62vmax;border-radius:50%;filter:blur(90px);pointer-events:none;will-change:transform}.boot-preloader__aurora--a{top:-18vmax;left:-16vmax;background:radial-gradient(circle,var(--teal-hi),transparent 70%);opacity:.28;animation:boot-aurora-a 10s var(--ease-in-out) infinite}.boot-preloader__aurora--b{bottom:-20vmax;right:-18vmax;background:radial-gradient(circle,var(--teal-deep),transparent 70%);opacity:.24;animation:boot-aurora-b 12s var(--ease-in-out) infinite}@keyframes boot-aurora-a{0%,to{transform:translate(0) scale(1)}50%{transform:translate(8vmax,6vmax) scale(1.15)}}@keyframes boot-aurora-b{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-7vmax,-6vmax) scale(1.12)}}.boot-preloader__stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:22px;animation:boot-stage-in .7s var(--ease-out) both}@keyframes boot-stage-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.boot-preloader__logo-wrap{position:relative;display:grid;place-items:center}.boot-preloader__logo-wrap:before{content:"";position:absolute;top:-46px;right:-46px;bottom:-46px;left:-46px;border-radius:50%;background:radial-gradient(circle,var(--teal-hi) 0%,transparent 65%);filter:blur(22px);opacity:.4;animation:boot-halo-pulse 2.6s var(--ease-in-out) infinite}@keyframes boot-halo-pulse{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:.6;transform:scale(1.15)}}.boot-preloader__logo{--logo-h: 56px;position:relative;animation:logo-glow 2.2s ease-in-out infinite}@keyframes logo-glow{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 18px var(--teal-hi))}}.boot-preloader__ring{width:52px;height:52px;animation:preloader-spin 1.1s linear infinite;filter:drop-shadow(0 0 8px rgba(63,210,224,.45))}.preloader-ring__track{fill:none;stroke:var(--line);stroke-width:4}.preloader-ring__arc{fill:none;stroke:url(#preloader-ring-grad);stroke-width:4;stroke-linecap:round;stroke-dasharray:56 170;transform-origin:32px 32px}@keyframes preloader-spin{to{transform:rotate(360deg)}}.boot-preloader__text{position:relative;margin:0;font-size:13px;letter-spacing:.04em;color:var(--text-dim)}.boot-preloader__progress{position:relative;width:128px;height:3px;border-radius:2px;overflow:hidden;background:var(--glass-border)}.boot-preloader__progress:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent,var(--teal-hi),var(--teal-deep),transparent);animation:boot-progress-sweep 1.5s var(--ease-in-out) infinite}@keyframes boot-progress-sweep{0%{transform:translate(-120%)}to{transform:translate(320%)}}.auth__top{padding:32px 28px 24px;background:var(--gradient-soft);border-bottom:1px solid var(--line);text-align:center}.auth__logo{--logo-h: 34px;margin:0 auto 14px}.auth__title{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.auth__body{padding:26px 28px 30px;display:flex;flex-direction:column;gap:16px}.auth__note{text-align:center;font-size:12px;color:var(--text-faint);line-height:1.5}.auth__tools{display:flex;justify-content:center;align-items:center;gap:10px;padding-top:2px}@media (max-width: 720px){.shell__bar{flex-wrap:wrap;padding:10px 14px;gap:10px}.shell__nav{order:3;width:100%;margin-left:0;padding-bottom:2px}.shell__user{margin-left:auto;padding-left:12px}.shell__main{padding:20px 14px 44px}.page-head{flex-direction:column;align-items:flex-start;gap:8px}}@media (max-width: 390px){body{font-size:14px}.shell__brand-name{display:none}.card,.auth__body,.auth__top{padding-left:16px;padding-right:16px}.h1{font-size:20px}.empty{padding:36px 16px}.navlink{padding:0 12px;font-size:13px}.dp__panel{width:344px;max-width:calc(100vw - 16px);padding:8px}.dp__row{gap:3px}.dp__day{height:44px;font-size:14px}.dp__weekday{height:26px;font-size:10px}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}}.ico-folder{display:block;width:calc(var(--folder-h, 26px) * 1.37);height:var(--folder-h, 26px);background:var(--campus-icon);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 174 127%27%3E%3Cpath d=%27M166.85 50.21H145.99V28.27c0-3.42-2.76-6.18-6.18-6.18H78.98L56.33.42A1.2 1.2 0 0 0 55.27 0H6.18C2.76 0 0 2.76 0 6.18V120.5c0 3.42 2.76 6.18 6.18 6.18H140.97c2.51 0 4.79-1.53 5.74-3.86l25.88-64.11c.29-.74.44-1.53.44-2.32 0-3.42-2.76-6.18-6.18-6.18ZM132.09 50.21H33.6c-2.51 0-4.79 1.53-5.74 3.86L13.9 88.68V13.9h36.4l23.1 22.1h58.69v14.21Z%27/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 174 127%27%3E%3Cpath d=%27M166.85 50.21H145.99V28.27c0-3.42-2.76-6.18-6.18-6.18H78.98L56.33.42A1.2 1.2 0 0 0 55.27 0H6.18C2.76 0 0 2.76 0 6.18V120.5c0 3.42 2.76 6.18 6.18 6.18H140.97c2.51 0 4.79-1.53 5.74-3.86l25.88-64.11c.29-.74.44-1.53.44-2.32 0-3.42-2.76-6.18-6.18-6.18ZM132.09 50.21H33.6c-2.51 0-4.79 1.53-5.74 3.86L13.9 88.68V13.9h36.4l23.1 22.1h58.69v14.21Z%27/%3E%3C/svg%3E") center / contain no-repeat}.ico-file{display:block;width:var(--file-h, 24px);height:var(--file-h, 24px)}.auth-campus{display:flex;gap:2px;padding:3px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--r-md)}.auth-campus__item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-dim);font:inherit;font-size:13px;font-weight:600;flex:1;padding:9px 8px;border-radius:var(--r-sm);cursor:pointer;transition:background .15s ease,color .15s ease}.auth-campus__item:hover{color:var(--text);background:var(--surface-hi)}.auth-campus__item.is-on{background:var(--campus-ink);color:var(--on-accent);text-shadow:var(--ink-shadow)}.auth-campus__item:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px}.pv-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:overlay-in var(--dur-fast) var(--ease-out) both}.pv-window{position:relative;display:flex;flex-direction:column;width:min(1120px,100%);max-height:100%;background:var(--glass-tint-strong);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-edge-lo);overflow:hidden;outline:none;animation:modal-in var(--dur-base) var(--ease-out) both}.pv-window:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.35;mix-blend-mode:overlay;animation:glass-sheen 9s var(--ease-in-out) infinite;pointer-events:none}.pv-overlay--plain{backdrop-filter:none;-webkit-backdrop-filter:none}.pv-window--plain:before{display:none}.pv-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-soft);background:var(--surface-soft)}.pv-head__mark{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--gradient-soft);border:1px solid var(--line);color:var(--teal-hi);font-size:17px}.pv-head__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.pv-head__name{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-head__meta{font-size:12px;color:var(--text-faint)}.pv-head__actions{display:flex;align-items:center;gap:8px;flex:none}.pv-download{text-decoration:none}.pv-close{width:var(--tap);padding:0;font-size:16px}.pv-content{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable;overscroll-behavior:contain;padding:16px;background:var(--bg-deep)}.pv-note{margin:12px 0 0;color:var(--text-faint);font-size:13px;text-align:center}.pv-wait{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px 12px;color:var(--text-dim);font-size:14px}.pv-wait__dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--teal-deep);border-top-color:var(--teal-hi);animation:pv-spin .8s linear infinite}@keyframes pv-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.pv-wait__dot{animation-duration:3s}}.pv-fallback{max-width:460px;margin:24px auto;padding:28px 24px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.pv-fallback--warn{border-color:var(--warn);background:var(--warn-bg)}.pv-fallback__mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:var(--r-md);background:var(--gradient-soft);border:1px solid var(--line);color:var(--teal-hi);font-size:24px}.pv-fallback__title{margin:0 0 8px;font-size:17px}.pv-fallback__text{margin:0 0 10px;color:var(--text-dim);font-size:14px;line-height:1.55}.pv-fallback__meta{margin:0 0 18px;color:var(--text-faint);font-size:13px}.pv-frame{display:flex;flex-direction:column;min-height:0}.pv-frame__doc{width:100%;height:min(76vh,900px);border:1px solid var(--line);border-radius:var(--r-md);background:#fff}.pv-image{display:grid;place-items:center;min-height:240px}.pv-image img{max-width:100%;max-height:76vh;border-radius:var(--r-md);background-color:#c3cad1;background-image:linear-gradient(45deg,#a7b0b9 25%,transparent 25%),linear-gradient(-45deg,#a7b0b9 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#a7b0b9 75%),linear-gradient(-45deg,transparent 75%,#a7b0b9 75%);background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0;padding:8px}.pv-media{display:grid;place-items:center;min-height:200px;width:100%}.pv-video{display:block;width:100%;max-height:76vh;border-radius:var(--r-md);background:#000}.mp{display:flex;flex-direction:column;gap:10px;width:100%}.mp--audio{max-width:560px;margin:0 auto}.mp__video-wrap{position:relative;cursor:pointer}.mp__bigplay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.mp__bigplay svg{width:56px;height:56px;padding:17px;border-radius:50%;background:#06090d99;color:#fff}.mp__bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.mp__btn{flex:none;display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);padding:0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-soft);color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease}.mp__btn:hover{background:var(--surface-hi);border-color:var(--teal-deep)}.mp__btn:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px}.mp__seek{flex:1 1 160px;min-width:0}.mp__volume{flex:none;width:90px}.mp__time{flex:none;min-width:92px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-dim)}@media (max-width: 390px){.mp__volume{width:60px}.mp__time{min-width:76px;font-size:11px}}.pv-text pre{margin:0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.pv-paper,.pv-slides__host{background:#f1f3f5;border-radius:var(--r-md);color:#111;overflow-x:auto;scrollbar-gutter:stable}.pv-paper{padding:8px 0}.pv-paper:empty,.pv-slides__host:empty{background:transparent}.pv-sheet{display:flex;flex-direction:column;min-width:0}.pv-sheet__tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.pv-sheet__tab{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text-dim);font:inherit;font-size:13px;cursor:pointer}.pv-sheet__tab.is-active{background:var(--gradient-soft);color:var(--text);border-color:var(--teal-deep)}.pv-sheet__scroll{overflow:auto;scrollbar-gutter:stable;max-height:70vh;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.pv-sheet__table{border-collapse:collapse;font-size:13px;white-space:nowrap}.pv-sheet__table th,.pv-sheet__table td{border:1px solid var(--line);padding:5px 10px;text-align:left;max-width:320px;overflow:hidden;text-overflow:ellipsis}.pv-sheet__table thead th,.pv-sheet__row-no,.pv-sheet__corner{position:sticky;background:var(--surface-hi);color:var(--text-faint);font-weight:600;z-index:1}.pv-sheet__table thead th{top:0}.pv-sheet__row-no,.pv-sheet__corner{left:0;text-align:right}.pv-sheet__corner{top:0;z-index:2}.pv-slides__host{display:block;padding:8px}.pv-slides__host .pptx-preview-wrapper{height:auto!important;max-width:100%;overflow-y:visible!important}@media (max-width: 720px){.pv-overlay{padding:0}.pv-window{width:100%;height:100%;max-height:none;border:none;border-radius:0}.pv-head{flex-wrap:wrap}.pv-head__actions{width:100%;order:3}.pv-download{flex:1}.pv-content{padding:12px}.pv-frame__doc{height:70vh}}.br-head{gap:12px}.br-search{display:flex;align-items:center;gap:8px;min-width:0}.br-search__field{position:relative;display:block;width:300px;max-width:100%}.br-search__mark{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-faint);font-size:16px;pointer-events:none}.br-search__input{width:100%;padding-left:34px}.br-search__input::-webkit-search-cancel-button{filter:invert(.6)}:root[data-theme=light] .br-search__input::-webkit-search-cancel-button{filter:none;opacity:.55}.br-campus-fade{animation:page-in var(--dur-base) var(--ease-out)}.br-campus-fade.is-leaving{animation:page-out var(--dur-base) var(--ease-in-out) forwards}.br-layout{display:flex;flex-direction:column;gap:14px}.br-tree-btn{display:inline-flex;align-self:flex-start;gap:8px}.br-tree-btn__mark{display:flex;color:var(--campus-accent)}.br-tree-btn__mark{--folder-h: 18px}.br-tree-modal__body{max-height:min(60vh,420px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.br-tree__list{margin:0;padding:0;list-style:none}.br-tree__row{display:flex;align-items:center;gap:2px}.br-tree__toggle{flex:none;width:18px;min-height:34px;display:grid;place-items:center;border:none;background:transparent;color:var(--text-faint);cursor:pointer;border-radius:var(--r-sm)}.br-tree__toggle:hover{color:var(--text)}.br-tree__toggle--empty{cursor:default}.br-tree__chevron{display:block;font-size:16px;line-height:1;transition:transform .15s}.br-tree__chevron.is-open{transform:rotate(90deg)}.br-tree__name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:34px;padding:4px 6px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-dim);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.br-tree__name:hover{background:var(--surface-hi);color:var(--text);transform:translate(2px)}.br-tree__name.is-current{background:var(--campus-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.br-tree__mark{flex:none;display:flex;color:var(--campus-accent)}.br-tree__mark{--folder-h: 17px}.br-tree__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.br-tree__lock{flex:none;margin-left:auto;font-size:8px;color:var(--danger-strong)}.br-main{display:flex;flex-direction:column;gap:16px;min-width:0}.br-main .btn--primary{background:var(--campus-ink);border:none;box-shadow:0 18px 48px color-mix(in srgb,var(--campus-accent) 14%,transparent)}.br-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.br-root-picker__lead{margin:0;font-size:14px}.br-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0}.br-crumbs__item{display:inline-flex;align-items:center;gap:2px;min-width:0}.br-crumbs__sep{color:var(--text-faint);padding:0 2px}.br-crumbs__link{border:none;background:transparent;color:var(--text-dim);font:inherit;font-weight:500;padding:6px 8px;min-height:32px;border-radius:var(--r-sm);cursor:pointer;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.br-crumbs__link:hover{background:var(--surface);color:var(--text)}.br-crumbs__link[aria-current=page]{color:var(--text);font-weight:600;cursor:default}.br-sort{display:flex;align-items:center;gap:8px}.br-sort__label{font-size:13px;color:var(--text-faint)}.br-sort__dd .dd__button{min-height:var(--tap);padding:0 10px 0 12px;font-size:13px}.br-found{color:var(--text-dim);font-size:14px}.br-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;animation:fade-in var(--dur-base) var(--ease-out) both}.br-card,.br-card:hover,.br-card:focus-visible{text-decoration:none}.br-card{display:flex;align-items:center;gap:14px;min-height:116px;padding:20px 22px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);min-width:0;position:relative}.br-card:hover{border-color:var(--teal-deep);background:var(--surface-hi);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.br-card:active{transform:translateY(0) scale(.99);transition-duration:70ms}.br-card.is-current{border-color:var(--campus-accent);box-shadow:0 0 0 1px var(--campus-accent)}.br-card__mark{flex:none;width:56px;height:56px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--campus-soft);border:1px solid var(--line);color:var(--campus-accent);--folder-h: 30px;--file-h: 32px}.br-card--folder .br-card__mark{background:none;border:none;color:var(--campus-accent)}.br-card__mark .br-link__icon{width:26px;height:26px}.br-card__meta .br-link__icon{width:17px;height:17px;vertical-align:-2px;margin-right:6px}.br-card--link .br-card__mark{color:var(--campus-accent)}.br-card--link .br-card__kind{color:var(--text-dim);text-transform:none;letter-spacing:0}.br-card__body{display:flex;flex-direction:column;gap:10px;min-width:0}.br-card__name{font-size:14px;font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.br-card__facts{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-width:0}.br-card__date{color:var(--text-faint);font-size:12.5px;line-height:1.2}.br-card__kind{flex:none;padding:3px 8px;border-radius:var(--r-sm);border:none;background:var(--campus-soft);color:var(--campus-accent);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.br-card--folder .br-card__kind{color:var(--text-dim);text-transform:none;letter-spacing:0;font-weight:600}.br-card__meta{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.br-card__note{position:absolute;right:12px;bottom:8px;max-width:45%;font-size:11px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.br-links{display:flex;flex-wrap:wrap;gap:8px}.br-links__item{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line);background:var(--surface-hi);overflow:hidden}.br-link{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 14px;color:var(--text-dim);font-size:13px;text-decoration:none;transition:background .15s,color .15s}.br-link:hover{background:var(--gradient-soft);color:var(--text)}.br-link__icon{flex:none;color:var(--teal-hi)}.br-link__title{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.br-links__item .br-act{border-radius:0;border:none;border-left:1px solid var(--line);min-height:34px}.br-manage{display:flex;flex-direction:column;gap:10px}.br-manage__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.br-manage__row--settings{padding-top:10px;border-top:1px dashed var(--line)}.br-manage__group-label{font-size:13px;white-space:nowrap}.br-hidden-file,.br-hidden-submit{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.br-progress{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.br-progress__track{flex:1;min-width:140px;height:8px;border-radius:999px;background:var(--surface-hi);overflow:hidden}.br-progress__fill{display:block;height:100%;background:var(--gradient);transition:width .2s ease}.br-progress__text{font-size:13px;color:var(--text-dim);font-variant-numeric:tabular-nums}.br-cell{position:relative;display:flex;min-width:0}.br-cell>.br-card{flex:1;min-width:0}.br-card.has-acts{padding-right:84px}.br-cell__acts{position:absolute;top:14px;right:14px;display:flex;gap:4px}.br-act{display:inline-grid;place-items:center;min-width:32px;min-height:32px;padding:0 6px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-hi);color:var(--text-faint);font:inherit;font-size:14px;line-height:1;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.br-act:hover{color:var(--text);border-color:var(--teal-deep)}.br-act--danger:hover{color:var(--danger-strong);border-color:var(--danger-strong)}.br-btn-danger{background:var(--danger-strong-deep);border-color:var(--danger-strong);color:var(--on-accent)}.br-access-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}.br-access-list__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface)}.br-access-list__who{display:flex;flex-direction:column;gap:2px;min-width:0}.br-access-list__who span{font-size:12px}.br-access-list__revoke{flex:none;min-height:var(--tap);padding:0 12px;border:1px solid var(--danger-strong);border-radius:var(--r-sm);background:transparent;color:var(--danger-strong);font:inherit;font-size:13px;cursor:pointer;transition:background .15s,color .15s}.br-access-list__revoke:hover{background:var(--danger-strong-deep);color:var(--on-accent)}.br-access-list__revoke:disabled{opacity:.5;cursor:default}.br-overlay-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:var(--overlay);overflow:auto;scrollbar-gutter:stable;animation:overlay-in var(--dur-fast) var(--ease-out) both}.br-modal{position:relative;width:min(520px,100%);background:var(--glass-tint-strong);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:var(--glass-distort);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-edge-lo);animation:modal-in var(--dur-base) var(--ease-out) both}.br-modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.4;mix-blend-mode:overlay;animation:glass-sheen 9s var(--ease-in-out) infinite;pointer-events:none}.br-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--line)}.br-modal__close{flex:none;width:var(--tap);height:var(--tap);border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-faint);font-size:22px;line-height:1;cursor:pointer}.br-modal__close:hover{color:var(--text);background:var(--surface-hi)}.br-modal__body{padding:18px 20px}.br-modal__foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px 18px;border-top:1px solid var(--line)}.br-more{display:flex;justify-content:center;padding:4px 0 8px}@media (max-width: 900px){.br-grid{grid-template-columns:repeat(2,1fr)}.br-search__field,.br-search{width:100%}.br-tree__name,.br-tree__toggle,.br-crumbs__link,.br-links__item,.br-link,.br-act,.br-links__item .br-act{min-height:var(--tap)}.br-act{min-width:var(--tap)}.br-card.has-acts{padding-right:104px}}@media (max-width: 560px){.br-grid{grid-template-columns:minmax(0,1fr)}.br-bar{align-items:flex-start;flex-direction:column}.br-sort{width:100%}.br-sort__dd{flex:1;min-width:0}.br-sort__dd .dd__button{width:100%;justify-content:space-between;white-space:nowrap}.br-sort .btn--icon,.br-sort>.btn:last-child{flex:none;width:var(--tap);min-width:var(--tap);padding:0}.br-tree-btn{width:100%;justify-content:center}.br-card__note{position:static;max-width:none;margin-left:auto}.br-link__title{max-width:52vw}.br-manage__row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.br-manage__row .btn{width:100%;min-height:var(--tap)}.br-manage__group-label{white-space:normal}.br-bar .btn{width:100%}}@media (max-width: 390px){.br-card{padding:10px 12px;min-height:68px}.br-card__mark{width:48px;height:48px;--folder-h: 26px;--file-h: 28px}.br-crumbs__link{max-width:150px}}.br-campus{position:relative;display:inline-flex;align-items:stretch;gap:2px;padding:3px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--r-md)}.br-campus__thumb{position:absolute;top:3px;left:0;bottom:3px;z-index:0;border-radius:var(--r-sm);background-image:linear-gradient(90deg,var(--campus-tcc-ink) 0%,var(--bordo) 100%);background-repeat:no-repeat;transition:transform var(--dur-base) var(--ease-out),width var(--dur-base) var(--ease-out),background-position var(--dur-base) var(--ease-out);pointer-events:none}@media (prefers-reduced-motion: reduce){.br-campus__thumb{transition:none}}.br-campus__item{position:relative;z-index:1;transition:color var(--dur-base) var(--ease-out);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-dim);font:inherit;font-size:13px;font-weight:600;letter-spacing:.02em;padding:7px 16px;border-radius:var(--r-sm);cursor:pointer;transition:background .15s ease,color .15s ease}.br-campus__item:hover:not(.is-on){color:var(--text);background:var(--surface-hi)}.br-campus__item.is-on{color:var(--on-accent);text-shadow:var(--ink-shadow)}.br-campus__item:focus-visible{outline:2px solid var(--teal-hi);outline-offset:2px}@media (max-width: 720px){.br-campus{width:100%}.br-campus__item{flex:1;padding:8px 10px}}.stats-panel{animation:fade-in var(--dur-base) var(--ease-out) both}.stats-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.stats-tabs{display:flex;gap:4px;padding:4px;border-radius:var(--r-md);background:var(--surface-soft);border:1px solid var(--line-soft)}.stats-tab{min-height:36px;padding:0 16px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-dim);font:inherit;font-weight:600;font-size:14px;cursor:pointer}.stats-tab:hover{color:var(--text)}.stats-tab--active{background:var(--gradient-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.stats-period{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.stats-chip{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text-dim);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.stats-chip:hover{color:var(--text);background:var(--surface)}.stats-chip--active{background:var(--gradient-soft);border-color:var(--accent-line);color:var(--teal-hi)}.stats-date{display:inline-flex;align-items:center;gap:6px}.stats-date .dp__button{min-height:36px;padding:0 10px;font-size:13px;min-width:108px}.stats-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.stats-metric{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.stats-metric__label{font-size:13px;color:var(--text-dim)}.stats-metric__value{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.stats-metric__value--sm{font-size:16px}.stats-chart{position:relative;width:100%}.stats-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.stats-columns--wide{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.stats-notice{margin-bottom:16px}.stats-hollow{padding:28px 0;text-align:center;font-size:14px}.stats-tablewrap{overflow-x:auto;scrollbar-gutter:stable}.stats-table{width:100%;border-collapse:collapse;font-size:14px}.stats-table th{text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:0 12px 8px 0;white-space:nowrap}.stats-table td{padding:10px 12px 10px 0;border-top:1px solid var(--line-soft);vertical-align:top}.stats-table .num{text-align:right;white-space:nowrap}.stats-strong{font-weight:600}.stats-table--rows tbody tr{cursor:pointer}.stats-table--rows tbody tr:hover td{background:var(--surface-hi)}.stats-table--rows tbody tr:focus-visible{outline:2px solid var(--teal-hi);outline-offset:-2px}.stats-people{list-style:none;margin:0;padding:0;display:grid;gap:6px}.stats-person{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);padding:10px 12px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.stats-person:hover{background:var(--surface-hi);border-color:var(--line)}.stats-person__main{display:flex;flex-direction:column;min-width:0}.stats-person__main .faint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-person__side{display:flex;align-items:center;gap:10px;flex:none}.stats-cardhead{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.stats-cardhead__who{display:flex;flex-direction:column;min-width:0}.stats-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line-soft)}.timeline+.timeline{margin-top:18px}.timeline__day{font-size:13px;font-weight:600;color:var(--teal-hi);padding:6px 0;border-bottom:1px solid var(--line-soft)}.timeline__list{list-style:none;margin:0;padding:0}.timeline__item{display:grid;grid-template-columns:28px 78px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:14px}.timeline__item:last-child{border-bottom:none}.timeline__mark{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;font-size:13px;background:var(--surface-hi);border:1px solid var(--line);color:var(--text-dim);align-self:center}.timeline__mark--in{color:var(--teal-hi);border-color:var(--accent-line)}.timeline__mark--out{color:var(--text-faint)}.timeline__mark--download{color:var(--success);border-color:var(--success-line)}.timeline__mark--preview,.timeline__mark--folder{color:var(--text)}.timeline__mark--link{color:var(--warn);border-color:var(--warn-line)}.timeline__mark--upload{color:var(--teal)}.timeline__mark--admin{color:var(--info-hi);border-color:var(--info-line)}.timeline__time{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:13px;white-space:nowrap}.timeline__body{min-width:0}.timeline__title{color:var(--text-dim)}.timeline__object{font-weight:600}.timeline__note{overflow-wrap:anywhere}.timeline__url{word-break:break-all}.timeline__meta{text-align:right;white-space:nowrap}@media (max-width: 720px){.stats-toolbar{flex-direction:column;align-items:stretch}.timeline__item{grid-template-columns:26px 74px minmax(0,1fr);row-gap:2px}.timeline__meta{grid-column:2 / -1;text-align:left;white-space:normal}}@media (max-width: 390px){.stats-metric{padding:14px}.stats-metric__value{font-size:22px}.stats-person__side{flex-direction:column;align-items:flex-end;gap:2px}}.adm-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.adm-toolbar>.adm-search{flex:1 1 280px}.adm-tabs{display:flex;gap:6px;padding:6px;border-radius:var(--r-md);background:var(--surface-soft);border:1px solid var(--line-soft);overflow-x:auto;scrollbar-gutter:stable}.adm-tab{min-height:44px;padding:0 20px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-dim);font:inherit;font-weight:600;font-size:15px;white-space:nowrap;cursor:pointer}.adm-tab:hover{color:var(--text)}.adm-tab--active{background:var(--gradient-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.adm-body{margin-top:20px;animation:fade-in var(--dur-base) var(--ease-out) both}.adm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.adm-search{min-height:44px;min-width:260px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-soft);color:var(--text);font:inherit;font-size:15px}.adm-search::placeholder{color:var(--text-faint)}.adm-tablewrap{overflow-x:auto;scrollbar-gutter:stable;border-radius:var(--r-md);border:1px solid var(--line-soft);margin:8px 0 16px}.adm-table{width:100%;min-width:680px;border-collapse:collapse;font-size:14px}.adm-table th{position:sticky;top:0;text-align:left;padding:13px 16px;background:var(--surface-soft);color:var(--text-dim);font-weight:600;font-size:13px;border-bottom:1px solid var(--line);white-space:nowrap}.adm-table td{padding:14px 16px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.adm-table tbody tr:last-child td{border-bottom:none}.adm-table tbody tr:hover{background:var(--surface)}.adm-table tr.is-off td{color:var(--text-faint)}.adm-name{font-weight:600;color:var(--text)}.adm-sub{display:block;color:var(--text-faint);font-size:12px}.adm-table td.adm-td-actions,.adm-table th.adm-th-actions{width:1%;white-space:nowrap}.adm-table td.adm-td-role{min-width:250px}.adm-role{display:flex;flex-direction:column;gap:6px}.adm-role__name{font-weight:600}.adm-tags{display:flex;flex-wrap:wrap;gap:5px}.adm-tag{padding:3px 9px;border-radius:999px;border:1px solid var(--line-soft);background:var(--surface-soft);color:var(--text-dim);font-size:12px;white-space:nowrap}.adm-rowactions{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end}.adm-mini{min-height:36px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;color:var(--text-dim);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.adm-mini:hover:not(:disabled){color:var(--text);background:var(--surface-hi)}.adm-mini:disabled{opacity:.5;cursor:not-allowed}.adm-mini--danger{color:var(--danger);border-color:var(--danger-line)}.adm-mini--danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.adm-btn-danger{background:var(--danger-strong-deep);color:var(--on-accent)}.adm-state{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-dim)}.adm-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.adm-dot--off{background:var(--text-faint)}.adm-dot--warn{background:var(--warn)}@media (max-width: 720px){.adm-tablewrap{overflow-x:visible;border:none}.adm-table{min-width:0}.adm-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.adm-table,.adm-table tbody,.adm-table tr,.adm-table td{display:block;width:100%}.adm-table tr{margin-bottom:12px;padding:14px 16px;border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface)}.adm-table tr:last-child{margin-bottom:0}.adm-table td{padding:7px 0;border-bottom:none}.adm-table td[data-label]{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.adm-table td[data-label]:before{content:attr(data-label);flex:none;color:var(--text-faint);font-size:12px}.adm-table td[data-label]>*{text-align:right}.adm-td-person{padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--line-soft)}.adm-name{font-size:15px}.adm-table td.adm-td-actions{width:100%;white-space:normal;padding-top:12px}.adm-tags{justify-content:flex-end}.adm-rowactions{flex-wrap:wrap;justify-content:flex-start}.adm-rowactions .adm-mini{flex:1;min-height:var(--tap)}}.adm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:overlay-in var(--dur-fast) var(--ease-out) both}.adm-modal{position:relative;width:min(620px,100%);max-height:min(88vh,760px);display:flex;flex-direction:column;background:var(--glass-tint-strong);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:var(--glass-distort);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-edge-lo);animation:modal-in var(--dur-base) var(--ease-out) both}.adm-modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:linear-gradient(115deg,transparent 35%,var(--glass-highlight) 50%,transparent 65%);background-size:250% 250%;background-position:0% 0%;opacity:.4;mix-blend-mode:overlay;animation:glass-sheen 9s var(--ease-in-out) infinite;pointer-events:none}.adm-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 14px;border-bottom:1px solid var(--line-soft)}.adm-modal__close{min-width:var(--tap);min-height:var(--tap);margin:-8px -8px 0 0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-dim);font-size:24px;line-height:1;cursor:pointer}.adm-modal__close:hover{color:var(--text);background:var(--surface-hi)}.adm-modal__body{padding:20px 24px;overflow-y:auto;scrollbar-gutter:stable}.adm-modal__foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px 22px}.adm-form{display:grid;gap:16px}.adm-form--two{grid-template-columns:1fr 1fr}.adm-password{padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-deep);color:var(--teal-hi);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px;letter-spacing:.14em;text-align:center;-webkit-user-select:all;user-select:all}.adm-checks{display:grid;gap:10px}.adm-check{display:flex;padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--line-soft);background:var(--surface-soft)}.adm-check:hover{border-color:var(--line)}.adm-check .ckbox{width:100%}.adm-check .ckbox__box{margin-top:3px}.adm-check__title{font-weight:600}.adm-check__text{display:block;color:var(--text-faint);font-size:13px}.adm-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.adm-card{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--surface-soft)}.adm-card__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px}.adm-card__title{flex:1 1 auto;min-width:0}.adm-card__title .adm-name{display:block;overflow-wrap:anywhere}.adm-chips{display:flex;flex-wrap:wrap;gap:6px}.adm-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 8px 7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13.5px}.adm-chip__x{width:26px;height:26px;border:none;border-radius:50%;background:transparent;color:var(--text-faint);font-size:16px;line-height:1;cursor:pointer}.adm-chip__x:hover{background:var(--danger-bg);color:var(--danger)}.adm-access{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:16px;align-items:start}.adm-picker{padding:12px;border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--surface-soft);max-height:min(72vh,680px);overflow:auto;scrollbar-gutter:stable}.adm-picker__title{margin-bottom:8px;color:var(--text-dim);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.adm-picker__list{list-style:none;margin:0;padding:0}.adm-picker__btn{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;padding:7px 10px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-dim);font:inherit;font-size:14px;text-align:left;cursor:pointer}.adm-picker__btn:hover{color:var(--text);background:var(--surface)}.adm-picker__btn.is-current{background:var(--gradient-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.adm-picker__mark{flex:none;display:flex;--folder-h: 16px}.adm-picker__btn.is-current .adm-picker__mark{color:var(--text)}.adm-picker__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-picker__lock{color:var(--danger-strong);font-size:10px}.adm-grant{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.adm-grant .field{min-width:160px;flex:1 1 180px}@media (max-width: 860px){.adm-access{grid-template-columns:1fr}.adm-picker{max-height:34vh}}@media (max-width: 560px){.adm-form--two{grid-template-columns:1fr}.adm-toolbar{align-items:stretch}.adm-search{width:100%}.adm-actions{width:100%;flex-direction:column;align-items:stretch}.adm-actions .btn{width:100%}.adm-modal{max-height:92vh}.adm-mini{min-height:var(--tap)}}.adm-picker__area{margin:10px 0 4px;padding-left:8px;color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.adm-picker__list>li:first-child>.adm-picker__area{margin-top:0}
