@charset "UTF-8";
:root {
  --bg:#f2f7fd;
  --white:#fff;
  --ink:#17324f;
  --muted:#4b6480;
  --line:#d5e3f0;
  --accent:#176cc0;
  --accent-dark:#105497;
  --accent-light:#e8f3ff;
  --text-secondary:#405e7d;
  --radius:13px;
  font-family:"Segoe UI",Arial,sans-serif;
  font-synthesis:none;
  color:var(--ink);
  background:var(--bg);
  font-size:15px
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
button,input,select,textarea {
  font:inherit;
  color:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button,a {
  touch-action:manipulation
}
button {
  cursor:pointer
}
button:disabled {
  cursor:not-allowed;
  opacity:.46
}
a {
  color:inherit;
  text-decoration:none
}
input,select,textarea {
  border:1px solid #c6d9eb;
  border-radius:7px;
  background:#fff;
  min-height:40px;
  padding:9px 11px;
  max-width:100%
}
textarea {
  resize:vertical;
  width:100%;
  line-height:1.7
}
input:focus,select:focus,textarea:focus {
  border-color:var(--accent)
}
:focus-visible {
  outline:3px solid #64a9e8;
  outline-offset:3px
}
button:focus:not(:focus-visible) {
  outline:none
}
input[type=checkbox] {
  appearance:auto;
  accent-color:var(--accent);
  min-height:16px;
  width:16px;
  height:16px;
  margin:0;
  flex-shrink:0;
  cursor:pointer
}
h1,h2,h3,p {
  margin:0
}
h1 {
  font-size:30px;
  line-height:1.3;
  letter-spacing:-.9px;
  font-weight:700
}
h2 {
  font-size:16px;
  line-height:1.4;
  font-weight:700
}
h3 {
  font-size:19px;
  font-weight:600
}
svg {
  flex-shrink:0;
  vertical-align:middle
}
button svg {
  pointer-events:none
}
[hidden] {
  display:none!important
}
.app-shell {
  display:flex;
  min-height:100vh
}
.sidebar {
  width:228px;
  flex-shrink:0;
  background:#fff;
  border-right:1px solid var(--line);
  position:fixed;
  inset:0 auto 0 0;
  display:flex;
  flex-direction:column;
  padding:31px 18px 20px;
  z-index:10
}
.brand {
  display:flex;
  gap:11px;
  align-items:center;
  margin:0 6px 46px;
  font-size:20px;
  letter-spacing:-.7px;
  font-weight:700
}
.brand small {
  display:block;
  letter-spacing:.1px;
  font-size:13px;
  color:var(--muted);
  font-weight:600;
  margin-top:4px
}
.nav-label {
  font-size:12px;
  letter-spacing:1.1px;
  color:var(--text-secondary);
  margin:0 12px 13px;
  font-weight:700
}
nav {
  display:grid;
  gap:7px
}
nav a {
  padding:12px 12px;
  display:flex;
  align-items:center;
  gap:11px;
  border-radius:7px;
  color:var(--text-secondary);
  font-weight:600;
  font-size:14px;
  min-height:45px
}
nav a:hover {
  background:#f0f7ff
}
nav a.active {
  background:var(--accent-light);
  color:var(--accent);
  font-weight:700
}
nav .nav-count {
  margin-left:auto;
  border-radius:4px;
  background:#edf4fc;
  color:var(--text-secondary);
  font-size:12px;
  padding:2px 6px
}
nav a.active .nav-count {
  background:#cfe6ff;
  color:var(--accent)
}
.sidebar-bottom {
  margin-top:auto;
  padding:50px 4px 0
}
.local-card {
  border:1px solid var(--line);
  background:#f8fbff;
  border-radius:8px;
  display:flex;
  gap:9px;
  padding:13px 10px;
  margin-bottom:15px;
  font-size:13px;
  font-weight:600
}
.local-card small {
  display:block;
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
  font-weight:600
}
.status-dot,.connection i {
  height:6px;
  width:6px;
  border-radius:50%;
  background:#2e88d4;
  flex-shrink:0;
  margin-top:4px
}
.backup-link {
  border:0;
  background:none;
  padding:9px 4px;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--text-secondary);
  font-size:12px;
  text-align:left
}
.backup-link svg {
  width:14px;
  height:14px
}
.backup-link:hover {
  color:var(--accent)
}
.version {
  font-size:12px;
  color:var(--text-secondary);
  border-top:1px solid var(--line);
  margin-top:18px;
  padding-top:15px
}
.workspace {
  margin-left:228px;
  min-width:0;
  width:calc(100% - 228px);
  display:flex;
  flex-direction:column
}
.topbar {
  height:77px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 35px;
  border-bottom:1px solid var(--line);
  background:#fff;
  gap:20px
}
.breadcrumb {
  font-size:13px;
  color:var(--text-secondary);
  white-space:nowrap
}
.breadcrumb span {
  margin:0 13px;
  color:var(--text-secondary)
}
.breadcrumb strong {
  color:var(--text-secondary);
  font-weight:600
}
.topbar-right {
  display:flex;
  align-items:center;
  gap:23px
}
.connection {
  color:var(--text-secondary);
  font-size:12px;
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap
}
.connection i {
  margin:0;
  width:5px;
  height:5px
}
.today {
  font-size:13px;
  color:var(--text-secondary);
  white-space:nowrap
}
.avatar {
  border:1px solid #c9dff2;
  background:#e7f2ff;
  border-radius:50%;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:600
}
main {
  padding:33px 35px 25px;
  flex:1;
  max-width:1660px;
  width:100%;
  margin:0 auto
}
.page-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:27px
}
.eyebrow {
  color:var(--text-secondary);
  font-size:12px;
  letter-spacing:1.7px;
  font-weight:600;
  margin-bottom:10px
}
.page-heading p {
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  margin-top:9px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid transparent;
  border-radius:7px;
  min-height:41px;
  padding:10px 15px;
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  white-space:nowrap;
  transition:background .15s,border-color .15s
}
.button.primary {
  background:var(--accent);
  color:#fff
}
.button.primary:hover:not(:disabled) {
  background:var(--accent-dark)
}
.button.secondary {
  background:#fff;
  border-color:#c6d9eb;
  color:var(--text-secondary)
}
.button.secondary:hover {
  background:#f0f7ff;
  border-color:#a5c9ea
}
.button.small {
  min-height:35px;
  padding:8px 12px;
  font-size:13px
}
.button.destructive {
  background:#b9524c;
  color:#fff
}
.button.destructive:hover {
  background:#99433d
}
.overview-strip {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin-bottom:25px;
  padding:21px 0
}
.overview-strip>div {
  display:flex;
  gap:13px;
  align-items:center;
  padding:0 24px;
  border-right:1px solid var(--line)
}
.overview-strip>div:last-child {
  border:0
}
.metric-icon {
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  border-radius:10px;
  background:#e9f3ff;
  color:var(--text-secondary);
  flex-shrink:0
}
.overview-strip small {
  display:block;
  font-size:12px;
  color:var(--text-secondary);
  margin-bottom:5px
}
.overview-strip strong {
  font-size:23px;
  line-height:1;
  font-weight:600;
  letter-spacing:-.5px
}
.overview-strip em {
  font-size:12px;
  color:var(--text-secondary);
  font-style:normal;
  font-weight:600;
  margin-left:6px;
  letter-spacing:0
}
.generator-layout {
  display:grid;
  grid-template-columns:minmax(330px,.9fr) minmax(410px,1.4fr);
  gap:22px;
  align-items:start
}
.panel {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden
}
.panel-heading {
  min-height:65px;
  padding:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  gap:9px
}
.panel-heading>div {
  display:flex;
  gap:10px;
  align-items:center
}
.step-label {
  width:22px;
  height:22px;
  border:1px solid #d2e3f3;
  border-radius:5px;
  background:#f4f9ff;
  display:grid;
  place-items:center;
  font-size:12px;
  color:var(--text-secondary)
}
.pill {
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:#eff5fc;
  border:1px solid #dbe7f3;
  border-radius:5px;
  color:var(--text-secondary);
  font-size:12px;
  padding:5px 7px;
  font-weight:600;
  white-space:nowrap
}
.pill.green {
  background:#e9f4ff;
  color:var(--text-secondary);
  border-color:#c7e0f7
}
.pill.amber {
  background:#edf5ff;
  color:var(--text-secondary);
  border-color:#cbdff6
}
.setup-body {
  padding:20px
}
.field-label {
  display:block;
  font-size:13px;
  font-weight:600;
  margin-bottom:8px
}
.setup-body>input {
  width:100%;
  font-size:14px
}
.list-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:25px 0 14px;
  font-size:14px;
  font-weight:600
}
.list-title small {
  background:#edf4fc;
  border-radius:4px;
  padding:2px 5px;
  font-weight:600;
  color:var(--text-secondary);
  margin-left:4px
}
.text-button {
  border:0;
  background:none;
  color:var(--text-secondary);
  font-size:13px;
  padding:4px 0;
  text-decoration:none
}
.text-button:hover {
  text-decoration:underline
}
.text-button.danger {
  color:#a33d37
}
.selection-head {
  display:flex;
  justify-content:space-between;
  font-size:12px;
  color:var(--text-secondary);
  padding:0 0 9px;
  border-bottom:1px solid var(--line)
}
.courier-selection {
  max-height:462px;
  overflow:auto;
  scrollbar-width:thin
}
.selection-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  min-height:55px;
  padding:10px 0;
  border-bottom:1px solid #e2edf7
}
.selection-row:last-child {
  border:0
}
.courier-check {
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  min-width:0;
  flex:1
}
.person-name {
  font-size:13px;
  color:var(--text-secondary);
  overflow-wrap:anywhere;
  line-height:1.5
}
.selected .person-name {
  color:var(--text-secondary);
  font-weight:600
}
.assignment-inputs {
  width:134px;
  flex-shrink:0;
  display:grid;
  gap:5px
}
.assignment-inputs select {
  font-size:12px;
  padding:6px 5px;
  min-height:31px;
  width:100%;
  border-color:#c7daed;
  color:var(--text-secondary);
  background:#fff
}
.assignment-inputs select:disabled {
  color:var(--text-secondary);
  background:#f4f8fd
}
.assignment-inputs .group-select {
  font-size:12px;
  min-height:25px;
  padding:4px 5px;
  color:var(--accent);
  background:#edf6ff;
  border-color:#bfdcf3
}
.hint {
  margin-top:17px;
  display:flex;
  align-items:flex-start;
  gap:8px;
  background:#eef5fd;
  border-radius:7px;
  padding:11px;
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.65
}
.hint svg {
  width:15px;
  height:15px;
  margin-top:2px;
  color:var(--text-secondary)
}
.generate-button {
  width:100%;
  margin-top:20px;
  font-size:14px;
  min-height:44px
}
.generate-button>svg:last-child {
  margin-left:auto;
  width:16px
}
.generate-button>svg:first-child {
  margin-right:auto;
  width:16px
}
.under-button {
  font-size:12px;
  color:var(--text-secondary);
  text-align:center;
  margin:10px 0 0;
  line-height:1.6
}
.roster-empty {
  padding:28px 0 10px;
  text-align:center;
  display:grid;
  justify-items:center;
  gap:12px
}
.roster-empty>svg {
  width:29px;
  height:29px;
  color:var(--text-secondary)
}
.roster-empty strong {
  font-size:14px;
  font-weight:600
}
.roster-empty p {
  font-size:13px;
  color:var(--muted);
  line-height:1.8
}
.result-empty {
  padding:45px 20px 39px;
  min-height:504px;
  display:flex;
  align-items:center;
  flex-direction:column;
  justify-content:center
}
.result-empty h3 {
  margin-top:33px;
  font-size:18px;
  letter-spacing:-.4px
}
.result-empty>p {
  font-size:14px;
  color:var(--text-secondary);
  text-align:center;
  line-height:1.9;
  margin-top:11px
}
.route-art {
  height:150px;
  width:252px;
  position:relative;
  background:radial-gradient(ellipse at center,#e1f1ff 0%,#f6fbff 57%,transparent 72%)
}
.route-art:before {
  content:"";
  position:absolute;
  inset:23px 40px;
  border:1px dashed #b8d5f0;
  border-radius:40px;
  transform:rotate(-15deg)
}
.route-art:after {
  content:"";
  position:absolute;
  inset:15px 62px;
  border:1px dashed #c4ddf3;
  border-radius:45px;
  transform:rotate(35deg)
}
.route-node {
  width:35px;
  height:35px;
  position:absolute;
  display:grid;
  place-items:center;
  border-radius:10px;
  font-size:12px;
  border:3px solid white;
  box-shadow:0 2px 8px #b8d6f266;
  z-index:1
}
.route-node.a {
  left:30px;
  top:16px;
  background:#e4f2ff;
  color:var(--text-secondary)
}
.route-node.b {
  right:33px;
  top:9px;
  background:#e9f4ff;
  color:var(--text-secondary)
}
.route-node.c {
  right:17px;
  bottom:24px;
  background:#dcefff;
  color:var(--text-secondary)
}
.route-node.d {
  left:42px;
  bottom:4px;
  background:#e9efff;
  color:var(--text-secondary)
}
.route-node.f {
  left:107px;
  bottom:-5px;
  background:#e2f5ff;
  color:var(--text-secondary)
}
.route-center {
  position:absolute;
  left:101px;
  top:43px;
  width:52px;
  height:52px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:#fff;
  box-shadow:0 5px 22px #176cc020;
  color:var(--accent);
  z-index:2
}
.route-center svg {
  width:27px;
  height:27px
}
.empty-features {
  display:grid;
  gap:11px;
  padding-top:27px;
  font-size:12px;
  color:var(--text-secondary)
}
.empty-features span {
  display:flex;
  align-items:center;
  gap:8px
}
.empty-features svg {
  width:13px;
  height:13px;
  color:var(--text-secondary)
}
.result-body {
  padding:20px
}
.result-date {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:20px
}
.result-date strong {
  font-size:14px;
  font-weight:600
}
.result-date small {
  display:flex;
  gap:5px;
  color:var(--text-secondary);
  font-size:12px;
  margin-top:8px;
  align-items:center
}
.result-date small svg {
  width:12px;
  height:12px
}
.small-muted {
  font-size:12px;
  color:var(--text-secondary);
  line-height:1.6
}
.result-date>.small-muted {
  font-size:12px;
  text-align:right
}
.assignment-cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px
}
.assignment-cards.single-group {
  grid-template-columns:1fr
}
.group-card {
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden
}
.group-title {
  padding:13px 11px;
  background:#f5f9fe;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  font-size:12px;
  font-weight:600
}
.group-title b {
  font-size:12px;
  color:var(--text-secondary);
  margin-right:4px;
  font-weight:600
}
.group-title small {
  font-size:12px;
  color:var(--text-secondary);
  font-weight:600
}
.route-row {
  display:flex;
  align-items:center;
  gap:9px;
  padding:14px 11px;
  min-height:78px;
  border-bottom:1px solid #e2edf7
}
.route-row:last-child {
  border:0
}
.route-tag {
  width:27px;
  height:29px;
  border-radius:7px;
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:700;
  flex-shrink:0
}
.tag-yasnogorsk {
  background:#e6f3ff;
  color:var(--text-secondary)
}
.tag-kashira {
  background:#eaf2ff;
  color:var(--text-secondary)
}
.tag-ozery {
  background:#e4f5ff;
  color:var(--text-secondary)
}
.tag-malino {
  background:#edf1ff;
  color:var(--text-secondary)
}
.tag-khatun {
  background:#e4f1fc;
  color:var(--text-secondary)
}
.route-row>div {
  min-width:0
}
.route-name {
  font-size:12px;
  color:var(--text-secondary);
  display:block;
  margin-bottom:5px
}
.route-row strong {
  font-weight:600;
  font-size:13px;
  overflow-wrap:anywhere;
  line-height:1.5;
  display:block
}
.row-check {
  margin-left:auto;
  align-self:center;
  color:var(--text-secondary)
}
.row-check svg {
  width:12px;
  height:12px
}
.route-row:has(.manual-badge) .row-check {
  display:none
}
.manual-badge {
  font-size:11px;
  color:var(--text-secondary);
  display:flex;
  align-items:center;
  gap:3px;
  margin-top:5px;
  line-height:1.3;
  white-space:nowrap
}
.manual-badge svg {
  width:10px;
  height:10px
}
.route-row.vacant {
  background:repeating-linear-gradient(135deg,#f5f9fe,#f5f9fe 7px,#edf4fb 7px,#edf4fb 8px)
}
.vacant strong {
  color:var(--text-secondary);
  font-weight:600;
  font-size:12px
}
.vacant .route-tag {
  filter:grayscale(.7);
  opacity:.6
}
.vacant-dash {
  margin-left:auto;
  color:var(--text-secondary)
}
.vacancy-note {
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--text-secondary);
  font-size:12px;
  margin:14px 0 0;
  line-height:1.5
}
.vacancy-note svg {
  width:12px;
  height:12px
}
.result-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:21px;
  padding-top:19px;
  border-top:1px solid var(--line)
}
.result-actions>.button {
  font-size:13px;
  padding:10px 12px;
  min-height:40px
}
.result-actions>div {
  display:flex;
  gap:4px
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:33px;
  height:33px;
  border:1px solid #cfdfed;
  background:#fff;
  border-radius:6px;
  color:var(--text-secondary);
  flex-shrink:0
}
.icon-button:hover {
  background:#eaf5ff;
  color:var(--accent);
  border-color:#aecfee
}
.icon-button svg {
  width:15px;
  height:15px
}
.directions-footer {
  padding:25px 2px 9px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  color:var(--text-secondary);
  font-size:12px
}
.directions-footer>span:first-child {
  font-size:11px;
  letter-spacing:1.2px;
  color:var(--text-secondary)
}
.direction-legend {
  display:flex;
  align-items:center;
  gap:7px
}
.direction-legend b {
  font-weight:600;
  font-size:12px;
  color:var(--text-secondary)
}
i[class^=dot-] {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  flex-shrink:0
}
.dot-yasnogorsk {
  background:#1878c5
}
.dot-kashira {
  background:#4996dc
}
.dot-ozery {
  background:#249fc9
}
.dot-malino {
  background:#557bd5
}
.dot-khatun {
  background:#76b6e9
}
.workspace-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:20px 35px 23px;
  font-size:12px;
  color:var(--text-secondary)
}
.filter-bar {
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  margin-bottom:24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:15px 18px
}
.search-field {
  display:flex;
  align-items:center;
  border:1px solid #cbddeb;
  border-radius:6px;
  padding-left:11px;
  flex:1;
  min-width:170px;
  max-width:300px;
  color:var(--text-secondary)
}
.search-field input {
  border:0;
  min-width:0;
  width:100%;
  font-size:14px;
  min-height:36px;
  padding:8px 10px
}
.search-field:focus-within {
  outline:2px solid #82b8e8
}
.search-field input:focus {
  outline:none
}
.search-field svg {
  width:15px;
  height:15px
}
.inline-date {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text-secondary);
  font-size:13px
}
.inline-date input {
  font-size:13px;
  min-height:36px;
  padding:7px 9px
}
.checkbox-label {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  color:var(--text-secondary);
  cursor:pointer
}
.section-caption {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:23px 2px 15px;
  color:var(--text-secondary);
  font-size:13px;
  gap:15px
}
.section-caption>span {
  font-size:12px;
  color:var(--text-secondary)
}
.journal-entry {
  padding:22px;
  margin-bottom:19px
}
.journal-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:20px
}
.journal-heading h2 {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:17px
}
.journal-times {
  display:flex;
  flex-wrap:wrap;
  gap:9px 18px;
  margin-top:12px;
  font-size:12px;
  color:var(--text-secondary)
}
.journal-times span {
  display:flex;
  align-items:center;
  gap:5px;
  line-height:1.5
}
.journal-times svg {
  width:13px;
  height:13px
}
.journal-times strong {
  font-weight:600;
  color:var(--text-secondary)
}
.journal-heading>small {
  font-size:12px;
  color:var(--text-secondary)
}
.journal-entry .route-row {
  min-height:65px
}
.journal-entry .route-row strong {
  font-size:14px
}
.cancelled-entry {
  background:#f5f9fe
}
.cancelled-entry .assignment-cards {
  opacity:.6
}
.empty-state {
  padding:65px 25px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center
}
.empty-icon {
  width:58px;
  height:58px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#e6f2ff;
  color:var(--text-secondary);
  margin-bottom:22px
}
.empty-icon svg {
  width:26px;
  height:26px
}
.empty-state h3 {
  font-size:19px;
  margin-bottom:12px
}
.empty-state p {
  font-size:14px;
  color:var(--text-secondary);
  line-height:1.8;
  max-width:400px
}
.empty-state .button {
  margin-top:25px
}
.stat-cards {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:20px;
  margin-bottom:23px
}
.stat-cards .panel {
  padding:23px
}
.stat-cards span {
  font-size:14px;
  color:var(--text-secondary);
  display:block
}
.stat-cards strong {
  font-size:34px;
  letter-spacing:-1px;
  display:block;
  margin:15px 0 10px;
  font-weight:600
}
.stat-cards small {
  font-size:12px;
  color:var(--text-secondary)
}
.table-scroll {
  overflow-x:auto
}
.stats-table,.roster-table {
  width:100%;
  border-collapse:collapse;
  font-size:14px;
  text-align:left
}
.stats-table th,.roster-table th {
  font-size:12px;
  font-weight:600;
  color:var(--text-secondary);
  padding:15px 17px;
  background:#f4f8fd;
  white-space:nowrap;
  border-bottom:1px solid var(--line)
}
.stats-table th i {
  margin-right:6px
}
.stats-table td,.roster-table td {
  padding:19px 17px;
  border-bottom:1px solid #deebf5;
  color:var(--text-secondary)
}
.stats-table tbody tr:last-child td,.roster-table tbody tr:last-child td {
  border:0
}
.stats-table th:not(:first-child),.stats-table td:not(:first-child) {
  text-align:center
}
.stats-table td strong,.roster-table strong {
  font-size:14px;
  font-weight:600;
  color:var(--text-secondary)
}
.stats-table tbody tr:hover,.roster-table tbody tr:hover {
  background:#f8fbff
}
.count-cell {
  display:inline-grid;
  place-items:center;
  min-width:29px;
  min-height:29px;
  border-radius:6px;
  color:var(--text-secondary);
  font-size:14px
}
.count-cell.has-count {
  background:#e3f1ff;
  color:var(--text-secondary);
  font-weight:600
}
.archived-note {
  display:block;
  font-size:12px;
  color:var(--text-secondary);
  font-weight:600;
  margin-top:5px
}
.direction-totals {
  margin-top:23px
}
.bars {
  padding:25px;
  display:grid;
  gap:20px
}
.bars>div {
  display:flex;
  align-items:center;
  gap:22px;
  font-size:14px
}
.bars span {
  width:110px;
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--text-secondary)
}
.bars strong {
  width:30px;
  text-align:right;
  color:var(--text-secondary);
  font-weight:600
}
.bars progress {
  flex:1;
  height:7px;
  appearance:none;
  border:0;
  border-radius:10px;
  overflow:hidden;
  background:#eaf2fa
}
.bars progress::-webkit-progress-bar {
  background:#eaf2fa
}
.bars progress::-webkit-progress-value {
  background:#2584d0;
  border-radius:10px
}
.bars progress::-moz-progress-bar {
  background:#2584d0;
  border-radius:10px
}
.bars .bar-kashira::-webkit-progress-value {
  background:#5c9fe0
}
.bars .bar-ozery::-webkit-progress-value {
  background:#3aa3d0
}
.bars .bar-malino::-webkit-progress-value {
  background:#6487df
}
.bars .bar-khatun::-webkit-progress-value {
  background:#7bb8e5
}
.person {
  display:flex;
  gap:12px;
  align-items:center
}
.person-avatar {
  width:34px;
  height:34px;
  background:#e6f2ff;
  color:var(--text-secondary);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:12px;
  flex-shrink:0
}
.row-actions {
  text-align:right;
  white-space:nowrap
}
.row-actions button {
  margin-left:4px
}
.loading {
  padding:100px 0;
  text-align:center;
  color:var(--text-secondary);
  font-size:14px
}
.toast {
  position:fixed;
  bottom:25px;
  left:calc(50% + 114px);
  transform:translateX(-50%);
  border:1px solid #bfdcf3;
  background:#edf6ff;
  color:var(--text-secondary);
  border-radius:9px;
  padding:15px 20px;
  box-shadow:0 8px 35px #174f8216;
  font-size:14px;
  line-height:1.7;
  max-width:560px;
  width:max-content;
  z-index:40
}
.toast.error {
  background:#fff2ef;
  color:#a33d37;
  border-color:#f0d4ce
}
dialog {
  border:1px solid var(--line);
  border-radius:15px;
  padding:26px;
  width:470px;
  max-width:calc(100% - 30px);
  color:var(--ink);
  box-shadow:0 20px 100px #142e4e30
}
dialog::backdrop {
  background:#15395d4a;
  backdrop-filter:blur(3px)
}
.modal-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
  gap:15px
}
.modal-heading h2 {
  font-size:20px;
  letter-spacing:-.4px
}
.modal-heading .icon-button {
  border:0
}
.modal-description {
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.8;
  margin:12px 0 20px
}
.modal-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:23px
}
dialog input:not([type=checkbox]) {
  width:100%
}
.form-error {
  color:#a33d37;
  font-size:13px;
  line-height:1.7;
  margin-top:10px
}
.sr-only,.skip-link:not(:focus) {
  position:absolute;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  width:1px;
  height:1px;
  overflow:hidden;
  white-space:nowrap
}
.skip-link:focus {
  position:fixed;
  top:10px;
  left:10px;
  background:#fff;
  color:var(--accent);
  padding:15px;
  z-index:100
}
@media(min-width:1600px) {
  .generator-layout {
    grid-template-columns:minmax(370px,.8fr) minmax(520px,1.4fr)
  }
  .route-row {
    min-height:87px
  }
  .person-name {
    font-size:14px
  }
  .assignment-inputs {
    width:150px
  }
  .result-body {
    padding:23px
  }
  .route-row strong {
    font-size:14px
  }
  .route-tag {
    width:31px;
    height:33px
  }
}
@media(max-width:1220px) {
  .sidebar {
    width:205px;
    padding-left:12px;
    padding-right:12px
  }
  .workspace {
    margin-left:205px;
    width:calc(100% - 205px)
  }
  .brand {
    font-size:19px;
    gap:8px
  }
  .brand img {
    width:36px;
    height:36px
  }
  .topbar,main {
    padding-left:24px;
    padding-right:24px
  }
  .topbar-right {
    gap:15px
  }
  .connection {
    display:none
  }
  .generator-layout {
    grid-template-columns:minmax(310px,.95fr) minmax(355px,1.1fr);
    gap:16px
  }
  .panel-heading {
    padding:16px;
    min-height:62px
  }
  .panel-heading h2 {
    font-size:14px
  }
  .panel-heading .pill {
    font-size:11px
  }
  .setup-body,.result-body {
    padding:16px
  }
  .assignment-cards {
    gap:8px
  }
  .route-row {
    gap:7px;
    padding:12px 8px
  }
  .route-row strong {
    font-size:12px
  }
  .route-tag {
    width:23px;
    height:26px;
    font-size:10px
  }
  .group-title {
    font-size:12px;
    padding:11px 8px
  }
  .row-check {
    display:none
  }
  .manual-badge {
    font-size:10px
  }
  .result-date {
    flex-wrap:wrap;
    gap:8px
  }
  .overview-strip>div {
    padding:0 18px;
    gap:10px
  }
  .overview-strip em {
    display:block;
    margin:6px 0 0;
    font-size:12px
  }
  .overview-strip strong {
    font-size:22px
  }
  .metric-icon {
    width:34px;
    height:34px
  }
  .overview-strip {
    padding:18px 0
  }
  .page-heading .button {
    font-size:13px
  }
  h1 {
    font-size:27px
  }
  .directions-footer {
    justify-content:flex-start;
    column-gap:19px;
    row-gap:12px
  }
  .directions-footer>span:first-child {
    flex-basis:100%
  }
  .toast {
    left:calc(50% + 102px)
  }
  .stats-table td,.stats-table th {
    padding:15px 12px
  }
  .workspace-footer {
    padding-left:24px;
    padding-right:24px
  }
  .stat-cards {
    gap:15px
  }
  .stat-cards .panel {
    padding:20px
  }
  .topbar .today {
    font-size:12px
  }
  .result-actions>.button {
    font-size:12px;
    gap:5px;
    padding:10px
  }
  .result-actions .icon-button {
    width:29px;
    height:31px
  }
  .result-actions .button svg {
    width:15px
  }
}
@media(max-width:1040px) {
  .sidebar {
    width:190px
  }
  .workspace {
    margin-left:190px;
    width:calc(100% - 190px)
  }
  .brand {
    font-size:17px;
    margin-bottom:38px
  }
  .brand small {
    font-size:12px
  }
  .nav-label {
    font-size:11px
  }
  nav a {
    font-size:13px;
    gap:9px;
    padding:11px
  }
  .generator-layout {
    grid-template-columns:1fr
  }
  .result-empty {
    min-height:380px;
    padding:30px 20px
  }
  .route-art {
    height:130px
  }
  .result-empty h3 {
    margin-top:25px
  }
  .result-empty .empty-features {
    padding-top:19px
  }
  .courier-selection {
    max-height:370px
  }
  .assignment-inputs {
    width:200px;
    grid-template-columns:1fr 1fr
  }
  .assignment-inputs>select:only-child {
    grid-column:1/-1
  }
  .assignment-inputs .group-select {
    min-height:31px;
    font-size:12px
  }
  .route-row strong {
    font-size:14px
  }
  .route-row {
    padding:15px;
    min-height:80px
  }
  .manual-badge {
    font-size:11px
  }
  .route-tag {
    width:30px;
    height:33px
  }
  .group-title {
    font-size:13px;
    padding:14px
  }
  .result-date {
    flex-wrap:nowrap
  }
  .page-heading {
    align-items:flex-start
  }
  .page-heading>.button {
    padding:8px 10px;
    font-size:12px;
    margin-top:24px
  }
  .page-heading p {
    font-size:13px
  }
  .metric-icon {
    display:none
  }
  .overview-strip>div {
    padding:0 17px
  }
  .stat-cards {
    gap:10px
  }
  .stat-cards .panel {
    padding:17px
  }
  .stat-cards small {
    font-size:12px
  }
  .stat-cards span {
    font-size:12px
  }
  .journal-heading {
    flex-wrap:wrap
  }
  .journal-entry {
    padding:17px
  }
  .workspace-footer {
    flex-wrap:wrap;
    font-size:11px
  }
  .toast {
    left:calc(50% + 95px)
  }
}
@media(max-width:760px) {
  .sidebar {
    position:static;
    width:100%;
    padding:15px 18px 12px;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .brand {
    margin:0 0 18px;
    font-size:19px
  }
  .brand img {
    width:34px;
    height:34px
  }
  .brand small {
    font-size:12px
  }
  .nav-label,.sidebar-bottom {
    display:none
  }
  nav {
    display:flex;
    gap:5px;
    justify-content:space-between
  }
  nav a {
    padding:10px 8px;
    font-size:13px;
    min-height:39px;
    gap:7px
  }
  nav a svg {
    width:16px;
    height:16px
  }
  .nav-count {
    display:none
  }
  .app-shell {
    flex-direction:column
  }
  .workspace {
    margin:0;
    width:100%
  }
  .topbar {
    height:48px;
    padding:0 20px
  }
  .breadcrumb {
    font-size:12px
  }
  .breadcrumb span {
    margin:0 8px
  }
  .topbar-right .today,.avatar {
    display:none
  }
  .topbar-right .connection {
    display:flex;
    font-size:11px
  }
  main {
    padding:24px 20px 20px
  }
  .page-heading {
    margin-bottom:22px;
    gap:10px
  }
  h1 {
    font-size:25px
  }
  .eyebrow {
    font-size:11px;
    margin-bottom:8px
  }
  .page-heading p {
    font-size:13px;
    max-width:280px
  }
  .page-heading>.button {
    font-size:0;
    gap:0;
    min-height:36px;
    width:36px;
    padding:8px;
    margin-top:23px
  }
  .page-heading>.button svg {
    width:17px;
    height:17px
  }
  .overview-strip {
    margin-bottom:18px;
    padding:15px 0
  }
  .overview-strip>div {
    padding:0 12px
  }
  .overview-strip small {
    font-size:12px
  }
  .overview-strip em {
    font-size:11px;
    line-height:1.5
  }
  .overview-strip strong {
    font-size:21px
  }
  .generator-layout {
    gap:18px
  }
  .panel-heading {
    padding:17px
  }
  .panel-heading h2 {
    font-size:15px
  }
  .setup-body,.result-body {
    padding:18px
  }
  .assignment-inputs {
    width:180px
  }
  .person-name {
    font-size:14px
  }
  .directions-footer {
    column-gap:15px
  }
  .directions-footer>span:first-child {
    font-size:11px
  }
  .direction-legend {
    font-size:12px;
    gap:5px
  }
  .workspace-footer {
    padding:10px 20px 20px;
    line-height:1.7
  }
  .toast {
    left:50%;
    max-width:calc(100% - 30px);
    width:max-content;
    font-size:13px;
    bottom:15px
  }
  .filter-bar {
    padding:14px;
    gap:15px
  }
  .search-field {
    max-width:none;
    flex-basis:100%
  }
  .stat-cards {
    gap:10px
  }
  .stat-cards .panel {
    padding:14px
  }
  .stat-cards strong {
    font-size:28px
  }
  .stat-cards small {
    font-size:11px;
    line-height:1.6;
    display:block
  }
  .stats-table-panel .panel-heading h2 {
    font-size:14px
  }
  .stats-table th,.stats-table td {
    font-size:12px;
    padding:14px
  }
  .stats-table th:first-child,.stats-table td:first-child {
    min-width:140px
  }
  .roster-table {
    min-width:650px
  }
  .journal-heading h2 {
    font-size:16px
  }
  .journal-heading .pill {
    font-size:11px
  }
  .journal-entry .route-row strong {
    font-size:13px
  }
  .journal-entry .route-row {
    padding:12px 9px
  }
  .journal-times {
    font-size:12px;
    gap:8px
  }
  .section-caption {
    font-size:12px
  }
  .section-caption>span {
    font-size:12px
  }
  .bars {
    padding:20px
  }
  .bars>div {
    gap:15px
  }
  .bars span {
    width:90px;
    font-size:13px
  }
  .button {
    font-size:13px
  }
  .empty-state {
    padding:50px 20px
  }
  .empty-state h3 {
    font-size:17px
  }
}
@media(max-width:420px) {
  main {
    padding:22px 14px 17px
  }
  .sidebar {
    padding:15px 12px 10px
  }
  .topbar {
    padding:0 14px
  }
  nav a {
    font-size:12px;
    padding:9px 7px;
    gap:5px
  }
  nav a svg {
    width:14px;
    height:14px
  }
  h1 {
    font-size:22px
  }
  .page-heading p {
    font-size:12px
  }
  .overview-strip>div {
    padding:0 10px
  }
  .overview-strip small {
    font-size:11px
  }
  .overview-strip em {
    font-size:10px
  }
  .overview-strip strong {
    font-size:20px
  }
  .setup-body,.result-body {
    padding:14px
  }
  .assignment-inputs {
    width:140px;
    grid-template-columns:1fr
  }
  .assignment-inputs .group-select {
    min-height:25px
  }
  .person-name {
    font-size:13px
  }
  .assignment-cards {
    grid-template-columns:1fr
  }
  .group-title {
    font-size:14px
  }
  .route-row {
    min-height:66px
  }
  .route-row strong {
    font-size:14px
  }
  .route-tag {
    width:30px;
    height:32px
  }
  .route-row .manual-badge {
    font-size:12px
  }
  .journal-entry .assignment-cards {
    grid-template-columns:1fr
  }
  .result-date {
    flex-direction:column
  }
  .result-date>.small-muted {
    text-align:left
  }
  .stat-cards {
    grid-template-columns:1fr
  }
  .stat-cards .panel {
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px
  }
  .stat-cards strong {
    grid-column:2;
    grid-row:1/3;
    margin:0;
    font-size:29px
  }
  .stat-cards small {
    font-size:12px
  }
  .stat-cards span {
    font-size:13px
  }
  .journal-heading h2 {
    font-size:15px
  }
  .panel-heading h2 {
    font-size:14px
  }
  .panel-heading .pill {
    font-size:10px
  }
  .filter-bar .inline-date {
    font-size:12px
  }
  .checkbox-label {
    font-size:12px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    transition:none!important;
    scroll-behavior:auto!important
  }
}
@media print {
  @page {
    margin:16mm
  }
  body {
    background:white;
    color:#000
  }
  .sidebar,.topbar,.page-heading,.overview-strip,.setup-panel,.directions-footer,.workspace-footer,.result-actions,.under-button,.vacancy-note,.toast,dialog {
    display:none!important
  }
  .workspace {
    margin:0;
    width:100%
  }
  main {
    padding:0;
    max-width:none
  }
  .generator-layout {
    display:block
  }
  .result-panel {
    border:0;
    overflow:visible
  }
  .panel-heading {
    padding:0 0 16px;
    border-bottom:1px solid #ddd
  }
  .result-body {
    padding:15px 0
  }
  .assignment-cards {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
    break-inside:avoid
  }
  .single-group {
    grid-template-columns:1fr
  }
  .route-row {
    min-height:80px
  }
  .route-row strong {
    font-size:14px
  }
  .route-name {
    font-size:12px
  }
  .group-title {
    font-size:14px
  }
  .manual-badge {
    font-size:12px;
    color:#555
  }
  .pill,.step-label {
    display:none
  }
  .result-date small {
    font-size:12px
  }
  .route-tag {
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact
  }
  .route-row.vacant {
    background:#f7f7f7
  }
  .row-check {
    display:none
  }
}
.mobile-data-actions {
  display:none
}
@media(max-width:760px) {
  .mobile-data-actions {
    display:flex;
    gap:20px;
    width:100%;
    border-top:1px solid var(--line);
    padding:10px 0 5px
  }
}
@media print {
  .mobile-data-actions {
    display:none!important
  }
}
.connection.offline i { background: #bc6a59; }
.connection-notice { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 35px; border-bottom: 1px solid #eadacb; background: #fff8ec; color:var(--text-secondary); font-size:14px; line-height: 1.7; }
@media (max-width: 760px) { .connection-notice { padding: 14px 20px; flex-wrap: wrap; } }
@media print { .connection-notice { display: none !important; } }

/* Clear blue accents and high-contrast labels across every view. */
.brand, h1, h2, h3, .person-name, .selected .person-name, .route-row strong, .stats-table td strong, .roster-table strong { color: var(--ink); }
.page-heading p, .modal-description, .hint, .route-name, .result-date small, .small-muted, .journal-times, .under-button, .empty-state p { color: var(--text-secondary); }
.person-name, .route-row strong, .stats-table td strong, .roster-table strong { font-weight: 650; }
.button, .field-label, .list-title, .courier-check, .stats-table th, .roster-table th { font-weight: 650; }
.pill.green, .pill.amber, .text-button, .count-cell.has-count, .route-node, .route-tag, .metric-icon, .person-avatar, .empty-icon { color: #135b9d; }
.status-dot, .connection i { background: #2582ce; }
.assignment-inputs select { color: var(--ink); font-weight: 600; }
.assignment-inputs select:disabled { color: #6b8198; }
.manual-badge { color: #145b9e; background: #e6f2ff; border: 1px solid #c7dff5; border-radius: 4px; padding: 3px 5px; font-weight: 650; white-space: normal; line-height: 1.45; width: fit-content; }
.route-row.vacant strong { color: #54708c; font-weight: 600; }
.row-check, .empty-features svg { color: #2582ce; }
.journal-times strong { color: #254d75; font-weight: 650; }
.hint, .empty-features, .under-button, .directions-footer, .workspace-footer { line-height: 1.7; }
.stats-table th, .roster-table th { color: #345778; }
input::placeholder, textarea::placeholder { color: #617b94; opacity: 1; }
input[type=checkbox] { width: 18px; height: 18px; }
.selection-row { min-height: 59px; }
.assignment-inputs { width: 148px; }
.route-row { min-height: 84px; }
.toast { color: #21577e; }
.toast.error { color: #963d35; }
@media (max-width: 1220px) { .assignment-inputs { width: 142px; } .route-row strong { font-size: 13px; } }
@media (max-width: 1040px) { .assignment-inputs { width: 210px; } .route-row strong { font-size: 14px; } }
@media (max-width: 760px) { .assignment-inputs { width: 180px; } .route-row strong, .journal-entry .route-row strong { font-size: 14px; } .panel-heading { flex-wrap: wrap; } }
@media (max-width: 420px) { .assignment-inputs { width: 140px; } .person-name { font-size: 13px; } }
@media print { .manual-badge { color: #17324f; background: none; border-color: #bacbdb; } .connection-notice { display: none !important; } }
.button:disabled { opacity: 1; background: #e5effa; color: #536f8b; border-color: #cbdced; }

nav [data-icon] { flex-shrink: 0; }
.nav-item-label { line-height: 1.4; }
.queue-tabs { display: flex; gap: 6px; margin-bottom: 22px; padding: 5px; background: #e5effa; border: 1px solid var(--line); border-radius: 10px; width: fit-content; max-width: 100%; }
.queue-tabs button { border: 0; border-radius: 6px; padding: 11px 16px; background: transparent; color: #405e7d; font-size: 13px; font-weight: 650; white-space: nowrap; }
.queue-tabs button[aria-selected="true"] { background: white; color: #105497; box-shadow: 0 1px 4px #17324f14; }
.queue-selection { max-height: 510px; overflow-y: auto; margin: 0 -20px 18px; }
.queue-check { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 12px 20px; border-bottom: 1px solid #e3edf7; cursor: pointer; }
.queue-check.selected { background: #f1f8ff; }
.queue-check input { flex-shrink: 0; }
.queue-check .person-name { overflow-wrap: anywhere; }
.queue-check:has(input:disabled):not(.selected) { color: #536f8b; cursor: default; }
.queue-positions { display: grid; grid-template-rows: repeat(5, auto); grid-auto-flow: column; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; }
.queue-positions.queue-short { grid-template-rows: none; grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); }
.schedule-toolbar,.schedule-tools,.schedule-period-control { display:flex; align-items:center; gap:12px; }
.schedule-toolbar { flex-wrap:wrap; justify-content:space-between; margin-bottom:20px; }
.schedule-period-control h2 { font-size:17px; }
.schedule-period-control .icon-button { font-size:25px; }
.schedule-tools { flex-wrap:wrap; }
.schedule-date-label { display:flex; align-items:center; gap:8px; color:var(--text-secondary); font-size:12px; }
.schedule-date-label input { font-size:13px; padding:7px; }
.schedule-mode { display:flex; padding:4px; background:#e5effa; border:1px solid var(--line); border-radius:8px; }
.schedule-mode button { border:0; padding:9px 13px; border-radius:5px; font-size:13px; font-weight:650; background:transparent; color:#405e7d; }
.schedule-mode button[aria-pressed="true"] { background:white; color:#105497; box-shadow:0 1px 4px #17324f14; }
.schedule-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; margin-bottom:22px; }
.schedule-week-rule { display:flex; align-items:flex-start; gap:10px; padding:14px 16px; margin-bottom:18px; border:1px solid #bcd8ef; border-radius:12px; background:#edf6ff; color:#244b70; font-size:13px; line-height:1.65; }
.schedule-week-rule svg { width:20px; height:20px; flex-shrink:0; margin-top:1px; }
.schedule-week-warnings { padding:18px; margin-bottom:20px; border-color:#e9b674; background:#fffaf2; }
.schedule-week-warnings h2 { margin:0 0 9px; color:#75400c; font-size:18px; }
.schedule-week-warnings p { font-size:13px; line-height:1.6; }
.schedule-week-warnings ul { list-style:none; padding:0; margin:12px 0 0; }
.schedule-week-warnings li { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-top:1px solid #edd6b5; }
.schedule-week-warnings li>div { min-width:0; }
.schedule-week-warnings li strong,.schedule-week-warnings li span { display:block; overflow-wrap:anywhere; }
.schedule-week-warnings li span { font-size:12px; margin-top:5px; color:#75572f; }
.schedule-week-dates { display:flex; flex-wrap:wrap; gap:8px; }
.schedule-week-dates button { white-space:normal; }
.schedule-limit-badge { display:block; font-size:10px; color:#9b3c15; line-height:1.5; }
.schedule-cell.schedule-limit-cell,.schedule-mobile-person.schedule-limit-cell { outline:2px solid #c66b2b; outline-offset:-2px; }
.schedule-summary>div { display:flex; align-items:center; gap:14px; border:1px solid var(--line); border-radius:10px; padding:19px; background:white; }
.schedule-summary strong { font-size:28px; color:var(--accent-dark); }
.schedule-summary span { color:#405e7d; font-size:13px; font-weight:600; line-height:1.5; }
.schedule-table-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px; border-bottom:1px solid var(--line); }
.schedule-table-heading p { font-size:12px; color:#405e7d; }
.schedule-scroll { max-height:70vh; }
.schedule-table { border-spacing:0; width:100%; font-size:13px; text-align:center; }
.schedule-table th,.schedule-table td { border-right:1px solid #e0eaf5; border-bottom:1px solid #e0eaf5; }
.schedule-table thead th { position:sticky; top:0; z-index:2; background:#f6faff; padding:13px 5px; min-width:88px; height:80px; }
.schedule-table thead th:first-child { z-index:4; }
.schedule-weekday { text-transform:capitalize; display:block; color:#405e7d; font-size:12px; margin-bottom:4px; }
.schedule-table thead b { font-size:13px; white-space:nowrap; }
.schedule-table thead small { display:block; color:#105497; margin-top:4px; font-size:10px; }
.schedule-table th:first-child { position:sticky; left:0; min-width:190px; width:190px; max-width:240px; padding:17px; text-align:left; background:white; z-index:1; box-shadow:2px 0 4px #17324f06; }
.schedule-table thead th:first-child,.schedule-table tfoot th { background:#f6faff; }
.schedule-table tbody th strong { display:block; font-weight:650; line-height:1.45; overflow-wrap:anywhere; }
.schedule-table tbody th small { display:block; font-size:11px; font-weight:400; color:#536f8b; margin-top:4px; }
.schedule-table td { padding:5px; height:85px; background:white; }
.schedule-table .schedule-weekend { background:#f0f6fd; }
.schedule-table .schedule-current { background:#e8f3ff; }
.schedule-table thead .schedule-current { box-shadow:inset 0 -3px 0 #176cc0; }
.schedule-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; width:100%; min-width:72px; min-height:70px; padding:7px 4px; border:1px dashed #c6d9eb; border-radius:7px; background:#ffffff8c; color:#486580; }
.schedule-cell:hover:not(:disabled) { border-color:var(--accent); background:#f2f8ff; }
.schedule-cell.shift { background:#e5f2ff; border:1px solid #b6d6f4; color:#105497; }
.schedule-cell.start-eight { background:#e3f3e7; border-color:#9ac5a7; color:#205c35; }
.schedule-cell.start-eight:hover:not(:disabled) { background:#d4ecd9; border-color:#4b9660; }
.schedule-cell.start-ten { background:#fff3c7; border-color:#d5bd65; color:#70520b; }
.schedule-cell.start-ten:hover:not(:disabled) { background:#ffebaa; border-color:#b49631; }
.schedule-cell.shift svg { width:14px; height:14px; }
.schedule-cell strong { font-size:12px; white-space:nowrap; }
.schedule-cell small { font-size:10px; line-height:1.25; }
.schedule-cell.off { border:1px solid #d6e1ed; background:#f1f4f8; font-size:11px; color:#4a6178; }
.schedule-cell-add { font-size:23px; font-weight:400; color:#6383a3; }
.schedule-table .schedule-total,.schedule-table thead th:last-child { min-width:58px; font-weight:700; color:#105497; }
.schedule-table tfoot th,.schedule-table tfoot td { height:46px; padding:12px 8px; font-weight:700; color:#345778; }
.schedule-month { width:max-content; min-width:100%; }
.schedule-month thead th { min-width:80px; }
.schedule-month .schedule-cell { min-width:66px; }
.schedule-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px 23px; margin-top:17px; color:#405e7d; font-size:12px; }
.schedule-legend span { display:flex; align-items:center; gap:7px; }
.schedule-legend i { width:13px; height:13px; border-radius:3px; border:1px solid #b6d6f4; }
.schedule-legend-eight { background:#e3f3e7; }
.schedule-legend-ten { background:#fff3c7; }
.schedule-legend-off { background:#f1f4f8; }
.schedule-editor-name { font-size:18px; font-weight:700; margin-top:19px; }
.schedule-editor-date { margin:7px 0 21px; }
.schedule-editor-date::first-letter { text-transform:uppercase; }
.temporary-notice { padding:12px 24px; background:#fff4d7; border-bottom:1px solid #e3ce9c; color:#664d12; font-size:13px; line-height:1.5; }
#schedule-status { width:100%; }
#schedule-start-field { margin-top:20px; }
#schedule-start-time { width:100%; }
#schedule-end-field { margin-top:20px; }
#schedule-end-time { width:100%; }
.schedule-editor-hint { font-size:12px; line-height:1.6; color:#405e7d; margin-top:10px; }
.schedule-table .schedule-mine { color:#105fa7; font-weight:700; }
.notification-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.notification-summary { color: var(--muted); margin: 0 0 20px; }
.notification-list { display: grid; gap: 16px; margin-bottom: 20px; }
.notification-card { padding: 24px; border-left: 4px solid #d6e3ef; }
.notification-card.notification-unread { border-left-color: #176cc0; background: #f6fbff; }
.notification-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.notification-heading h2 { font-size: 17px; margin: 0 0 8px; }
.notification-heading p { margin: 0; color: var(--muted); }
.notification-date { font-weight: 700; margin: 18px 0 12px; }
.notification-comparison { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; }
.notification-comparison > div { padding: 14px 16px; background: #edf3f8; border-radius: 10px; }
.notification-comparison > div:last-child { background: #e3f1ff; }
.notification-comparison small, .notification-comparison strong { display: block; }
.notification-comparison small { color: var(--muted); margin-bottom: 6px; }
.notification-meta { display: flex; gap: 12px 24px; justify-content: space-between; flex-wrap: wrap; color: var(--muted); font-size: 12px; margin-top: 18px; }
.notification-conflict { color: #a13e13; font-weight: 700; }
.notification-message { margin: 12px 0 0; font-size: 13px; }
.notification-count, .notification-new { background: #176cc0; color: white; }
.notification-count { margin-left: auto; border-radius: 12px; min-width: 24px; padding: 2px 7px; text-align: center; font-size: 12px; font-weight: 700; }
@media (max-width: 640px) { .notification-comparison { grid-template-columns: 1fr; gap: 8px; } .notification-comparison > span { display: none; } .notification-card { padding: 18px; } }
.schedule-daily { margin-top:32px; }
.read-only .schedule-cell:disabled,.read-only .schedule-day-person:disabled { opacity:1; cursor:default; }
.read-only .schedule-cell:hover,.read-only .schedule-day-person:hover { filter:none; }
.viewer-update { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:14px 28px; border-bottom:1px solid var(--line); background:#edf6ff; color:#405e7d; font-size:12px; line-height:1.6; }
.viewer-queue-stats { margin-top:24px; }
#viewer-update[hidden],.chat-panel [hidden] { display:none!important; }
.chat-panel { max-width:1060px; overflow:hidden; }
.chat-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:15px 22px; border-bottom:1px solid var(--line); background:#f8fbff; }
.chat-toolbar>div { display:flex; align-items:center; gap:9px; font-size:12px; color:#405e7d; }
#chat-status[data-failed="true"] { color:#a34228; }
.chat-log { height:clamp(180px,calc(100dvh - 480px),580px); overflow-y:auto; overscroll-behavior:contain; padding:12px 24px 24px; background:linear-gradient(180deg,#f7fbff,#f2f7fd); }
.chat-history { text-align:center; }
.chat-history button { margin:7px 0; }
.chat-messages { list-style:none; padding:0; margin:0; }
.chat-day { display:flex; justify-content:center; margin:20px 0; }
.chat-day span { background:#e7f1fb; border:1px solid #d1e2f3; border-radius:20px; padding:6px 13px; font-size:11px; color:#405e7d; }
.chat-message { display:flex; gap:10px; align-items:flex-end; max-width:88%; margin:12px 0; }
.chat-topics { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.chat-topic { display:flex; align-items:center; gap:10px; padding:10px 16px; border:1px solid #cdddeb; border-radius:9px; background:white; color:#233c50; font:inherit; font-weight:600; cursor:pointer; }
.chat-topic.active { background:#e2f0ff; color:#105fa7; border-color:#74afe4; }
.chat-head-actions { display:flex; gap:10px; flex-wrap:wrap; }
.chat-topic.archived { border-style:dashed; color:#61788c; background:#f1f5f8; }
.chat-topic.archived.active { border-color:#176cc0; color:#26465f; }
.chat-topic small { font-size:10px; padding:3px 6px; border-radius:5px; background:#dde6ee; }
.chat-toolbar { flex-wrap:wrap; gap:12px; }
.chat-toolbar-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.chat-toolbar small { display:block; margin-top:5px; color:#61788c; font-size:12px; }
.chat-message-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }
.chat-message-actions .text-button { font-size:11px; padding:2px 0; }
.chat-edited { display:block; margin-top:5px; color:#61788c; font-size:11px; }
.chat-bubble em { color:#61788c; }
.chat-version { padding:16px 0; border-bottom:1px solid #dce7f0; }
.chat-version small { display:block; color:#61788c; margin-top:6px; }
.chat-version p { white-space:pre-wrap; overflow-wrap:anywhere; margin:12px 0 0; }
#chat-dialog { width:min(600px,calc(100vw - 32px)); max-height:85vh; }
#chat-dialog textarea { width:100%; padding:12px; border:1px solid #cdddeb; border-radius:8px; font:inherit; resize:vertical; }
.chat-avatar { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; border-radius:11px; border:1px solid #cbdff2; background:#fff; color:#1761a6; font-size:11px; font-weight:700; }
.chat-bubble { min-width:0; border:1px solid #d3e2f1; border-radius:13px 13px 13px 3px; padding:12px 15px; background:white; box-shadow:0 2px 5px #17324f05; }
.chat-bubble header { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:6px; }
.chat-bubble strong { font-size:12px; font-weight:700; color:#224a72; overflow-wrap:anywhere; }
.chat-bubble time { margin-left:auto; font-size:10px; color:#4b6480; white-space:nowrap; }
.chat-bubble p { margin:0; color:#17324f; font-size:14px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }
.chat-own { flex-direction:row-reverse; margin-left:auto; }
.chat-own .chat-bubble { background:#e3f1ff; border-color:#bed8f2; border-radius:13px 13px 3px 13px; }
.chat-own .chat-avatar { background:#176cc0; border-color:#176cc0; color:white; }
.chat-you { color:#2268aa; font-size:10px; }
.chat-empty { padding:65px 15px; margin:0; text-align:center; color:#4b6480; font-size:14px; line-height:1.6; }
.chat-new-wrap { position:relative; text-align:center; height:0; z-index:1; }
.chat-new { position:absolute; transform:translate(-50%,-115%); left:50%; min-width:185px; font-size:12px; box-shadow:0 3px 15px #17324f1a; }
.chat-compose { padding:19px 22px 16px; background:white; border-top:1px solid var(--line); }
.chat-compose .field-label { display:block; margin-bottom:9px; font-size:12px; font-weight:650; }
.chat-compose textarea { width:100%; min-height:82px; max-height:200px; resize:vertical; padding:12px 14px; border:1px solid #bfd4e9; border-radius:9px; background:#f9fcff; line-height:1.55; font-size:14px; }
.chat-compose textarea:focus { outline:2px solid #8bbcf0; outline-offset:1px; border-color:#176cc0; background:white; }
.chat-compose-bottom { display:flex; align-items:center; gap:14px; margin-top:11px; }
#chat-hint,.chat-count { font-size:11px; color:#536d87; }
.chat-count { margin-left:auto; white-space:nowrap; }
.chat-compose .form-error { font-size:12px; color:#a63625; margin:9px 0 0; line-height:1.5; }
.chat-compose .form-error:empty { display:none; }
.chat-timezone { max-width:1060px; margin-top:12px; font-size:11px; color:#536d87; text-align:right; }
.chat-panel .sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:760px) {
  .chat-log { padding:10px 12px 20px; height:clamp(200px,calc(100dvh - 490px),420px); }
  .chat-message { max-width:96%; gap:7px; }
  .chat-avatar { width:27px; height:27px; border-radius:8px; font-size:9px; }
  .chat-bubble { padding:10px 12px; }
  .chat-toolbar,.chat-compose { padding:14px; }
  #chat-hint { display:none; }
  .chat-compose-bottom { gap:10px; }
  .chat-count { margin-left:0; margin-right:auto; }
  .chat-access { display:none; }
}
.schedule-daily-heading { margin-bottom:18px; }
.schedule-daily-heading h2 { font-size:20px; margin-bottom:7px; }
.schedule-daily-heading p { font-size:13px; line-height:1.6; color:#405e7d; }
.schedule-day-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px; }
.schedule-day-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px; border-bottom:1px solid var(--line); background:#f8fbff; }
.schedule-day-heading h3 { font-size:16px; text-transform:capitalize; }
.schedule-day-heading p { margin-top:5px; color:#405e7d; font-size:12px; }
.schedule-day-today { border-color:#91bce5; }
.schedule-day-today .schedule-day-heading { background:#e8f3ff; }
.schedule-day-people { list-style:none; padding:8px 14px; margin:0; }
.schedule-day-people li+li { border-top:1px solid #e4edf6; }
.schedule-day-person { display:flex; align-items:center; justify-content:space-between; gap:15px; text-align:left; border:0; background:white; width:100%; padding:13px 5px; border-radius:5px; }
.schedule-day-person:hover { background:#f4f9ff; }
.schedule-day-name { min-width:0; }
.schedule-day-name strong { font-size:14px; line-height:1.45; overflow-wrap:anywhere; font-weight:650; }
.schedule-day-name small,.schedule-day-hours small { display:block; color:#405e7d; font-size:11px; margin-top:4px; }
.schedule-day-hours { text-align:right; flex-shrink:0; }
.schedule-day-hours b { display:inline-block; padding:6px 8px; border-radius:5px; border:1px solid; font-size:12px; white-space:nowrap; }
.schedule-day-person.start-eight .schedule-day-hours b { background:#e3f3e7; border-color:#9ac5a7; color:#205c35; }
.schedule-day-person.start-ten .schedule-day-hours b { background:#fff3c7; border-color:#d5bd65; color:#70520b; }
.schedule-day-empty { padding:22px 18px; color:#536f8b; font-size:13px; }
@media(max-width:900px) { .schedule-day-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:420px) { .schedule-day-heading { padding:15px; } .schedule-day-person { gap:10px; } .schedule-day-name strong { font-size:13px; } }
@media(max-width:760px) {
  .schedule-toolbar { align-items:flex-start; }
  .schedule-period-control h2 { font-size:15px; }
  .schedule-tools { gap:10px; }
  .schedule-summary { gap:8px; }
  .schedule-summary>div { flex-direction:column; align-items:flex-start; padding:13px; gap:5px; }
  .schedule-summary strong { font-size:24px; }
  .schedule-summary span { font-size:11px; }
  .schedule-table-heading { align-items:flex-start; flex-direction:column; }
  .schedule-table th:first-child { min-width:145px; width:145px; padding:12px; }
  .schedule-table thead th { min-width:85px; }
}
.queue-position { display: flex; align-items: center; gap: 11px; padding: 12px; min-height: 60px; background: #f8fbff; border: 1px solid #dce9f6; border-radius: 7px; }
.queue-position b { display: grid; place-items: center; width: 31px; height: 31px; flex-shrink: 0; border: 1px solid #c3dcf4; border-radius: 7px; background: #e8f3ff; color: #105497; font-size: 15px; }
.queue-position strong { font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.queue-timestamp { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: #405e7d; margin: 0 0 20px; }
.queue-empty { padding: 65px 25px; text-align: center; color: #405e7d; }
.queue-empty>svg { width: 40px; height: 40px; color: var(--accent); margin-bottom: 13px; }
.queue-empty h3 { margin: 0 0 12px; font-size: 19px; }
.queue-empty p { font-size: 14px; line-height: 1.7; }
.queue-number-preview { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 28px; }
.queue-number-preview span { border-radius: 6px; background: #e8f3ff; border: 1px solid #c7def4; padding: 7px 9px; color: #105497; font-weight: 700; }
.queue-journal-actions { display: flex; margin-top: 18px; }
.queue-stats { min-width: 920px; }
.queue-stats th:first-child,.queue-stats td:first-child { min-width: 190px; }
.queue-stats th,.queue-stats td { padding-left: 12px; padding-right: 12px; }
.queue-footnote { color: #405e7d; font-size: 13px; line-height: 1.7; margin-top: 18px; }
@media (max-width: 760px) {
  nav { overflow-x: auto; justify-content: flex-start; }
  nav a { flex-shrink: 0; white-space: nowrap; }
  .breadcrumb { min-width: 0; }
  .queue-tabs { overflow-x: auto; width: 100%; }
  .queue-tabs button { padding: 10px 12px; }
  .queue-layout .panel-heading { padding: 17px; }
  .queue-timestamp { line-height: 1.6; }
  .queue-position { padding: 10px; gap: 8px; }
  .queue-position strong { font-size: 13px; }
  .queue-layout .result-actions { flex-wrap: wrap; }
}
@media (max-width: 420px) {
  .queue-positions { grid-template-rows: none; grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); }
  .queue-position { min-height: 48px; }
  .queue-tabs button { font-size: 12px; padding: 10px; }
}
.cancelled-entry .assignment-cards { opacity: .85; }
.courier-toolbar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.section-caption:has(.courier-toolbar) { flex-wrap: wrap; }
.work-date,.work-actions,.work-add{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.work-date label,.work-controls label,.work-fields label,.work-plan,.work-add label{display:grid;gap:7px;font-weight:600}.work-date input{width:160px}.work-fields{display:grid;grid-template-columns:2fr 2fr 1fr;gap:16px}.work-setup{padding:24px}.work-setup>p{color:var(--muted);margin-bottom:24px}.work-roster-select{border:1px solid var(--line);border-radius:10px;padding:16px;margin:20px 0;display:flex;gap:14px 24px;flex-wrap:wrap}.work-roster-select legend{font-weight:700;padding:0 7px}.work-setup .table-scroll{margin-bottom:20px}.work-summary{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 20px;padding:16px 20px;background:#e8f3ff;border:1px solid #c3def6;border-radius:12px}.work-summary b{margin-left:6px;color:#15528d}.work-controls{padding:22px;display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:26px}.work-controls h2{margin:0 0 12px}.work-personal{display:grid;gap:12px;max-width:650px}.work-personal small{color:#536d85}.work-directions{margin:24px 0}.work-section-title h2{margin-bottom:6px}.work-section-title p{color:#536d85}.work-plan{max-width:220px;margin:16px 0}.work-route-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.work-route{padding:18px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}.work-route h3,.work-route p{margin:0}.work-route .button{margin-top:auto;width:100%;padding:10px 6px}.work-route.available{border-color:#93c5ea;background:#f7fbff}.work-route.occupied{background:#edf2f6}.work-route p{font-size:12px;color:#465c70}.work-live-list{padding:0 20px}.work-live-row{display:grid;grid-template-columns:40px 1.1fr 1fr 1fr;gap:16px;align-items:center;padding:18px 0;border-top:1px solid #dce7f0}.work-live-row:first-child{border-top:0}.work-live-row small,.roster-table td>small{display:block;margin-top:5px;color:#536d85}.work-order{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#e3efff;color:#145b9d}.work-live-row.ready .work-order{background:#ddf5e9;color:#136c43}.work-late{color:#b45713!important}.work-notice{padding:16px;background:#fff7e7;border-radius:10px;margin-bottom:18px}.work-add{padding:20px;border-top:1px solid #dce7f0}.work-journal{padding:20px;margin-top:22px}.work-journal summary{cursor:pointer;font-weight:700}.work-journal .table-scroll{margin-top:20px}.work-journal p{font-size:12px;color:#536d85}.work-live-list+.work-add{margin-top:12px}
@media(max-width:1200px){.work-route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.work-fields{grid-template-columns:1fr 1fr}.work-controls{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.work-route-grid{grid-template-columns:1fr 1fr}.work-fields{grid-template-columns:1fr}.work-live-row{grid-template-columns:32px 1fr;gap:10px}.work-live-row>div:nth-child(n+3){grid-column:2}.work-controls,.work-setup{padding:16px}.work-date{width:100%}.work-date label{width:100%}}
#work-direction-dialog{width:560px;max-height:90vh;overflow-y:auto}#work-direction-dialog .modal-content{padding:0}#work-direction-dialog .modal-heading{align-items:flex-start;margin-bottom:14px}#work-direction-dialog h2{margin:0}#work-direction-dialog .modal-heading p{margin:8px 0 0;color:var(--muted)}.work-picker-options{display:grid;gap:12px;margin:20px 0}.work-picker-option{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;padding:18px;width:100%;border:1px solid #9ec5e8;border-radius:12px;background:#f3f9ff;color:var(--ink);cursor:pointer;font:inherit}.work-picker-option:hover:enabled{background:#e4f1ff;border-color:var(--accent)}.work-picker-option:focus-visible{outline:3px solid #7ab5e5;outline-offset:2px}.work-picker-option:disabled{opacity:.6;cursor:default}.work-picker-option strong{display:block;font-size:17px}.work-picker-option small{display:block;margin-top:8px;color:var(--muted)}.work-picker-take{font-weight:700;color:var(--accent);white-space:nowrap}.work-picker-footer{display:flex;gap:15px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px}.work-picker-footer small{color:var(--muted);max-width:270px}@media(max-width:500px){.work-picker-footer{align-items:stretch;flex-direction:column}.work-picker-option{padding:14px}#work-direction-dialog{padding:18px}}
.work-sound-bar{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.work-sound-bar small{display:block;color:var(--muted);margin-top:6px}@media(max-width:800px){.work-sound-bar{align-items:flex-start;flex-direction:column}}

.work-move { padding:20px; margin:0 0 24px; border-color:#b8d3ec; }
.work-move h2 { margin:0 0 10px; font-size:18px; }
.work-move form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px; margin-top:14px; }
.work-move form .work-move-field { display:flex; flex:1 1 220px; flex-direction:column; gap:7px; min-width:0; }
.work-move form label small { color:#536d85; font-weight:400; }
.work-move form input,.work-move form select { width:100%; min-width:0; }
.work-move-hint { font-size:12px; line-height:1.6; color:#536d85; margin:14px 0 0; }
@media(max-width:650px) { .work-move { padding:16px; } .work-move form .work-move-field,.work-move form button { flex-basis:100%; width:100%; } }


.schedule-history { margin-top:24px; padding:24px; }
.schedule-history-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.schedule-history-heading h2 { font-size:18px; margin:0 0 8px; }
.schedule-history-heading p,.schedule-history-date,.schedule-history-state { font-size:13px; line-height:1.6; color:var(--muted); }
.schedule-history-list { display:grid; gap:14px; list-style:none; padding:0; margin:0 0 16px; }
.schedule-history-entry { border:1px solid var(--line); border-radius:14px; padding:16px; min-width:0; overflow-wrap:anywhere; }
.schedule-history-meta { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 16px; font-size:13px; }
.schedule-history-meta>span { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.schedule-history-meta time { color:var(--muted); font-size:12px; }
.schedule-history-entry h3 { margin:16px 0 4px; font-size:16px; }
.schedule-history-date { margin:0 0 12px; }
.schedule-history-change { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.schedule-history-change>div { display:grid; align-content:start; gap:6px; padding:12px; border-radius:10px; background:#f2f5f9; }
.schedule-history-change>div+div { background:#eaf6ef; }
.schedule-history-change small { color:var(--muted); font-size:12px; }
.schedule-history-change strong { font-size:14px; }
.schedule-history-state { margin:12px 0 0; }
.schedule-history-state.form-error { color:#b42318; }
@media(max-width:650px) { .schedule-history { padding:18px 14px; } .schedule-history-change>div { padding:10px; } }


.schedule-export { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px 16px; padding:18px; margin:0 0 20px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.schedule-export .field-label { display:grid; gap:8px; margin:0; }
.schedule-export input { width:210px; max-width:100%; min-height:44px; }
.schedule-export p { flex-basis:100%; margin:0; font-size:12px; color:var(--muted); line-height:1.6; }
.work-location-hint { display:block; margin-top:10px; }
.work-location-content { width:min(100%,500px); line-height:1.65; }
.work-location-actions { display:grid; gap:10px; margin-top:22px; }
.work-location-actions .button { width:100%; white-space:normal; }
.work-location-details { display:grid; gap:6px; margin-top:10px; overflow-wrap:anywhere; }
.work-location-details small { display:block; color:var(--muted); font-size:12px; }
.work-location-details a { color:var(--primary); font-weight:600; }
.courier-map-summary { margin:0 0 12px; color:var(--muted); line-height:1.7; }
.security-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:18px; margin-bottom:18px; align-items:end; }
.security-filters label { display:grid; gap:8px; min-width:0; font-weight:600; font-size:13px; }
.security-filters input,.security-filters select { width:100%; min-width:0; min-height:44px; }
.security-summary { color:var(--muted); margin:12px 0 18px; line-height:1.6; }
.security-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.security-event { padding:20px; min-width:0; display:grid; gap:12px; align-content:start; overflow-wrap:anywhere; }
.security-event-head { display:flex; gap:10px; justify-content:space-between; align-items:center; flex-wrap:wrap; font-size:12px; }
.security-event h2 { font-size:17px; }.security-event p { font-size:14px; line-height:1.6; }
.security-outcome { border-radius:7px; padding:5px 9px; background:#eef3f8; font-weight:700; }
.security-outcome.success { background:#e4f6eb; color:#176039; }.security-outcome.denied,.security-outcome.failure { background:#fce9e9; color:#9c3030; }.security-outcome.started { background:#fff1cd; color:#755400; }
.security-event details { font-size:13px; color:var(--muted); }.security-event summary { cursor:pointer; min-height:30px; padding-top:7px; }
.security-event dl { margin:10px 0 0; display:grid; gap:10px; }.security-event dl div { display:grid; gap:4px; }.security-event dt { font-weight:600; }.security-event dd { margin:0; }
.security-note { color:var(--muted); font-size:12px; line-height:1.8; margin-top:18px; }
@media(max-width:900px) { .security-list { grid-template-columns:minmax(0,1fr); } }
@media(max-width:600px) { .security-filters { grid-template-columns:minmax(0,1fr); padding:14px; } .security-event { padding:16px; } }
.courier-map-filters { display:flex; align-items:end; flex-wrap:wrap; gap:14px; padding:18px; margin-bottom:18px; }
.courier-map-filters .field-label { display:grid; gap:8px; min-width:0; margin:0; flex:1 1 210px; }
.courier-map-filters input,.courier-map-filters select { width:100%; min-width:0; min-height:44px; }
.courier-map-filters .courier-map-note { flex-basis:100%; margin:0; }
.courier-map-toolbar h2 { overflow-wrap:anywhere; }
.courier-map-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr); gap:20px; align-items:start; }
.courier-map-panel { padding:18px; min-width:0; }
.courier-map-toolbar { display:flex; gap:12px; align-items:center; justify-content:space-between; margin-bottom:16px; }
.courier-map-toolbar h2 { margin:0; font-size:18px; }
.courier-map-canvas { height:560px; width:100%; min-width:0; border:1px solid var(--line); border-radius:14px; overflow:hidden; isolation:isolate; background:#edf5fd; }
.courier-map-placeholder { display:flex; flex-direction:column; justify-content:center; align-items:center; padding:28px; text-align:center; height:100%; box-sizing:border-box; gap:14px; line-height:1.7; }
.courier-map-placeholder p { max-width:420px; margin:0; color:var(--muted); }
.courier-map-placeholder small,.courier-map-note { color:var(--muted); font-size:12px; line-height:1.7; }
.courier-map-note { margin:12px 0 0; }
.courier-map-list-panel { padding:18px; min-width:0; }
.courier-map-list-panel .field-label { display:grid; gap:8px; margin:0; }
.courier-map-list-panel input { width:100%; min-height:44px; }
.courier-map-list { margin-top:16px; display:grid; gap:10px; max-height:580px; overflow:auto; }
.courier-map-person { display:flex; align-items:start; gap:12px; width:100%; border:1px solid var(--line); border-radius:12px; padding:14px; text-align:left; background:#fff; color:var(--ink); font:inherit; cursor:pointer; }
.courier-map-person:hover,.courier-map-person.selected { border-color:#176cc0; background:#edf5ff; }
.courier-map-person:focus-visible { outline:3px solid #71b1ee; outline-offset:2px; }
.courier-map-person>span:last-child { min-width:0; display:grid; gap:7px; overflow-wrap:anywhere; font-size:13px; }
.courier-map-person strong { font-size:15px; }.courier-map-person small { color:var(--muted); font-size:12px; line-height:1.5; }
.courier-map-number { flex-shrink:0; width:28px; height:28px; display:grid; place-items:center; background:#e4efff; border-radius:50%; color:#12599d; font-weight:700; }
.courier-map-old { font-style:normal; color:#8b5700; font-weight:600; }
.courier-map-pin { display:grid!important; place-items:center; border-radius:50%; background:#176cc0; color:#fff; border:3px solid #fff; box-shadow:0 2px 8px #15395d66; font-size:14px; font-weight:700; box-sizing:border-box; }
.courier-map-pin.grouped { background:#6744ac; }.courier-map-pin:focus-visible { outline:3px solid #172f4d; outline-offset:2px; }
.courier-map-pin.join,.courier-map-pin.join.grouped { background:#176cc0; }
.courier-map-pin.free,.courier-map-pin.free.grouped { background:#7c3ab7;border-radius:8px; }
.courier-map-pin.mixed { background:linear-gradient(135deg,#176cc0 0 50%,#7c3ab7 50% 100%); }
.courier-map-legend { display:flex;flex-wrap:wrap;gap:12px 22px;margin:16px 0 22px;font-size:13px;color:#365674; }
.courier-map-legend>span { display:flex;align-items:center;gap:8px; }
.courier-map-legend i { display:inline-block;flex:none;width:16px;height:16px;border-radius:50%;background:#176cc0; }
.courier-map-legend i.free { border-radius:4px;background:#7c3ab7; }.courier-map-legend i.mixed { background:linear-gradient(135deg,#176cc0 0 50%,#7c3ab7 50% 100%); }
.courier-map-number.free { background:#f1e8fa;color:#69319c;border-radius:7px; }
.courier-map-kind { justify-self:start;padding:3px 8px;border-radius:6px;background:#e9f2ff;color:#12599d;font-size:12px;font-weight:700; }
.courier-map-kind.free { background:#f1e8fa;color:#69319c; }
.courier-map-popup { font:13px/1.6 Arial,sans-serif; color:#17324d; }.courier-map-popup section+section { border-top:1px solid #d5e4f4; padding-top:10px; margin-top:10px; }
.courier-map-popup strong { display:block; font-size:15px; }.courier-map-popup p { margin:6px 0!important; }
.courier-map-canvas .leaflet-popup-content { max-width:calc(100vw - 145px); overflow-wrap:anywhere; }
.courier-map-canvas:has(.leaflet-popup) .leaflet-control-zoom { visibility:hidden; }
.courier-map-canvas .leaflet-control-attribution { font-size:11px; }.courier-map-canvas .leaflet-control-zoom a { width:38px; height:38px; line-height:38px; }
@media(max-width:1100px) { .courier-map-layout { grid-template-columns:minmax(0,1fr); } .courier-map-list { max-height:none; grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .courier-map-panel,.courier-map-list-panel { padding:14px; } .courier-map-canvas { height:400px; } .courier-map-list { grid-template-columns:minmax(0,1fr); } .courier-map-toolbar { align-items:stretch; flex-direction:column; } .courier-map-placeholder { padding:20px; } .courier-map-placeholder .button { white-space:normal; width:100%; } }
@media(max-width:600px) { .courier-map-filters { padding:14px; gap:12px; } .courier-map-filters .field-label { flex-basis:100%; } .courier-map-filters .button { width:100%; } }
@media(max-width:650px) { .schedule-export { padding:16px; } .schedule-export .field-label,.schedule-export .button { width:100%; } .schedule-export input { width:100%; } }
