*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f3f5f8;color:#172033}.hidden{display:none!important}.topbar{height:64px;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:10}.brand{font-size:20px;font-weight:800}.role{font-size:12px;color:#cbd5e1;margin-top:3px}.container{max-width:1250px;margin:auto;padding:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:#fff;border-radius:14px;padding:15px 18px;box-shadow:0 2px 8px #0000000b}.stat span{display:block;color:#64748b;font-size:13px}.stat b{display:block;font-size:28px;margin-top:5px}.toolbar{display:flex;gap:10px;align-items:center;margin:18px 0}.tabs{display:flex;background:#e2e8f0;border-radius:10px;padding:3px}.tab{border:0;background:transparent;padding:9px 13px;border-radius:8px;cursor:pointer}.tab.active{background:#fff;font-weight:700}.search{flex:1;min-width:180px;border:1px solid #d5dbe5;border-radius:10px;padding:11px 13px;background:#fff}.primary,.secondary,.icon-btn{border:0;border-radius:10px;padding:11px 16px;cursor:pointer;font-weight:700}.primary{background:#16a34a;color:#fff}.primary:hover{filter:brightness(.95)}.secondary{background:#e2e8f0;color:#172033}.icon-btn{background:transparent;color:inherit;font-size:22px;padding:8px}.transfer-list{display:grid;gap:10px}.transfer{background:#fff;border-radius:14px;padding:15px 17px;box-shadow:0 2px 8px #0000000b;border-left:5px solid #f59e0b}.transfer.done{border-left-color:#16a34a}.transfer.cancelled{border-left-color:#ef4444}.transfer-top{display:flex;justify-content:space-between;gap:10px}.time-flight{font-size:18px;font-weight:800}.guest{font-weight:700;margin-top:5px}.route{margin-top:7px;color:#475569}.meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{background:#f1f5f9;border-radius:999px;padding:5px 9px;font-size:12px}.status{font-weight:700;padding:6px 9px;border-radius:999px;background:#fef3c7;color:#92400e;white-space:nowrap}.status.done{background:#dcfce7;color:#166534}.status.cancelled{background:#fee2e2;color:#991b1b}.actions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.actions button{border:1px solid #d9dee7;background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer}.empty{text-align:center;padding:50px;color:#64748b}.login-view{min-height:100vh;display:grid;place-items:center;background:#0f172a;padding:20px}.login-card{width:min(390px,100%);background:#fff;border-radius:20px;padding:30px;box-shadow:0 20px 50px #0005;text-align:center}.logo{font-size:42px}.login-card h1{margin:8px 0 4px}.login-card p{color:#64748b;margin-top:0}.login-card form{display:grid;gap:10px;margin-top:22px}.login-card input{padding:13px;border:1px solid #d5dbe5;border-radius:10px}.full{width:100%}.error{color:#b91c1c;font-size:13px;margin-top:8px}.modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:15px}.modal-backdrop{position:absolute;inset:0;background:#0f172acc}.modal-card{position:relative;width:min(820px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal-head h2{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#475569}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:11px;border:1px solid #d5dbe5;border-radius:9px;background:#fff;color:#172033;font:inherit}.wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:8px}.fab{display:none;position:fixed;right:18px;bottom:20px;width:56px;height:56px;border:0;border-radius:50%;background:#16a34a;color:#fff;font-size:28px;box-shadow:0 6px 20px #0003}.login-view .primary{background:#16a34a}@media(max-width:700px){.topbar{padding:0 15px}.container{padding:12px}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{display:grid;grid-template-columns:1fr}.toolbar .primary{display:none}.tabs{justify-content:space-between}.tab{flex:1}.transfer{padding:13px}.transfer-top{align-items:flex-start}.time-flight{font-size:16px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.fab{display:block}.modal{padding:0}.modal-card{height:100%;max-height:none;border-radius:0;padding:16px}.form-actions.wide{grid-column:auto}.search{width:100%}}

