/* =========================================================
   University picker, campus/store location popups, promo codes
   (campus-ui.js)
   ========================================================= */
.ks-uni-picker { position: relative; }
.ks-uni-picker input { width: 100%; }
.ks-uni-list {
    display: none; position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60;
    max-height: 280px; overflow-y: auto; -webkit-overflow-scrolling: touch;
    background: #fff; border: 1px solid var(--border, #e5e7eb); border-radius: 12px;
    box-shadow: 0 16px 36px -14px rgba(28, 23, 48, .35); padding: 4px;
}
.ks-uni-list.open { display: block; }
.ks-uni-list.ks-uni-floating {
    position: fixed;
    right: auto;
    z-index: 5000;
    width: auto;
}
.ks-uni-option { display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; border-radius: 8px; cursor: pointer; }
.ks-uni-option span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ks-uni-option strong { font-size: 13.5px; font-weight: 700; color: var(--black, #111827); line-height: 1.3; }
.ks-uni-option small { font-size: 11.5px; color: var(--muted, #6b7280); }
.ks-uni-option:hover, .ks-uni-option.active { background: #f5f3ff; }
.ks-uni-option.request { border-top: 1px dashed var(--border, #e5e7eb); margin-top: 4px; color: #6d28d9; }
.ks-uni-option.request i { margin-top: 3px; }
.ks-uni-option.request strong { color: #6d28d9; }
.ks-uni-empty { padding: 12px; font-size: 12.5px; color: var(--muted, #6b7280); }
.ks-uni-note { font-size: 12px; font-weight: 600; color: #15803d; margin-top: 6px; }
.ks-uni-note:empty { display: none; }
.ks-uni-note.warn { color: #b45309; }
.ks-campus-modal .cp-field input, .ks-campus-modal .cp-field select { width: 100%; }
.ks-check { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; font-weight: 600; color: var(--muted, #6b7280); cursor: pointer; }
.ks-check input { width: auto !important; accent-color: #6d28d9; }
.ks-link-btn { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: #6d28d9; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.ks-store-location-card {
    display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
    background: #fff; border: 1px solid var(--border, #e5e7eb); border-radius: 12px; padding: 14px 16px; margin-bottom: 16px;
}
.ks-store-location-card > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ks-store-location-card strong { font-size: 14px; }
.ks-store-location-card small { font-size: 12px; color: var(--muted, #6b7280); }
.ks-promo { margin: 4px 0 12px; text-align: center; }
.ks-promo-toggle { font-size: 13px; text-decoration: none; }
.ks-promo-toggle i { margin-right: 4px; }
.ks-promo-row { display: flex; gap: 8px; margin-top: 10px; }
.ks-promo-row[hidden] { display: none; }
.ks-promo-row input { flex: 1; min-width: 0; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.ks-promo-apply { border: 0; border-radius: 10px; padding: 0 16px; background: #6d28d9; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.ks-promo-apply:disabled { opacity: .6; cursor: default; }
@media (max-width: 620px) {
    .ks-uni-list { max-height: 45vh; }
    .ks-promo-row input { font-size: 16px; }
}
