:root{
  --bg:#F4F6F9; --surface:#FFFFFF; --ink:#161A20; --muted:#6B7480;
  --line:#E6E9EE; --line-strong:#D5DAE2; --brand:#2F6BFF; --brand-dark:#1F4ED8;
  --free-bg:#E7F7EC; --free-bg-hover:#D2EFDB; --free-border:#BCE6C9; --free-text:#1B8A4B;
  --busy-bg:#EEF1FF; --busy-border:#CBD4FF; --busy-text:#34409B;
  --radius:14px; --shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.06);
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
.mono{font-family:'JetBrains Mono',monospace;}
.hidden{display:none !important;}

/* ---------- App bar ---------- */
.appbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;}
.appbar-inner{max-width:1280px;margin:0 auto;padding:0 22px;height:60px;display:flex;align-items:center;gap:24px;}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.01em;}
.brand .dot{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--brand),#6E8BFF);display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;box-shadow:0 4px 10px rgba(47,107,255,.35);}
.brand .dot.lg{width:44px;height:44px;font-size:20px;border-radius:12px;}
.bname{font-size:15px;}
.nav{display:flex;gap:4px;margin-right:auto;}
.nav a{padding:8px 13px;border-radius:9px;font-size:14px;font-weight:500;color:var(--muted);}
.nav a:hover{background:#F1F4F9;color:var(--ink);}
.nav a.active{background:#EEF3FF;color:var(--brand-dark);}
.user-chip{display:flex;align-items:center;gap:10px;font-size:13.5px;}
.user-chip .uname{font-weight:600;}
.user-chip .logout{color:var(--muted);padding:6px 10px;border-radius:8px;}
.user-chip .logout:hover{background:#F1F4F9;color:#B02525;}

.role-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;}
.role-admin{background:#FDE7E7;color:#B02525;}
.role-callcenter{background:#EAF1FF;color:#1F4ED8;}
.role-emp{background:#E7F7EC;color:#1B8A4B;}
.role-accountant{background:#FBF0DD;color:#9A6A12;}

/* ---------- Page ---------- */
.page{max-width:1280px;margin:0 auto;padding:26px 22px 64px;}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.page-head h1{font-size:23px;font-weight:700;letter-spacing:-.02em;margin:0;}
.page-head .sub{margin:5px 0 0;font-size:13.5px;color:var(--muted);}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.legend .item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);}
.swatch{width:15px;height:15px;border-radius:5px;border:1px solid transparent;}
.swatch.free{background:var(--free-bg);border-color:var(--free-border);}
.swatch.busy{background:var(--busy-bg);border-color:var(--busy-border);}

/* ---------- Alerts ---------- */
.alert{padding:11px 14px;border-radius:11px;font-size:13.5px;margin-bottom:14px;}
.alert.ok{background:var(--free-bg);color:var(--free-text);border:1px solid var(--free-border);}
.alert.err{background:#FDECEC;color:#B02525;border:1px solid #F6C9C9;}

/* ---------- Toolbar ---------- */
.toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.date-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nav-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line-strong);background:#fff;cursor:pointer;font-size:17px;color:var(--ink);display:grid;place-items:center;transition:.15s;}
.nav-btn:hover{background:#F3F5F9;}
.date-display{display:flex;flex-direction:column;line-height:1.2;min-width:150px;}
.date-display .day{font-size:16px;font-weight:600;}
.date-display .weekday{font-size:12.5px;color:var(--muted);margin-top:2px;}
input:not([type]),input[type=text],input[type=search],input[type=tel],input[type=email],input[type=url],
input[type=date],input[type=month],input[type=time],input[type=password],input[type=number],select,textarea{
  border:1px solid var(--line-strong);border-radius:10px;padding:9px 11px;font:inherit;font-size:13.5px;color:var(--ink);background:#fff;line-height:1.35;}
input::placeholder,textarea::placeholder{color:#9AA3AE;}
textarea{resize:vertical;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(47,107,255,.12);}
.today-btn{border:1px solid var(--line-strong);background:#fff;border-radius:10px;padding:9px 14px;font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;}
.today-btn:hover{background:#F3F5F9;}
.stats{display:flex;gap:22px;}
.stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;}
.stat .num{font-family:'JetBrains Mono',monospace;font-size:21px;font-weight:600;}
.stat .num.free{color:var(--free-text);}.stat .num.busy{color:var(--busy-text);}
.stat .lbl{font-size:11.5px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.05em;}

/* ---------- Matrix board ---------- */
.board{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto;max-height:calc(100vh - 230px);}
.board table{border-collapse:separate;border-spacing:0;width:100%;}
.board th,.board td{padding:0;}
.board thead th{position:sticky;top:0;z-index:3;background:#EEF2F8;border-bottom:2px solid var(--line-strong);font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;color:#1f2d45;height:46px;min-width:64px;text-align:center;white-space:nowrap;}
.board thead th.corner{left:0;z-index:5;text-align:left;padding-left:18px;min-width:210px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;}
.board td.driver{position:sticky;left:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line);border-right:1px solid var(--line-strong);padding:11px 18px;min-width:210px;}
.driver-cell{display:flex;align-items:center;gap:11px;}
.avatar{width:34px;height:34px;border-radius:50%;background:#EDF1F7;color:#4B5563;display:grid;place-items:center;font-size:12.5px;font-weight:600;flex-shrink:0;}
.driver-info{display:flex;flex-direction:column;line-height:1.25;}
.driver-info .name{font-size:14px;font-weight:600;}
.driver-info .meta{font-size:11.5px;color:var(--muted);margin-top:1px;}
.board tbody tr:last-child td{border-bottom:none;}
.board td.slot{border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:52px;padding:4px;}
.cell{width:100%;height:100%;border:1px solid transparent;border-radius:9px;cursor:pointer;background:transparent;font:inherit;text-align:left;padding:6px 8px;transition:.12s;display:flex;align-items:center;position:relative;overflow:hidden;}
.cell:focus-visible{outline:2px solid var(--brand);outline-offset:1px;}
.cell.free{background:var(--free-bg);border-color:var(--free-border);}
.cell.free::after{content:"+";position:absolute;inset:0;display:grid;place-items:center;color:var(--free-text);font-size:18px;font-weight:600;opacity:0;transition:.12s;}
.cell.free:hover{background:var(--free-bg-hover);}
.cell.free:hover::after{opacity:.55;}
.cell.busy{background:var(--busy-bg);border-color:var(--busy-border);}
.cell.busy .task-text{font-size:12px;font-weight:500;color:var(--busy-text);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cell.busy:hover{filter:brightness(.98);}

/* ---------- Mobile board / slot list ---------- */
.mobile-board{display:none;}
.driver-pills{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:none;}
.driver-pills::-webkit-scrollbar{display:none;}
.pill{flex-shrink:0;display:flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:7px 14px 7px 7px;cursor:pointer;font:inherit;}
.pill .pavatar{width:26px;height:26px;border-radius:50%;background:#EDF1F7;color:#4B5563;display:grid;place-items:center;font-size:11px;font-weight:600;}
.pill .pname{font-size:13.5px;font-weight:500;white-space:nowrap;}
.pill.active{background:var(--brand);border-color:var(--brand);}
.pill.active .pname{color:#fff;}
.pill.active .pavatar{background:rgba(255,255,255,.22);color:#fff;}
.sel-head{display:flex;align-items:baseline;justify-content:space-between;margin:6px 2px 12px;}
.sel-head .sname{font-size:16px;font-weight:700;}
.sel-head .splate{font-size:12.5px;color:var(--muted);}
.slot-list{display:flex;flex-direction:column;gap:8px;}
.slot-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 14px;min-height:58px;cursor:pointer;text-align:left;font:inherit;width:100%;transition:.12s;}
.slot-row .time{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:600;width:52px;flex-shrink:0;}
.slot-row .rbody{flex:1;font-size:13.5px;}
.slot-row .rmeta{display:block;font-size:12px;color:var(--muted);margin-top:2px;font-weight:400;}
.slot-row .chev{color:var(--muted);font-size:18px;flex-shrink:0;}
.slot-row.free{background:var(--free-bg);border-color:var(--free-border);}
.slot-row.free .rbody{color:var(--free-text);font-weight:600;}
.slot-row.free .chev{color:var(--free-text);}
.slot-row.free.static{cursor:default;opacity:.85;}
.slot-row.busy{background:var(--busy-bg);border-color:var(--busy-border);}
.slot-row.busy .rbody{color:var(--busy-text);}
.slot-row.busy .rmeta{color:#6571B5;}
.slot-row.busy .chev{color:var(--busy-text);}
.slot-row:active{transform:scale(.99);}

/* ---------- Modal ---------- */
.overlay{position:fixed;inset:0;background:rgba(16,24,40,.42);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:50;padding:18px;}
.overlay.open{display:flex;}
.modal{background:#fff;border-radius:18px;width:100%;max-width:440px;box-shadow:0 20px 60px rgba(16,24,40,.28);overflow:hidden;animation:pop .16s ease;max-height:92vh;overflow-y:auto;}
.modal-wide{max-width:560px;}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98);}to{opacity:1;transform:none;}}
.modal-head{padding:18px 22px 14px;border-bottom:1px solid var(--line);}
.modal-head .ctx{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex-wrap:wrap;}
.modal-head .chip{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;background:#F1F4F9;color:#3B4453;padding:3px 9px;border-radius:7px;}
.modal-head h3{margin:9px 0 0;font-size:18px;font-weight:700;}
.modal-body{padding:16px 22px 4px;}
.modal-foot{padding:14px 22px 18px;display:flex;gap:10px;justify-content:flex-end;}

/* ---------- Buttons ---------- */
.btn{border:none;border-radius:11px;padding:10px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;}
.btn-primary{background:var(--brand);color:#fff;}
.btn-primary:hover{background:var(--brand-dark);}
.btn-ghost{background:#F1F4F9;color:var(--ink);}
.btn-ghost:hover{background:#E6EAF1;}
.btn-warn{background:#FBF0DD;color:#9A6A12;}
.btn-warn:hover{background:#F4E4C4;}
.btn-danger-solid{background:#FDECEC;color:#B02525;}
.btn-danger-solid:hover{background:#F8DADA;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.btn-row form{margin:0;}
.btn-sm{border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;cursor:pointer;}
.btn-sm:hover{background:#F3F5F9;}
.btn-sm.primary{background:var(--brand);color:#fff;border-color:var(--brand);}

/* ---------- Forms ---------- */
.form-card{padding:20px 22px;margin-bottom:18px;}
.form-card h3{margin:0 0 16px;font-size:16px;font-weight:700;}
.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;}
.grid-form .f{display:flex;flex-direction:column;gap:6px;}
.grid-form .f.f-full{grid-column:1 / -1;}
.grid-form label{font-size:12.5px;font-weight:600;}
.f-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;grid-column:1 / -1;}

/* ---------- Tables ---------- */
.table-card{padding:0;overflow:hidden;}
.scroll-x{overflow-x:auto;}
.data-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.data-table th{text-align:left;padding:13px 16px;background:#FAFBFD;border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.data-table td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top;}
.data-table tbody tr:last-child td{border-bottom:none;}
.data-table tbody tr:hover{background:#FBFCFE;}
.data-table.reg td{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;}
.data-table .empty{text-align:center;color:var(--muted);padding:32px;}
.row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.pw-form{display:flex;gap:6px;align-items:center;margin:0;}
.pw-form input{padding:6px 9px;font-size:12.5px;}
.pill-ok{font-size:12px;font-weight:600;color:var(--free-text);background:var(--free-bg);padding:3px 9px;border-radius:999px;}
.pill-off{font-size:12px;font-weight:600;color:var(--muted);background:#F0F2F5;padding:3px 9px;border-radius:999px;}

/* ---------- Detail (kv) ---------- */
.detail-card{padding:20px 22px;margin-bottom:16px;}
.detail-card h3{margin:0 0 14px;font-size:16px;font-weight:700;}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;}
.kv > div{display:flex;flex-direction:column;gap:3px;}
.kv > div.full{grid-column:1 / -1;}
.kv span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.kv b{font-size:14.5px;font-weight:600;}

/* ---------- Status tags ---------- */
.status-tag{font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px;}
.s-new{background:#EAF1FF;color:#1F4ED8;}
.s-in_progress{background:#FBF0DD;color:#9A6A12;}
.s-completed{background:var(--free-bg);color:var(--free-text);}
.s-cancelled{background:#F0F2F5;color:var(--muted);}

/* ---------- Filters / summary ---------- */
.filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;padding:16px;margin-bottom:16px;}
.filters .f{display:flex;flex-direction:column;gap:6px;}
.filters label{font-size:12px;font-weight:600;color:var(--muted);}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.sumcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:5px;}
.sumcard .snum{font-family:'JetBrains Mono',monospace;font-size:21px;font-weight:600;}
.sumcard .slbl{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;}

/* ---------- Login ---------- */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(1200px 600px at 50% -10%, #E9F0FF, var(--bg));}
.login-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 60px rgba(16,24,40,.12);padding:34px 32px;width:100%;max-width:380px;}
.login-head{text-align:center;margin-bottom:22px;}
.login-head .dot{margin:0 auto 14px;}
.login-head h1{font-size:21px;font-weight:700;margin:0;}
.login-head p{font-size:13.5px;color:var(--muted);margin:6px 0 0;}
.login-form{display:flex;flex-direction:column;gap:8px;}
.login-form label{font-size:12.5px;font-weight:600;margin-top:8px;}
.login-form input{padding:11px 12px;font-size:14px;}
.login-form .btn{margin-top:18px;justify-content:center;}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .summary{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .appbar-inner{padding:0 14px;gap:12px;height:auto;min-height:56px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px;}
  .nav{order:3;width:100%;margin-right:0;overflow-x:auto;}
  .user-chip{margin-left:auto;}
  .user-chip .uname{display:none;}
  .page{padding:18px 14px 56px;}
  .grid-form{grid-template-columns:1fr;}
  .kv{grid-template-columns:1fr;}
  .legend{order:3;width:100%;}
  .toolbar{padding:12px;}
  .date-group{width:100%;justify-content:space-between;}
  .stats{width:100%;justify-content:space-around;border-top:1px solid var(--line);padding-top:12px;}
  .stat{align-items:center;}
  .board thead th.corner,.board td.driver{min-width:0;width:96px;max-width:96px;padding:10px 8px;}
  .board table{width:auto;min-width:100%;}
  .board td.driver .driver-cell{gap:0;width:auto;}
  .board .driver-cell .avatar{display:none;}
  .board .driver-info{min-width:0;}
  .board .driver-info .name{font-size:12px;font-weight:600;line-height:1.18;white-space:normal;overflow-wrap:anywhere;}
  .board .driver-info .meta{font-size:10px;margin-top:2px;}
  .board thead th{min-width:64px;}
}
@media (max-width:760px){
  .scroll-x{-webkit-overflow-scrolling:touch;}
  .table-card.scroll-x .data-table{min-width:560px;}
  .data-table{font-size:12.5px;}
  .data-table th{padding:10px 12px;font-size:10.5px;}
  .data-table td{padding:10px 12px;}
  .table-cap{padding:12px 12px 0;}
  .page-head{flex-wrap:wrap;gap:10px;}
  .page-head .btn{margin-left:auto;}
  .row-actions .pw-form{flex-wrap:wrap;}
}
@media (max-width:380px){.pill .pname{max-width:90px;overflow:hidden;text-overflow:ellipsis;}}

/* ---------- Inline add (services/medicines) ---------- */
.inline-add{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.inline-add input{flex:1;min-width:200px;padding:10px 12px;}
.btn-sm.danger{color:#B02525;border-color:#F0C9C9;}
.btn-sm.danger:hover{background:#FDECEC;}

/* ---------- Anbar / stock ---------- */
.hint{font-weight:400;color:var(--muted);font-size:12px;margin-left:4px;}
.data-table td.neg{color:#B02525;font-weight:700;}
.mv-in{color:var(--free-text);font-weight:600;font-size:12.5px;}
.mv-out{color:#B02525;font-weight:600;font-size:12.5px;}
.sec-title{font-size:15px;font-weight:700;margin:22px 2px 12px;}

/* ---------- Hour filter ---------- */
.hour-filter{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.hour-filter::-webkit-scrollbar{display:none;}
.hchip{flex-shrink:0;border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;font-family:'JetBrains Mono',monospace;transition:.12s;}
.hchip:active{transform:scale(.96);}
.hchip.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.hchip.all{font-family:'Inter',sans-serif;}
/* daha rahat toxunma üçün matris xanaları */
.board td.slot{height:56px;}
.cell{min-height:46px;}

/* ---------- Status colors on board ---------- */
.swatch.new{background:#FDECEC;border-color:#F3B5B5;}
.swatch.done{background:#EAF3FF;border-color:#BBD6FF;}
.swatch.wknd{background:#FFF6D6;border-color:#F2E3A6;}

.cell.busy-new{background:#FDECEC;border-color:#F3B5B5;color:#C0392B;}
.cell.busy-new .task-text{color:#C0392B;}
.cell.busy-done{background:#EAF3FF;border-color:#BBD6FF;color:#2563C9;}
.cell.busy-done .task-text{color:#2563C9;}
.cell .task-text b{display:block;font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cell .task-text .addr{display:block;font-size:10.5px;opacity:.8;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.cell.free.wknd{background:#FFF6D6;border-color:#F2E3A6;}
.cell.free.wknd::after{color:#9A7B12;}
.cell.cont{align-items:center;justify-content:center;opacity:.85;}
.cont-mark{font-size:15px;font-weight:700;opacity:.6;}

/* worker list status colors */
.slot-row.new{background:#FDECEC;border-color:#F3B5B5;}
.slot-row.new .rbody{color:#C0392B;} .slot-row.new .rmeta{color:#C0726B;} .slot-row.new .chev{color:#C0392B;}
.slot-row.done{background:#EAF3FF;border-color:#BBD6FF;}
.slot-row.done .rbody{color:#2563C9;} .slot-row.done .chev{color:#2563C9;}
.slot-row.free.wknd{background:#FFF6D6;border-color:#F2E3A6;}
.slot-row.free.wknd .rbody{color:#9A7B12;}
.slot-row.cont{opacity:.75;}
.slot-row .rbody.cont{font-style:italic;color:var(--muted);font-weight:500;}
.slot-row .time small{display:block;font-size:10px;color:var(--muted);font-weight:600;}

/* template save line */
.chkline{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;cursor:pointer;}
.chkline input{width:auto;}
.tpl-save{border-top:1px solid var(--line);padding-top:12px;margin-top:4px;}

/* multiple medicine rows */
.med-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;}
.med-row select{flex:1;min-width:0;}
.med-row input{width:120px;flex:0 0 auto;}
.med-row .btn-sm{flex:0 0 auto;}

/* ---------- Filter card (report + registry) ---------- */
.filter-card{padding:16px;margin-bottom:16px;}
.filter-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.filter-title{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--ink);}
.range-chips{display:flex;gap:6px;flex-wrap:wrap;}
.range-chips a{font-size:12.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#fff;font-weight:600;transition:all .12s;}
.range-chips a:hover{border-color:var(--brand);color:var(--brand);}
.range-chips a.active{background:var(--brand);color:#fff;border-color:var(--brand);}
.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px 14px;align-items:end;}
.filters-grid .f{display:flex;flex-direction:column;gap:6px;min-width:0;}
.filters-grid label{font-size:12px;font-weight:600;color:var(--muted);}
.filters-grid .f-actions{flex-direction:row;gap:8px;align-items:center;}
.table-cap{font-size:13px;font-weight:700;padding:14px 16px 0;color:var(--ink);}
@media (max-width:760px){ .filters-grid{grid-template-columns:repeat(2,1fr);} }

/* ---------- Activity log badges ---------- */
.act-badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:#EEF1F5;color:#475467;white-space:nowrap;}
.act-order_create{background:#E7F7EC;color:#1B8A4B;}
.act-order_complete{background:#EAF3FF;color:#2563C9;}
.act-order_cancel{background:#FFF4E5;color:#B5651D;}
.act-order_delete{background:#FDECEC;color:#C0392B;}
.act-stock_add{background:#FEF6E0;color:#9A7B12;}
.act-daily_save,.act-daily_approve,.act-daily_unapprove{background:#F0ECFB;color:#6B4FBB;}
.act-invoice_sent{background:#E7F7EC;color:#1B8A4B;}
.act-invoice_unsent{background:#FFF4E5;color:#B5651D;}

/* ---------- Manager role + bonus profile ---------- */
.role-manager{background:#F0ECFB;color:#6B4FBB;}
.role-head{background:#E6F4F1;color:#0E7C66;}
.role-warehouse{background:#FEF3E2;color:#B5651D;}
.bonus-hero{background:linear-gradient(135deg,var(--brand),#6E8BFF);border:none;color:#fff;margin-bottom:16px;}
.bonus-hero-main{display:flex;flex-direction:column;gap:6px;padding:8px 6px;}
.bonus-lbl{font-size:12px;font-weight:600;opacity:.92;text-transform:uppercase;letter-spacing:.06em;}
.bonus-amount{font-family:'JetBrains Mono',monospace;font-size:38px;font-weight:700;line-height:1.05;}
.bonus-sub{font-size:13px;opacity:.92;}
.sumcard.hl{background:#EAF3FF;border-color:#BBD6FF;}
.sumcard.hl .snum{color:#2563C9;}

/* ---------- Consistent form fields everywhere ---------- */
.f{display:flex;flex-direction:column;gap:6px;min-width:0;}
.f label{font-size:12.5px;font-weight:600;color:var(--ink);}
.f label .hint{font-weight:400;color:var(--muted);}
.f > input,.f > select,.f > textarea{width:100%;}
.f-actions{flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap;}
.login-form input{width:100%;}
.inline-add input{border:1px solid var(--line-strong);border-radius:10px;}
select{cursor:pointer;}

/* Xüsusi ödəniş qeydi (ödənişsiz / baxış / açot) */
.ptag{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:6px;background:#2F6BFF;color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;white-space:nowrap;}
.ptag.big{font-size:12px;padding:3px 10px;margin:0;vertical-align:middle;}

/* Növbə qrafiki: işləməyən saatlar (ağ) + over time */
.cell.free.offhour{background:#fff;border-color:var(--line);}
.cell.free.offhour:hover{background:#F7F9FC;border-color:var(--brand);}
.slot-row.free.offhour{background:#fff;}
.swatch.offhour{background:#fff;border:1px solid var(--line-strong);}
.ot-tag{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:6px;background:#FFB020;color:#3A2600;font-size:10px;font-weight:800;letter-spacing:.02em;white-space:nowrap;}
.cell.ot{box-shadow:inset 0 0 0 2px #FFB020;}

/* Cədvəl zoom idarəsi */
.zoom-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.zoom-bar .zlbl{font-size:12.5px;color:var(--muted);font-weight:600;}
.zbtn{border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;transition:.12s;}
.zbtn:hover{background:#F3F5F9;}
.zbtn.active{background:var(--brand);border-color:var(--brand);color:#fff;}

/* Kiçik: bütün günü bir ekrana sığdırmaq üçün */
.board.z-sm thead th{min-width:40px;height:32px;font-size:10px;}
.board.z-sm thead th.corner,.board.z-sm td.driver{min-width:140px;padding:6px 10px;}
.board.z-sm .driver-info .name{font-size:12px;}
.board.z-sm .driver-info .meta{display:none;}
.board.z-sm .avatar{width:24px;height:24px;font-size:10px;}
.board.z-sm td.slot{height:34px;padding:2px;}
.board.z-sm .cell{padding:1px 4px;border-radius:5px;}
.board.z-sm .cell.busy .task-text{font-size:9px;-webkit-line-clamp:2;}
.board.z-sm .cell .task-text b{font-size:9px;line-height:1.1;}
.board.z-sm .cell .addr{display:block;font-size:8px;line-height:1.05;opacity:.75;margin-top:0;}
.board.z-sm .ptag,.board.z-sm .ot-tag{display:none;}

/* Böyük */
.board.z-lg thead th{min-width:104px;height:54px;font-size:13.5px;}
.board.z-lg td.slot{height:72px;padding:6px;}
.board.z-lg .cell{padding:8px 11px;}
.board.z-lg .cell.busy .task-text{font-size:13px;-webkit-line-clamp:3;}

/* İcazə qridi (istifadəçi yaratma/redaktə) */
.perm-grid{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:10px;padding:6px 12px;background:#FAFBFD;}
.perm-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid var(--line);}
.perm-row:last-child{border-bottom:none;}
.perm-name{flex:0 0 120px;font-weight:600;font-size:13px;}
.perm-chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);cursor:pointer;}
.perm-chk input{width:auto;}
.perm-muted{color:var(--muted);}
.perm-form{margin-top:8px;width:100%;max-width:560px;}

/* Task formasında çoxlu xidmət blokları */
.svc-block{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#FAFBFD;}
.svc-block .area-wrap{margin:8px 0;padding-left:12px;border-left:2px solid var(--line);}
.area-row{margin-bottom:6px;}

/* Modal bölmə başlıqları */
.modal-sec{margin-top:8px;border-top:1px solid var(--line);padding-top:10px;}
.sec-h{font-weight:600;font-size:13px;color:#2F6BFF;}

/* Tablar (anbar səhifələri) */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 18px;border-bottom:2px solid var(--line);}
.tab-btn{background:none;border:none;padding:10px 18px;font-size:14px;font-weight:600;color:#64748B;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:8px 8px 0 0;font-family:inherit;}
.tab-btn:hover{color:#2F6BFF;background:#EEF2FB;}
.tab-btn.active{color:#2F6BFF;border-bottom-color:#2F6BFF;}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* ============ Sidebar naviqasiya ============ */
.sidebar{position:fixed;top:0;left:0;width:236px;height:100vh;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:60;overflow-y:auto;}
.sidebar .brand{padding:18px 20px;border-bottom:1px solid var(--line);font-size:17px;}
.snav{display:flex;flex-direction:column;gap:2px;padding:12px 10px;flex:1;}
.snav a{display:block;padding:10px 14px;border-radius:9px;color:#475569;font-weight:500;font-size:14.5px;border-left:3px solid transparent;}
.snav a:hover{background:#F1F5FB;color:var(--brand);}
.snav a.active{background:#EAF0FE;color:var(--brand-dark);font-weight:600;border-left-color:var(--brand);}
.snav-user{border-top:1px solid var(--line);padding:14px 16px;display:flex;flex-direction:column;gap:8px;}
.snav-user-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.snav-user .uname{font-weight:600;font-size:13.5px;}
.snav-user .logout{color:#B02525;font-size:13px;padding:6px 10px;border-radius:8px;background:#FBEAEA;text-align:center;}
.snav-user .logout:hover{background:#F6DADA;}
.page.has-sidebar{margin:0 auto 0 236px;max-width:1180px;}
.nav-toggle{display:none;}
.snav-overlay{display:none;}
@media (max-width:980px){
  .sidebar{transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 0 40px rgba(15,23,42,.18);}
  body.snav-open .sidebar{transform:translateX(0);}
  .page.has-sidebar{margin-left:0;padding-top:64px;}
  .nav-toggle{display:flex;position:fixed;top:10px;left:12px;z-index:70;width:44px;height:44px;align-items:center;justify-content:center;font-size:22px;line-height:1;background:#fff;border:1px solid var(--line);border-radius:11px;cursor:pointer;color:#0F172A;box-shadow:0 2px 8px rgba(15,23,42,.08);}
  body.snav-open .snav-overlay{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:55;}
}

/* Yeni vəzifə nişanları */
.role-deputy{background:#FDE7F1;color:#9D2667;}
.role-inspector{background:#E3F2FB;color:#1668A8;}
.role-tender{background:#EFEAFB;color:#6A41C8;}
.role-acct_reg{background:#FBF0DD;color:#9A6A12;}

.req{color:#E5484D;font-weight:700;}

.data-table tr.reg-sale td{background:#F7FAFF;}
.data-table tr.reg-sale td:first-child{box-shadow:inset 3px 0 0 var(--brand);}

/* İmtina edilmiş iş — cədvəldə qırmızı xətli */
.cell.busy-cancel{background:#FDE4E4 !important;border-color:#E5484D !important;position:relative;}
.cell.busy-cancel .task-text{color:#1f2937 !important;}
.cell.busy-cancel .task-text b,.cell.busy-cancel .addr{text-decoration:line-through;text-decoration-color:#E5484D;text-decoration-thickness:2px;color:#4b5563 !important;}
.cell.busy-cancel::after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(to top right, transparent calc(50% - 1.5px), #E5484D calc(50% - 1.5px), #E5484D calc(50% + 1.5px), transparent calc(50% + 1.5px));pointer-events:none;}
.cancel-tag{display:inline-block;background:#E5484D;color:#fff;font-size:9px;font-weight:800;padding:1px 6px;border-radius:5px;margin-top:3px;letter-spacing:.5px;position:relative;z-index:1;}
.slot-row.cancelled{background:#FDECEC;border-color:#F3C0C0;}
.slot-row.cancelled b{text-decoration:line-through;color:#9aa3af;}

/* Tamamlanmayan iş — cədvəldə sarı/narıncı */
.cell.busy-notdone{background:#FFF6E0 !important;border-color:#E0A800 !important;position:relative;}
.cell.busy-notdone .task-text{color:#7a5b00 !important;}
.cell.busy-notdone::after{content:"🕐";position:absolute;top:4px;right:6px;font-size:13px;opacity:.85;pointer-events:none;}
.notdone-tag{display:inline-block;background:#E0A800;color:#fff;font-size:9px;font-weight:800;padding:1px 6px;border-radius:5px;margin-top:3px;letter-spacing:.3px;}
.slot-row.notdone{background:#FFF6E0;border-color:#E0A800;}

.status-tag.s-not_done{background:#FFF1CC;color:#8a6500;}

/* Sürüklə-burax */
.cell[draggable="true"]{cursor:grab;}
.cell[draggable="true"]:active{cursor:grabbing;}
.slot.drop-hi{outline:2px dashed var(--brand);outline-offset:-3px;background:#EAF1FF;border-radius:8px;}

/* Ekipaj cədvəlində iş statusu nişanları (net fərqlənmə) */
.slot-row.notdone{background:#FFF6E0;border-color:#E0A800;}
.slot-row.notdone .rbody{color:#8a6500;}
.slot-row.cancelled .rbody{color:#b54747;}
.row-badge{display:inline-block;font-size:10px;font-weight:800;padding:1px 7px;border-radius:6px;margin-left:6px;letter-spacing:.4px;vertical-align:middle;}
.rb-cancel{background:#E5484D;color:#fff;}
.rb-notdone{background:#E0A800;color:#fff;}
.rb-done{background:#2563C9;color:#fff;}

/* Ekipaj "İşlərim" detallı kartları */
.emp-job{margin-bottom:14px;}
.emp-job-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.ej-date{display:block;font-size:12px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.ej-cust{font-size:16px;}
.ej-kv{margin-bottom:8px;}
.ej-sec{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);}
.ej-lbl{display:inline-block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:6px;}
.ej-row{margin:4px 0;font-size:14px;}
.ej-complete{background:#F7FAFF;border-radius:10px;padding:10px 12px;border-top:none;}
.ej-foot{margin-top:10px;text-align:right;}
.mini-table{width:100%;border-collapse:collapse;margin-top:6px;}
.mini-table th{text-align:left;font-size:11px;color:var(--muted);text-transform:uppercase;padding:4px 8px;border-bottom:1px solid var(--line);}
.mini-table td{padding:5px 8px;border-bottom:1px solid var(--line);font-size:13px;}

/* İşlərim cədvəlində status sətir fonu */
.data-table tr.reg-cancel td{background:#FDECEC;}
.data-table tr.reg-cancel td:first-child{box-shadow:inset 3px 0 0 #E5484D;}
.data-table tr.reg-notdone td{background:#FFF6E0;}
.data-table tr.reg-notdone td:first-child{box-shadow:inset 3px 0 0 #E0A800;}

/* Ekipaj sırasını dəyişmə düymələri */
.driver-cell{position:relative;}
/* Ekipaj sürükləmə tutacağı + sıra dəyişmə göstəricisi */
.board td.driver[draggable="true"]{cursor:grab;}
.board td.driver[draggable="true"]:active{cursor:grabbing;}
.drag-handle{cursor:grab;color:#9aa3af;font-size:16px;line-height:1;padding:2px 5px;margin-right:4px;border-radius:5px;user-select:none;flex-shrink:0;}
.drag-handle:hover{background:#EEF2F8;color:var(--brand);}
.drag-handle:active{cursor:grabbing;}
tr.emp-dragging{opacity:.45;}
tr.emp-drop-before td{box-shadow:inset 0 3px 0 var(--brand);}
tr.emp-drop-after td{box-shadow:inset 0 -3px 0 var(--brand);}

/* Gündəlik dezinfektor sətirləri */
.dis-row{display:flex;gap:8px;align-items:center;margin-bottom:6px;}
.dis-row select{min-width:200px;}

/* İşi sürükləyib köçürmə (mobil + masaüstü) */
.cell.movable{cursor:grab;-webkit-touch-callout:none;}
.cell.movable:active{cursor:grabbing;}
.cell.cell-dragging{opacity:.4;}

/* Qeydiyyat cədvəli — başlıqlar scroll-da statik (sticky) */
.reg-scroll{max-height:calc(100vh - 280px);overflow:auto;}
.reg-scroll .data-table{min-width:1400px;}
.reg-scroll thead th{position:sticky;top:0;z-index:5;background:#EEF2F8;
  border-bottom:2px solid var(--line-strong);box-shadow:0 1px 0 var(--line-strong);}
.data-table.reg th{white-space:nowrap;}
.data-table.reg td.mono{font-family:'JetBrains Mono',monospace;font-size:12px;}
