:root{--brand:#b5122b;--brand-dark:#681024;--ink:#20283b;--muted:#657188;--line:#dfe5ee}
*{box-sizing:border-box}body.app-body{margin:0;min-height:100vh;display:flex;flex-direction:column;color:var(--ink);background:radial-gradient(circle at 8% 10%,#ffe9ef 0,transparent 33%),radial-gradient(circle at 92% 28%,#f0f5ff 0,transparent 30%),linear-gradient(#fbfcff,#f7f8fc);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.app-container{width:100%;padding-left:clamp(16px,3vw,54px);padding-right:clamp(16px,3vw,54px)}.app-header{background:white;border-bottom:1px solid var(--line);box-shadow:0 4px 24px #17203309}.app-header>.app-container{min-height:78px}.brand-link{text-decoration:none;display:flex;align-items:center;gap:12px;color:var(--brand-dark);font-size:1.15rem;font-weight:800;white-space:nowrap}.brand-link:hover{color:var(--brand)}.brand-icon,.module-icon{display:grid;place-items:center;color:white;background:linear-gradient(140deg,var(--brand-dark),var(--brand));box-shadow:0 9px 24px #90142c33}.brand-icon{width:42px;height:42px;border-radius:12px;font-size:1.25rem}.header-user{color:#475267;font-weight:600}.breadcrumb-strip{background:#fff;border-bottom:1px solid var(--line)}.breadcrumb-strip .app-container{padding-top:10px;padding-bottom:10px}.breadcrumb{font-size:.88rem}.breadcrumb a{color:var(--brand);text-decoration:none}.breadcrumb .active{color:#697589}.app-main{flex:1}.app-footer{background:#202733;color:#d8dfeb;padding:17px 0;font-size:.9rem}.app-footer strong{color:#fff}
.panel{width:100%;border:1px solid #e7eaf1;border-radius:22px;background:white;box-shadow:0 16px 46px #24324b12;animation:rise .35s ease-out}.btn-brand{background:var(--brand);color:white;border-color:var(--brand)}.btn-brand:hover,.btn-brand:focus{background:var(--brand-dark);color:white;border-color:var(--brand-dark)}.section-eyebrow{font-size:.72rem;letter-spacing:.12em;font-weight:800;color:var(--brand);text-transform:uppercase}.section-title{font-size:clamp(1.65rem,2.6vw,2.35rem);font-weight:800;line-height:1.2}.table-toolbar{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.table-toolbar .table-search{flex:1 1 280px;min-width:0}.table-toolbar .btn{white-space:nowrap}.table-help{font-size:.9rem;color:#167039}
.tabulator{border:1px solid var(--line)!important;border-radius:12px;overflow:hidden;font-size:.94rem;background:white}.tabulator .tabulator-header{background:#f3f5f8!important;border-bottom:1px solid var(--line)}.tabulator .tabulator-header .tabulator-col{background:#f3f5f8;border-right:1px solid var(--line);font-weight:700;color:#263246}.tabulator .tabulator-row{border-bottom:1px solid #eef0f4}.tabulator .tabulator-row:nth-child(even){background:#f8f9fc}.tabulator .tabulator-row:hover{background:#fff1f4!important}.tabulator .tabulator-cell{border-right:1px solid #eef0f4;padding:10px 12px}.tabulator .tabulator-footer{background:#f6f7fa;border-top:1px solid var(--line);padding:10px 12px}.tabulator .tabulator-page.active{color:white!important;background:var(--brand)!important;border-color:var(--brand)!important}
.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px);max-width:1280px}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.7vw,24px)}.module-card{min-height:178px;background:white;border:1px solid #e4e9f2;border-top:4px solid var(--brand);border-radius:17px;box-shadow:0 13px 32px #23365c0e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}.module-card[href]:hover{transform:translateY(-4px);box-shadow:0 18px 36px #67203b22;color:var(--brand-dark)}.module-icon{width:62px;height:62px;border-radius:16px;font-size:1.65rem}.module-label{font-size:1.05rem;font-weight:800}.module-description{max-width:360px;color:var(--muted);font-size:.93rem;line-height:1.45}.app-card{min-height:248px;padding:26px}.app-card-modules{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:440px}.app-card-modules span{border:1px solid #e1e6ef;background:#f8f9fc;color:#4b566b;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:700}.module-card.is-planned{opacity:.62;border-top-color:#a8b0c0}.module-card.is-planned .module-icon{background:#8b95a6;box-shadow:none}.module-state{font-size:.72rem;font-weight:700;color:#7e8898;text-transform:uppercase;letter-spacing:.08em}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.app-grid,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-card{min-height:142px;padding:14px}.app-card{min-height:220px}.module-icon{width:52px;height:52px;font-size:1.35rem}.module-label{font-size:.91rem}.module-description{font-size:.82rem}.app-card-modules{gap:6px}.app-card-modules span{padding:4px 8px;font-size:.7rem}.panel{border-radius:16px}.table-toolbar .table-search{flex-basis:100%}.table-toolbar .btn{flex:1 1 auto}}@media(max-width:430px){.app-grid{grid-template-columns:1fr}}@media(max-width:350px){.module-grid{gap:9px}.module-card{min-height:128px}.brand-link{font-size:1rem}}
/* Keep shared navigation visible without covering content on desktop or phones. */
body.app-body{min-height:100vh;min-height:100dvh;padding-top:78px;padding-bottom:64px}
.app-header{position:fixed;top:0;left:0;right:0;z-index:1030}
.app-footer{position:fixed;bottom:0;left:0;right:0;z-index:1020;min-height:56px;display:flex;align-items:center}
.app-main{min-width:0}.app-footer .app-container{line-height:1.35}
@media(max-width:575.98px){body.app-body{padding-top:68px;padding-bottom:80px}.app-header>.app-container{min-height:68px}.brand-icon{width:36px;height:36px}.app-footer{min-height:72px;text-align:center;font-size:.78rem;padding:9px 0}.app-footer .app-container{gap:3px!important}}
@media print{body.app-body{padding:0}.app-header,.app-footer,.breadcrumb-strip{display:none!important}}
/* Fixed breadcrumb below the fixed header; reserve its height in the page flow. */
body.app-body{padding-top:120px}
.breadcrumb-strip{position:fixed;top:78px;left:0;right:0;height:42px;z-index:1025;display:flex;align-items:center;box-shadow:0 3px 10px #1720330b}
.breadcrumb-strip>.app-container{padding-top:0;padding-bottom:0;min-width:0}
.breadcrumb-strip .breadcrumb{display:flex;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;scrollbar-width:thin}
.breadcrumb-strip .breadcrumb-item{flex-shrink:0}
@media(max-width:575.98px){body.app-body{padding-top:110px}.breadcrumb-strip{top:68px;height:42px}.breadcrumb-strip .breadcrumb{font-size:.8rem}}
@media print{body.app-body{padding:0!important}}
.app-card{position:relative;align-items:flex-start;text-align:left;overflow:hidden;border-top:0;border-left:7px solid var(--app-accent,#b5122b);border-radius:8px 28px 8px 28px;background:linear-gradient(135deg,var(--app-soft,#fff),#fff 66%)}.app-card .module-icon{width:76px;height:76px;border-radius:24px 8px 24px 8px;background:linear-gradient(140deg,var(--app-a,#681024),var(--app-b,#b5122b));box-shadow:0 14px 28px var(--app-shadow,#90142c26);font-size:1.9rem}.app-card .module-label{font-size:1.25rem}.app-card .app-card-modules{justify-content:flex-start}.app-card .app-card-modules span{background:var(--app-chip-bg,#f8f9fc);border-color:var(--app-chip-border,#e1e6ef);color:var(--app-chip-text,#4b566b)}.app-academics{--app-a:#0f766e;--app-b:#22c55e;--app-accent:#0f766e;--app-soft:#f0fbf7;--app-shadow:#0f766e2e;--app-chip-bg:#e6f8f1;--app-chip-border:#bdebdc;--app-chip-text:#0f5f52}.app-admission{--app-a:#be123c;--app-b:#f97316;--app-accent:#e11d48;--app-soft:#fff1f2;--app-shadow:#be123c2e;--app-chip-bg:#ffe4e6;--app-chip-border:#fecdd3;--app-chip-text:#9f1239}.app-admin{--app-a:#4338ca;--app-b:#b5126b;--app-accent:#5b49bf;--app-soft:#f6f3ff;--app-shadow:#4931a22c;--app-chip-bg:#f0ecff;--app-chip-border:#d8cffb;--app-chip-text:#49388f}
.academic-module,.admission-module{position:relative;overflow:hidden;border-top:0;border-radius:18px;background:linear-gradient(180deg,#fff,var(--module-soft,#f8f9fc));border-color:#e2e8f0}.academic-module:before,.admission-module:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--module-accent,#b5122b)}.academic-module .module-icon,.admission-module .module-icon{width:58px;height:58px;border-radius:50%;background:linear-gradient(140deg,var(--module-a,#681024),var(--module-b,#b5122b));box-shadow:0 0 0 7px var(--module-ring,#f3f5f8);font-size:1.42rem}.academic-module .module-label,.admission-module .module-label{color:#1f2937}.module-faculties{--module-a:#0f766e;--module-b:#14b8a6;--module-accent:#0f766e;--module-soft:#f0fbf9;--module-ring:#dff8f3}.module-departments{--module-a:#1d4ed8;--module-b:#38bdf8;--module-accent:#2563eb;--module-soft:#f1f7ff;--module-ring:#e1f0ff}.module-programs{--module-a:#6d28d9;--module-b:#a855f7;--module-accent:#7c3aed;--module-soft:#f8f3ff;--module-ring:#efe3ff}.module-years{--module-a:#b45309;--module-b:#f59e0b;--module-accent:#d97706;--module-soft:#fff9ec;--module-ring:#ffefd0}.module-semesters{--module-a:#be123c;--module-b:#fb7185;--module-accent:#e11d48;--module-soft:#fff3f6;--module-ring:#ffe0e8}.module-curricula{--module-a:#0e7490;--module-b:#06b6d4;--module-accent:#0891b2;--module-soft:#ecfeff;--module-ring:#cffafe}.module-students{--module-a:#334155;--module-b:#64748b;--module-accent:#475569;--module-soft:#f5f7fa;--module-ring:#e7ebf0}.module-applications{--module-a:#047857;--module-b:#84cc16;--module-accent:#16a34a;--module-soft:#f4fbec;--module-ring:#e2f4cf}.academic-module.is-planned,.admission-module.is-planned{opacity:.78}.academic-module.is-planned .module-icon,.admission-module.is-planned .module-icon{background:linear-gradient(140deg,var(--module-a),var(--module-b))}
@media(max-width:900px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.app-grid{grid-template-columns:1fr}.app-card{min-height:0;text-align:left}.app-card .module-icon{width:64px;height:64px;font-size:1.6rem}.academic-module .module-icon,.admission-module .module-icon{width:50px;height:50px;font-size:1.24rem}}
.app-card{color:#fff;border:0;border-radius:10px 34px 10px 34px;background:linear-gradient(135deg,var(--app-a,#681024),var(--app-b,#b5122b));box-shadow:0 18px 42px var(--app-shadow,#90142c30)}.app-card:after{content:"";position:absolute;right:-34px;bottom:-44px;width:190px;height:130px;background:rgba(255,255,255,.14);clip-path:polygon(20% 0,100% 0,80% 100%,0 100%)}.app-card .module-icon{position:relative;z-index:1;color:var(--app-a,#681024);background:#fff;box-shadow:0 16px 30px rgba(18,24,38,.18);clip-path:polygon(18% 0,100% 0,82% 100%,0 100%);border-radius:0}.app-card .module-label,.app-card .module-description,.app-card .app-card-modules{position:relative;z-index:1}.app-card .module-label{color:#fff}.app-card .module-description{color:rgba(255,255,255,.88)}.app-card .app-card-modules span{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28);color:#fff}.app-card[href]:hover{color:#fff;box-shadow:0 24px 46px var(--app-shadow,#90142c40)}
.academic-module,.admission-module{align-items:flex-start;text-align:left;justify-content:space-between;color:#172033;border:0;border-radius:var(--module-card-radius,18px 8px 18px 8px);background:linear-gradient(135deg,var(--module-a,#681024),var(--module-b,#b5122b));box-shadow:0 14px 30px var(--module-shadow,#23365c18);min-height:168px}.academic-module:before,.admission-module:before{height:100%;width:7px;right:auto;bottom:0;background:rgba(255,255,255,.55)}.academic-module:after,.admission-module:after{content:"";position:absolute;right:-22px;top:-20px;width:88px;height:88px;background:rgba(255,255,255,.14);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.academic-module .module-icon,.admission-module .module-icon{position:relative;z-index:1;width:60px;height:60px;border-radius:var(--module-icon-radius,50%);background:#fff;color:var(--module-a,#681024);box-shadow:0 10px 22px rgba(17,24,39,.16);font-size:1.45rem}.academic-module .module-label,.academic-module .module-state,.admission-module .module-label,.admission-module .module-state{position:relative;z-index:1;color:#fff}.academic-module .module-state,.admission-module .module-state{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:4px 9px;color:#fff}.academic-module[href]:hover,.admission-module[href]:hover{color:#fff;box-shadow:0 20px 36px var(--module-shadow,#23365c24)}.module-faculties{--module-card-radius:22px 6px 22px 6px;--module-icon-radius:50%;--module-shadow:#0f766e26}.module-departments{--module-card-radius:6px 22px 6px 22px;--module-icon-radius:16px 4px 16px 4px;--module-shadow:#2563eb26}.module-programs{--module-card-radius:18px;--module-icon-radius:16px;--module-shadow:#7c3aed26}.module-years{--module-card-radius:6px 26px 18px 6px;--module-icon-radius:50% 50% 12px 12px;--module-shadow:#d9770626}.module-semesters{--module-card-radius:24px 8px 8px 24px;--module-icon-radius:10px 24px 10px 24px;--module-shadow:#e11d4826}.module-curricula{--module-card-radius:8px 8px 28px 8px;--module-icon-radius:22px 8px 22px 8px;--module-shadow:#0891b226}.module-students{--module-card-radius:18px 6px 18px 6px;--module-icon-radius:50%;--module-shadow:#47556924}.module-applications{--module-card-radius:6px 18px 6px 18px;--module-icon-radius:14px;--module-shadow:#16a34a24}.admission-grid{max-width:620px}
@media(max-width:650px){.academic-module,.admission-module{min-height:136px}.app-card,.academic-module,.admission-module{text-align:left}.app-card .module-icon{width:64px;height:64px}.academic-module .module-icon,.admission-module .module-icon{width:50px;height:50px}}
.module-courses{--module-a:#0f3f71;--module-b:#2dd4bf;--module-accent:#0f766e;--module-soft:#eefdfa;--module-ring:#cffafe;--module-card-radius:10px 28px 10px 10px;--module-icon-radius:8px 22px 8px 22px;--module-shadow:#0f766e28}
.module-structure{--module-a:#681024;--module-b:#0f766e;--module-accent:#9f1239;--module-soft:#fff1f5;--module-ring:#ffe4e6;--module-card-radius:26px 8px 18px 8px;--module-icon-radius:18px 4px 18px 4px;--module-shadow:#9f123928}
.module-enrollments{--module-a:#0f766e;--module-b:#2563eb;--module-accent:#0f766e;--module-soft:#eefdfa;--module-ring:#dff8f3;--module-card-radius:8px 24px 8px 24px;--module-icon-radius:50%;--module-shadow:#0f766e28}
.module-promotions{--module-a:#be123c;--module-b:#f97316;--module-accent:#be123c;--module-soft:#fff7ed;--module-ring:#ffedd5;--module-card-radius:24px 8px 24px 8px;--module-icon-radius:10px 24px 10px 24px;--module-shadow:#be123c28}
.form-section{border-top:1px solid #e5eaf2;padding-top:1rem;margin-bottom:1.25rem}
.form-section:first-of-type{border-top:0;padding-top:0}
.form-section-title{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#344056;margin-bottom:.85rem}
.modal-xl .form-label{font-size:.85rem;font-weight:650;color:#394459}
.registration-shell{position:relative;overflow:hidden;border-radius:24px;padding:clamp(16px,2.4vw,34px);background:linear-gradient(135deg,#fff6f7 0%,#eef7ff 48%,#f1fff7 100%);border:1px solid #e6edf6;box-shadow:0 18px 48px rgba(34,47,76,.12)}
.registration-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(181,18,43,.08),transparent 36%,rgba(15,118,110,.08));pointer-events:none}
.registration-shell>*{position:relative;z-index:1}
.registration-hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.registration-icon{width:68px;height:68px;display:grid;place-items:center;border-radius:20px 8px 20px 8px;color:#fff;background:linear-gradient(135deg,var(--reg-a,#b5122b),var(--reg-b,#0f766e));box-shadow:0 15px 30px var(--reg-shadow,rgba(181,18,43,.22));font-size:1.75rem}
.registration-card{background:rgba(255,255,255,.95);border:1px solid rgba(220,228,239,.95);border-radius:18px;padding:clamp(16px,2.2vw,30px);box-shadow:0 16px 36px rgba(31,42,68,.12);backdrop-filter:blur(4px)}
.registration-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;border-top:1px solid #e5eaf2;margin-top:1.35rem;padding-top:1rem}
.registration-student{--reg-a:#475569;--reg-b:#0f766e;--reg-shadow:rgba(15,118,110,.24)}
.registration-application{--reg-a:#be123c;--reg-b:#f97316;--reg-shadow:rgba(190,18,60,.23)}
.registration-card .form-label{font-size:.85rem;font-weight:650;color:#394459}
.registration-card .form-section{border:1px solid rgba(255,255,255,.78);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:0 10px 24px rgba(31,42,68,.08)}
.registration-card .form-section:first-of-type{padding-top:18px}
.registration-card .form-section:nth-of-type(1){background:linear-gradient(135deg,rgba(255,228,230,.94),rgba(255,247,237,.96))}
.registration-card .form-section:nth-of-type(2){background:linear-gradient(135deg,rgba(219,234,254,.94),rgba(236,253,245,.96))}
.registration-card .form-section:nth-of-type(3){background:linear-gradient(135deg,rgba(237,233,254,.94),rgba(240,249,255,.96))}
.registration-card .form-section:nth-of-type(4){background:linear-gradient(135deg,rgba(220,252,231,.94),rgba(254,249,195,.96))}
.registration-card .form-section:nth-of-type(5){background:linear-gradient(135deg,rgba(255,237,213,.94),rgba(252,231,243,.96))}
.registration-card .form-section-title{color:#1f2937}
@media(max-width:575.98px){.registration-shell{border-radius:18px;padding:14px}.registration-hero{align-items:flex-start}.registration-icon{width:56px;height:56px;font-size:1.45rem}.registration-actions .btn{flex:1 1 auto}}
.app-header{background:linear-gradient(135deg,#681024 0%,#b5122b 46%,#0f766e 100%);border-bottom:0;box-shadow:0 12px 32px rgba(63,16,36,.23)}
.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.56),transparent)}
.app-header>.app-container{position:relative;z-index:1}
.brand-link{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.12)}
.brand-link:hover{color:#fff}
.brand-title{letter-spacing:.01em}
.brand-icon{width:50px;height:50px;border-radius:16px 4px 16px 4px;background:rgba(255,255,255,.96);color:#8b1028;box-shadow:0 12px 26px rgba(22,24,35,.2);clip-path:polygon(12% 0,100% 0,88% 100%,0 100%)}
.header-user{color:rgba(255,255,255,.92);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:7px 12px}
.app-header .btn{border-color:rgba(255,255,255,.46);color:#fff;background:rgba(255,255,255,.12);box-shadow:0 8px 18px rgba(16,24,40,.12)}
.app-header .btn:hover,.app-header .btn:focus{border-color:rgba(255,255,255,.72);color:#681024;background:rgba(255,255,255,.9)}
.app-header .btn i{color:inherit}
.breadcrumb-strip{background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-bottom:1px solid rgba(205,214,229,.8);box-shadow:0 7px 18px rgba(34,47,76,.08)}
.breadcrumb a{color:#9f1239;font-weight:650}
.breadcrumb .active{color:#405066;font-weight:650}
.app-footer{background:linear-gradient(135deg,#681024 0%,#b5122b 46%,#0f766e 100%);color:rgba(255,255,255,.9);box-shadow:0 -12px 32px rgba(63,16,36,.16)}
.app-footer strong{color:#fff}
@media(max-width:575.98px){.brand-icon{width:40px;height:40px}.header-user{padding:5px 9px}.app-header .btn{padding:.32rem .52rem}}
.structure-page{position:relative;overflow:hidden;border-radius:24px;padding:clamp(16px,2.4vw,34px);background:linear-gradient(135deg,#fff5f7 0%,#eef7ff 44%,#edfff8 100%);border:1px solid rgba(221,229,241,.96);box-shadow:0 18px 48px rgba(34,47,76,.12)}
.structure-page:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(181,18,43,.08),transparent 38%,rgba(15,118,110,.1));pointer-events:none}
.structure-page>*{position:relative;z-index:1}
.structure-hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.structure-hero-icon{width:70px;height:70px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#681024,#b5122b 48%,#0f766e);box-shadow:0 16px 34px rgba(104,16,36,.24);font-size:1.8rem;clip-path:polygon(14% 0,100% 0,86% 100%,0 100%)}
.structure-filter-band{background:rgba(255,255,255,.92);border:1px solid rgba(218,226,239,.95);border-radius:18px;padding:clamp(14px,1.8vw,22px);box-shadow:0 12px 30px rgba(31,42,68,.1);margin-bottom:14px}
.structure-filter-band .form-label,.structure-column .form-label{font-size:.82rem;font-weight:750;color:#334155}
.structure-notice{min-height:38px;display:flex;align-items:center;color:#0f5f52;font-weight:700;font-size:.92rem}
.structure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,24px)}
.structure-column{min-width:0;display:flex;flex-direction:column;gap:12px;background:rgba(255,255,255,.95);border:1px solid rgba(218,226,239,.96);border-radius:20px 8px 20px 8px;padding:clamp(14px,1.7vw,20px);box-shadow:0 16px 36px rgba(31,42,68,.12)}
.structure-column-head{display:flex;align-items:center;gap:12px}
.structure-column-head h2{font-size:1.05rem;font-weight:850;margin:0;color:#172033}
.structure-column-head p{margin:2px 0 0;color:#657188;font-size:.84rem;font-weight:700}
.structure-column-icon{width:48px;height:48px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--structure-a,#681024),var(--structure-b,#b5122b));box-shadow:0 12px 24px var(--structure-shadow,rgba(181,18,43,.2));border-radius:14px 4px 14px 4px;font-size:1.24rem;flex:0 0 auto}
.structure-programs{--structure-a:#0f766e;--structure-b:#22c55e;--structure-shadow:rgba(15,118,110,.22)}
.structure-semesters{--structure-a:#be123c;--structure-b:#fb7185;--structure-shadow:rgba(190,18,60,.2)}
.structure-courses{--structure-a:#0f3f71;--structure-b:#2dd4bf;--structure-shadow:rgba(15,63,113,.22)}
.structure-list{display:flex;flex-direction:column;gap:8px;min-height:144px;max-height:240px;overflow:auto;padding-right:2px}
.structure-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:1px solid #e2e8f0;background:#f8fafc;color:#172033;border-radius:10px;padding:10px 11px;transition:box-shadow .18s,transform .18s,border-color .18s}
.structure-row:not(.is-static):hover{transform:translateY(-1px);border-color:#b5122b;box-shadow:0 10px 20px rgba(181,18,43,.1)}
.structure-row.is-selected{background:linear-gradient(135deg,#fff1f4,#ecfdf5);border-color:#b5122b;box-shadow:0 10px 22px rgba(181,18,43,.12)}
.structure-check{flex:0 0 auto;width:1.05rem;height:1.05rem;margin:0;border-color:#b9c4d4}
.structure-check:checked{background-color:#b5122b;border-color:#b5122b}
.structure-row-main{min-width:0;flex:1 1 auto;border:0;background:transparent;color:inherit;text-align:left;padding:0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.structure-row-main:focus-visible{outline:2px solid rgba(181,18,43,.35);outline-offset:3px;border-radius:8px}
.structure-row span{min-width:0;display:flex;flex-direction:column;gap:2px}
.structure-row strong,.structure-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.structure-row strong{font-size:.92rem}.structure-row small{color:#64748b;font-size:.78rem}
.structure-pill{flex:0 0 auto;border-radius:999px;padding:4px 8px;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.structure-pill.is-active{background:#dcfce7;color:#166534}.structure-pill.is-muted{background:#e5e7eb;color:#475569}
.structure-empty{display:grid;place-items:center;min-height:82px;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;font-weight:700}
.structure-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#334155;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.structure-editor-head code{font-size:.72rem;color:#9f1239;background:#fff1f4;border:1px solid #ffe4e6;border-radius:999px;padding:4px 8px;text-transform:none;letter-spacing:0;white-space:normal}
.structure-column-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.structure-column-actions .btn{min-height:40px;font-weight:800}
.structure-modal{border:0;border-radius:20px;overflow:hidden;box-shadow:0 24px 70px rgba(31,42,68,.28)}
.structure-modal .modal-header{background:linear-gradient(135deg,#681024,#b5122b 52%,#0f766e);color:#fff;border-bottom:0}
.structure-modal .modal-header .text-muted{color:rgba(255,255,255,.78)!important}
.structure-modal .btn-close{filter:invert(1) grayscale(1) brightness(2)}
.structure-modal-add{margin-left:auto;margin-right:10px;font-weight:800;color:#681024;background:#fff;border-color:rgba(255,255,255,.75)}
.structure-modal-add:hover,.structure-modal-add:focus{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.72)}
.structure-bulk-grid{display:flex;flex-direction:column;gap:10px;min-width:0}
.structure-bulk-row{display:grid;gap:8px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px}
.structure-bulk-grid.is-programs .structure-bulk-row{grid-template-columns:70px minmax(90px,.75fr) minmax(180px,1.4fr) minmax(120px,.9fr) minmax(120px,.75fr) 42px}
.structure-bulk-grid.is-semesters .structure-bulk-row{grid-template-columns:70px minmax(220px,1fr) minmax(240px,1.55fr) minmax(95px,.5fr) minmax(120px,.65fr) 42px}
.structure-bulk-grid.is-courses .structure-bulk-row{grid-template-columns:64px minmax(88px,.65fr) minmax(210px,1.6fr) minmax(72px,.45fr) minmax(72px,.45fr) minmax(78px,.5fr) minmax(110px,.7fr) minmax(120px,.75fr) minmax(120px,.75fr) 42px}
.structure-bulk-id{font-size:.76rem;font-weight:850;color:#9f1239;background:#fff1f4;border:1px solid #ffe4e6;border-radius:999px;padding:6px 8px;text-align:center;white-space:nowrap}
.structure-bulk-row .form-control,.structure-bulk-row .form-select,.structure-bulk-row .ts-control{min-height:36px;font-size:.84rem;border-color:#d7deea}
.structure-bulk-row .ts-wrapper{min-width:0}
.structure-bulk-row .ts-control{padding-top:5px;padding-bottom:5px;align-items:center;flex-wrap:nowrap;overflow:hidden}
.structure-bulk-row .ts-control .item,.structure-bulk-row .ts-control input{min-width:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.structure-bulk-dropdown{z-index:2000!important;font-size:.9rem;box-shadow:0 18px 42px rgba(31,42,68,.24)}
.structure-bulk-dropdown .option,.structure-bulk-dropdown .create{padding:8px 12px}
.structure-row-remove{width:36px;height:36px;display:grid;place-items:center;padding:0}
.bulk-editor{font-family:"Cascadia Mono","Consolas",monospace;font-size:.84rem;line-height:1.5;min-height:230px;resize:vertical;border-color:#d7deea;background:#fbfdff}
.bulk-editor:focus{border-color:#b5122b;box-shadow:0 0 0 .2rem rgba(181,18,43,.12)}
.structure-save{width:100%;min-height:42px;font-weight:800}
.structure-errors{border:1px solid #fecdd3;background:#fff1f2;color:#9f1239;border-radius:12px;padding:10px 12px;font-size:.84rem}
.structure-errors strong{display:block;margin-bottom:4px}.structure-errors ul{margin:0;padding-left:18px}
@media(max-width:1180px){.structure-grid{grid-template-columns:1fr 1fr}.structure-courses{grid-column:1/-1}}
@media(max-width:1180px){.structure-bulk-row,.structure-bulk-grid.is-programs .structure-bulk-row,.structure-bulk-grid.is-semesters .structure-bulk-row,.structure-bulk-grid.is-courses .structure-bulk-row{grid-template-columns:1fr 1fr}.structure-bulk-id{grid-column:1/-1;text-align:left}.structure-row-remove{justify-self:end}.structure-modal-add{margin-left:0}}
@media(max-width:760px){.structure-page{border-radius:18px;padding:14px}.structure-grid{grid-template-columns:1fr}.structure-courses{grid-column:auto}.structure-hero-icon{width:58px;height:58px;font-size:1.45rem}.structure-list{max-height:none}.bulk-editor{min-height:190px}.structure-column-actions{grid-template-columns:1fr}.structure-bulk-row,.structure-bulk-grid.is-programs .structure-bulk-row,.structure-bulk-grid.is-semesters .structure-bulk-row,.structure-bulk-grid.is-courses .structure-bulk-row{grid-template-columns:1fr}.structure-row-remove{justify-self:stretch;width:100%}}
.enrollment-shell{--reg-a:#0f766e;--reg-b:#2563eb;--reg-shadow:rgba(15,118,110,.22)}
.promotion-shell{--reg-a:#be123c;--reg-b:#0f766e;--reg-shadow:rgba(190,18,60,.23)}
.enrollment-shell .panel,.promotion-shell .panel{background:rgba(255,255,255,.95);backdrop-filter:blur(4px)}
body.login-body{margin:0;min-height:100vh;min-height:100dvh;color:#172033;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:#681024;overflow-x:hidden}
.login-page{position:relative;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:clamp(18px,4vw,64px);overflow:hidden}
.login-page:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#681024 0%,#b5122b 43%,#0f766e 100%)}
.login-page:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.11) 0 1px,transparent 1px 20px),linear-gradient(90deg,rgba(255,255,255,.12),transparent 44%,rgba(255,255,255,.14));opacity:.55}
.login-shell{position:relative;z-index:1;width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:clamp(24px,5vw,72px);align-items:center}
.login-visual{color:#fff;max-width:620px}
.login-mark{width:70px;height:70px;display:grid;place-items:center;margin-bottom:24px;color:#681024;background:rgba(255,255,255,.95);box-shadow:0 18px 36px rgba(18,24,38,.18);font-size:2rem;clip-path:polygon(14% 0,100% 0,86% 100%,0 100%)}
.login-kicker{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.14);border-radius:999px;padding:8px 12px;color:#fff;font-size:.84rem;font-weight:750;line-height:1.2;backdrop-filter:blur(8px)}
.login-title{margin:18px 0 12px;font-size:clamp(2.25rem,6vw,5.4rem);font-weight:900;line-height:.98;letter-spacing:0;color:#fff;text-wrap:balance}
.login-copy{max-width:590px;margin:0 0 28px;color:rgba(255,255,255,.88);font-size:clamp(1rem,1.55vw,1.18rem);line-height:1.65}
.login-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:560px}
.login-highlight{min-height:76px;display:flex;align-items:center;gap:11px;border:1px solid rgba(255,255,255,.28);border-radius:8px;padding:14px;color:#fff;background:rgba(255,255,255,.13);box-shadow:0 12px 28px rgba(18,24,38,.12);backdrop-filter:blur(8px);font-weight:800}
.login-highlight i{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;color:#681024;background:#fff;font-size:1.05rem}
.login-card{position:relative;overflow:hidden;width:100%;padding:clamp(24px,3vw,36px);border:1px solid rgba(255,255,255,.76);border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 28px 80px rgba(18,24,38,.26)}
.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:linear-gradient(90deg,#681024,#b5122b,#0f766e)}
.login-card-head{display:flex;align-items:center;gap:15px;margin-bottom:26px}
.login-card-icon{width:56px;height:56px;display:grid;place-items:center;flex:0 0 auto;border-radius:16px 4px 16px 4px;color:#fff;background:linear-gradient(135deg,#681024,#b5122b 58%,#0f766e);box-shadow:0 14px 28px rgba(104,16,36,.22);font-size:1.45rem}
.login-card-eyebrow{display:block;margin-bottom:4px;color:#9f1239;font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.login-card-title{margin:0;color:#172033;font-size:1.75rem;font-weight:900;line-height:1.16}
.login-card-copy{margin:4px 0 0;color:#64748b;font-weight:650;line-height:1.4}
.login-form .form-label{font-size:.86rem;font-weight:800;color:#344056;margin-bottom:7px}
.login-input-wrap{position:relative}
.login-input-wrap i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#9f1239;font-size:1.05rem;pointer-events:none}
.login-input-wrap .form-control{height:52px;border-color:#d8e0ec;border-radius:12px;padding-left:45px;color:#172033;background:#fbfdff;font-weight:650;box-shadow:none}
.login-input-wrap .form-control::placeholder{color:#99a4b5;font-weight:600}
.login-input-wrap .form-control:focus{border-color:#b5122b;background:#fff;box-shadow:0 0 0 .22rem rgba(181,18,43,.12)}
.login-submit{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;font-weight:850;box-shadow:0 15px 30px rgba(181,18,43,.22)}
.login-submit .spinner-border{display:none}
.login-submit.is-loading .spinner-border{display:inline-block}
.login-submit.is-loading .bi{display:none}
.login-footnote{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;color:#5d687a;font-size:.87rem;font-weight:700}
.login-footnote i{color:#0f766e}
@media(max-width:900px){.login-page{place-items:start center}.login-shell{grid-template-columns:1fr;gap:22px}.login-visual{max-width:720px}.login-title{font-size:clamp(2.1rem,10vw,4rem)}.login-card{max-width:560px}.login-highlights{max-width:100%}}
@media(max-width:575.98px){.login-page{padding:16px}.login-mark{width:58px;height:58px;margin-bottom:18px;font-size:1.62rem}.login-kicker{font-size:.78rem}.login-copy{margin-bottom:18px}.login-highlights{grid-template-columns:1fr}.login-highlight{min-height:58px;padding:10px 12px}.login-card{border-radius:14px;padding:22px 18px}.login-card-head{align-items:flex-start}.login-card-icon{width:48px;height:48px;font-size:1.2rem}.login-card-title{font-size:1.45rem}.login-input-wrap .form-control{height:50px}.login-submit{min-height:50px}}