/* Excel import */
.import-card{width:min(1100px,100%)}
.import-help{color:#64748b;font-size:13px;margin-top:4px}
.import-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}
.import-controls input[type=file]{flex:1;min-width:240px;border:1px solid #d5dbe5;border-radius:10px;padding:10px;background:#fff}
.import-summary{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:10px;padding:10px 12px;margin:10px 0}
.import-errors{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:10px;padding:10px 12px;margin:10px 0;max-height:150px;overflow:auto;white-space:pre-line}
.import-preview-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:10px;max-height:45vh}
.import-preview{width:100%;border-collapse:collapse;font-size:13px;min-width:820px}
.import-preview th,.import-preview td{padding:9px 10px;border-bottom:1px solid #e2e8f0;text-align:left;white-space:nowrap}
.import-preview th{position:sticky;top:0;background:#f8fafc;z-index:1}
.import-preview tr.bad{background:#fff1f2}
.import-actions{margin-top:14px}
@media(max-width:700px){.import-card{height:100%;max-height:none;border-radius:0}.import-controls{display:grid}.import-controls input[type=file]{min-width:0;width:100%}}

/* Driver workflow */
.actions .status-action{font-weight:800;border-width:0;color:#fff;padding:10px 14px}
.actions .status-action.way{background:#2563eb}
.actions .status-action.picked{background:#7c3aed}
.actions .status-action.done{background:#16a34a}
@media(max-width:700px){.actions .status-action{flex:1 1 100%;font-size:16px;padding:13px 14px}.actions button{min-height:44px}}

/* Push notifications */
.top-actions{display:flex;align-items:center;gap:8px}
.notify-btn{border:0;border-radius:10px;padding:9px 12px;background:#fff;color:#0f172a;font-weight:700;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.notify-btn.enabled{background:#dcfce7;color:#166534}
.notify-btn.denied{background:#fee2e2;color:#991b1b}
@media(max-width:620px){.notify-btn{font-size:0;width:42px;height:42px;padding:0}.notify-btn::before{content:'🔔';font-size:20px}}


/* v8: PWA / calendar / reports / flight / history */
.flight-line{margin-top:8px;padding:8px 10px;border-radius:9px;background:#eff6ff;color:#1e3a8a;font-size:13px;font-weight:700}
.flight-line.delayed{background:#fff7ed;color:#9a3412}.flight-line.landed{background:#ecfdf5;color:#166534}.flight-line.cancelled{background:#fef2f2;color:#991b1b}
.payment-paid{background:#dcfce7;color:#166534}.payment-unpaid{background:#fee2e2;color:#991b1b}.payment-hotel{background:#fef3c7;color:#92400e}
.actions .status-action.accepted{background:#0f766e}.actions .wa-action{border-color:#86efac;background:#f0fdf4;color:#166534;font-weight:700}
.calendar-card{width:min(760px,100%)}.calendar-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:center;margin:12px 0}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-week span{text-align:center;color:#64748b;font-size:12px;font-weight:800;padding:6px}.calendar-day{min-height:78px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:7px;cursor:pointer;text-align:left}.calendar-day:hover{border-color:#94a3b8}.calendar-day.out{opacity:.38}.calendar-day.today-day{outline:2px solid #16a34a}.calendar-day.selected-day{background:#ecfdf5}.calendar-number{font-weight:800}.calendar-count{margin-top:7px;font-size:12px;color:#475569}.calendar-count b{display:inline-block;border-radius:999px;background:#e2e8f0;padding:2px 7px}.calendar-foot{display:flex;justify-content:flex-end;margin-top:12px}
.report-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:12px 0 16px}.report-controls label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#64748b}.report-controls input,.report-controls select{padding:10px;border:1px solid #d5dbe5;border-radius:9px;background:#fff}.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.report-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.report-stat span{display:block;font-size:12px;color:#64748b}.report-stat b{display:block;font-size:21px;margin-top:4px}.report-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}.report-table{width:100%;border-collapse:collapse}.report-table td,.report-table th{padding:8px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:13px}.report-table td:last-child,.report-table th:last-child{text-align:right}.reports-card{width:min(980px,100%)}
.history-card{width:min(720px,100%)}.history-list{display:grid;gap:9px}.history-item{border-left:4px solid #cbd5e1;background:#f8fafc;border-radius:9px;padding:10px 12px}.history-item .h-top{display:flex;justify-content:space-between;gap:8px;font-weight:800}.history-item .h-time{font-weight:400;color:#64748b;font-size:12px}.history-item .h-meta{margin-top:4px;color:#475569;font-size:13px}.history-empty{text-align:center;color:#64748b;padding:30px}
.install-banner{background:#e0f2fe;color:#075985;border:1px solid #bae6fd;border-radius:10px;padding:10px}
@media(max-width:760px){.report-summary{grid-template-columns:repeat(2,1fr)}.report-columns{grid-template-columns:1fr}.calendar-day{min-height:58px;padding:5px}.calendar-count{font-size:10px}.toolbar{grid-template-columns:1fr 1fr}.toolbar .tabs,.toolbar .search{grid-column:1/-1}.toolbar button{width:100%}.report-controls{display:grid;grid-template-columns:1fr 1fr}.report-controls button{grid-column:1/-1}.calendar-card,.reports-card,.history-card{height:100%;max-height:none;border-radius:0}}

.actions .delete-action{border-color:#fecaca;background:#fff1f2;color:#b91c1c}
.actions .delete-action:hover{background:#ffe4e6}

.notify-btn:disabled{opacity:.9;cursor:not-allowed}
/* ==========================================
   DM TRANSFER — экран входа
========================================== */

.dm-login-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dm-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.dm-input-wrap input {
  width: 100%;
  padding-left: 42px;
  padding-right: 42px;
}

.dm-input-icon {
  position: absolute;
  left: 14px;
  z-index: 2;
  font-size: 16px;
  pointer-events: none;
}

.dm-password-eye {
  position: absolute;
  right: 10px;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 17px;
}

.dm-remember {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 2px 0 4px;
  font-size: 13px;
  color: #475569;
  cursor: pointer;
  text-align: left;
}

.dm-remember input {
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
}

.dm-login-btn {
  margin-top: 2px;
  font-weight: 700;
}

.dm-login-error {
  margin-top: 10px;
}

.dm-login-error:not(:empty) {
  padding: 10px 12px;
  border-radius: 10px;
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
  font-size: 13px;
}

.dm-login-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 8px;
  color: #64748b;
  font-size: 12px;
  text-align: center;
}

.dm-login-divider::before,
.dm-login-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #dbe3ee;
}

.dm-login-divider span {
  flex-shrink: 0;
}

.dm-hotels {
  text-align: center;
  color: #64748b;
  font-size: 11px;
  line-height: 1.5;
}

@media (max-width: 480px) {
  .dm-login-divider span {
    font-size: 11px;
  }

  .dm-hotels {
    font-size: 10px;
  }
}
/* DM TRANSFER — карточка входа чуть шире */
.login-card {
  width: min(420px, 100%);
}
.login-card form {
  margin-top: 10px;
}
.login-brand {
  margin-bottom: -15px;
}