:root{
  --iuk-blue:#275D7A; --iuk-blue-dark:#1b4359; --iuk-blue-900:#12303f; --iuk-blue-50:#eaf2f6;
  --iuk-gold:#CD9E12; --iuk-gold-dark:#a87f0b; --iuk-gold-50:#fbf4dc;
  --bs-primary:#275D7A; --bs-primary-rgb:39,93,122; --bs-link-color:#275D7A; --bs-link-hover-color:#1b4359;
  --bs-font-sans-serif:'Heebo',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --sidebar-w:250px;
}
body{font-family:var(--bs-font-sans-serif);background:#f4f6f8;color:#22303a}
a{color:var(--iuk-blue)}
.btn-primary{--bs-btn-bg:var(--iuk-blue);--bs-btn-border-color:var(--iuk-blue);--bs-btn-hover-bg:var(--iuk-blue-dark);--bs-btn-hover-border-color:var(--iuk-blue-dark);--bs-btn-active-bg:var(--iuk-blue-900)}
.btn-gold{--bs-btn-color:#fff;--bs-btn-bg:var(--iuk-gold);--bs-btn-border-color:var(--iuk-gold);--bs-btn-hover-bg:var(--iuk-gold-dark);--bs-btn-hover-border-color:var(--iuk-gold-dark);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--iuk-gold-dark)}
.btn-outline-primary{--bs-btn-color:var(--iuk-blue);--bs-btn-border-color:var(--iuk-blue);--bs-btn-hover-bg:var(--iuk-blue);--bs-btn-hover-border-color:var(--iuk-blue);--bs-btn-active-bg:var(--iuk-blue)}
.text-gold{color:var(--iuk-gold)!important}.bg-iuk{background:var(--iuk-blue)!important}.bg-gold{background:var(--iuk-gold)!important}
.form-control:focus,.form-select:focus{border-color:var(--iuk-gold);box-shadow:0 0 0 .2rem rgba(205,158,18,.2)}
.page-link{color:var(--iuk-blue)}.active>.page-link{background:var(--iuk-blue);border-color:var(--iuk-blue)}
.nav-tabs .nav-link.active{border-top:3px solid var(--iuk-gold);color:var(--iuk-blue);font-weight:600}

/* ---------- Staff layout ---------- */
.staff-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--iuk-blue-900);color:#cfe0e9;overflow-y:auto;z-index:1030;transition:transform .2s}
.staff-sidebar .brand{display:flex;align-items:center;gap:.6rem;padding:1rem 1.1rem;background:var(--iuk-blue);border-bottom:3px solid var(--iuk-gold);color:#fff;text-decoration:none}
.staff-sidebar .brand img{height:38px}.staff-sidebar .brand small{display:block;color:var(--iuk-gold-50);font-size:.72rem;letter-spacing:.04em}
.staff-sidebar .nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#7fa3b7;padding:1rem 1.2rem .3rem}
.staff-sidebar a.nav-link{color:#d6e5ee;padding:.42rem 1.2rem;display:flex;gap:.65rem;align-items:center;border-left:3px solid transparent;font-size:.93rem}
.staff-sidebar a.nav-link:hover{background:rgba(255,255,255,.06);color:#fff}
.staff-sidebar a.nav-link.active{background:rgba(205,158,18,.14);border-left-color:var(--iuk-gold);color:#fff;font-weight:500}
.staff-sidebar a.nav-link i{width:1.1rem;color:var(--iuk-gold)}
.staff-main{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}
.staff-topbar{background:#fff;border-bottom:1px solid #e3e8ec;padding:.55rem 1.25rem;display:flex;gap:.75rem;align-items:center;position:sticky;top:0;z-index:1020}
.quickbar .nav-link{padding:.25rem .65rem;font-size:.82rem;color:#5b6d78;border-radius:.4rem}
.quickbar .nav-link.active{background:var(--iuk-blue-50);color:var(--iuk-blue);font-weight:600}
.staff-content{padding:1.5rem 1.25rem;flex:1}
.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem}
.page-head h1{font-size:1.45rem;font-weight:700;margin:0;color:var(--iuk-blue-900)}
.page-head h1 small{font-size:.85rem;font-weight:400;color:#6c7a84;display:block}
.card{border:1px solid #e3e8ec;border-radius:.7rem;box-shadow:0 1px 2px rgba(18,48,63,.04)}
.card-header{background:#fff;font-weight:600;color:var(--iuk-blue-900);border-bottom:1px solid #edf0f2}
.stat-card{border-left:4px solid var(--iuk-blue)}.stat-card.gold{border-left-color:var(--iuk-gold)}
.stat-card .num{font-size:1.75rem;font-weight:700;color:var(--iuk-blue-900);line-height:1.1}
.stat-card .lbl{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#6c7a84}
.table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#5b6d78;background:#f7f9fa;border-bottom-width:1px;white-space:nowrap}
.table td{vertical-align:middle}
.badge-status{font-weight:500}
.st-available{background:#d9f2e3;color:#1e6b3f}.st-checked_out{background:var(--iuk-blue-50);color:var(--iuk-blue)}
.st-on_hold{background:var(--iuk-gold-50);color:#8a6806}.st-in_transit{background:#e8e4fb;color:#4b3aa8}
.st-lost,.st-damaged{background:#fde2e1;color:#a12a22}.st-withdrawn{background:#eceff1;color:#59656d}
.staff-footer{padding:.8rem 1.25rem;font-size:.8rem;color:#7a8a94;border-top:1px solid #e3e8ec;background:#fff}
.scan-input{font-size:1.15rem;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.03em}
.patron-card{background:linear-gradient(135deg,var(--iuk-blue) 0%,var(--iuk-blue-900) 100%);color:#fff;border:0}
.patron-card .card-body{border-bottom:3px solid var(--iuk-gold)}
.patron-card .muted{color:#b8d0dc}
.marc-editor{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.55;min-height:420px}
.marc-view{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem}
.marc-view .tag{color:var(--iuk-blue);font-weight:700}.marc-view .sf{color:var(--iuk-gold-dark);font-weight:700}
@media (max-width: 991.98px){
  .staff-sidebar{transform:translateX(-100%)}.staff-sidebar.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.35)}
  .staff-main{margin-left:0}
}
.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top left,var(--iuk-blue) 0%,var(--iuk-blue-900) 70%);padding:1rem}
.login-card{width:100%;max-width:410px;border:0;border-top:5px solid var(--iuk-gold);border-radius:.8rem;box-shadow:0 20px 60px rgba(0,0,0,.3)}

/* ---------- OPAC ---------- */
.opac-nav{background:var(--iuk-blue);border-bottom:4px solid var(--iuk-gold)}
.opac-nav .navbar-brand{color:#fff;font-weight:700;display:flex;align-items:center;gap:.6rem}
.opac-nav .navbar-brand img{height:42px}.opac-nav .navbar-brand small{display:block;font-weight:400;font-size:.72rem;color:var(--iuk-gold-50)}
.opac-nav .nav-link{color:#dbe8ef}.opac-nav .nav-link:hover{color:#fff}
.opac-hero{background:linear-gradient(180deg,var(--iuk-blue) 0%,var(--iuk-blue-dark) 100%);color:#fff;padding:3.5rem 0 4.5rem;position:relative}
.opac-hero::after{content:"";position:absolute;inset:auto 0 0 0;height:6px;background:repeating-linear-gradient(90deg,var(--iuk-gold) 0 40px,transparent 40px 52px);opacity:.6}
.opac-hero h1{font-weight:800;font-size:2.2rem}.opac-hero p{color:#cfe0e9}
.opac-search .form-control,.opac-search .form-select{border:0;padding:.85rem 1rem;font-size:1.05rem}
.opac-search .btn{padding:.85rem 1.4rem}
.result-item{background:#fff;border:1px solid #e3e8ec;border-radius:.7rem;padding:1rem 1.1rem;margin-bottom:.75rem;display:flex;gap:1rem}
.result-item:hover{border-color:#c9d6de}
.book-cover{width:64px;min-width:64px;height:92px;border-radius:.3rem;background:linear-gradient(160deg,var(--iuk-blue) 0%,var(--iuk-blue-900) 100%);color:var(--iuk-gold);display:grid;place-items:center;font-weight:800;font-size:1.3rem;box-shadow:inset -6px 0 0 rgba(0,0,0,.15)}
.book-cover.lg{width:120px;min-width:120px;height:170px;font-size:2.2rem}
.result-item h5{font-size:1.05rem;margin-bottom:.15rem}.result-item h5 a{color:var(--iuk-blue-900);text-decoration:none}
.result-item h5 a:hover{color:var(--iuk-blue);text-decoration:underline}
.avail-yes{color:#1e6b3f;font-weight:600}.avail-no{color:#a12a22;font-weight:600}
.facet .list-group-item{font-size:.88rem;display:flex;justify-content:space-between}
.facet .list-group-item.active{background:var(--iuk-blue);border-color:var(--iuk-blue)}
.opac-footer{background:var(--iuk-blue-900);color:#9fbccb;font-size:.85rem;border-top:4px solid var(--iuk-gold)}
.btn-google{background:#fff;border:1px solid #dadce0;color:#3c4043;font-weight:500;display:inline-flex;align-items:center;gap:.6rem;justify-content:center}
.btn-google:hover{background:#f8f9fa;border-color:#c6c9cc}
@media print{.staff-sidebar,.staff-topbar,.staff-footer,.no-print{display:none!important}.staff-main{margin:0}.staff-content{padding:0}body{background:#fff}}

/* ---------- Phase 2 ---------- */
.accordion-button:not(.collapsed){background:var(--iuk-blue-50);color:var(--iuk-blue-900);box-shadow:none}
.accordion-button:focus{box-shadow:0 0 0 .2rem rgba(205,158,18,.25);border-color:var(--iuk-gold)}
.min-w-0{min-width:0}
.nav-pills .nav-link.active{background:var(--iuk-blue)}
