@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f6f2e9;--paper-deep:#eee7d9;--paper-soft:#faf7f0;--surface:#fffdf9;--white:#fff;--ink:#15241d;--ink-soft:#35443b;--muted:#6d776f;--muted-light:#8b938c;--line:#ded7c9;--line-strong:#c8bead;--green:#14583f;--green-deep:#0e3327;--green-bright:#26775a;--green-soft:#e4ede7;--amber:#b97434;--amber-soft:#f6e7d4;--red:#a43c32;--red-soft:#f8e6e2;--blue:#3f6782;--blue-soft:#e5edf2;--violet:#675982;--violet-soft:#ece7f3;--font-display:"Fraunces Variable", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-sans:"Public Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--shadow-sm:0 1px 2px #15241d0a, 0 3px 12px #15241d0a;--shadow-md:0 10px 30px #15241d14;--shadow-lg:0 24px 70px #15241d29;--radius-xs:6px;--radius-sm:9px;--radius-md:13px;--radius-lg:18px;--radius-xl:26px;--container:1180px;--header-height:76px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6}body,button,input,textarea,select{font-family:var(--font-sans)}body.modal-open{overflow:hidden}h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.022em;color:var(--ink);font-weight:500;line-height:1.08}h1 em,h2 em{color:var(--green);font-weight:450}ul,ol{margin:0;padding:0;list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,select,textarea{color:var(--ink);font-size:15px}::selection{background:#14583f29}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.container{width:100%;max-width:var(--container);margin:0 auto;padding-inline:clamp(20px,4vw,40px)}.section{padding-block:clamp(64px,8vw,108px)}.section--tight-top{padding-top:clamp(36px,4vw,56px)}.eyebrow{color:var(--green);font-family:var(--font-sans);letter-spacing:.17em;text-transform:uppercase;align-items:center;gap:8px;font-size:10.5px;font-weight:700;line-height:1.4;display:flex}.eyebrow--dot>span:first-child{background:var(--amber);border-radius:50%;width:6px;height:6px}.skip-link{z-index:200;background:var(--green);color:#fff;border-radius:8px;padding:10px 18px;font-size:14px;transition:top .2s;position:fixed;top:-100px;left:20px}.skip-link:focus{top:16px}.btn{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 18px;font-size:13.5px;font-weight:650;line-height:1.2;text-decoration:none;transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:not(:disabled):active{transform:translateY(1px)}.btn--md{min-height:42px;padding:0 18px}.btn--sm{gap:6px;min-height:34px;padding:0 13px;font-size:12.5px}.btn--lg{min-height:50px;padding:0 24px;font-size:14.5px}.btn--primary{background:var(--green);border-color:var(--green);color:#fdf9ef}.btn--primary:hover{background:var(--green-deep);border-color:var(--green-deep);box-shadow:0 4px 14px #14583f33}.btn--secondary{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn--secondary:hover{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.btn--ghost{color:var(--ink-soft);background:0 0}.btn--ghost:hover{background:var(--green-soft);color:var(--green-deep)}.btn--danger{background:var(--red);border-color:var(--red);color:#fff}.btn--danger:hover{background:#8e3129;border-color:#8e3129}.btn--light{background:var(--paper-soft);border-color:var(--paper-soft);color:var(--green-deep)}.btn--light:hover{background:#fff}.btn--full{width:100%}.text-danger{color:var(--red)!important}.text-link{color:var(--green);align-items:center;gap:7px;font-size:13px;font-weight:650;line-height:1.3;transition:gap .18s,color .18s;display:inline-flex}.text-link:hover{color:var(--green-deep);gap:11px}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--ink-soft);background:0 0;border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.icon-btn:hover{background:var(--green-soft);color:var(--green-deep);border-color:#14583f4d}.tag{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;width:fit-content;padding:3px 8px;font-size:9.5px;font-weight:750;line-height:1.5;display:inline-flex}.tag--course{background:var(--green-soft);color:var(--green)}.tag--ds{background:var(--amber-soft);color:var(--amber)}.tag--exam{background:var(--red-soft);color:var(--red)}.tag--neutral{background:var(--paper-deep);color:var(--ink-soft)}.tag--code{background:var(--green-deep);color:var(--paper-soft);letter-spacing:.12em}.count-badge{background:var(--paper-deep);min-width:24px;height:24px;color:var(--ink-soft);font-family:var(--font-sans);vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;margin-left:9px;padding:0 7px;font-size:11px;font-weight:700;display:inline-flex}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label{color:var(--ink-soft);font-size:12.5px;font-weight:650}.form-field label span{color:var(--red)}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:10px 13px;transition:border-color .16s,box-shadow .16s,background .16s}.form-field textarea{resize:vertical;min-height:96px;line-height:1.6}.form-field input::placeholder,.form-field textarea::placeholder{color:#a6a79f}.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:var(--line-strong)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--green);background:#fff;outline:none;box-shadow:0 0 0 3px #14583f1c}.form-field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 18px) calc(50% + 1px),calc(100% - 13px) calc(50% + 1px);background-repeat:no-repeat;background-size:5px 5px;padding-right:34px}.form-field--error input,.form-field--error textarea,.form-field--error select{border-color:var(--red)}.form-field__hint{color:var(--muted-light);font-size:11.5px;line-height:1.45}.form-field__error{color:var(--red);font-size:11.5px;line-height:1.45}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-row--three{grid-template-columns:1fr .7fr .7fr}.form-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:4px;display:flex}.form-actions--start{justify-content:flex-start}.form-error{border-radius:var(--radius-sm);background:var(--red-soft);color:#87342b;border:1px solid #a43c3233;padding:10px 13px;font-size:12.5px;line-height:1.5}.form-success{border-radius:var(--radius-sm);background:var(--green-soft);color:var(--green-deep);border:1px solid #14583f26;padding:10px 13px;font-size:12.5px;line-height:1.5}.form-success--icon{align-items:center;gap:8px;margin-bottom:14px;display:flex}.form-inline-note{color:var(--muted);font-size:12px;line-height:1.5}.form-inline-note a{color:var(--green);text-underline-offset:2px;font-weight:650;text-decoration:underline}.password-field{position:relative}.password-field input{padding-right:44px}.password-field__toggle{width:30px;height:30px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-field__toggle:hover{background:var(--paper-deep);color:var(--ink)}.input-with-icon{position:relative}.input-with-icon>svg{color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-with-icon input{padding-left:36px}.hp-field{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.spinner{border:2px solid #14583f33;border-top-color:var(--green);border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.8s linear infinite spin;display:inline-block}.btn .spinner{border-color:currentColor #ffffff59 #ffffff59}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-loader{min-height:46vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:80px 20px;font-size:13px;display:flex}.state-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);align-items:flex-start;gap:18px;padding:28px;display:flex}.state-card h2{margin-bottom:8px;font-size:25px}.state-card p{color:var(--muted);margin-bottom:18px;font-size:14px}.state-card--error{background:#fdf6f4;border-color:#a43c3233}.state-card__icon{background:var(--red-soft);width:42px;height:42px;color:var(--red);border-radius:50%;flex:0 0 42px;justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:#fffdf98c;flex-direction:column;align-items:center;padding:clamp(44px,6vw,72px) 24px;display:flex}.empty-state--compact{padding:30px 20px}.empty-state__icon{border:1px solid var(--line);background:var(--surface);width:48px;height:48px;color:var(--green);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;display:flex}.empty-state h3{margin-bottom:8px;font-size:24px}.empty-state p{max-width:480px;color:var(--muted);font-size:13.5px;line-height:1.6}.empty-state__action{margin-top:20px}.modal-overlay{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c1b158c;justify-content:center;align-items:center;padding:24px;animation:.18s fade-in;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);background:var(--surface);width:100%;max-width:560px;max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;animation:.2s modal-in;display:flex}.modal--sm{max-width:430px}.modal--lg{max-width:760px}.modal__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px 18px;display:flex}.modal__header h2{letter-spacing:-.02em;font-size:26px}.modal__header p{max-width:480px;color:var(--muted);margin-top:6px;font-size:12.5px;line-height:1.55}.modal__body{padding:22px 24px;overflow-y:auto}.modal__footer{border-top:1px solid var(--line);background:var(--paper-soft);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal__plain-text{color:var(--muted);font-size:13.5px;line-height:1.65}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-region{z-index:200;pointer-events:none;flex-direction:column;gap:10px;width:min(390px,100vw - 32px);display:flex;position:fixed;bottom:22px;right:22px}.toast{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-md);pointer-events:auto;border-radius:10px;align-items:flex-start;gap:10px;padding:13px 14px;font-size:12.5px;line-height:1.5;animation:.22s toast-in;display:flex}.toast p{color:var(--ink-soft);flex:1}.toast>svg{flex-shrink:0;margin-top:1px}.toast--success>svg{color:var(--green)}.toast--error>svg{color:var(--red)}.toast--info>svg{color:var(--blue)}.toast__close{color:var(--muted-light);justify-content:center;align-items:center;display:flex}.toast__close:hover{color:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.avatar{letter-spacing:-.02em;background:var(--green-soft);width:38px;height:38px;color:var(--green);border-radius:50%;flex:0 0 38px;justify-content:center;align-items:center;font-size:11.5px;font-weight:750;display:inline-flex}.avatar--1{background:var(--amber-soft);color:var(--amber)}.avatar--2{background:var(--blue-soft);color:var(--blue)}.avatar--3{background:var(--violet-soft);color:var(--violet)}.live-dot{background:var(--green-bright);border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 0 3px #26775a1f}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=720px){.form-row,.form-row--three{grid-template-columns:1fr}.modal-overlay{align-items:flex-end;padding:12px}.modal{border-radius:var(--radius-lg);max-height:calc(100vh - 24px)}.modal__header{padding:18px 18px 15px}.modal__header h2{font-size:23px}.modal__body{padding:18px}.modal__footer{padding:14px 18px}.form-actions{flex-wrap:wrap}.form-actions .btn{flex:1}.toast-region{bottom:16px;right:16px}}.site-header{z-index:60;-webkit-backdrop-filter:blur(16px)saturate(140%);backdrop-filter:blur(16px)saturate(140%);background:#f6f2e9e6;border-bottom:1px solid #ded7c9cc;position:sticky;top:0}.site-header__inner{min-height:var(--header-height);align-items:center;gap:26px;display:flex}.brand{flex-shrink:0;align-items:center;gap:11px;display:inline-flex}.brand__mark{background:var(--green);border-radius:10px;justify-content:center;align-items:flex-end;gap:3px;width:38px;height:38px;padding:9px;display:flex;box-shadow:inset 0 0 0 1px #ffffff14}.brand__mark span{background:var(--paper-soft);border-radius:2px;width:4px;display:block}.brand__mark span:first-child{background:var(--amber);height:13px}.brand__mark span:nth-child(2){height:19px}.brand__mark span:nth-child(3){opacity:.65;height:15px}.brand__text{flex-direction:column;line-height:1.15;display:flex}.brand__text strong{letter-spacing:-.015em;font-size:14px;font-weight:700}.brand__text small{color:var(--muted);letter-spacing:.055em;text-transform:uppercase;margin-top:3px;font-size:9.5px;font-weight:500}.brand--dark .brand__text strong{color:var(--paper-soft)}.brand--dark .brand__text small{color:#f6f2e98c}.brand--dark .brand__mark{background:var(--paper-soft)}.brand--dark .brand__mark span{background:var(--green-deep)}.brand--dark .brand__mark span:first-child{background:var(--amber)}.site-nav{align-items:center;gap:26px;margin-left:10px;display:flex}.site-nav__link{color:var(--muted);padding:6px 0;font-size:13px;font-weight:550;transition:color .16s;position:relative}.site-nav__link:after{content:"";background:var(--green);transform-origin:0;width:100%;height:1.5px;transition:transform .2s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-nav__link:hover,.site-nav__link.is-active{color:var(--ink)}.site-nav__link.is-active:after{transform:scaleX(1)}.site-header__search{width:min(300px,28vw);margin-left:auto}.site-header__actions{align-items:center;gap:8px;margin-left:auto;display:none}.site-header__mobile-search{width:38px;height:38px}.menu-toggle{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);background:#fffdf999;border-radius:50%;justify-content:center;align-items:center;display:flex}.mobile-menu{inset:var(--header-height) 0 0;z-index:55;background:var(--paper);animation:.2s mobile-menu-in;position:fixed;overflow-y:auto}.mobile-menu__inner{flex-direction:column;padding-top:22px;padding-bottom:50px;display:flex}.mobile-menu__search{margin-bottom:28px}.mobile-menu__nav{flex-direction:column;display:flex}.mobile-menu__link{border-top:1px solid var(--line);font-family:var(--font-display);letter-spacing:-.02em;align-items:baseline;gap:18px;padding:17px 0;font-size:29px;display:flex}.mobile-menu__link span{color:var(--muted-light);font-family:var(--font-sans);letter-spacing:.1em;font-size:10px;font-weight:650}.mobile-menu__link.is-active{color:var(--green)}.mobile-menu__fields{border-top:1px solid var(--line);margin-top:34px;padding-top:26px}.mobile-menu__field{border-bottom:1px solid var(--line);flex-direction:column;gap:3px;padding:14px 0;display:flex}.mobile-menu__field strong{font-family:var(--font-display);font-size:22px;font-weight:500}.mobile-menu__field small{color:var(--muted);font-size:11.5px}.mobile-menu__admin{color:var(--green);margin-top:28px;font-size:12px;font-weight:650}@keyframes mobile-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.search-box{width:100%;position:relative}.search-box form{border:1px solid var(--line);background:var(--surface);min-height:56px;box-shadow:var(--shadow-sm);border-radius:12px;align-items:center;gap:10px;padding:5px 6px 5px 17px;transition:border-color .18s,box-shadow .18s;display:flex}.search-box:focus-within form{border-color:#14583f8c;box-shadow:0 0 0 3px #14583f17}.search-box__icon{color:var(--muted);flex-shrink:0}.search-box input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:14.5px}.search-box input::placeholder{color:#93968e}.search-box input::-webkit-search-cancel-button{display:none}.search-box__clear{width:28px;height:28px;color:var(--muted);border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;display:flex}.search-box__clear:hover{background:var(--paper-deep);color:var(--ink)}.search-box__submit{background:var(--green);height:44px;color:var(--paper-soft);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:0 18px;font-size:12.5px;font-weight:650;transition:background .18s;display:inline-flex}.search-box__submit:hover{background:var(--green-deep)}.search-box--compact form{min-height:38px;box-shadow:none;background:#fffdf9b3;border-radius:999px;padding:2px 8px 2px 12px}.search-box--compact input{font-size:12px}.search-box--compact .search-box__clear{flex-basis:24px;width:24px;height:24px}.search-suggestions{z-index:80;border:1px solid var(--line);background:var(--surface);max-height:410px;box-shadow:var(--shadow-lg);border-radius:12px;padding:7px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.search-suggestions__status{color:var(--muted);align-items:center;gap:8px;padding:15px 12px;font-size:12px;display:flex}.suggestion{border-radius:8px;align-items:center;gap:10px;padding:9px 10px;transition:background .15s;display:flex}.suggestion:hover{background:var(--paper-soft)}.suggestion>svg{color:var(--muted-light);flex-shrink:0;margin-left:auto}.suggestion__icon{background:var(--paper-deep);width:30px;height:30px;color:var(--ink-soft);border-radius:7px;flex:0 0 30px;justify-content:center;align-items:center;display:flex}.suggestion__icon--module{background:var(--green-soft);color:var(--green);font-family:var(--font-display);font-size:14px;font-weight:600}.suggestion__text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.suggestion__text strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.suggestion__text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10.5px;overflow:hidden}.search-suggestions__all{border-top:1px solid var(--line);width:100%;color:var(--green);justify-content:center;align-items:center;gap:6px;margin-top:4px;padding:10px;font-size:11.5px;font-weight:650;display:flex}.search-suggestions__all:hover{background:var(--green-soft)}.hero{background:radial-gradient(circle at 84% 12%, #c47c3b17, transparent 30%), radial-gradient(circle at 12% 86%, #14583f0f, transparent 32%), var(--paper);padding-block:clamp(52px,7vw,92px) clamp(62px,8vw,100px);position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;border:1px solid #14583f17;border-radius:50%;width:620px;height:620px;position:absolute;top:-250px;right:-160px}.hero:after{content:"";pointer-events:none;border:1px solid #14583f0f;border-radius:50%;width:380px;height:380px;position:absolute;top:-130px;right:-40px}.hero__pattern{opacity:.28;pointer-events:none;background-image:linear-gradient(#15241d09 1px,#0000 1px),linear-gradient(90deg,#15241d09 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 78%);mask-image:linear-gradient(#000,#0000 78%)}.hero__inner{z-index:1;grid-template-columns:minmax(0,1.14fr) minmax(320px,.72fr);align-items:center;gap:clamp(38px,6vw,78px);display:grid;position:relative}.hero__content h1{letter-spacing:-.04em;max-width:760px;margin:21px 0 25px;font-size:clamp(3.15rem,6vw,5.25rem);font-weight:480;line-height:.99}.hero__content h1 em{color:var(--green);font-weight:420}.hero__lead{max-width:560px;color:var(--muted);font-size:15.5px;line-height:1.75}.hero__search{max-width:590px;margin-top:31px}.hero__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:24px;margin-top:25px;font-size:11.5px;display:flex}.hero__meta>span{align-items:center;gap:6px;display:inline-flex}.hero__meta strong{color:var(--ink);font-family:var(--font-display);font-size:18px;font-weight:600}.hero__meta-note{gap:8px}.hero__aside{flex-direction:column;gap:14px;display:flex}.hero-card{border-radius:var(--radius-xl);background:radial-gradient(circle at 100% 0, #d99a5b2e, transparent 36%), var(--green-deep);color:var(--paper-soft);padding:clamp(24px,3vw,32px);position:relative;overflow:hidden;box-shadow:0 24px 60px #0e332730}.hero-card:after{content:"";pointer-events:none;border:1px solid #f6f2e91f;border-radius:50%;width:250px;height:250px;position:absolute;bottom:-120px;right:-70px}.hero-card .eyebrow{color:#f6f2e994}.hero-card__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-card__mark{width:34px;height:34px;color:var(--amber);border:1px solid #f6f2e92e;border-radius:50%;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.hero-card h2{color:var(--paper-soft);letter-spacing:-.03em;margin-top:22px;font-size:clamp(2.4rem,4vw,3.3rem);font-weight:450}.hero-card>p{color:#f6f2e994;letter-spacing:.02em;margin-top:4px;font-size:11.5px}.hero-card__semesters{border-top:1px solid #f6f2e91f;flex-direction:column;margin-top:23px;display:flex}.hero-card__semester{color:#f6f2e9cc;border-bottom:1px solid #f6f2e91a;grid-template-columns:30px 1fr auto 14px;align-items:center;gap:9px;padding:11px 0;transition:color .16s,padding .16s;display:grid}.hero-card__semester>span:first-child{color:var(--amber);font-family:var(--font-mono);letter-spacing:.08em;font-size:9.5px}.hero-card__semester-name{font-size:12px;font-weight:550}.hero-card__semester small{color:#f6f2e96b;font-size:10px}.hero-card__semester:hover{color:var(--paper-soft);padding-left:4px}.hero-card__cta{color:var(--paper-soft);justify-content:space-between;align-items:center;gap:12px;padding-top:18px;font-size:12px;font-weight:600;display:flex}.hero-card__cta svg{transition:transform .18s}.hero-card__cta:hover svg{transform:translate(4px)}.hero-card--empty h2{font-size:2.4rem}.hero-note{border:1px solid var(--line);color:var(--muted);background:#fffdf9a6;border-radius:12px;align-items:flex-start;gap:11px;padding:15px 17px;display:flex}.hero-note svg{color:var(--green);flex-shrink:0;margin-top:2px}.hero-note p{font-size:11.5px;line-height:1.55}.hero-note strong{color:var(--ink-soft);font-weight:650}.stats-strip{border-block:1px solid var(--line);background:var(--surface)}.stats-strip__inner{grid-template-columns:repeat(4,1fr);display:grid}.stats-strip__inner>div{border-left:1px solid var(--line);flex-direction:column;gap:1px;padding:23px clamp(16px,3vw,34px);display:flex}.stats-strip__inner>div:first-child{border-left:0;padding-left:0}.stats-strip__inner>div:last-child{padding-right:0}.stats-strip strong{font-family:var(--font-display);letter-spacing:-.03em;font-size:31px;font-weight:500;line-height:1}.stats-strip span{color:var(--muted);letter-spacing:.075em;text-transform:uppercase;margin-top:4px;font-size:10px;font-weight:550}.section-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(28px,4vw,42px);display:flex}.section-heading h2{letter-spacing:-.032em;margin-top:10px;font-size:clamp(2rem,3.5vw,3rem);font-weight:470}.section-heading__description{max-width:570px;color:var(--muted);margin-top:11px;font-size:13.5px;line-height:1.65}.section-heading .text-link{flex-shrink:0;padding-bottom:5px}.section-heading--compact{align-items:center;margin-bottom:25px}.section-heading--compact h2{font-size:clamp(1.9rem,3vw,2.5rem)}.semester-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.semester-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;min-height:230px;padding:21px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.semester-card:hover{box-shadow:var(--shadow-md);border-color:#14583f66;transform:translateY(-4px)}.semester-card__top{color:var(--muted-light);justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.semester-card__number{color:var(--green);font-family:var(--font-display);letter-spacing:-.04em;font-size:42px;font-weight:420;line-height:.9}.semester-card h3{margin-top:19px;font-size:23px;font-weight:520}.semester-card p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:8px;font-size:12px;line-height:1.55;display:-webkit-box;overflow:hidden}.semester-card__meta{border-top:1px solid var(--line);color:var(--muted);letter-spacing:.02em;flex-direction:column;gap:2px;margin-top:auto;padding-top:16px;font-size:10px;display:flex}.semester-card--placeholder{background:0 0;border-style:dashed}.semester-card--placeholder .semester-card__number{color:var(--muted-light)}.home-recent{padding-top:0}.fields-section{background:radial-gradient(circle at 92% 10%, #c47c3b21, transparent 30%), var(--green-deep);color:var(--paper-soft);position:relative;overflow:hidden}.fields-section:before{content:"";border:1px solid #f6f2e914;border-radius:50%;width:440px;height:440px;position:absolute;bottom:-210px;left:-120px}.fields-section .eyebrow{color:#f6f2e98c}.fields-section .section-heading h2{color:var(--paper-soft)}.fields-section .section-heading__description{color:#f6f2e999}.fields-section .text-link{color:var(--paper-soft)}.fields-grid{flex-direction:column;gap:10px;display:flex}.field-card{border-radius:var(--radius-md);background:#ffffff09;border:1px solid #f6f2e921;grid-template-columns:72px 1fr 48px;align-items:center;gap:20px;padding:27px 28px;transition:background .2s,border-color .2s;display:grid}.field-card:hover{background:#fff1;border-color:#f6f2e947}.field-card__index{color:#f6f2e94d;font-family:var(--font-display);letter-spacing:-.03em;font-size:35px;font-weight:400}.field-card__tag{color:var(--amber);letter-spacing:.15em;text-transform:uppercase;font-size:9.5px;font-weight:700}.field-card h3{color:var(--paper-soft);margin-top:5px;font-size:clamp(1.8rem,2.6vw,2.35rem);font-weight:450}.field-card p{color:#f6f2e98c;max-width:700px;margin-top:6px;font-size:12.5px;line-height:1.6}.field-card__meta{color:#f6f2e96b;letter-spacing:.035em;flex-wrap:wrap;gap:19px;margin-top:14px;font-size:10px;font-weight:500;display:flex}.field-card__arrow{width:42px;height:42px;color:var(--paper-soft);border:1px solid #f6f2e929;border-radius:50%;justify-content:center;align-items:center;transition:background .18s,color .18s;display:flex}.field-card:hover .field-card__arrow{background:var(--paper-soft);color:var(--green-deep)}.how-section{background:var(--paper-deep)}.how-grid{border-top:1px solid var(--line-strong);grid-template-columns:1.35fr repeat(3,1fr);gap:0;display:grid}.how-intro{padding:36px 42px 0 0}.how-intro h2{margin-top:12px;font-size:clamp(2.1rem,3.4vw,2.9rem);font-weight:470}.how-intro>p:last-child{max-width:390px;color:var(--muted);margin-top:14px;font-size:13px;line-height:1.7}.how-item{border-left:1px solid var(--line-strong);padding:36px 30px 0}.how-item__icon{border:1px solid var(--line-strong);width:42px;height:42px;color:var(--green);background:#fffdf980;border-radius:50%;justify-content:center;align-items:center;margin-bottom:38px;display:flex}.how-item h3{font-size:22px;font-weight:520}.how-item p{color:var(--muted);margin-top:9px;font-size:12px;line-height:1.65}.cta-band{background:var(--green);color:var(--paper-soft)}.cta-band__inner{justify-content:space-between;align-items:center;gap:30px;padding-block:clamp(38px,5vw,54px);display:flex}.cta-band .eyebrow{color:#f6f2e994}.cta-band h2{color:var(--paper-soft);margin-top:8px;font-size:clamp(2rem,3.4vw,2.9rem);font-weight:450}.site-footer{background:var(--green-deep);color:#f6f2e9bf;padding:68px 0 22px}.site-footer__top{grid-template-columns:1.5fr .65fr .8fr 1fr;gap:clamp(28px,4vw,60px);display:grid}.site-footer__brand p{color:#f6f2e980;max-width:310px;margin-top:20px;font-size:12px;line-height:1.7}.site-footer__column{flex-direction:column;align-items:flex-start;gap:9px;display:flex}.site-footer__column .eyebrow{color:#f6f2e961;margin-bottom:7px}.site-footer__column>a{color:#f6f2e9b8;font-size:12px;transition:color .16s}.site-footer__column>a:hover{color:var(--paper-soft)}.site-footer__column>a span{color:#f6f2e94d;margin-left:8px;font-size:10px}.site-footer__muted{color:#f6f2e96b;font-size:11.5px;line-height:1.6}.site-footer__admin-link{align-items:center;gap:6px;margin-top:4px;font-weight:600;display:inline-flex;color:var(--paper-soft)!important;font-size:11.5px!important}.site-footer__bottom{color:#f6f2e959;letter-spacing:.02em;border-top:1px solid #f6f2e91f;justify-content:space-between;align-items:center;gap:20px;margin-top:56px;padding-top:19px;font-size:10px;display:flex}.breadcrumbs{color:var(--muted);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:28px;font-size:10.5px;font-weight:500;display:flex}.breadcrumbs>a{color:var(--muted-light);align-items:center;display:flex}.breadcrumbs>a:hover,.breadcrumbs__item a:hover{color:var(--green)}.breadcrumbs__item{align-items:center;gap:5px;display:inline-flex}.breadcrumbs__item svg{color:var(--line-strong)}.breadcrumbs__item span[aria-current]{color:var(--ink-soft)}.page-hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 90% 20%, #c47c3b12, transparent 28%), var(--paper-soft);padding-block:42px clamp(42px,5vw,64px)}.page-hero--compact{padding-bottom:clamp(36px,4vw,52px)}.page-hero__grid{grid-template-columns:1.25fr .75fr;align-items:end;gap:40px;display:grid}.page-hero h1{letter-spacing:-.04em;margin-top:12px;font-size:clamp(3rem,5.7vw,5rem);font-weight:450}.page-hero__lead{max-width:520px;color:var(--muted);padding-bottom:5px;font-size:14px;line-height:1.7}.page-hero__meta{justify-content:flex-end;gap:36px;padding-bottom:6px;display:flex}.page-hero__meta>div{flex-direction:column;display:flex}.page-hero__meta strong{font-family:var(--font-display);letter-spacing:-.035em;font-size:40px;font-weight:500;line-height:1}.page-hero__meta span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:9.5px;font-weight:600}.field-list{border-top:1px solid var(--line)}.field-row{border-bottom:1px solid var(--line);grid-template-columns:62px minmax(0,1fr) 260px 108px;align-items:center;gap:24px;padding:30px 12px;transition:background .18s,padding .18s;display:grid}.field-row:hover{background:#fffdf9b8;padding-inline:20px}.field-row__index{color:var(--muted-light);font-family:var(--font-display);letter-spacing:-.03em;font-size:32px}.field-row__tag{color:var(--green);letter-spacing:.13em;text-transform:uppercase;font-size:9.5px;font-weight:700}.field-row h2{margin-top:5px;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:480}.field-row p{max-width:580px;color:var(--muted);margin-top:7px;font-size:12.5px;line-height:1.6}.field-row__stats{gap:26px;display:flex}.field-row__stats>div{flex-direction:column;display:flex}.field-row__stats strong{font-family:var(--font-display);font-size:25px;font-weight:500;line-height:1.1}.field-row__stats span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.field-row__action{color:var(--green);justify-content:flex-end;align-items:center;gap:6px;font-size:12px;font-weight:650;display:flex}.field-row__action svg{transition:transform .18s}.field-row:hover .field-row__action svg{transform:translate(4px)}.mini-cta{border-top:1px solid var(--line);background:var(--surface);padding-block:26px}.mini-cta__inner{justify-content:space-between;align-items:center;gap:20px;display:flex}.mini-cta p{color:var(--muted);font-size:13px}.field-hero{border-bottom:1px solid var(--line);background:var(--paper-soft);padding-block:40px clamp(55px,7vw,85px);position:relative;overflow:hidden}.field-hero__wash{pointer-events:none;background:radial-gradient(at 75% 20%,#14583f14,#0000 40%),radial-gradient(at 100% 100%,#c47c3b1a,#0000 35%);position:absolute;inset:0}.field-hero__inner{position:relative}.field-hero__grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:60px;display:grid}.field-hero h1{letter-spacing:-.055em;margin-top:12px;font-size:clamp(4.2rem,11vw,8.2rem);font-weight:430;line-height:.88}.field-hero__description{max-width:680px;color:var(--muted);margin-top:24px;font-size:15px;line-height:1.75}.field-hero__actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.field-hero__stats{gap:38px;padding-bottom:8px;display:flex}.field-hero__stats>div{flex-direction:column;display:flex}.field-hero__stat-value{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(2.6rem,4vw,3.5rem);font-weight:450;line-height:1}.field-hero__stats>div>span:last-child{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:5px;font-size:9px;font-weight:600}.semester-list{border-top:1px solid var(--line)}.semester-row{border-bottom:1px solid var(--line);grid-template-columns:66px minmax(0,1fr) auto 100px;align-items:center;gap:26px;padding:27px 10px;transition:background .18s,padding .18s;display:grid}.semester-row:hover{background:var(--surface);padding-inline:20px}.semester-row__number{color:var(--green);font-family:var(--font-display);letter-spacing:-.04em;font-size:34px;font-weight:430}.semester-row h3{font-size:26px;font-weight:500}.semester-row p{max-width:600px;color:var(--muted);margin-top:4px;font-size:12px;line-height:1.55}.semester-row__meta{color:var(--muted);flex-direction:column;gap:6px;font-size:11px;display:flex}.semester-row__meta span{align-items:center;gap:6px;display:flex}.semester-row__action{color:var(--green);justify-content:flex-end;align-items:center;gap:6px;font-size:12px;font-weight:650;display:flex}.semester-row__action svg{transition:transform .18s}.semester-row:hover .semester-row__action svg{transform:translate(2px,-2px)}.semester-tabs{border:1px solid var(--line);background:var(--paper-deep);scrollbar-width:none;border-radius:13px;gap:5px;margin-top:30px;padding:6px;display:flex;overflow-x:auto}.semester-tabs::-webkit-scrollbar{display:none}.semester-tab{min-width:155px;color:var(--muted);border:1px solid #0000;border-radius:8px;flex:1;grid-template-columns:auto 1fr;align-items:center;gap:1px 9px;padding:11px 14px;transition:background .18s,color .18s,border-color .18s;display:grid}.semester-tab__number{color:var(--muted-light);font-family:var(--font-mono);letter-spacing:.06em;grid-row:span 2;font-size:9px}.semester-tab__label{white-space:nowrap;font-size:12.5px;font-weight:600}.semester-tab__count{color:var(--muted-light);font-size:9.5px}.semester-tab:hover{color:var(--ink)}.semester-tab.is-active{border-color:var(--line);background:var(--surface);color:var(--green-deep);box-shadow:var(--shadow-sm)}.semester-tab.is-active .semester-tab__number{color:var(--green)}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.module-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;min-height:235px;padding:22px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.module-card:hover{box-shadow:var(--shadow-md);border-color:#14583f66;transform:translateY(-3px)}.module-card__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.module-card__code{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;border-radius:5px;padding:3px 7px;font-size:9px;font-weight:600;display:inline-flex}.module-card__arrow{color:var(--muted-light);opacity:0;transition:opacity .18s,transform .18s;transform:translate(-3px,3px)}.module-card:hover .module-card__arrow{opacity:1;transform:translate(0)}.module-card h3{margin-top:17px;font-size:23px;font-weight:520;line-height:1.12}.module-card__description{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:9px;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.module-card__footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:12px;margin-top:auto;padding-top:17px;display:flex}.module-card__doc-count{color:var(--ink-soft);align-items:center;gap:5px;font-size:10.5px;font-weight:600;display:flex}.module-card__doc-count svg{color:var(--green)}.module-card__breakdown{color:var(--muted-light);text-align:right;font-size:9.5px}.module-hero{border-bottom:1px solid var(--line);background:var(--paper-soft);padding-block:38px clamp(40px,5vw,58px)}.module-hero__grid{grid-template-columns:minmax(0,1fr) 305px;align-items:start;gap:clamp(36px,5vw,68px);display:grid}.module-hero__tags{flex-wrap:wrap;gap:6px;display:flex}.module-hero h1{letter-spacing:-.045em;max-width:820px;margin-top:18px;font-size:clamp(2.8rem,5.2vw,4.6rem);font-weight:450;line-height:1}.module-hero__description{max-width:720px;color:var(--muted);margin-top:19px;font-size:14.5px;line-height:1.72}.module-hero__quick-meta{color:var(--muted);flex-wrap:wrap;gap:19px;margin-top:21px;font-size:11px;display:flex}.module-hero__quick-meta span{align-items:center;gap:6px;display:flex}.module-hero__quick-meta svg{color:var(--green)}.module-summary{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);padding:23px}.module-summary dl{flex-direction:column;margin-top:12px;display:flex}.module-summary dl>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:18px;padding:9px 0;display:flex}.module-summary dt{color:var(--muted);font-size:10.5px}.module-summary dd{color:var(--ink-soft);text-align:right;font-size:11.5px;font-weight:600}.module-summary__link{color:var(--green);align-items:center;gap:7px;margin-top:13px;font-size:11px;font-weight:600;display:flex}.module-summary__link:hover{color:var(--green-deep)}.module-content{grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:clamp(36px,5vw,64px);padding-block:46px 100px;display:grid}.module-content__main{min-width:0}.docs-section{scroll-margin-top:calc(var(--header-height) + 20px);margin-bottom:48px}.docs-section__heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-bottom:16px;display:flex}.docs-section__title{align-items:center;gap:13px;display:flex}.docs-section__icon{background:var(--green-soft);width:41px;height:41px;color:var(--green);border-radius:10px;flex:0 0 41px;justify-content:center;align-items:center;display:flex}.docs-section__icon--exam{background:var(--red-soft);color:var(--red)}.docs-section h2{font-size:24px;font-weight:520}.docs-section__title p{color:var(--muted);margin-top:3px;font-size:11px}.docs-section__empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--muted);text-align:center;margin-top:16px;padding:22px;font-size:12px}.document-list{flex-direction:column;gap:8px;margin-top:15px;display:flex}.doc-row{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:15px;padding:15px 16px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid}.doc-row:hover{box-shadow:var(--shadow-sm);border-color:#14583f59;transform:translateY(-1px)}.doc-row__icon{background:var(--green-soft);width:42px;height:50px;color:var(--green);border-radius:7px;justify-content:center;align-items:center;display:flex}.doc-row__icon span{font-family:var(--font-mono);letter-spacing:.04em;font-size:8.5px;font-weight:700}.doc-row__icon--ds{background:var(--amber-soft);color:var(--amber)}.doc-row__icon--exam{background:var(--red-soft);color:var(--red)}.doc-row__main{min-width:0}.doc-row__heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.doc-row__title{overflow-wrap:anywhere;font-size:13.5px;font-weight:650;line-height:1.4;transition:color .15s}.doc-row__title:hover{color:var(--green)}.doc-row__description{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:11.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.doc-row__meta{color:var(--muted-light);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:9.5px;display:flex}.doc-row__meta span+span:before{content:"·";color:var(--line-strong);margin-right:12px}.doc-row__actions{align-items:center;gap:7px;display:flex}.doc-row__preview{border:1px solid var(--line)}.doc-row__chevron{display:none}.module-aside{top:calc(var(--header-height) + 24px);flex-direction:column;gap:13px;display:flex;position:sticky}.aside-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:21px}.aside-nav{flex-direction:column;margin-top:12px;display:flex}.aside-nav a{border-top:1px solid var(--line);color:var(--ink-soft);align-items:center;gap:8px;padding:9px 0;font-size:11px;font-weight:550;transition:color .15s;display:flex}.aside-nav a:hover{color:var(--green)}.aside-nav a span{color:var(--muted-light);margin-left:auto;font-size:9.5px}.aside-card--tip{background:var(--green-deep);border-color:var(--green-deep);color:#f6f2e9b8}.aside-card--tip .eyebrow{color:#f6f2e966}.aside-card--tip>p:not(.eyebrow){margin-top:11px;font-size:11.5px;line-height:1.65}.aside-card--tip .text-link{color:var(--paper-soft);margin-top:15px;font-size:11px}.comments{border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-height) + 20px);margin-top:58px;padding-top:42px}.comments__layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px;display:grid}.comments__list{flex-direction:column;gap:4px;display:flex}.comments__empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--muted);align-items:flex-start;gap:10px;padding:22px;font-size:12px;line-height:1.6;display:flex}.comments__empty svg{color:var(--muted-light);flex-shrink:0}.comment{border-bottom:1px solid var(--line);gap:12px;padding:16px 0;display:flex}.comment__main{min-width:0}.comment__head{flex-wrap:wrap;align-items:baseline;gap:9px;display:flex}.comment__head strong{font-size:12.5px;font-weight:650}.comment__head span{color:var(--muted-light);font-size:9.5px}.comment__main p{color:var(--ink-soft);overflow-wrap:anywhere;margin-top:4px;font-size:12.5px;line-height:1.65}.comment-form-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:22px}.comment-form-card__heading{align-items:flex-start;gap:11px;margin-bottom:18px;display:flex}.comment-form-card__icon{background:var(--green-soft);width:34px;height:34px;color:var(--green);border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;display:flex}.comment-form-card h3{font-size:20px;font-weight:520}.comment-form-card__heading p{color:var(--muted);margin-top:3px;font-size:10.5px;line-height:1.5}.comment-form-card form{flex-direction:column;gap:13px;display:flex}.comment-form-card .form-field__hint{text-align:right}.comment-form-card__success{background:var(--green-soft);color:var(--green-deep);border:1px solid #14583f29;border-radius:8px;align-items:flex-start;gap:8px;margin-bottom:15px;padding:11px 12px;font-size:11.5px;line-height:1.5;display:flex}.comment-form-card__success svg{flex-shrink:0}.search-hero{border-bottom:1px solid var(--line);background:var(--paper-soft);padding-block:40px 48px}.search-hero h1{letter-spacing:-.04em;margin-top:12px;font-size:clamp(2.8rem,5.3vw,4.6rem);font-weight:450}.search-hero__box{max-width:760px;margin-top:27px}.search-hero__hint{color:var(--muted);margin-top:12px;font-size:11.5px}.search-hero__hint strong{color:var(--ink-soft);font-weight:600}.search-start{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(30px,6vw,80px);padding:10px 0;display:grid}.search-start__icon{border:1px solid var(--line);width:50px;height:50px;color:var(--green);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;margin-bottom:18px;display:flex}.search-start h2{font-size:clamp(2rem,3.2vw,2.7rem);font-weight:470}.search-start p{max-width:480px;color:var(--muted);margin-top:12px;font-size:13px;line-height:1.7}.search-start__fields{border-top:1px solid var(--line)}.search-start__field{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:19px 4px;transition:padding .18s,color .18s;display:flex}.search-start__field:hover{color:var(--green);padding-inline:12px}.search-start__field div{flex-direction:column;display:flex}.search-start__field strong{font-family:var(--font-display);font-size:22px;font-weight:500}.search-start__field span{color:var(--muted);font-size:10.5px}.search-loading{min-height:200px;color:var(--muted);justify-content:center;align-items:center;gap:12px;font-size:12.5px;display:flex}.search-results__count{border-bottom:1px solid var(--line);color:var(--muted);padding-bottom:19px;font-size:12px}.search-results__count strong{color:var(--ink);font-family:var(--font-display);font-size:22px;font-weight:550}.search-group{margin-top:40px}.search-group__heading{align-items:center;gap:9px;margin-bottom:16px;display:flex}.search-group__heading h2{font-size:26px;font-weight:500}.search-group__heading span{background:var(--paper-deep);min-width:22px;height:22px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:10px;font-weight:700;display:inline-flex}.module-grid--search{grid-template-columns:repeat(3,minmax(0,1fr))}.search-module{flex-direction:column;display:flex}.search-module__context{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;padding-left:2px;font-size:9.5px;font-weight:600}.search-module .module-card{flex:1}.search-note{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);align-items:flex-start;gap:9px;margin-top:30px;padding:15px 17px;font-size:11.5px;line-height:1.55;display:flex}.search-note svg{color:var(--green);flex-shrink:0}.document-page{padding-block:34px 80px}.document-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:30px;padding-bottom:22px;display:flex}.document-toolbar__back{color:var(--muted);align-items:center;gap:6px;margin-bottom:14px;font-size:11px;font-weight:550;display:inline-flex}.document-toolbar__back:hover{color:var(--green)}.document-toolbar__title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.document-toolbar h1{letter-spacing:-.03em;font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:480}.document-toolbar__meta{color:var(--muted);margin-top:7px;font-size:10.5px}.document-toolbar__actions{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}.document-description{max-width:760px;color:var(--muted);margin-top:18px;font-size:13px;line-height:1.65}.pdf-frame{border:1px solid var(--line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#d8d5cd;margin-top:24px;overflow:hidden}.pdf-frame__top{border-bottom:1px solid var(--line-strong);background:var(--paper-deep);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:9px 14px;font-size:10px;display:flex}.pdf-frame__top span{align-items:center;gap:6px;display:flex}.pdf-frame__filename{text-overflow:ellipsis;white-space:nowrap;max-width:50%;overflow:hidden}.pdf-frame__viewer{background:#d8d5cd;border:0;width:100%;height:calc(100vh - 285px);min-height:520px;display:block}.document-footer{color:var(--muted);justify-content:space-between;align-items:center;gap:24px;margin-top:16px;font-size:11px;display:flex}.document-footer a:not(.text-link){color:var(--green);text-underline-offset:2px;font-weight:600;text-decoration:underline}.not-found{align-items:center;min-height:60vh;padding-block:80px;display:flex}.not-found__inner{text-align:center;max-width:620px;margin:0 auto}.not-found__code{color:var(--line-strong);font-family:var(--font-display);letter-spacing:-.06em;font-size:clamp(5rem,12vw,9rem);font-weight:400;line-height:.8;display:block}.not-found__icon{border:1px solid var(--line);background:var(--surface);width:48px;height:48px;color:var(--green);border-radius:50%;justify-content:center;align-items:center;margin:-4px auto 20px;display:flex}.not-found h1{font-size:clamp(2.3rem,4vw,3.2rem);font-weight:470}.not-found p{max-width:480px;color:var(--muted);margin:13px auto 0;font-size:13.5px;line-height:1.7}.not-found__actions{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:25px;display:flex}@media (width<=1100px){.site-nav{gap:19px}.site-header__search{width:min(260px,26vw)}.semester-grid,.module-grid,.module-grid--search{grid-template-columns:repeat(2,minmax(0,1fr))}.how-grid{grid-template-columns:1.2fr repeat(3,1fr)}.how-item{padding-inline:20px}.field-row{grid-template-columns:52px minmax(0,1fr) 210px}.field-row__action{display:none}}@media (width<=900px){.site-nav,.site-header__search{display:none}.site-header__actions{display:flex}.hero__inner{grid-template-columns:1fr;gap:38px}.hero__content h1{max-width:680px}.hero__aside{grid-template-columns:1fr .65fr;align-items:stretch;display:grid}.hero-card__semesters{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.hero-note{align-self:start}.page-hero__grid,.field-hero__grid{grid-template-columns:1fr;gap:24px}.page-hero__meta{justify-content:flex-start}.field-hero__stats{padding-bottom:0}.field-row{grid-template-columns:48px minmax(0,1fr);gap:18px}.field-row__stats{grid-column:2;margin-top:4px}.semester-row{grid-template-columns:56px minmax(0,1fr) 80px}.semester-row__meta{display:none}.module-hero__grid{grid-template-columns:1fr}.module-summary{max-width:430px}.module-content{grid-template-columns:1fr;padding-bottom:70px}.module-aside{display:none}.comments__layout{grid-template-columns:1fr}.comment-form-card{max-width:560px}.site-footer__top{grid-template-columns:1fr 1fr}.site-footer__brand{grid-column:span 2}.how-grid{grid-template-columns:1fr 1fr}.how-intro{grid-column:span 2;padding-right:0}.how-item{border-top:1px solid var(--line-strong);padding:28px 22px}.how-item:nth-child(2){border-left:0}.how-item__icon{margin-bottom:24px}.search-start{grid-template-columns:1fr}.document-toolbar{flex-direction:column;align-items:flex-start;gap:18px}}@media (width<=720px){:root{--header-height:68px}.brand__mark{width:35px;height:35px;padding:8px}.brand__text strong{font-size:13px}.brand__text small{font-size:8.5px}.hero{padding-top:44px}.hero__content h1{font-size:clamp(2.75rem,11vw,4rem)}.hero__lead{font-size:14px}.hero__search .search-box form{min-height:52px}.search-box__submit{justify-content:center;width:44px;padding:0;font-size:0}.hero__aside,.hero-card__semesters{display:flex}.hero-note{align-self:auto}.stats-strip__inner{grid-template-columns:1fr 1fr}.stats-strip__inner>div{border-bottom:1px solid var(--line);padding:17px 20px}.stats-strip__inner>div:first-child{padding-left:20px}.stats-strip__inner>div:nth-child(2){border-right:0}.stats-strip__inner>div:nth-child(3),.stats-strip__inner>div:nth-child(4){border-bottom:0}.section-heading{flex-direction:column;align-items:flex-start;gap:16px}.section-heading .text-link{padding-bottom:0}.semester-grid{grid-template-columns:1fr}.semester-card{min-height:0}.semester-card__meta{flex-direction:row;justify-content:space-between;gap:12px}.field-card{grid-template-columns:1fr 40px;gap:14px;padding:22px}.field-card__index{display:none}.field-card p{font-size:12px}.how-grid{grid-template-columns:1fr}.how-intro{grid-column:auto}.how-item{border-left:0;border-top:1px solid var(--line-strong);padding-inline:0}.how-item__icon{margin-bottom:18px}.cta-band__inner{flex-direction:column;align-items:flex-start}.site-footer{padding-top:50px}.site-footer__top{grid-template-columns:1fr}.site-footer__brand{grid-column:auto}.site-footer__column--admin{border-top:1px solid #f6f2e91f;padding-top:12px}.site-footer__bottom{flex-direction:column;align-items:flex-start;gap:5px;margin-top:38px}.page-hero h1{font-size:clamp(2.6rem,10vw,3.8rem)}.field-hero h1{font-size:clamp(3.6rem,18vw,5.5rem)}.field-hero__stats{gap:28px}.field-hero__actions{flex-direction:column;align-items:stretch}.field-hero__actions .btn{width:100%}.field-row{grid-template-columns:1fr;padding-inline:4px}.field-row:hover{padding-inline:4px}.field-row__index{display:none}.field-row__stats{grid-column:auto;gap:30px}.field-row__action{display:none}.semester-row{grid-template-columns:45px minmax(0,1fr);gap:14px;padding-inline:4px}.semester-row:hover{padding-inline:4px}.semester-row__action{display:none}.semester-row__number{font-size:27px}.semester-row h3{font-size:22px}.module-grid,.module-grid--search{grid-template-columns:1fr}.module-card{min-height:0}.module-hero h1{font-size:clamp(2.4rem,9vw,3.4rem)}.module-hero__description{font-size:13.5px}.module-summary{max-width:none}.doc-row{grid-template-columns:38px minmax(0,1fr);align-items:start;padding:14px}.doc-row__icon{width:37px;height:44px}.doc-row__actions{grid-column:2;justify-content:flex-start;margin-top:2px}.doc-row__preview{font-size:11.5px}.docs-section h2{font-size:21px}.docs-section__title p{display:none}.comments{margin-top:40px;padding-top:32px}.document-footer{flex-direction:column;align-items:flex-start;gap:10px}.pdf-frame__viewer{height:64vh;min-height:400px}.pdf-frame__filename{display:none}.mini-cta__inner{flex-direction:column;align-items:flex-start;gap:10px}.search-hero h1{font-size:clamp(2.4rem,9vw,3.4rem)}.document-toolbar__actions{width:100%}.document-toolbar__actions .btn{flex:1}}@media (width<=480px){.hero__meta{gap:14px}.hero__meta-note{width:100%}.stats-strip strong{font-size:26px}.breadcrumbs{margin-bottom:20px}.page-hero{padding-top:32px}.page-hero__meta{gap:26px}.field-row__stats{justify-content:space-between}.module-card{padding:19px}.doc-row__meta span:nth-child(2),.doc-row__meta span:nth-child(2):before{display:none}.field-card__meta{gap:12px}.site-footer__bottom{font-size:9px}}.admin-boot{background:var(--paper);min-height:100vh;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px 24px;font-size:13.5px;display:flex}.admin-shell{background:var(--paper);grid-template-columns:268px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{z-index:60;color:#faf7f0b8;scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;background:radial-gradient(circle at 12% 0,#ffffff12,#0000 38%),linear-gradient(#103c2d 0%,#0e3327 100%);flex-direction:column;height:100vh;padding:22px 16px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.admin-sidebar::-webkit-scrollbar{width:6px}.admin-sidebar::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.admin-sidebar__brand{justify-content:space-between;align-items:flex-start;gap:10px;padding:4px 6px 24px;display:flex}.admin-brand{color:#fbf7ec;align-items:center;gap:11px;display:flex}.admin-brand>span:last-child{flex-direction:column;gap:1px;line-height:1.25;display:flex}.admin-brand strong{font-family:var(--font-display);letter-spacing:-.015em;font-size:16.5px;font-weight:550}.admin-brand small{color:#faf7f07a;letter-spacing:.16em;text-transform:uppercase;font-size:9.5px;font-weight:650}.admin-brand__mark,.login-mark{background:#ffffff0f;border:1px solid #ffffff29;border-radius:10px;flex:0 0 36px;justify-content:center;align-items:flex-end;gap:3px;width:36px;height:36px;padding:8px;display:flex}.admin-brand__mark span,.login-mark span{background:#f3d9b8;border-radius:999px;width:3px;display:block}.admin-brand__mark span:first-child,.login-mark span:first-child{opacity:.55;height:9px}.admin-brand__mark span:nth-child(2),.login-mark span:nth-child(2){opacity:.8;height:16px}.admin-brand__mark span:nth-child(3),.login-mark span:nth-child(3){background:#fff8ec;height:12px}.admin-sidebar__close{color:#ffffffbf;border-color:#ffffff29;flex-basis:32px;width:32px;height:32px;display:none}.admin-sidebar__close:hover{color:#fff;background:#ffffff14;border-color:#ffffff4d}.admin-sidebar__label{color:#faf7f05c;letter-spacing:.18em;text-transform:uppercase;padding:16px 12px 7px;font-size:9.5px;font-weight:700}.admin-nav{flex-direction:column;gap:3px;display:flex}.admin-nav__link{color:#faf7f0b8;border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-size:13px;font-weight:550;line-height:1.35;transition:background .16s,color .16s;display:flex}.admin-nav__link svg{opacity:.72;flex-shrink:0}.admin-nav__link:hover{color:#fffdf8;background:#ffffff12}.admin-nav__link.is-active{color:#fffdf8;background:#ffffff1c;box-shadow:inset 0 0 0 1px #ffffff12}.admin-nav__link.is-active svg{color:#f3d9b8;opacity:1}.admin-nav__badge{color:#3c2712;background:#e4b678;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:10.5px;font-weight:750;line-height:1;display:inline-flex}.admin-sidebar__footer{margin-top:auto;padding-top:22px}.admin-user{border-top:1px solid #ffffff1a;align-items:center;gap:10px;padding:12px 10px;display:flex}.admin-user__avatar{color:#f3d9b8;background:#f3d9b829;border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;font-size:12.5px;font-weight:750;display:flex}.admin-user>div{flex-direction:column;min-width:0;line-height:1.3;display:flex}.admin-user strong{color:#fffdf8f0;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.admin-user small{color:#faf7f070;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.admin-logout{color:#faf7f08f;border-radius:7px;align-items:center;gap:8px;width:100%;margin-top:4px;padding:8px 10px;font-size:11.5px;font-weight:550;transition:background .16s,color .16s;display:flex}.admin-logout:hover{color:#f7d9cf;background:#ffffff12}.admin-sidebar-overlay{display:none}.admin-main{flex-direction:column;min-width:0;display:flex}.admin-topbar{z-index:45;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f6f2e9e6;justify-content:space-between;align-items:center;gap:20px;min-height:62px;padding:0 clamp(20px,3vw,36px);display:flex;position:sticky;top:0}.admin-topbar__left,.admin-topbar__right{align-items:center;gap:12px;min-width:0;display:flex}.admin-topbar__security{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:10.5px;font-weight:650;display:inline-flex}.admin-topbar__security svg{color:var(--green)}.admin-topbar__site{color:var(--green);align-items:center;gap:5px;font-size:11.5px;font-weight:650;display:inline-flex}.admin-topbar__site:hover{color:var(--green-deep);text-underline-offset:3px;text-decoration:underline}.admin-topbar__sep{background:var(--line-strong);width:1px;height:18px}.admin-topbar__name{max-width:180px;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.admin-topbar__avatar{background:var(--green-soft);width:30px;height:30px;color:var(--green);border-radius:50%;flex:0 0 30px;justify-content:center;align-items:center;font-size:11px;font-weight:750;display:flex}.admin-menu-button{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--ink-soft);border-radius:8px;justify-content:center;align-items:center;display:none}.admin-menu-button:hover{border-color:var(--line-strong);background:#fff}.admin-content{width:100%;max-width:1480px;margin:0 auto;padding:clamp(22px,3vw,38px) clamp(20px,3vw,36px) 64px}.admin-page{flex-direction:column;gap:22px;animation:.28s both admin-page-in;display:flex}@keyframes admin-page-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.admin-page-header{justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:4px;display:flex}.admin-page-header>div:first-child{min-width:0}.admin-page-header .eyebrow{margin-bottom:8px}.admin-page-header h1{letter-spacing:-.03em;font-size:clamp(29px,3.4vw,39px);line-height:1.05}.admin-page-header h1+p{max-width:660px;color:var(--muted);margin-top:9px;font-size:13px;line-height:1.6}.admin-page-header__actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.back-link{width:fit-content;color:var(--muted);align-items:center;gap:6px;font-size:11.5px;font-weight:650;transition:color .16s,gap .16s;display:inline-flex}.back-link:hover{color:var(--green);gap:9px}.admin-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.admin-panel__header{border-bottom:1px solid var(--line);background:#faf7f080;justify-content:space-between;align-items:center;gap:20px;min-height:62px;padding:15px 20px;display:flex}.admin-panel__header>div:first-child{min-width:0}.admin-panel__header h2{letter-spacing:-.02em;font-size:19px}.admin-panel__header p{color:var(--muted);margin-top:3px;font-size:11.5px;line-height:1.5}.admin-panel__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-panel__body{padding:20px}.admin-panel__body>.admin-table-wrap:first-child{width:calc(100% + 40px);margin:-20px}.admin-panel__body>.admin-loading:only-child,.admin-panel__body>.admin-empty:only-child{min-height:220px}.admin-grid{align-items:start;gap:20px;display:grid}.admin-grid--main{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}.admin-grid--docs{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.admin-grid--account{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-height:138px;box-shadow:var(--shadow-sm);flex-direction:column;padding:16px 17px 15px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--stat-wash,#14583f0d);pointer-events:none;border-radius:50%;width:118px;height:118px;position:absolute;bottom:-42px;right:-32px}.stat-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card__top{justify-content:space-between;align-items:center;margin-bottom:auto;display:flex}.stat-card__icon{background:var(--stat-soft,var(--green-soft));width:36px;height:36px;color:var(--stat-ink,var(--green));border-radius:9px;justify-content:center;align-items:center;display:flex}.stat-card__arrow{color:var(--muted-light);transition:transform .2s,color .2s}.stat-card:hover .stat-card__arrow{color:var(--stat-ink,var(--green));transform:translate(2px,-2px)}.stat-card strong{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);margin-top:16px;font-size:34px;font-weight:500;line-height:1}.stat-card>span:last-child{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:5px;font-size:11px;font-weight:650}.stat-card--green{--stat-soft:var(--green-soft);--stat-ink:var(--green);--stat-wash:#14583f0f}.stat-card--sand{--stat-soft:var(--amber-soft);--stat-ink:var(--amber);--stat-wash:#b9743412}.stat-card--blue{--stat-soft:var(--blue-soft);--stat-ink:var(--blue);--stat-wash:#3f678212}.stat-card--violet{--stat-soft:var(--violet-soft);--stat-ink:var(--violet);--stat-wash:#67598212}.admin-table-wrap{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;width:100%;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%;min-width:720px;font-size:12.5px}.admin-table th{border-bottom:1px solid var(--line);background:var(--paper-soft);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding:11px 16px;font-size:9.5px;font-weight:750}.admin-table td{color:var(--ink-soft);vertical-align:middle;border-bottom:1px solid #ded7c9b8;padding:13px 16px;line-height:1.45}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background .14s}.admin-table tbody tr:hover{background:#faf7f0bf}.admin-table td>strong{max-width:340px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:650;display:block;overflow:hidden}.admin-table__sub{max-width:340px;color:var(--muted-light);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10.5px;line-height:1.4;display:block;overflow:hidden}.admin-table__sub--clamp{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.admin-table__actions{text-align:right;white-space:nowrap}.admin-table__actions>*{vertical-align:middle;margin-left:2px}.admin-table__actions .btn{padding-inline:9px}.admin-table__actions .icon-btn{flex-basis:32px;width:32px;height:32px}.table-link{color:var(--green);font-size:11.5px;font-weight:650}.table-link:hover{text-underline-offset:3px;text-decoration:underline}.code-pill{border:1px solid var(--line);background:var(--paper-soft);max-width:180px;color:var(--ink-soft);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:10.5px;display:inline-block;overflow:hidden}.doc-count{color:var(--ink);align-items:center;gap:5px;font-size:12px;font-weight:650;display:inline-flex}.doc-count svg{color:var(--muted-light)}.table-filters{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.table-search{border:1px solid var(--line);background:var(--surface);min-width:200px;height:34px;color:var(--muted-light);border-radius:7px;align-items:center;gap:7px;padding:0 11px;transition:border-color .16s,box-shadow .16s;display:flex}.table-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #14583f1a}.table-search svg{flex-shrink:0}.table-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:none;outline:none;font-size:12px}.table-search input::placeholder{color:var(--muted-light)}.filter-select{border:1px solid var(--line);background:var(--surface);border-radius:7px;align-items:center;gap:7px;height:34px;padding:0 10px;display:inline-flex}.filter-select>span{color:var(--muted-light);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;font-size:9.5px;font-weight:700}.filter-select select{max-width:190px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;outline:none;font-size:11.5px;font-weight:600}.filter-select:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #14583f1a}.status{letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:9.5px;font-weight:750;line-height:1.5;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.status--pending{background:var(--amber-soft);color:var(--amber)}.status--approved{background:var(--green-soft);color:var(--green)}.status--rejected{background:var(--red-soft);color:var(--red)}.pending-list{flex-direction:column;display:flex}.pending-item{border-bottom:1px solid var(--line);padding:15px 0}.pending-item:first-child{padding-top:0}.pending-item:last-child{border-bottom:none;padding-bottom:0}.pending-item__head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.pending-item__head>div{min-width:0}.pending-item__head strong{color:var(--ink);font-size:12.5px;font-weight:650;display:block}.pending-item__head span:not(.status){color:var(--muted-light);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10.5px;display:block;overflow:hidden}.pending-item__body{border-left:2px solid var(--line-strong);background:var(--paper-soft);color:var(--ink-soft);overflow-wrap:anywhere;margin-top:9px;padding:9px 12px;font-size:12px;line-height:1.6}.pending-item__foot{justify-content:space-between;align-items:center;gap:12px;margin-top:9px;display:flex}.pending-item__foot>span{color:var(--muted-light);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.pending-item__actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.pending-item__actions .btn{color:var(--muted);padding-inline:9px}.pending-item__actions .btn:hover{color:var(--green)}.quick-actions{flex-direction:column;display:flex}.quick-actions>a{border-bottom:1px solid var(--line);color:var(--ink-soft);align-items:center;gap:11px;padding:11px 0;transition:color .16s;display:flex}.quick-actions>a:first-child{padding-top:0}.quick-actions>a:last-of-type{border-bottom:none}.quick-actions>a>span{background:var(--paper-deep);width:34px;height:34px;color:var(--green);border-radius:8px;flex:0 0 34px;justify-content:center;align-items:center;transition:background .16s;display:flex}.quick-actions>a>div{flex:1;min-width:0}.quick-actions strong{color:var(--ink);font-size:12px;font-weight:650;display:block}.quick-actions small{color:var(--muted-light);margin-top:1px;font-size:10.5px;display:block}.quick-actions>a>svg{color:var(--muted-light);flex-shrink:0;transition:transform .16s,color .16s}.quick-actions>a:hover{color:var(--green)}.quick-actions>a:hover>span{background:var(--green-soft)}.quick-actions>a:hover>svg{color:var(--green);transform:translate(2px)}.quick-note{background:var(--green-soft);border-radius:8px;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 13px;display:flex}.quick-note .live-dot{flex-shrink:0;margin-top:6px}.quick-note p{color:var(--green-deep);font-size:11px;line-height:1.55}.admin-loading{min-height:170px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px 20px;font-size:11.5px;display:flex}.admin-loading svg{color:var(--green)}.admin-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.admin-empty>span{border:1px solid var(--line);background:var(--paper-soft);width:44px;height:44px;color:var(--green);border-radius:50%;justify-content:center;align-items:center;margin-bottom:13px;display:flex}.admin-empty h3{letter-spacing:-.015em;font-size:19px}.admin-empty p{max-width:420px;color:var(--muted);margin-top:5px;font-size:11.5px;line-height:1.6}.admin-inline-error{color:var(--red);padding:18px 4px;font-size:12px}.admin-error{border-radius:var(--radius-md);background:#fdf6f4;border:1px solid #a43c3233;flex-direction:column;align-items:flex-start;gap:10px;max-width:520px;margin:8vh auto 0;padding:30px;display:flex}.admin-error h1{font-size:27px}.admin-error p{color:var(--muted);margin-bottom:8px;font-size:13px}.admin-detail-list{flex-direction:column;display:flex}.admin-detail-list>div{border-bottom:1px solid #ded7c9a6;grid-template-columns:118px minmax(0,1fr);gap:12px;padding:8px 0;display:grid}.admin-detail-list>div:first-child{padding-top:0}.admin-detail-list>div:last-child{border-bottom:none}.admin-detail-list dt{color:var(--muted-light);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:650}.admin-detail-list dd{color:var(--ink);overflow-wrap:anywhere;font-size:12.5px;font-weight:550}.admin-detail-note{border-top:1px solid var(--line);color:var(--muted);margin-top:13px;padding-top:13px;font-size:11.5px;line-height:1.65}.admin-detail-list+.text-link{margin-top:14px}.category-tabs{border:1px solid var(--line);background:var(--paper-soft);border-radius:8px;align-items:center;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.category-tabs button{height:27px;color:var(--muted);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:0 9px;font-size:10.5px;font-weight:650;transition:background .16s,color .16s,box-shadow .16s;display:inline-flex}.category-tabs button span{min-width:16px;height:16px;color:var(--muted);background:#15241d0f;border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:9px;font-weight:700;display:inline-flex}.category-tabs button:hover{color:var(--ink)}.category-tabs button.is-active{background:var(--surface);color:var(--green);box-shadow:0 1px 3px #15241d14}.category-tabs button.is-active span{background:var(--green-soft);color:var(--green)}.upload-panel .admin-panel__body{padding:18px}.upload-form{gap:14px}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-soft);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:158px;padding:20px 18px;transition:border-color .18s,background .18s,transform .18s;display:flex;position:relative}.dropzone:hover,.dropzone:focus-visible{border-color:var(--green);background:#e4ede773}.dropzone.is-dragging{border-color:var(--green);background:var(--green-soft);border-style:solid;transform:scale(.995)}.dropzone.has-file{background:#e4ede78c;border-style:solid;border-color:#14583f59}.dropzone__icon{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--green);border-radius:50%;justify-content:center;align-items:center;margin-bottom:7px;display:flex}.dropzone__icon--file{background:var(--red-soft);color:var(--red);border-color:#a43c3229}.dropzone strong{max-width:100%;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:650;overflow:hidden}.dropzone>span:not(.dropzone__icon){color:var(--muted);font-size:11px}.dropzone small{color:var(--muted-light);letter-spacing:.07em;text-transform:uppercase;margin-top:5px;font-size:9.5px;font-weight:650}.dropzone__remove{border:1px solid var(--line);background:var(--surface);width:26px;height:26px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:9px;right:9px}.dropzone__remove:hover{background:var(--red-soft);color:var(--red);border-color:#a43c324d}.file-picker{cursor:pointer;display:block}.file-picker input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-picker>span{border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-soft);min-height:86px;color:var(--green);justify-content:center;align-items:center;gap:8px;padding:16px;font-size:12px;font-weight:650;transition:border-color .18s,background .18s;display:flex}.file-picker:hover>span,.file-picker:focus-within>span{border-color:var(--green);background:var(--green-soft)}.file-picker__name{border:1px solid var(--line);background:var(--paper-soft);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;margin-top:8px;padding:7px 10px;font-size:11px;overflow:hidden}.moderation-banner{border-radius:var(--radius-sm);background:var(--amber-soft);border:1px solid #b9743438;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.moderation-banner__icon{width:34px;height:34px;color:var(--amber);background:#fffdf999;border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;display:flex}.moderation-banner p{color:#6f4519;padding-top:2px;font-size:11.5px;line-height:1.6}.moderation-banner strong{font-weight:750}.moderation-tabs{border-bottom:1px solid var(--line);align-items:center;gap:2px;margin:-4px -4px 16px;padding-bottom:13px;display:flex;overflow-x:auto}.moderation-tabs button{color:var(--muted);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:11.5px;font-weight:600;transition:background .16s,color .16s;display:inline-flex}.moderation-tabs button span{background:var(--paper-deep);min-width:18px;height:18px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:9.5px;font-weight:700;display:inline-flex}.moderation-tabs button:hover{background:var(--paper-soft);color:var(--ink)}.moderation-tabs button.is-active{background:var(--green-deep);color:#fdf9ef}.moderation-tabs button.is-active span{color:#fdf9ef;background:#ffffff29}.comment-moderation-list{flex-direction:column;gap:11px;display:flex}.moderation-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:15px 16px;transition:border-color .16s,box-shadow .16s}.moderation-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.moderation-card__head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.moderation-card__identity{align-items:center;gap:10px;min-width:0;display:flex}.moderation-card__identity>div{min-width:0}.moderation-card__identity strong{color:var(--ink);font-size:12.5px;font-weight:650;display:block}.moderation-card__identity span:not(.avatar){color:var(--muted-light);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:10.5px;display:block;overflow:hidden}.moderation-card__meta{flex-shrink:0;align-items:center;gap:10px;display:flex}.moderation-card__meta>span:last-child{color:var(--muted-light);white-space:nowrap;font-size:10.5px}.moderation-card__body{border-left:2px solid var(--green-soft);background:var(--paper-soft);color:var(--ink-soft);overflow-wrap:anywhere;margin:12px 0;padding:10px 13px;font-size:12.5px;line-height:1.65}.moderation-card__foot{justify-content:space-between;align-items:center;gap:14px;display:flex}.moderation-card__foot>span{color:var(--muted-light);font-size:10px}.moderation-card__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:3px;display:flex}.moderation-card__actions .btn{padding-inline:9px}.account-profile{border-bottom:1px solid var(--line);align-items:center;gap:13px;margin-bottom:6px;padding-bottom:16px;display:flex}.account-profile__avatar{background:var(--green-soft);width:52px;height:52px;color:var(--green);font-family:var(--font-display);border-radius:50%;flex:0 0 52px;justify-content:center;align-items:center;font-size:23px;font-weight:550;display:flex}.account-profile>div{min-width:0}.account-profile strong{color:var(--ink);font-family:var(--font-display);letter-spacing:-.015em;font-size:19px;font-weight:500;display:block}.account-profile>div>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;display:block;overflow:hidden}.account-note{background:var(--paper-soft);border-radius:8px;align-items:flex-start;gap:9px;margin:15px 0;padding:11px 13px;display:flex}.account-note svg{color:var(--green);flex-shrink:0;margin-top:1px}.account-note p{color:var(--muted);font-size:10.5px;line-height:1.6}.login-page{background:var(--paper);grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);min-height:100vh;display:grid}.login-aside{color:#faf7f0b3;background:radial-gradient(circle at 88% 8%,#f3d9b821,#0000 42%),radial-gradient(circle at 0 92%,#26775a66,#0000 52%),linear-gradient(155deg,#124532 0%,#0e3327 58%,#0b2a20 100%);flex-direction:column;gap:36px;padding:clamp(28px,4vw,48px);display:flex;position:relative;overflow:hidden}.login-aside:after{content:"";pointer-events:none;border:1px solid #ffffff14;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-170px;right:-140px}.login-aside__top{z-index:1;color:#fbf7ec;align-items:center;gap:11px;display:flex;position:relative}.login-aside__top>div{flex-direction:column;gap:1px;line-height:1.25;display:flex}.login-aside__top strong{font-family:var(--font-display);letter-spacing:-.015em;font-size:17px;font-weight:550}.login-aside__top small{color:#faf7f07a;letter-spacing:.16em;text-transform:uppercase;font-size:9.5px;font-weight:650}.login-aside__content{z-index:1;max-width:510px;margin-top:auto;position:relative}.login-aside__content .eyebrow{color:#e4b678;margin-bottom:16px}.login-aside__content h1{color:#fbf7ec;letter-spacing:-.03em;font-size:clamp(34px,4vw,50px);font-weight:450;line-height:1.06}.login-aside__content h1 em{color:#e4b678;font-weight:400}.login-aside__content>p:last-child{color:#faf7f094;max-width:430px;margin-top:20px;font-size:13px;line-height:1.75}.login-aside__points{z-index:1;border-top:1px solid #ffffff1c;grid-template-columns:1fr 1fr;gap:18px;margin-top:auto;padding-top:30px;display:grid;position:relative}.login-aside__points>div{align-items:flex-start;gap:10px;display:flex}.login-aside__points>div>span{color:#e4b678;background:#ffffff0f;border:1px solid #ffffff21;border-radius:8px;flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.login-aside__points p{color:#faf7f07a;font-size:10.5px;line-height:1.55}.login-aside__points strong{color:#faf7f0eb;margin-bottom:2px;font-size:11.5px;font-weight:650;display:block}.login-aside__footer{z-index:1;color:#faf7f052;letter-spacing:.13em;text-transform:uppercase;font-size:9.5px;font-weight:650;position:relative}.login-main{background:radial-gradient(circle at 100% 0%, #eee7d9d9, transparent 45%), var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:clamp(28px,5vw,56px);display:flex}.login-card{width:100%;max-width:392px}.login-card__heading{margin-bottom:26px}.login-card__heading .eyebrow{margin-bottom:11px}.login-card__heading h2{letter-spacing:-.03em;font-size:clamp(32px,3.6vw,40px)}.login-card__heading>p:last-child{color:var(--muted);margin-top:8px;font-size:12.5px}.login-card form{flex-direction:column;gap:15px;display:flex}.login-card form .btn{margin-top:5px}.login-card__help{border-top:1px solid var(--line);color:var(--muted-light);margin-top:24px;padding-top:18px;font-size:10.5px;line-height:1.65}.login-main__footer{color:var(--muted-light);font-size:10px}@media (width<=1180px){.admin-shell{grid-template-columns:242px minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:126px}.admin-grid--main,.admin-grid--docs,.admin-grid--account{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.admin-shell{grid-template-columns:minmax(0,1fr)}.admin-sidebar{width:min(290px,86vw);box-shadow:var(--shadow-lg);transition:transform .24s cubic-bezier(.22,.7,.3,1);position:fixed;top:0;left:0;transform:translate(-102%)}.admin-sidebar.is-open{transform:translate(0)}.admin-sidebar__close{display:inline-flex}.admin-sidebar-overlay{z-index:55;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c1b1573;width:100%;height:100%;animation:.18s fade-in;display:block;position:fixed;inset:0}.admin-menu-button{display:inline-flex}.login-page{grid-template-columns:minmax(0,1fr)}.login-aside{gap:0;min-height:auto;padding:24px clamp(22px,5vw,36px)}.login-aside:after,.login-aside__content,.login-aside__points,.login-aside__footer{display:none}.login-main{justify-content:flex-start;padding:40px clamp(22px,6vw,48px) 36px}.login-card{max-width:430px}}@media (width<=720px){.admin-topbar{padding:0 18px}.admin-topbar__site,.admin-topbar__sep,.admin-topbar__name,.admin-topbar__security{display:none}.admin-content{padding:22px 18px 52px}.admin-page{gap:18px}.admin-page-header{flex-direction:column;align-items:flex-start;gap:14px}.admin-page-header__actions{flex-wrap:wrap;width:100%}.admin-page-header__actions .btn{flex:1}.admin-panel__header{flex-direction:column;align-items:flex-start;gap:11px;padding:14px 16px}.admin-panel__actions{justify-content:flex-start;width:100%}.admin-panel__body{padding:16px}.admin-panel__body>.admin-table-wrap:first-child{width:calc(100% + 32px);margin:-16px}.stat-grid{gap:10px}.stat-card{min-height:118px;padding:13px 14px}.stat-card strong{font-size:30px}.table-filters{width:100%}.table-search{flex:1;min-width:100%}.filter-select{flex:1;min-width:0}.filter-select select{width:100%;max-width:none}.pending-item__foot,.moderation-card__foot{flex-direction:column;align-items:flex-start}.pending-item__actions,.moderation-card__actions{justify-content:flex-start}.moderation-card__head{flex-direction:column;gap:8px}.moderation-card__meta{padding-left:48px}.login-main{padding:32px 20px 28px}.admin-error{margin-top:4vh;padding:22px}}@media (width<=460px){.stat-card{min-height:104px}.stat-card strong{margin-top:12px}.moderation-card__meta{flex-wrap:wrap;padding-left:0}}
