/* Kabarnet University College — Course Registration Portal styles.
   Ported unchanged from the previous registration_form.html. Loaded as a
   normal static stylesheet (wp_enqueue_style), so — unlike a Custom HTML
   block — nothing here passes through WordPress's post-content filters. */
:root{
  --primary:#0b5b3c;
  --primary-dark:#083f2a;
  --bg:#f4f6f5;
  --card:#ffffff;
  --border:#d7ddda;
  --text:#1f2b26;
  --muted:#5c6b64;
  --error:#c0392b;
  --radius:10px;
}
.kbr-form-root *{box-sizing:border-box;}
.kbr-form-root{
  font-family:"Segoe UI", Arial, Helvetica, sans-serif;
  color:var(--text);
  padding:24px 12px 60px;
  background:var(--bg);
}
.kbr-form-root .wrap{max-width:760px;margin:0 auto;}
.kbr-form-root .card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:32px 28px;
  box-shadow:0 2px 10px rgba(0,0,0,0.05);
}
.kbr-form-root header.form-header{text-align:center;margin-bottom:24px;}
.kbr-form-root header.form-header h1{font-size:1.5rem;margin:0 0 6px;color:var(--primary-dark);}
.kbr-form-root header.form-header p{margin:0;color:var(--muted);font-size:0.95rem;}
.kbr-form-root .max-submissions-notice{
  background:#fff6e0;border:1px solid #f0dfa6;color:#7a5b00;
  border-radius:8px;padding:12px 16px;font-size:0.88rem;margin-bottom:20px;text-align:center;
}
.kbr-form-root fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 20px;margin:0 0 20px;}
.kbr-form-root legend{padding:0 8px;font-weight:600;color:var(--primary-dark);font-size:0.95rem;}
.kbr-form-root .row{display:flex;gap:16px;flex-wrap:wrap;}
.kbr-form-root .field{flex:1 1 220px;margin-bottom:16px;}
.kbr-form-root label{display:block;font-size:0.88rem;font-weight:600;margin-bottom:6px;color:var(--text);}
.kbr-form-root label .req{color:var(--error);}
.kbr-form-root input[type=text],
.kbr-form-root input[type=email],
.kbr-form-root input[type=tel],
.kbr-form-root input[type=date],
.kbr-form-root input[type=password],
.kbr-form-root select,
.kbr-form-root textarea{
  width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;
  font-size:0.95rem;background:#fff;color:var(--text);font-family:inherit;
}
.kbr-form-root input:focus, .kbr-form-root select:focus, .kbr-form-root textarea:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(11,91,60,0.15);
}
.kbr-form-root select:disabled{background:#f0f1f0;color:#9aa39d;}
.kbr-form-root input[readonly]{background:#f0f1f0;color:#3f4a45;cursor:default;}
.kbr-form-root .hint{font-size:0.78rem;color:var(--muted);margin-top:4px;}
.kbr-form-root #lookupStatus.lookup-success{font-size:1.05rem;font-weight:700;color:#1e6b34;margin-top:6px;}
.kbr-form-root .error-msg{font-size:0.8rem;color:var(--error);margin-top:4px;display:none;}
.kbr-form-root .field.invalid input, .kbr-form-root .field.invalid select{border-color:var(--error);}
.kbr-form-root .field.invalid .error-msg{display:block;}

.kbr-form-root .regno-wrap{position:relative;}
.kbr-form-root .regno-group{
  display:flex;align-items:center;gap:6px;width:100%;padding:6px 12px;
  border:1px solid var(--border);border-radius:8px;background:#fff;
}
.kbr-form-root .regno-group:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(11,91,60,0.15);}
.kbr-form-root .regno-fixed{font-size:1rem;font-weight:700;color:var(--muted);}
.kbr-form-root .regno-box{
  border:none;outline:none;padding:4px 2px;font-size:1rem;text-align:center;
  background:transparent;color:var(--text);font-family:inherit;width:3ch;
}
.kbr-form-root .regno-box-wide{width:4.2ch;}
.kbr-form-root .field.invalid .regno-group{border-color:var(--error);}

.kbr-form-root .regno-modal-box{max-width:440px;}
.kbr-form-root .regno-modal-title{
  font-size:1rem;font-weight:700;color:var(--primary-dark);margin:0 0 14px;text-align:center;
}
.kbr-form-root .regno-suggestion-list{max-height:260px;overflow-y:auto;text-align:left;margin-bottom:6px;}
.kbr-form-root .regno-suggestion-item{
  padding:12px 14px;cursor:pointer;font-size:1.05rem;font-weight:700;color:#1e6b34;
  border:2px solid transparent;border-bottom:1px solid #eef1ef;border-radius:6px;
}
.kbr-form-root .regno-suggestion-item:last-child{border-bottom-color:transparent;}
.kbr-form-root .regno-suggestion-item:hover{background:#eaf7ee;}
.kbr-form-root .regno-suggestion-item.selected{background:#eaf7ee;border-color:#1e6b34;}
.kbr-form-root .regno-suggestion-item .sugg-reg{font-weight:800;}
.kbr-form-root .regno-suggestion-item .sugg-name{font-weight:700;}
.kbr-form-root .regno-suggestion-item .sugg-programme{display:block;font-size:0.85rem;font-weight:600;color:#2f5d50;margin-top:3px;}
.kbr-form-root .regno-suggestion-note{
  padding:6px 4px;font-size:0.8rem;color:var(--muted);font-style:italic;text-align:left;
}

.kbr-form-root .subject-row{display:flex;gap:8px;margin-bottom:10px;align-items:center;}
.kbr-form-root .subject-row input{flex:1;}
.kbr-form-root .subject-row button{
  flex:0 0 auto;background:#fbeaea;color:var(--error);border:1px solid #f0c4c4;
  border-radius:8px;padding:8px 12px;cursor:pointer;font-size:0.85rem;
}
.kbr-form-root .subject-row button:hover{background:#f6d6d6;}
.kbr-form-root #addSubjectBtn{
  background:#eef6f1;color:var(--primary-dark);border:1px solid #cfe6da;border-radius:8px;
  padding:9px 14px;cursor:pointer;font-size:0.88rem;font-weight:600;
}
.kbr-form-root #addSubjectBtn:hover{background:#e2f1e8;}

.kbr-form-root .subject-note{
  font-size:0.82rem;color:var(--primary-dark);background:#eef6f1;border:1px solid #cfe6da;
  border-radius:8px;padding:10px 12px;margin-bottom:12px;
}
.kbr-form-root .subject-note.warn{color:#7a5b00;background:#fff6e0;border-color:#f0dfa6;}
.kbr-form-root .selectAllRow{
  display:flex;align-items:center;gap:8px;font-weight:600;font-size:0.88rem;
  margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed var(--border);
}
.kbr-form-root .selectAllRow input{width:auto;}
.kbr-form-root .subjectChecklist{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto;padding-right:4px;}
.kbr-form-root .subjectCheckItem{display:flex;align-items:flex-start;gap:8px;font-size:0.9rem;font-weight:400;}
.kbr-form-root .subjectCheckItem input{width:auto;margin-top:3px;}

.kbr-form-root .submit-bar{margin-top:8px;}
.kbr-form-root button#submitBtn{
  width:100%;padding:14px;background:var(--primary);color:#fff;border:none;border-radius:8px;
  font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s ease;
}
.kbr-form-root button#submitBtn:hover{background:var(--primary-dark);}
.kbr-form-root button#submitBtn:disabled{background:#9bb8ac;cursor:not-allowed;}

.kbr-form-root #statusBox{margin-top:18px;padding:14px 16px;border-radius:8px;font-size:0.92rem;display:none;}
.kbr-form-root #statusBox.success{display:block;background:#eaf7ee;border:1px solid #bfe3c9;color:#1e6b34;}
.kbr-form-root #statusBox.error{display:block;background:#fdeceb;border:1px solid #f3bcb7;color:#a5312a;}

.kbr-form-root .spinner{
  display:inline-block;width:14px;height:14px;border:2px solid #ffffff66;border-top-color:#fff;
  border-radius:50%;animation:kbr-spin .7s linear infinite;margin-right:8px;vertical-align:-2px;
}
@keyframes kbr-spin{to{transform:rotate(360deg);}}

.kbr-form-root footer.note{text-align:center;font-size:0.75rem;color:var(--muted);margin-top:18px;}

.kbr-form-root .admin-panel{
  max-width:760px;margin:0 auto 12px;background:#eef0ef;border:1px solid #d6dad8;
  border-radius:8px;font-size:0.85rem;
}
.kbr-form-root .admin-toggle{
  width:100%;text-align:left;background:none;border:none;padding:10px 14px;
  font-size:0.85rem;font-weight:600;color:#3d4a45;cursor:pointer;
}
.kbr-form-root .admin-toggle:hover{color:var(--primary-dark);}
.kbr-form-root .admin-body{padding:4px 14px 16px;}
.kbr-form-root .admin-body .row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px;}
.kbr-form-root .admin-body .field{flex:1 1 180px;margin-bottom:0;}
.kbr-form-root .admin-upload-row{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border);}
.kbr-form-root #uploadListBtn{
  background:#2f5d50;color:#fff;border:none;border-radius:6px;
  padding:9px 16px;font-size:0.85rem;font-weight:600;cursor:pointer;
}
.kbr-form-root #uploadListBtn:hover{background:#234439;}
.kbr-form-root #uploadListBtn:disabled{background:#9bb8ac;cursor:not-allowed;}
.kbr-form-root input[type=file]{
  width:100%;padding:8px 0;font-size:0.88rem;background:transparent;border:none;
}
.kbr-form-root .admin-body label{font-size:0.78rem;margin-bottom:4px;}
.kbr-form-root #setWindowBtn{
  background:var(--primary-dark);color:#fff;border:none;border-radius:6px;
  padding:9px 16px;font-size:0.85rem;font-weight:600;cursor:pointer;
}
.kbr-form-root #setWindowBtn:hover{background:#062c1e;}
.kbr-form-root #setWindowBtn:disabled{background:#9bb8ac;cursor:not-allowed;}
.kbr-form-root .forgot-link{
  display:inline-block;margin-top:5px;font-size:0.78rem;color:var(--primary-dark);
  text-decoration:underline;cursor:pointer;
}
.kbr-form-root .forgot-link:hover{color:var(--primary);}
.kbr-form-root .modal-box .modal-policy{
  font-size:0.8rem;color:var(--muted);background:#f4f6f5;border-radius:8px;
  padding:10px 12px;margin:-8px 0 16px;text-align:left;line-height:1.4;
}
.kbr-form-root .modal-overlay{
  position:fixed;inset:0;background:rgba(15,20,18,0.55);
  display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;
}
.kbr-form-root .modal-overlay[hidden]{display:none;}
.kbr-form-root .modal-box{
  background:#fff;border-radius:10px;padding:24px 26px;max-width:380px;width:100%;
  box-shadow:0 10px 30px rgba(0,0,0,0.25);text-align:center;
}
.kbr-form-root .modal-box p{margin:0 0 18px;font-size:0.95rem;color:var(--text);line-height:1.4;}
.kbr-form-root #modalOkBtn, .kbr-form-root #pwModalSubmitBtn, .kbr-form-root #confirmYesBtn, .kbr-form-root #suggestionOkBtn{
  background:var(--primary);color:#fff;border:none;border-radius:8px;
  padding:10px 28px;font-size:0.9rem;font-weight:600;cursor:pointer;
}
.kbr-form-root #modalOkBtn:hover, .kbr-form-root #pwModalSubmitBtn:hover, .kbr-form-root #confirmYesBtn:hover, .kbr-form-root #suggestionOkBtn:hover{background:var(--primary-dark);}
.kbr-form-root #pwModalSubmitBtn:disabled, .kbr-form-root #confirmYesBtn:disabled, .kbr-form-root #suggestionOkBtn:disabled{background:#9bb8ac;cursor:not-allowed;}

