:root{--navy:#0B1530;--navy2:#182b49;--teal:#0B657C;--teal2:#0d8295;--coral:#DE714C;--mint:#BCE5E9;--ink:#1A2233;--muted:#687789;--line:#e2e9ed;--canvas:#f6f8fa;--white:#fff;--good:#0d7854;--bad:#a34c4a;--orange:#ad642d;--radius:15px;--shadow:0 10px 30px #132a4210}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.52 Inter,'Avenir Next','Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--teal)}:focus-visible{outline:3px solid #40b3c5;outline-offset:2px}.boot{height:100vh;display:grid;place-content:center;text-align:center;gap:16px}.boot img{width:210px;margin:auto}.boot p{color:var(--muted)}
.shell{min-height:100vh;display:grid;grid-template-columns:255px minmax(0,1fr)}.sidebar{background:var(--navy);color:#fff;padding:27px 17px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:10}.brand{padding:4px 8px 28px;border-bottom:1px solid #ffffff1e;display:flex;flex-direction:column;gap:7px}.brand img{width:177px}.brand small{color:#9bcad4;letter-spacing:.21em;font-size:10px;font-weight:850;margin-left:7px}.navlabel{margin:27px 12px 12px;color:#8295b2;font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:850}.navbtn{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border:0;background:none;color:#c5d0e0;padding:13px 13px;border-radius:10px;font-weight:650;margin:2px 0}.navbtn svg{width:19px;height:19px;stroke-width:1.8}.navbtn:hover,.navbtn.active{background:#1c3353;color:#fff}.navbtn.active{box-shadow:inset 3px 0 var(--coral)}.navbottom{margin-top:auto;border-top:1px solid #ffffff1f;padding:19px 10px}.navbottom strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbottom small{color:#98adc5}.sidebadge{font-size:10px;letter-spacing:.09em;font-weight:800;color:#bde1e5;background:#264360;padding:4px 8px;border-radius:30px;margin-left:auto}
.right{min-width:0}.topbar{height:77px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;gap:20px}.topbar h2{font-size:15px;letter-spacing:-.02em;margin:0;color:var(--navy)}.topbar p{margin:0;color:var(--muted);font-size:11px}.topright{margin-left:auto;display:flex;align-items:center;gap:13px}.topright label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.topright select{background:#fff;border:1px solid #d6e0e6;padding:9px;border-radius:8px}.topavatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#e7f3f5;color:var(--teal);font-weight:800}.mobile-trigger{display:none;background:none;border:none}.content{max-width:1470px;padding:34px 38px 64px;margin:auto}.eyebrow{color:var(--teal);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:900}.pagehead{display:flex;align-items:flex-end;gap:15px;justify-content:space-between;margin-bottom:25px}.pagehead h1{font-size:clamp(25px,3vw,34px);letter-spacing:-.055em;line-height:1.15;color:var(--navy);margin:7px 0}.pagehead p{color:var(--muted);margin:0}.btn{border:1px solid transparent;border-radius:9px;padding:10px 16px;min-height:42px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap}.btn svg{width:16px;height:16px}.btn.primary{background:var(--teal);color:white}.btn.primary:hover{background:#075166}.btn.coral{background:var(--coral);color:#fff}.btn.outline{color:var(--teal);border-color:#cbdde2;background:#fff}.btn.outline:hover{background:#eaf3f5}.btn.light{background:#edf5f7;color:var(--teal)}.btn.small{min-height:33px;padding:7px 11px}.btn.danger{color:#a03a38;border:1px solid #efd2d1;background:#fff}.btn.danger:hover{background:#fff4f3}.btn.iconbtn{padding:8px;min-height:33px}.buttons{display:flex;gap:8px;flex-wrap:wrap}.muted{color:var(--muted)}.tiny{font-size:11px}.caption{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#74869a;font-weight:800}
.hero{background:linear-gradient(116deg,var(--navy),#0b556c);border-radius:20px;min-height:215px;padding:33px 35px;color:#fff;overflow:hidden;position:relative;margin-bottom:25px}.hero:before{content:'';position:absolute;border-radius:50%;width:330px;height:330px;right:-70px;top:-100px;border:1px solid #ffffff25;box-shadow:0 0 0 45px #ffffff09,0 0 0 105px #ffffff07}.hero:after{content:'';position:absolute;width:115px;height:115px;background:var(--coral);right:120px;bottom:-48px;border-radius:25px;transform:rotate(-18deg)}.hero>*{position:relative;z-index:1}.hero .eyebrow{color:#9bdde0}.hero h1{font-size:clamp(28px,4vw,45px);font-weight:850;letter-spacing:-.055em;line-height:1.12;margin:12px 0 9px;max-width:690px}.hero p{margin:0;color:#c9e0e8;max-width:570px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.card{background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.tile{padding:23px}.tile .figure{font-size:35px;letter-spacing:-.05em;color:var(--navy);font-weight:850;display:block;line-height:1.3}.tile .caption{display:block;margin-top:9px}.tile .mini{margin-top:8px;font-size:11px;color:var(--muted)}.tile-icon{width:38px;height:38px;background:#e8f3f5;color:var(--teal);border-radius:11px;display:grid;place-items:center;float:right}.tile-icon svg{width:20px}.stack{display:grid;gap:20px}.split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.7fr);gap:20px}.sectioncard{padding:24px}.sectiontitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.sectiontitle h3{margin:0;color:var(--navy);font-size:16px;letter-spacing:-.03em}.sectiontitle small{color:var(--muted)}.featurecourse{border:1px solid #d5e8ec;background:#eff8f9;border-radius:12px;padding:19px;display:flex;justify-content:space-between;align-items:center;gap:12px}.featurecourse strong{font-size:17px;display:block;color:var(--navy)}.featurecourse p{color:#698293;margin:5px 0 0}.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:30px;background:#e8f2f5;color:var(--teal);font-size:10px;font-weight:900;letter-spacing:.02em}.pill.live,.pill.active{background:#e5f5ec;color:#14764d}.pill.draft{background:#fff0e8;color:#a85a2f}.pill.revoked,.pill.disabled{background:#fff0ee;color:#ae443c}.pill.pending{background:#fff4dc;color:#93621d}.record{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 0;gap:10px}.record:last-child{border-bottom:0}.record b{font-size:12px}.record small{font-size:10px;color:var(--muted)}.dot{width:9px;height:9px;background:var(--teal);display:inline-block;border-radius:50%;margin-right:8px}
.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.search{display:flex;gap:8px;align-items:center;flex:1;max-width:490px}.search input{flex:1;min-width:0}.input{width:100%;padding:11px 12px;border:1px solid #cdd9e1;border-radius:9px;background:#fff;color:var(--ink)}.input:focus{border-color:var(--teal);outline:3px solid #bce5e96b}textarea.input{min-height:93px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgroup{display:flex;flex-direction:column;gap:6px}.formgroup.full{grid-column:1/-1}.formgroup label{font-size:12px;font-weight:800;color:#385266}.hint{font-size:11px;color:var(--muted)}.tablewrap{overflow-x:auto}.data{width:100%;border-collapse:collapse}.data th{text-align:left;background:#f7fafb;color:#748195;padding:13px 15px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.data td{padding:14px 15px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}.data tr:last-child td{border-bottom:none}.data tbody tr:hover td{background:#fbfdfe}.data .usercell{display:flex;align-items:center;gap:10px;min-width:200px}.initials{width:36px;height:36px;border-radius:10px;background:#e4f4f5;color:var(--teal);display:grid;place-items:center;font-size:11px;font-weight:900;flex-shrink:0}.usercell b{display:block;line-height:1.3;color:#20344c}.usercell small{color:var(--muted);font-size:11px}.centerempty{text-align:center;padding:42px;color:var(--muted)}.tablefoot{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-top:1px solid var(--line)}.percent{font-weight:900;color:var(--teal)}.coursegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}.coursecard{padding:24px}.coursecard .symbol{background:#e9f4f6;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:var(--teal)}.coursecard h3{font-size:18px;margin:16px 0 7px;letter-spacing:-.03em;color:var(--navy)}.coursecard p{min-height:42px;color:var(--muted)}.coursecard .foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.settingsline{padding:18px 0;border-bottom:1px solid var(--line)}.settingsline:last-child{border:0}.settingsline b{color:var(--navy)}.settingsline code{display:block;margin-top:4px;color:var(--teal);font-size:12px;overflow-wrap:anywhere}.notice{padding:15px 18px;background:#fff9f1;border:1px solid #f0e1cd;color:#775c38;border-radius:11px;font-size:12px}.notice.blue{background:#edf8fa;border-color:#d0e7ea;color:#396475}.notice.red{background:#fff2f1;border-color:#f1cfca;color:#a54845}.notice strong{display:block;margin-bottom:4px}.activityline{padding:15px 0;border-bottom:1px solid var(--line);display:flex;align-items:start;gap:12px}.activityline:last-child{border:0}.event-icon{background:#edf5f6;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--teal);flex-shrink:0}.event-icon svg{width:17px}.activityline b{color:#2c4357;font-size:12px}.activityline p{margin:3px 0;font-size:11px;color:var(--muted)}
#overlay{position:fixed;inset:0;background:#0b1530a8;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 80px #07102465}.modalhead{padding:22px 26px;border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between;gap:20px}.modalhead h2{margin:2px 0;font-size:23px;letter-spacing:-.04em;color:var(--navy)}.modalbody{padding:24px 26px}.modalfoot{border-top:1px solid var(--line);padding:18px 26px;display:flex;justify-content:flex-end;gap:9px}.close{background:none;border:0;color:#667b8b;font-size:27px;line-height:1}.detailgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.detailitem{padding:14px;background:#f5f9fa;border-radius:10px}.detailitem small{display:block;color:var(--muted);font-size:11px}.detailitem b{color:var(--navy);font-size:13px;overflow-wrap:anywhere}#toast{position:fixed;bottom:24px;right:24px;z-index:100;border-radius:11px;padding:15px 20px;box-shadow:0 14px 40px #10253e29;background:var(--navy);color:#fff;max-width:min(400px,calc(100vw - 48px));display:none;font-weight:650}#toast.show{display:block}#toast.error{background:#a7463e}
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);background:white}.login-art{background:linear-gradient(130deg,var(--navy),var(--teal));color:white;min-height:600px;padding:clamp(36px,6vw,95px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art:after{content:'';position:absolute;right:8%;top:38%;width:95px;height:95px;border-radius:25px;background:var(--coral);transform:rotate(-15deg)}.login-art img{width:230px;position:relative;z-index:1}.login-art h1{font-size:clamp(42px,5.1vw,78px);line-height:1.04;max-width:650px;letter-spacing:-.068em;margin:0;position:relative;z-index:1}.login-art h1 em{font-style:normal;color:#9cdbe2}.login-art p{color:#cee4ed;max-width:430px}.login-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:44px}.login-body{width:min(380px,100%)}.login-body h2{color:var(--navy);font-size:36px;letter-spacing:-.06em;margin:10px 0}.login-body p{color:var(--muted);margin:0 0 27px}.login-lang{position:absolute;right:23px;top:23px}.login-lang select{padding:8px;border:1px solid var(--line);border-radius:8px}.login-body .btn{width:100%;margin:16px 0}.login-chip{display:inline-flex;gap:8px;color:var(--teal);background:#ebf5f6;border-radius:30px;padding:8px 13px;font-weight:800;font-size:11px}.login-footer{text-align:center;color:var(--muted);font-size:11px;margin-top:20px}.mobile-shade{display:none}
@media(max-width:1140px){.tiles{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.content{padding:27px}}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:255px;transform:translateX(-100%);transition:transform .2s}.shell.menuopen .sidebar{transform:translateX(0)}.shell.menuopen .mobile-shade{display:block;position:fixed;inset:0;background:#07152c75;z-index:9}.mobile-trigger{display:inline-flex}.topbar{padding:0 18px}.login{grid-template-columns:1fr}.login-art{min-height:280px;padding:30px}.login-art h1{font-size:38px}.login-art img{width:170px}.login-art:after{width:65px;height:65px}.login-panel{padding:55px 25px}.login-lang{top:15px;right:15px}}
@media(max-width:560px){.topbar{height:67px}.topbar p,.topavatar{display:none}.topright{gap:6px}.topright label span{display:none}.content{padding:22px 15px 50px}.pagehead{align-items:start;flex-direction:column}.tiles{grid-template-columns:1fr 1fr;gap:9px}.tile{padding:16px}.tile .figure{font-size:27px}.tile .caption{font-size:9px}.sectioncard{padding:17px}.hero{padding:26px 22px;min-height:230px}.hero:after{right:20px;width:70px;height:70px}.formgrid,.detailgrid{grid-template-columns:1fr}.formgroup.full{grid-column:auto}.tablefoot{flex-direction:column;gap:10px}.login-art{min-height:270px}.login-art h1{font-size:31px}.login-body h2{font-size:30px}.modalhead,.modalbody,.modalfoot{padding:19px}}
@media print{.sidebar,.topbar,.pagehead>.buttons,.btn,.mobile-shade{display:none!important}.shell{display:block}.content{max-width:none;padding:0}.card{box-shadow:none}.hero{background:white;color:black;border:1px solid #aaa}.hero h1,.hero p{color:black}.body{background:white}}
