:root {
  --theme: #fcf299;
  --theme-strong: #f4e45f;
  --ink: #1b1b19;
  --ink-soft: #30302c;
  --paper: rgba(255, 254, 247, .96);
  --muted: #68675f;
  --surface: rgba(0, 0, 0, 0);
}
html, body { background:rgba(0, 0, 0, 0); }
body { color:var(--ink); }
a { color:var(--ink); }
a:hover { color:#514b18; }
.app-navbar { background:var(--ink); }
.app-brand { display:flex; align-items:center; gap:.9rem; color:#fffef7; font-weight:650; }
.app-brand:hover, .app-brand:focus { color:var(--theme); }
.app-brand-logo { display:block; width:135px; height:auto; }
.app-navbar .btn-outline-light { --bs-btn-color:#fffef7; --bs-btn-border-color:rgba(255,255,255,.58); --bs-btn-hover-color:var(--ink); --bs-btn-hover-bg:var(--theme); --bs-btn-hover-border-color:var(--theme); }
.app-navbar .btn-warning { --bs-btn-color:var(--ink); --bs-btn-bg:var(--theme); --bs-btn-border-color:var(--theme); --bs-btn-hover-color:var(--ink); --bs-btn-hover-bg:var(--theme-strong); --bs-btn-hover-border-color:var(--theme-strong); }
.card, .metric-card, .empty-state { border-radius:16px; background:var(--paper); }
.metric-card { padding:1.15rem 1.25rem; border:1px solid rgba(27,27,25,.06); box-shadow:0 .2rem .8rem rgba(0,0,0,.06); display:flex; justify-content:space-between; align-items:center; }
.metric-card span { color:var(--muted); font-size:.9rem; }
.metric-card strong { font-size:1.65rem; }
.text-secondary { color:var(--muted) !important; }
.text-primary { color:var(--ink-soft) !important; }
.text-bg-primary { color:var(--ink) !important; background-color:var(--theme) !important; }
.btn-primary { --bs-btn-color:var(--ink); --bs-btn-bg:var(--theme); --bs-btn-border-color:var(--theme); --bs-btn-hover-color:var(--ink); --bs-btn-hover-bg:var(--theme-strong); --bs-btn-hover-border-color:var(--theme-strong); --bs-btn-active-color:var(--ink); --bs-btn-active-bg:var(--theme-strong); --bs-btn-active-border-color:var(--ink); }
.btn-outline-primary { --bs-btn-color:var(--ink); --bs-btn-border-color:transparent; --bs-btn-hover-color:var(--ink); --bs-btn-hover-bg:var(--theme); --bs-btn-hover-border-color:transparent; --bs-btn-active-color:var(--ink); --bs-btn-active-bg:var(--theme-strong); --bs-btn-active-border-color:var(--ink); }
.form-control, .form-select { border-radius:10px; border-color:#cfcdc0; background-color:rgba(255,255,255,.82); color:var(--ink); }
.form-control:focus, .form-select:focus { border-color:var(--ink); box-shadow:0 0 0 .22rem rgba(252,242,153,.62); }
.form-check-input:checked { background-color:var(--ink); border-color:var(--ink); }
ul#id_excluded_partners { list-style:none; padding-left:0; columns:2; }
ul#id_excluded_partners li { break-inside:avoid; }
.route-choice { cursor:pointer; transition: transform .12s ease, box-shadow .12s ease; }
.route-choice:hover { transform: translateY(-2px); }
.route-choice:has(input:checked) { outline:2px solid var(--ink); background:rgba(252,242,153,.38); }
.route-search-result { width:100%; height:160px; text-align:left; border:0; background:var(--paper); color:var(--ink); overflow:hidden; }
.route-search-result .card-body { width:100%; display:flex; flex-direction:column; }
.route-search-name { min-height:3rem; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.route-search-details { margin-top:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.route-search-result.is-selected { outline:2px solid var(--ink); background:rgba(252,242,153,.48); }
.route-search-result.is-existing { opacity:.62; cursor:default; }
.selected-line { background:rgba(252,242,153,.32); border:1px solid #e4d96f; border-radius:12px; padding:.75rem .9rem; }
.line-picker { padding-bottom:5rem; }
.line-search-panel { position:sticky; top:.75rem; z-index:20; }
.line-picker-submit { position:fixed; z-index:1050; left:50%; bottom:1rem; transform:translateX(-50%); }
.line-picker-submit .btn { box-shadow:0 .4rem 1.2rem rgba(0,0,0,.2); white-space:nowrap; }
.plan-map { height:430px; background:#deded8; border-radius:18px; overflow:hidden; }
.empty-state { padding:3rem; text-align:center; box-shadow:0 .2rem .8rem rgba(0,0,0,.06); }
.line-label { display:inline-flex; align-items:center; width:fit-content; padding:.38rem .65rem; border-radius:9px; background:var(--ink); color:#fffef7; font-weight:700; line-height:1; white-space:nowrap; }
.report-button { background:var(--theme); color:var(--ink); font-weight:600; }
.report-button:hover, .report-button:focus { background:var(--theme-strong); color:var(--ink); }
.daily-report-card { border-top:8px solid var(--theme) !important; }
.daily-report-date { width:220px; }
.assignment-box { background:rgba(252,242,153,.28); border:1px solid #e6db78; border-radius:12px; padding:.8rem; }
.dashboard-brand-mark, .login-brand-mark { display:flex; align-items:center; justify-content:center; background:var(--ink); border-radius:14px; }
.dashboard-brand-mark { min-width:180px; padding:.8rem 1rem; }
.dashboard-brand-mark img { display:block; width:150px; height:auto; }
.login-brand-mark { min-height:82px; padding:1rem; }
.login-brand-mark img { display:block; width:min(216px, 88%); height:auto; }
.list-group-item { background:transparent; color:var(--ink); }
.list-group-item-action:hover, .list-group-item-action:focus { background:rgba(252,242,153,.24); color:var(--ink); }
.table { --bs-table-bg:transparent; --bs-table-color:var(--ink); }
.table > :not(caption) > * > * { padding: .9rem 1rem; }
@media (max-width: 700px) {
  .plan-map { height: 350px; }
  ul#id_excluded_partners { columns:1; }
  .line-picker-submit { width:calc(100% - 1.5rem); }
  .line-picker-submit .btn { width:100%; }
  .daily-report-date { width:100%; }
  .app-brand { gap:.55rem; }
  .app-brand-logo { width:105px; }
  .app-brand span { font-size:.9rem; }
  .app-navbar .container { gap:.75rem; }
  .app-navbar .container > .d-flex { flex-wrap:wrap; justify-content:flex-end; }
  .dashboard-brand-mark { min-width:145px; }
  .dashboard-brand-mark img { width:120px; }
}

.worker-pool { max-width: 68%; }
.pool-chip { background:rgba(255,255,255,.72); border:1px solid #d7d4c5; border-radius:999px; padding:.38rem .7rem; cursor:pointer; font-size:.86rem; }
.pool-chip:has(input:checked) { background:rgba(252,242,153,.64); border-color:#cfc052; }
.pool-chip input { margin-right:.25rem; }
@media (max-width: 900px) { .worker-pool { max-width:100%; width:100%; } }
