:root{--navy:#101b35;--navy2:#1b2b4b;--gold:#f1b94a;--gold2:#ffe2a0;--ink:#182238;--muted:#758097;--line:#e6eaf1;--paper:#f5f7fb;--white:#fff;--green:#147d64;--red:#b83a4b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);gap:24px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:16px;letter-spacing:-.4px}.brand small{display:block;font-size:10px;font-weight:500;color:var(--muted);letter-spacing:.4px}.brand-mark{height:42px;width:42px;display:grid;place-items:center;border-radius:13px;background:var(--navy);color:var(--gold);font-size:22px;font-weight:900}.topbar nav{display:flex;align-items:center;gap:25px;color:#59647a;font-size:13px}.topbar nav a:hover{color:#b47a0b}.nav-cta{padding:10px 15px;border-radius:9px;background:var(--button-color,var(--navy));color:var(--button-text-color,#fff)!important}.container{max-width:1200px;width:90%;margin:0 auto;min-height:calc(100vh - 140px);padding:38px 0 60px}.hero{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:7%;padding:48px 0 70px}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:800;color:#b27a16;margin-bottom:15px}.hero h1,.auth-aside h1{font-size:clamp(42px,5vw,68px);line-height:1.03;letter-spacing:-2.8px;margin:0 0 22px;color:var(--navy)}h1 em{font-style:normal;color:#c58b22}.hero-copy>p,.auth-aside>p{max-width:490px;color:#69758b;font-size:16px;line-height:1.8}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;border:0;border-radius:9px;padding:13px 18px;font:700 13px inherit;cursor:pointer;transition:transform .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--button-color,var(--navy));color:var(--button-text-color,#fff);box-shadow:0 8px 20px #101b3522}.btn.primary:hover{background:var(--button-color,var(--navy))}.btn.secondary{background:#fff;border:1px solid #dfe4ed;color:var(--navy)}.btn.full{width:100%;margin-top:10px}.btn.tiny{padding:7px 10px;font-size:11px}.trust-row{display:flex;gap:22px;flex-wrap:wrap;color:#788398;font-size:11px}.hero-panel{padding:25px;border-radius:20px;background:linear-gradient(145deg,#14213e,#24395d);box-shadow:0 24px 60px #17254226;color:#fff;min-height:360px;position:relative;overflow:hidden}.hero-panel:after{content:"";position:absolute;width:220px;height:220px;border:1px solid #ffffff16;border-radius:50%;right:-80px;bottom:-90px;box-shadow:0 0 0 30px #ffffff08,0 0 0 60px #ffffff05}.panel-top{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1.4px;color:#c4cee0}.live-dot{width:7px;height:7px;border-radius:50%;background:#67d8a7}.panel-tag{margin-left:auto;padding:5px 8px;background:#ffffff12;border-radius:5px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:26px 0}.stat{padding:19px;border:1px solid #ffffff16;border-radius:12px;background:#ffffff08}.stat span,.metric-card>span{font-size:9px;letter-spacing:1.2px;color:#b5c0d4;font-weight:700}.stat strong{display:block;font-size:29px;color:var(--gold);margin:8px 0 0}.stat small{color:#b8c4d8;font-size:11px}.panel-note{display:flex;align-items:center;gap:13px;padding:15px;background:#ffffff0c;border-radius:10px}.note-icon{font-size:23px;color:var(--gold)}.panel-note strong,.panel-note small{display:block}.panel-note small{font-size:11px;color:#b8c4d8;margin-top:2px}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;border-top:1px solid var(--line);padding-top:30px}.feature-row article{padding:8px 5px}.feature-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:#fff3d9;color:#a86f0b;font-size:22px;margin-bottom:17px}.feature-row h3,.dashboard-card h3,.side-help h3{margin:0 0 8px;font-size:16px}.feature-row p,.dashboard-card p,.side-help p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.footer{display:flex;justify-content:space-between;gap:20px;padding:20px 5%;border-top:1px solid var(--line);background:#fff;color:#8b94a5;font-size:11px}.auth-layout{display:grid;grid-template-columns:1fr 430px;gap:9%;align-items:center;max-width:1000px;margin:10px auto 20px}.auth-aside{padding:40px 0}.auth-aside h1{font-size:51px}.aside-points{display:grid;gap:13px;margin-top:28px;color:#59667c;font-size:12px}.auth-card,.surface{background:#fff;border:1px solid #e8ecf3;border-radius:16px;padding:30px;box-shadow:0 8px 30px #1d2c4c08}.auth-card h2,.surface h2{font-size:24px;letter-spacing:-.7px;margin:0 0 6px}.muted{color:var(--muted);font-size:12px}.auth-card form{margin-top:22px}.auth-card label,.surface label{display:block;font-size:11px;font-weight:750;color:#354159;margin:15px 0 7px}.auth-card input,.surface input,.surface select,.search-input,.filter-row input,.filter-row select{width:100%;border:1px solid #dfe4ed;border-radius:8px;padding:12px 13px;background:#fff;font:inherit;color:var(--ink);outline:none}.auth-card input:focus,.surface input:focus,.surface select:focus{border-color:#d9a334;box-shadow:0 0 0 3px #f5d99540}.form-foot{text-align:center;color:var(--muted);font-size:12px;margin:20px 0 0}.form-foot a{color:#ad7717;font-weight:800}.alert{padding:12px 15px;border-radius:9px;margin:0 0 18px;font-size:12px}.alert.error{background:#fff0f1;color:var(--red);border:1px solid #f5d1d6}.alert.success{background:#e9f8f2;color:var(--green);border:1px solid #c8eddf}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:5px 0 30px}.page-heading h1{font-size:35px;letter-spacing:-1.4px;margin:0 0 7px;color:var(--navy)}.page-heading p,.section-heading p{color:var(--muted);font-size:12px;margin:0}.role-chip{padding:8px 12px;background:#fff5df;color:#97630a;border:1px solid #f1dfb6;border-radius:99px;font-size:11px;font-weight:800;white-space:nowrap}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}.metric-card{padding:22px;background:var(--navy);border-radius:13px;color:#fff}.metric-card strong{display:block;font-size:32px;margin:7px 0}.metric-card small{color:#c0c9d9;font-size:11px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 16px}.section-heading h2{font-size:21px;margin:0 0 4px;letter-spacing:-.6px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dashboard-card{padding:23px;background:#fff;border:1px solid var(--line);border-radius:14px;transition:.2s}.dashboard-card:hover{transform:translateY(-2px);border-color:#e7c36e;box-shadow:0 12px 30px #1524430a}.dashboard-card .feature-icon{margin-bottom:14px}.card-link{display:block;margin-top:20px;font-size:11px;font-weight:800;color:#b27a16}.content-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:18px;margin-bottom:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.form-grid label{margin-top:12px}.form-grid input,.form-grid select{width:100%;border:1px solid #dfe4ed;border-radius:8px;padding:11px;font:inherit;background:#fff}.form-actions{grid-column:1/-1;margin-top:20px}.span-2{grid-column:span 2}.side-help{background:#fffaf0}.side-help ul{padding-left:17px;color:#68748a;font-size:12px;line-height:2}.table-surface{margin-top:22px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#7f899c;background:#f8f9fc;padding:13px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #edf0f5;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfcfe}.table-sub{display:block;color:#8791a3;font-size:10px;margin-top:3px}.type-pill,.status-pill{display:inline-block;padding:5px 8px;border-radius:6px;font-size:10px;font-weight:800}.type-pill.main{background:#e9f0ff;color:#3c5da3}.type-pill.elective{background:#fff0d5;color:#9a6508}.status-pill.active{background:#e5f7ef;color:#17785e}.status-pill.inactive{background:#fcebed;color:#a73a4b}.search-input{max-width:220px;padding:10px 12px}.empty-state{padding:30px;text-align:center;color:var(--muted);font-size:12px}.filter-row{display:flex;align-items:end;gap:15px}.filter-row>div{flex:1}.filter-row label{margin-top:0}.course-list{display:grid;gap:9px}.course-option{display:flex;align-items:center;gap:15px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;cursor:pointer}.course-option:has(input:checked){border-color:#d9b04d;background:#fffdf7}.course-option input{accent-color:#172746;width:17px;height:17px}.course-code{font-size:12px;font-weight:850;color:#24375c;min-width:76px}.course-name{flex:1;min-width:140px}.course-name strong,.course-name small{display:block}.course-name strong{font-size:12px}.course-name small{font-size:10px;color:var(--muted);margin-top:4px}.course-units{font-size:11px;color:#596780;white-space:nowrap}.unit-summary{display:flex;align-items:center;gap:10px;background:#fff;padding:9px 14px;border:1px solid var(--line);border-radius:9px}.unit-summary strong{font-size:20px;color:#b27a16}.unit-summary span{font-size:10px;color:var(--muted)}.registration-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0}.registration-submit p{max-width:560px}.setup{display:grid;place-items:center}.setup .auth-card{width:min(100%,460px)}@media(max-width:850px){.hero{grid-template-columns:1fr;gap:30px;padding-top:20px}.hero-panel{min-height:auto}.auth-layout{grid-template-columns:1fr;gap:15px;max-width:520px}.auth-aside{padding:5px 0}.auth-aside h1{font-size:40px}.auth-aside>p,.aside-points{display:none}.content-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 5%;height:auto;min-height:70px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.topbar nav{gap:12px;flex-wrap:wrap}.stats-row{grid-template-columns:1fr 1fr}.page-heading h1{font-size:29px}}@media(max-width:560px){.container{width:92%;padding-top:25px}.topbar nav{width:100%;justify-content:space-between;font-size:11px}.hero h1{font-size:44px}.feature-row,.dashboard-grid,.stats-row{grid-template-columns:1fr}.feature-row{gap:8px}.auth-card,.surface{padding:21px}.page-heading{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.filter-row{align-items:stretch;flex-direction:column}.course-option{gap:9px;flex-wrap:wrap}.course-code{min-width:64px}.course-name{flex-basis:calc(100% - 110px)}.registration-submit{align-items:stretch;flex-direction:column}.footer{flex-direction:column;gap:5px}.search-input{max-width:100%}}

.mini-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap;min-width:180px}.mini-form input,.mini-form select{max-width:180px;padding:8px;border:1px solid var(--line);border-radius:7px;font:inherit}details summary{cursor:pointer;color:#a87514;font-weight:800;font-size:11px}.course-option.already-registered{opacity:.72}

.mini-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap;min-width:180px}.mini-form input,.mini-form select{max-width:180px;padding:8px;border:1px solid var(--line);border-radius:7px;font:inherit}details summary{cursor:pointer;color:#a87514;font-weight:800;font-size:11px}.course-option.already-registered{opacity:.72}

/* System & Branding controls and preview */
.form-grid textarea{width:100%;border:1px solid #dfe4ed;border-radius:8px;padding:11px;font:inherit;background:#fff;resize:vertical}.color-setting{display:flex;align-items:center;gap:8px}.surface .color-setting input[type=color]{width:52px;height:42px;padding:3px;cursor:pointer}.surface .color-setting input[type=text]{flex:1}.branding-preview{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--preview-bg);color:#182238;margin:18px 0}.preview-top{display:flex;align-items:center;gap:10px;padding:14px;background:var(--preview-theme);color:#fff}.preview-mark{width:35px;height:35px;border-radius:8px;background:var(--preview-accent);display:grid;place-items:center;color:var(--preview-theme);font-weight:900;overflow:hidden}.preview-mark img{width:100%;height:100%;object-fit:contain;background:#fff}.preview-top strong,.preview-top small{display:block}.preview-top strong{font-size:12px}.preview-top small{font-size:9px;opacity:.8}.preview-body{padding:18px}.preview-body>small{color:var(--preview-accent);font-weight:800;letter-spacing:1px}.preview-body h3{margin:8px 0;font-size:22px;color:var(--preview-theme)}.preview-body p{font-size:11px;color:#667085}.preview-body button{border:0;border-radius:7px;padding:9px 12px;background:var(--preview-button);color:var(--preview-button-text);font:inherit;font-size:11px;font-weight:800}.preview-footer{display:flex;justify-content:space-between;gap:8px;padding:12px 15px;background:#fff;border-top:1px solid var(--line);color:#7d8798;font-size:9px}

/* v10: consistent modern button system across the portal */
.btn, button, input[type="submit"], input[type="button"], .link-button, .nav-cta {border-radius:10px;font-weight:750;letter-spacing:.05px;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease;box-shadow:0 5px 14px rgba(16,27,53,.09)}
button, input[type="submit"], input[type="button"]{font:inherit;cursor:pointer}
.btn.primary, .nav-cta, button.btn.primary, input[type="submit"]{background:var(--button-color,var(--navy));color:var(--button-text-color,#fff);border:1px solid transparent}
.btn.secondary, button.btn.secondary{background:linear-gradient(180deg,#fff,#f7f9fc);border:1px solid #d9e0eb;color:#243451}
.btn:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover, .link-button:hover, .nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(16,27,53,.14)}
.btn:focus-visible, button:focus-visible, input[type="submit"]:focus-visible, .nav-cta:focus-visible{outline:3px solid #f1b94a88;outline-offset:2px}
.link-button{background:transparent;border:0;color:#9b6b12;padding:5px 8px;box-shadow:none}
.btn.tiny{border-radius:8px;padding:7px 11px}


/* v11: consistent high-visibility action styling across all portal modules */
:root{--portal-action-radius:10px;--portal-action-shadow:0 4px 12px rgba(16,27,53,.12)}
.btn, a.btn, button, input[type=submit], input[type=button], input[type=reset], .nav-cta, .link-button, [role=button]{border-radius:var(--portal-action-radius)!important;font-weight:750!important;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;box-shadow:var(--portal-action-shadow)!important;cursor:pointer}
a.btn,button.btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none!important;line-height:1.25;padding:10px 15px;border:1px solid transparent}
.btn.primary,button.btn.primary,input[type=submit],.nav-cta{background:var(--button-color,var(--navy,#172746))!important;color:var(--button-text-color,#fff)!important;border-color:var(--button-color,var(--navy,#172746))!important}
.btn.secondary,button.btn.secondary{background:linear-gradient(180deg,#fff,#f4f6fa)!important;color:#243451!important;border:1px solid #d7deea!important}
.btn.danger,button.btn.danger{background:#fff0f1!important;color:#a42e3f!important;border:1px solid #f0c9cf!important}
.btn:hover,button:hover,input[type=submit]:hover,input[type=button]:hover,input[type=reset]:hover,.nav-cta:hover,[role=button]:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(16,27,53,.18)!important;filter:brightness(.98)}
.btn:active,button:active,input[type=submit]:active,input[type=button]:active{transform:translateY(0)}
.btn:focus-visible,button:focus-visible,input[type=submit]:focus-visible,input[type=button]:focus-visible,input[type=reset]:focus-visible,a.btn:focus-visible{outline:3px solid #f1b94a99!important;outline-offset:2px}
button:disabled,input:disabled.btn{opacity:.55;cursor:not-allowed;transform:none!important}
.form-actions .btn,.registration-submit .btn{min-height:40px}
@media(max-width:560px){a.btn,button.btn,.btn{max-width:100%;white-space:normal;text-align:center}}

/* v11 course-entry table: one clearly labeled input per column */
.custom-course-entry{white-space:normal;min-width:720px}.custom-course-entry th{white-space:nowrap}.custom-course-entry td{vertical-align:middle;padding:8px}.custom-course-entry input,.custom-course-entry select{width:100%;min-width:80px;box-sizing:border-box;border:1px solid #d7deea;border-radius:8px;padding:10px 9px;font:inherit;background:#fff;color:#172033}.custom-course-entry td:nth-child(2){min-width:210px}.custom-course-entry td:last-child{min-width:100px}
/* v11: catch legacy plain controls that did not carry the shared .btn class */
button:not(.btn),input[type=button]:not(.btn),input[type=reset]:not(.btn){background:var(--button-color,var(--navy,#172746))!important;color:var(--button-text-color,#fff)!important;border:1px solid transparent!important;padding:9px 13px!important;min-height:34px}

/* v12: enforce modern button styling across legacy and navigation controls */
:root{--btn-radius:10px;--btn-shadow:0 4px 12px rgba(16,27,53,.14)}
button,input[type=submit],input[type=button],input[type=reset],.btn,.link-button,.nav-cta,.topbar nav a{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease!important;border-radius:var(--btn-radius)!important;font-weight:700!important}
button,input[type=submit],input[type=button],input[type=reset],.btn,.link-button,.nav-cta{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px!important;border:1px solid #d8e1ef!important;box-shadow:var(--btn-shadow)!important;cursor:pointer;text-decoration:none!important;line-height:1.35!important}
button:not(.secondary),input[type=submit],input[type=button],.btn.primary,.nav-cta{background:var(--button-color,#172746)!important;color:var(--button-text-color,#fff)!important;border-color:transparent!important}
button.secondary,.btn.secondary,.link-button{background:#fff!important;color:#172746!important;border-color:#d5deeb!important}
button:hover,input[type=submit]:hover,input[type=button]:hover,input[type=reset]:hover,.btn:hover,.link-button:hover,.nav-cta:hover,.topbar nav a:hover{filter:brightness(.97);box-shadow:0 7px 18px rgba(16,27,53,.19)!important;transform:translateY(-1px)}
button:focus-visible,input:focus-visible,.btn:focus-visible,.topbar nav a:focus-visible{outline:3px solid #f1b94a!important;outline-offset:2px}
.topbar nav a{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px!important;border:1px solid #e0e6ef!important;background:#fff!important;color:var(--nav-font-color,#354159)!important;box-shadow:0 2px 7px rgba(16,27,53,.06)!important}
.topbar nav a.nav-cta,.topbar nav a[href*="login"],.topbar nav a[href*="register"]{background:var(--button-color,var(--navy))!important;color:var(--button-text-color,#fff)!important;border-color:transparent!important}
.btn.tiny,button.btn.tiny{padding:7px 10px!important;font-size:11px!important}
.type-pill.carryover{background:#fce8ec;color:#9b2742}

/* v14: make native select menus readable across browser themes */
select, option, .surface select, .form-grid select, .filter-row select, .mini-form select { color:#172033 !important; background-color:#ffffff !important; }
select option { color:#172033 !important; background:#ffffff !important; }
select:disabled, option:disabled { color:#667085 !important; }

/* v17: enforce readable native dropdown controls across the portal */
select, select:focus, select:active { color-scheme: light; color:#172033 !important; background-color:#fff !important; border-color:#cbd3e1; }
select option, select optgroup { color:#172033 !important; background-color:#fff !important; }
select option:checked { color:#172033 !important; background-color:#e8edf5 !important; }
