/* BI manual: original vector marks; screen colors sampled from its PDF. */
@font-face {
  font-family: "Pretendard";
  src: url("/assets/fonts/PretendardVariable.woff2") format("woff2");
  font-weight: 45 920;
  font-style: normal;
  font-display: swap;
}
:root {
  --bi-deep: #16181d;
  --bi-blue: #62ccf5;
  --bi-gray: #272628;
  --bi-white: #fff;
  --bi-link: #086780;
  --bi-soft: #eaf8fd;
  --ink: var(--bi-deep);
  --muted: #62666e;
  --green: var(--bi-blue);
  --lime: #bceafa;
  --line: #dfe3e6;
  --bg: #f5f6f7;
  --sidebar: var(--bi-deep);
  --portal-blue: var(--bi-blue);
  --portal-deep: var(--bi-deep);
  --portal-bg: var(--bg);
  font-family: "Pretendard", "Malgun Gothic", sans-serif;
  font-size: 14px;
}
body { background: var(--bg); color: var(--ink); font-family: "Pretendard", "Malgun Gothic", sans-serif; font-weight: 500; }
button, input, select, textarea { font-family: inherit; }
h1,h2,h3 { color: var(--ink); letter-spacing: -.035em; }
p { color: var(--muted); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline: 3px solid var(--bi-link); outline-offset: 3px;
}
input[type=checkbox],input[type=radio],progress { accent-color: var(--bi-link); }
.portal-header { background: var(--bi-deep); border-bottom: 3px solid var(--bi-blue); padding-top: 22px; padding-bottom: 22px; }
.portal-brand { flex-direction: column; align-items: flex-start; gap: 10px; padding: 8px 0; }
.portal-brand-logo { display: block; width: 300px; height: auto; }
.portal-brand small { color: #d1d6dd; font-size: 12px; font-weight: 500; letter-spacing: .01em; }
.portal-profile { color: var(--bi-white); background: #24272e; border-color: #434951; border-radius: 10px; }
.portal-profile-avatar { background: var(--bi-blue); color: var(--bi-deep); }
.portal-profile b,.portal-profile-empty b { color: var(--bi-white); }
.portal-profile small { color: #c2c9d2; }
.portal-profile em { color: var(--bi-blue); }
.portal-profile-main:hover,.portal-profile-empty:hover { background: #30343c; }
.portal-profile-logout { border-color: #434951; color: #d9e1e8; }
.portal-profile-empty .portal-profile-avatar { background: #434951; color: #fff; }
.portal-main { padding-top: 36px; }
.portal-hero>div { background: var(--bi-deep); border-radius: 18px; padding: 40px; border-top: 4px solid var(--bi-blue); }
.portal-hero h1 { color: var(--bi-white); font-size: 38px; font-weight: 700; line-height: 1.35; }
.portal-hero p { color: #d5dae1; opacity: 1; }
.portal-hero .eyebrow { color: var(--bi-blue); letter-spacing: .08em; }
.portal-hero aside { border-color: var(--line); border-radius: 18px; border-top: 4px solid var(--bi-blue); }
.eyebrow { color: var(--bi-link); }
.portal-shell .button { background: var(--bi-blue); color: var(--bi-deep); border: 1px solid var(--bi-blue); border-radius: 8px; font-weight: 700; min-height: 40px; box-shadow: none; }
.portal-shell .button:hover { background: #a3e2f9; border-color: #a3e2f9; color: var(--bi-deep); box-shadow: none; }
.portal-shell .button.outline { background: var(--bi-white); color: var(--bi-gray); border-color: #cbd1d6; }
.portal-shell .button.outline:hover { background: var(--bi-soft); border-color: var(--bi-link); }
.portal-shell .button.danger { background: #fff2f0; color: #a42e25; border-color: #da9c96; }
.portal-shell .button.danger:hover { background: #ffe3df; border-color: #a42e25; }
.portal-shell .button:disabled { opacity: .5; cursor: not-allowed; }
.portal-program-card { border-color: var(--line); border-radius: 14px; box-shadow: 0 4px 18px #16181d06; border-top: 3px solid var(--bi-blue); }
.portal-program-card p,.portal-lookup-help,.portal-lookup-item p,.application-summary p { color: var(--muted); }
.portal-program-meta span,.portal-review-meta div,.portal-lookup-empty { background: #f1f3f5; color: var(--bi-gray); }
.portal-program-meta span { border-radius: 6px; }
.panel { border-color: var(--line); border-radius: 14px; box-shadow: none; }
.portal-consent,.application-notice,.template-submission-policy { background: var(--bi-soft); border-color: #b5dce9; color: var(--bi-gray); }
.portal-admin-app-list button { border-color: var(--line); border-radius: 8px; }
.portal-admin-app-list button.active,.template-submission-policy label.selected,.course-option-grid label.selected { background: var(--bi-soft); border-color: var(--bi-link); }
.portal-admin-app-list small,.portal-review-meta dt,.application-program-info dt { color: var(--muted); }
.program-summary-link,.portal-program-summary-link,.program-summary-link.active,.portal-program-summary-link.active { color: var(--bi-link); }
.badge,.badge.blue,.badge.green { background: var(--bi-soft); color: #07556a; }
.badge.gray,.badge.silver { color: #50565e; background: #eef0f2; }
.badge.orange { color: #814415; background: #fff2e3; }
.portal-footer { background: var(--bi-deep); color: #c9d0d9; border-color: #434951; }
.portal-footer p { color: #c9d0d9; }
.portal-footer .portal-admin-link { color: var(--bi-blue); }
.portal-footer-mark { display: block; height: 32px; width: auto; margin: 0 auto 14px; }
.field input,.field select,.field textarea { border-color: #cbd1d6; border-radius: 7px; color: var(--ink); }
.field input:focus,.field select:focus,.field textarea:focus { border-color: var(--bi-link); }
.attachment-picker,.attachment-select { border-color: var(--line); background: #fff; }
.attachment-picker h3 { color: var(--bi-deep); }
.attachment-picker small,.attachment-select span { color: var(--muted); }
.transfer-status { color: var(--bi-deep); border-top: 4px solid var(--bi-blue); }
.transfer-status progress,.application-progress-track i { accent-color: var(--bi-link); background-color: var(--bi-blue); }
.application-progress-track { background: #dcecf2; }
.page-dot.complete { background: var(--bi-link); }
.page-arrow:hover:not(:disabled),.page-arrow:focus-visible { background: var(--bi-soft); border-color: var(--bi-link); }
.template-selection-scope button.active { background: var(--bi-deep); border-color: var(--bi-deep); color: var(--bi-blue); }
.template-preview-heading,.completed-application-heading,.application-template-meta { background: #f3f5f6; border-color: var(--line); }
.application-program-info div { border-color: var(--bi-blue); }
.portal-lookup-item { border-color: var(--line); }
.portal-lookup-item.status-needs_revision { background: var(--bi-soft); border-color: #9acbdc; }
@media(max-width:800px) {
  .portal-header { padding: 16px 18px; gap: 16px; }
  .portal-brand-logo { width: 240px; }
  .portal-hero>div { padding: 28px; }
  .portal-hero h1 { font-size: 30px; }
}
@media(max-width:560px) {
  .portal-header { align-items: flex-start; flex-wrap: wrap; gap: 12px; padding: 14px 16px; }
  .portal-brand { gap: 8px; }
  .portal-brand-logo { width: 230px; }
  .portal-brand small { font-size: 11px; }
  .portal-profile { margin-left: auto; max-width: 100%; }
  .portal-main { padding-top: 24px; }
  .portal-hero h1 { font-size: 28px; }
}
@media print { .portal-header,.portal-footer,.transfer-overlay { display: none; } }
/* Shared student/admin account forms. */
.portal-login .portal-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#edf0f2;border-radius:12px;margin-bottom:24px}
.portal-login .portal-auth-tabs button{width:auto;margin:0;padding:12px;border:0;border-radius:9px;background:transparent;color:#62666e;font:inherit;cursor:pointer}
.portal-login .portal-auth-tabs button.active{background:#fff;color:#16181d;box-shadow:0 2px 6px #16181d14;font-weight:700}
.portal-login .portal-auth-tabs button:focus-visible{outline:2px solid #086780;outline-offset:1px}
.portal-login form{display:grid;gap:16px;max-width:560px}
.portal-profile-form{display:grid;gap:16px;max-width:560px;margin:20px 0}
.portal-account-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.portal-my-page{display:grid;gap:24px}
.portal-member-editor{margin-top:24px;padding-top:24px;border-top:1px solid #dce0e4}
.portal-profile-form{max-width:760px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px}
.portal-profile-form .field,.portal-login form .field{margin:0;min-width:0}
.portal-profile-form .field>span{min-height:20px;line-height:20px}
.portal-profile-form>button{grid-column:1/-1;justify-self:start;min-width:160px}
.portal-profile-form input{min-height:44px}
.portal-password-control{position:relative;width:100%}
.portal-password-control input{padding-right:72px;min-height:44px}
.portal-password-control .portal-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:auto;margin:0;padding:6px 10px;min-height:32px;border:0;border-radius:5px;background:#edf0f2;color:#16181d;font:inherit;cursor:pointer}
.portal-password-toggle:focus-visible{outline:2px solid #086780;outline-offset:2px}
.portal-withdrawal-history{margin-top:24px;padding-top:20px;border-top:1px solid #dce6f3}
.portal-withdrawal-history summary{cursor:pointer;font-weight:700}
.portal-reset-panel{margin:24px 0;padding:18px;border:1px solid #dce0e4;border-radius:10px;background:#f7f9fb}
.portal-reset-panel input[readonly]{font-family:monospace;font-size:14px}
.portal-reset-help{padding:14px;margin:16px 0;background:#edf8fd;border-radius:8px;color:#304b59;line-height:1.6}
@media(max-width:640px){.portal-profile-form{grid-template-columns:minmax(0,1fr)}.portal-profile-form>button{justify-self:stretch}}
.portal-main .panel,.portal-admin-app>* ,.template-designer>*{min-width:0}
.portal-admin-app{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start}
.panel-heading,.completed-application-heading,.application-editor-heading{flex-wrap:wrap}
.portal-application-row{display:flex;align-items:center;gap:10px;min-width:0}
.portal-application-row>input{flex:0 0 18px;width:18px;height:18px;cursor:pointer}
.portal-application-row>button{flex:1;min-width:0;overflow-wrap:anywhere}
.portal-bulk-tools{margin-bottom:18px;display:grid;gap:12px}
.portal-bulk-actions{display:flex;flex-wrap:wrap;gap:8px}
.portal-bulk-actions .button{white-space:normal}
.form-zoom{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;background:#f3f5f7;border-bottom:1px solid #dce0e4}
.form-zoom .button{padding:7px 10px;min-height:36px;margin:0;width:auto}
.form-zoom output{min-width:48px;text-align:center;font-variant-numeric:tabular-nums}
.application-template-frame,.completed-application-frame,.template-preview-frame{width:100%!important;min-width:0!important;max-width:100%;height:100%;display:block;border:0}
.application-frame-shell,.completed-application-frame-shell,.template-preview-shell{width:100%;max-width:100%;min-width:0;height:min(75vh,900px);overflow:auto}
.portal-review-meta dd,.attachment-picker li>span{overflow-wrap:anywhere;min-width:0}
.portal-review-actions,.completed-application-heading-actions,.application-actions{flex-wrap:wrap}
.template-designer{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}
.table-wrap{max-width:100%;overflow:auto}
@media(max-width:900px){
 .portal-admin-app,.template-designer,.template-admin-toolbar{grid-template-columns:minmax(0,1fr)}
 .portal-admin-toolbar{align-items:flex-start;gap:16px;flex-direction:column}
 .portal-admin-app-list{max-height:340px;overflow:auto}
 .portal-admin-app>.panel{padding:20px}
 .template-field-list{max-height:none}
}
@media(max-width:640px){
 .portal-header{position:static;flex-wrap:wrap;padding:14px;gap:14px}
 .portal-brand{min-width:0;max-width:100%}.portal-brand-logo{max-width:180px;height:auto}
 .portal-profile{margin-left:0;width:100%;min-width:0}.portal-profile-main{min-width:0}.portal-profile-main>span:last-child{min-width:0}.portal-profile small{white-space:normal;overflow-wrap:anywhere}
 .portal-main{width:calc(100% - 24px);padding-top:20px}
 .portal-main .panel{padding:16px}
 .portal-hero,.portal-programs,.portal-review-meta,.application-program-info{grid-template-columns:minmax(0,1fr)}
 .portal-hero>div,.portal-hero aside{padding:24px}.portal-hero h1{font-size:28px}
 .panel-heading{gap:12px}.panel-heading h2{overflow-wrap:anywhere}
 .portal-sequence{display:flex;flex-wrap:wrap;gap:8px}
 .completed-application-heading{padding:16px;gap:14px}.completed-application-heading-actions{display:flex;width:100%;gap:8px}
 .application-summary{display:block}.application-program-info{min-width:0;margin-top:20px}
 .application-actions,.portal-review-actions{position:static;justify-content:flex-start;padding:12px;gap:8px}
 .application-actions .button{min-width:0;white-space:normal}
 .attachment-picker{padding:14px}.attachment-picker li{display:flex;flex-wrap:wrap;gap:8px}.attachment-picker li>span{flex-basis:100%}
 .course-option-grid,.template-field-options{grid-template-columns:minmax(0,1fr)}
 .course-template-upload,.template-upload{flex-wrap:wrap;align-items:stretch}.course-template-upload .field,.template-upload .field{flex-basis:100%;min-width:0}
 .portal-login{margin:16px auto}
}
