:root{
  --xcb-yellow:#f3bc4a;
  --xcb-yellow-soft:#fff8e7;
  --xcb-ink:#212529;
}
html{font-size:16px}
body{font-size:1rem;color:var(--xcb-ink)}
.hidden{display:none!important}

.login-page{min-height:100vh}
.login-box{width:min(430px,calc(100vw - 32px))}
.login-logo a{font-size:2.25rem;font-weight:700;color:#212529;text-decoration:none}
.login-card-body{padding:2rem}
.login-box-msg{font-size:1.05rem;line-height:1.65;color:#6c757d}
.xcb-login-kicker{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6c757d}
.xcb-brand-badge{
  width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:.5rem;background:var(--xcb-yellow);color:#212529;margin-right:.55rem;vertical-align:middle
}
.xcb-brand-badge i{font-size:1.35rem}
.xcb-login-note{font-size:.9rem;color:#6c757d;line-height:1.6}

.app-header{min-height:58px}
.app-sidebar{border-right:1px solid var(--bs-border-color)}
.sidebar-brand{min-height:64px;border-bottom:1px solid var(--bs-border-color)}
.sidebar-brand .brand-link{padding:.8rem 1rem;display:flex;align-items:center;gap:.65rem}
.sidebar-brand .brand-image{
  width:36px;height:36px;margin:0;display:inline-flex;align-items:center;justify-content:center;
  border-radius:.45rem;background:var(--xcb-yellow);color:#212529;font-size:1.15rem;float:none
}
.sidebar-brand .brand-text{font-size:1.16rem;font-weight:700;color:var(--bs-body-color)}
.sidebar-wrapper{overflow-y:auto}
.sidebar-menu .nav-link{font-size:1rem;padding:.66rem .85rem}
.sidebar-menu .nav-header{font-size:.78rem;font-weight:700;letter-spacing:.07em;color:var(--bs-secondary-color);padding-top:1rem}
.sidebar-menu .nav-icon{font-size:1.05rem}
.sidebar-menu .nav-treeview>.nav-item>.nav-link{padding-left:1.75rem}
.sidebar-footer{border-top:1px solid var(--bs-border-color);padding:.85rem 1rem;font-size:.86rem;color:var(--bs-secondary-color)}

.app-content-header{padding-top:1.25rem;padding-bottom:.85rem}
.app-content-header h1{font-size:1.8rem;font-weight:600}
.app-content{padding-bottom:1.5rem}
.card-title{font-size:1.08rem;font-weight:600}
.card-header{min-height:56px}
.table{font-size:.96rem}
.table thead th{font-size:.86rem;color:#6c757d;font-weight:700;white-space:nowrap}
.form-label{font-weight:600}
.form-control,.form-select,.input-group-text{min-height:42px}
.btn{font-weight:600}
.badge{font-weight:600}
.small-box .inner h3{font-size:2rem}
.small-box .inner p{font-size:1rem}
.xcb-muted{color:#6c757d}
.xcb-status-line{font-size:.94rem;color:#6c757d}
.xcb-route-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.08em}
.xcb-table-actions{white-space:nowrap}
.xcb-empty{padding:3rem 1rem;text-align:center;color:#6c757d}
.xcb-toast{position:fixed;top:1rem;right:1rem;z-index:2000;min-width:260px;max-width:420px}
.xcb-stop-name-input{min-width:180px}
.xcb-detail-table th{width:180px;color:#6c757d;font-weight:600}
.xcb-detail-table td,.xcb-detail-table th{padding:.9rem 1rem}

@media(max-width:991.98px){
  .app-content-header h1{font-size:1.6rem}
  .sidebar-brand{min-height:58px}
}
@media(max-width:767.98px){
  html{font-size:15px}
  .login-card-body{padding:1.5rem}
  .login-logo a{font-size:2rem}
  .app-content-header h1{font-size:1.45rem}
}