.kbr-form-root .window-banner{
  max-width:760px;margin:0 auto 16px;padding:12px 16px;border-radius:8px;
  font-size:0.88rem;font-weight:600;text-align:center;display:none;
}
.kbr-form-root .window-banner.open{display:block;background:#eaf7ee;border:1px solid #bfe3c9;color:#1e6b34;}
.kbr-form-root .window-banner.closed{display:block;background:#fdeceb;border:1px solid #f3bcb7;color:#a5312a;}

.kbr-form-root .view-sheet-wrap{max-width:760px;margin:0 auto 16px;text-align:center;}
.kbr-form-root .view-sheet-wrap .hint{text-align:center;margin-top:6px;}
.kbr-form-root #viewSheetBtn{
  background:#2f5d50;color:#fff;border:none;border-radius:6px;
  padding:9px 16px;font-size:0.85rem;font-weight:600;cursor:pointer;
}
.kbr-form-root #viewSheetBtn:hover{background:#234439;}
.kbr-form-root #viewSheetBtn:disabled{background:#9bb8ac;cursor:not-allowed;}

.kbr-form-root .modal-box input[type=password]{
  width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;
  font-size:0.95rem;margin-bottom:8px;text-align:left;
}
.kbr-form-root .modal-box .modal-attempts{font-size:0.78rem;color:var(--muted);margin-bottom:10px;text-align:left;}
.kbr-form-root .modal-box .modal-error{font-size:0.82rem;color:var(--error);margin-bottom:10px;text-align:left;display:none;}
.kbr-form-root .modal-box .modal-actions{display:flex;gap:10px;justify-content:center;}
.kbr-form-root .modal-box .modal-cancel{
  background:#eee;color:#333;border:none;border-radius:8px;
  padding:10px 22px;font-size:0.9rem;font-weight:600;cursor:pointer;
}
.kbr-form-root .modal-box .modal-cancel:hover{background:#e2e2e2;}
.kbr-form-root .page-footer{
  max-width:760px;margin:24px auto 12px;padding:14px 16px 0;text-align:center;
  font-size:0.8rem;color:var(--muted);border-top:1px solid var(--border);
}
