*,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    :root {
      --bg: #07091e;
      --card: rgba(255, 255, 255, 0.045);
      --card-h: rgba(255, 255, 255, 0.075);
      --border: rgba(255, 255, 255, 0.085);
      --border-h: rgba(124, 110, 241, 0.45);
      --primary: #7c6ef1;
      --primary-d: #6558d9;
      --primary-glow: rgba(124, 110, 241, 0.22);
      --success: #22d3a5;
      --success-bg: rgba(34, 211, 165, 0.12);
      --warn: #f5a623;
      --warn-bg: rgba(245, 166, 35, 0.12);
      --err: #f25555;
      --err-bg: rgba(242, 85, 85, 0.12);
      --muted: rgba(148, 163, 184, 0.1);
      --text: #e9eeff;
      --text2: #8892b3;
      --text3: #525c7a;
      --r: 14px;
      --r2: 10px;
      --r3: 7px;
      --dur: 0.2s;
    }

    body {
      font-family: 'Inter', sans-serif;
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
      background-image: radial-gradient(ellipse 60% 40% at 15% 15%, rgba(124, 110, 241, 0.07) 0%, transparent 60%),
        radial-gradient(ellipse 50% 40% at 85% 85%, rgba(34, 211, 165, 0.05) 0%, transparent 60%);
      line-height: 1.5;
    }

    ::-webkit-scrollbar {
      width: 5px
    }

    ::-webkit-scrollbar-track {
      background: transparent
    }

    ::-webkit-scrollbar-thumb {
      background: rgba(255, 255, 255, 0.1);
      border-radius: 3px
    }

    /* ── UTILS ── */
    .hidden {
      display: none !important
    }

    mark {
      background: rgba(124, 110, 241, 0.28);
      color: inherit;
      border-radius: 2px;
      padding: 0 1px
    }

    /* ── LOGIN ── */
    #login {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      padding: 20px
    }

    .login-card {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid var(--border);
      border-radius: 24px;
      padding: 52px 44px;
      width: 100%;
      max-width: 420px;
      backdrop-filter: blur(24px);
      box-shadow: 0 40px 80px rgba(0, 0, 0, 0.55);
      text-align: center;
      animation: fadeUp 0.4s ease;
    }

    .login-logo {
      font-size: 52px;
      margin-bottom: 14px;
      display: block
    }

    .login-title {
      font-size: 30px;
      font-weight: 800;
      letter-spacing: -0.03em;
      margin-bottom: 6px
    }

    .login-sub {
      color: var(--text2);
      font-size: 14px;
      margin-bottom: 36px
    }

    .login-label {
      display: block;
      text-align: left;
      font-size: 11px;
      font-weight: 700;
      color: var(--text2);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-bottom: 8px
    }

    .login-input {
      width: 100%;
      padding: 14px 16px;
      background: rgba(255, 255, 255, 0.06);
      border: 1px solid var(--border);
      border-radius: var(--r2);
      color: var(--text);
      font-size: 15px;
      font-family: inherit;
      transition: border-color var(--dur), box-shadow var(--dur)
    }

    .login-input:focus {
      outline: none;
      border-color: var(--primary);
      box-shadow: 0 0 0 3px var(--primary-glow)
    }

    .login-btn {
      width: 100%;
      margin-top: 20px;
      padding: 15px;
      border: none;
      background: var(--primary);
      color: #fff;
      font-size: 15px;
      font-weight: 600;
      font-family: inherit;
      border-radius: var(--r2);
      cursor: pointer;
      transition: all var(--dur)
    }

    .login-btn:hover {
      background: var(--primary-d);
      box-shadow: 0 8px 28px var(--primary-glow);
      transform: translateY(-1px)
    }

    .login-btn:active {
      transform: none
    }

    .login-err {
      color: var(--err);
      font-size: 13px;
      margin-top: 10px
    }

    /* ── HEADER ── */
    .header {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 0 28px;
      height: 62px;
      border-bottom: 1px solid var(--border);
      background: rgba(7, 9, 30, 0.85);
      backdrop-filter: blur(20px);
      position: sticky;
      top: 0;
      z-index: 100
    }

    .logo {
      font-size: 20px;
      font-weight: 800;
      letter-spacing: -0.02em;
      display: flex;
      align-items: center;
      gap: 8px
    }

    .logo em {
      font-style: normal;
      color: var(--primary)
    }

    .sep {
      flex: 1
    }

    .hstatus {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      color: var(--text2)
    }

    .dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--success);
      box-shadow: 0 0 8px var(--success);
      flex-shrink: 0
    }

    .dot.off {
      background: var(--err);
      box-shadow: 0 0 8px var(--err)
    }

    .icon-btn {
      width: 36px;
      height: 36px;
      border: 1px solid var(--border);
      background: transparent;
      border-radius: var(--r3);
      color: var(--text2);
      cursor: pointer;
      font-size: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all var(--dur)
    }

    .icon-btn:hover {
      background: var(--card-h);
      color: var(--text);
      border-color: var(--border-h)
    }

    .btn-primary {
      display: flex;
      align-items: center;
      gap: 7px;
      padding: 9px 18px;
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: var(--r2);
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all var(--dur);
      white-space: nowrap
    }

    .btn-primary:hover {
      background: var(--primary-d);
      box-shadow: 0 6px 22px var(--primary-glow);
      transform: translateY(-1px)
    }

    .btn-primary:active {
      transform: none
    }

    /* ── MAIN ── */
    .main {
      padding: 28px 28px 60px;
      max-width: 1400px;
      margin: 0 auto;
      width: 100%
    }

    /* ── STATS ── */
    .stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
      margin-bottom: 28px
    }

    .stat {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--r);
      padding: 20px 22px;
      display: flex;
      align-items: center;
      gap: 14px;
      transition: all var(--dur)
    }

    .stat:hover {
      background: var(--card-h);
      border-color: var(--border-h);
      transform: translateY(-1px)
    }

    .stat-ico {
      font-size: 26px;
      flex-shrink: 0
    }

    .stat-val {
      font-size: 30px;
      font-weight: 800;
      line-height: 1;
      letter-spacing: -0.03em
    }

    .stat-lbl {
      font-size: 11px;
      color: var(--text2);
      margin-top: 4px;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      font-weight: 600
    }

    /* ── SECTION ── */
    .sec-hd {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 18px
    }

    .sec-title {
      font-size: 17px;
      font-weight: 700
    }

    .sec-cnt {
      background: var(--muted);
      color: var(--text2);
      font-size: 12px;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 20px
    }

    /* ── ALERTS GRID ── */
    .grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
      gap: 14px
    }

    /* ── ALERT CARD ── */
    .card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--r);
      padding: 22px;
      transition: all var(--dur);
      position: relative;
      animation: fadeUp 0.3s ease
    }

    .card:hover {
      background: var(--card-h);
      border-color: var(--border-h);
      box-shadow: 0 10px 36px rgba(0, 0, 0, 0.3)
    }

    .card-route {
      font-size: 19px;
      font-weight: 700;
      letter-spacing: -0.02em;
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      padding-right: 36px
    }

    .card-arrow {
      color: var(--text3);
      font-size: 15px;
      flex-shrink: 0
    }

    .card-date {
      color: var(--text2);
      font-size: 12px;
      margin-top: 5px;
      margin-bottom: 14px
    }

    .card-badges {
      display: flex;
      gap: 7px;
      flex-wrap: wrap;
      margin-bottom: 12px
    }

    /* ── BADGES ── */
    .badge {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 4px 11px;
      border-radius: 20px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.03em;
      white-space: nowrap
    }

    .b-active {
      background: rgba(124, 110, 241, 0.14);
      color: var(--primary)
    }

    .b-completed {
      background: var(--success-bg);
      color: var(--success)
    }

    .b-cancelled {
      background: var(--muted);
      color: var(--text2)
    }

    .b-error {
      background: var(--err-bg);
      color: var(--err)
    }

    .b-pending {
      background: var(--muted);
      color: var(--text2)
    }

    .b-not_published {
      background: var(--warn-bg);
      color: var(--warn)
    }

    .b-no_seats {
      background: var(--err-bg);
      color: var(--err)
    }

    .b-found {
      background: var(--success-bg);
      color: var(--success);
      animation: pulse 2.5s infinite;
      box-shadow: 0 0 0 0 var(--success-bg)
    }

    .b-expired {
      background: var(--muted);
      color: var(--text3)
    }

    @keyframes pulse {

      0%,
      100% {
        box-shadow: 0 0 0 0 rgba(34, 211, 165, 0.3)
      }

      50% {
        box-shadow: 0 0 0 6px transparent
      }
    }

    .card-filters {
      padding: 8px 11px;
      background: rgba(255, 255, 255, 0.025);
      border-radius: var(--r3);
      font-size: 11px;
      color: var(--text2);
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      margin-bottom: 12px
    }

    .card-meta {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 12px;
      padding-top: 12px;
      border-top: 1px solid var(--border);
      font-size: 11px;
      color: var(--text2)
    }

    .meta-item {
      display: flex;
      align-items: center;
      gap: 4px
    }

    .countdown {
      font-variant-numeric: tabular-nums;
      font-weight: 600;
      color: var(--text)
    }

    .del-btn {
      position: absolute;
      top: 14px;
      right: 14px;
      width: 30px;
      height: 30px;
      border: 1px solid var(--border);
      background: transparent;
      border-radius: var(--r3);
      color: var(--text3);
      font-size: 13px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all var(--dur);
      opacity: 0.5
    }

    .del-btn:hover {
      background: var(--err-bg);
      border-color: var(--err);
      color: var(--err);
      opacity: 1
    }

    .edit-btn {
      position: absolute;
      top: 14px;
      right: 50px;
      width: 30px;
      height: 30px;
      border: 1px solid var(--border);
      background: transparent;
      border-radius: var(--r3);
      color: var(--text3);
      font-size: 13px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all var(--dur);
      opacity: 0.5
    }

    .edit-btn:hover {
      background: rgba(124, 110, 241, 0.1);
      border-color: var(--primary);
      opacity: 1;
    }

    /* ── HISTORY SECTION ── */
    .sec-hd-row {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 18px;
      cursor: pointer;
      user-select: none
    }

    .sec-hd-row:hover .sec-title {
      color: var(--primary)
    }

    .sec-chevron {
      font-size: 12px;
      color: var(--text3);
      transition: transform 0.2s ease;
      flex-shrink: 0
    }

    .sec-chevron.open {
      transform: rotate(90deg)
    }

    .btn-clear {
      margin-left: auto;
      padding: 5px 13px;
      border: 1px solid var(--border);
      background: transparent;
      border-radius: var(--r3);
      color: var(--text3);
      font-size: 11px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all var(--dur);
      text-transform: uppercase;
      letter-spacing: 0.05em
    }

    .btn-clear:hover {
      background: var(--err-bg);
      border-color: var(--err);
      color: var(--err)
    }

    .history-section {
      margin-top: 36px
    }

    .card.card-history {
      opacity: 0.7;
      transition: opacity var(--dur), background var(--dur), border-color var(--dur), box-shadow var(--dur)
    }

    .card.card-history:hover {
      opacity: 1
    }

    /* ── EMPTY STATE ── */
    .empty {
      text-align: center;
      padding: 80px 20px;
      color: var(--text2)
    }

    .empty-ico {
      font-size: 60px;
      margin-bottom: 16px;
      display: block
    }

    .empty-title {
      font-size: 20px;
      font-weight: 700;
      color: var(--text);
      margin-bottom: 8px
    }

    .empty-sub {
      font-size: 14px;
      line-height: 1.6
    }

    .empty-sub kbd {
      background: var(--muted);
      border-radius: 5px;
      padding: 2px 8px;
      font-family: inherit;
      font-size: 12px;
      color: var(--text)
    }

    /* ── MODAL OVERLAY ── */
    .overlay {
      position: fixed;
      inset: 0;
      z-index: 200;
      background: rgba(0, 0, 0, 0.72);
      backdrop-filter: blur(10px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      animation: fadeOverlay 0.18s ease
    }

    @keyframes fadeOverlay {
      from {
        opacity: 0
      }

      to {
        opacity: 1
      }
    }

    /* ── MODAL ── */
    .modal {
      background: rgba(9, 12, 36, 0.97);
      border: 1px solid var(--border);
      border-radius: 20px;
      width: 100%;
      max-width: 660px;
      max-height: 92vh;
      overflow-y: auto;
      box-shadow: 0 40px 80px rgba(0, 0, 0, 0.65);
      animation: slideModal 0.25s cubic-bezier(0.34, 1.4, 0.64, 1)
    }

    @keyframes slideModal {
      from {
        opacity: 0;
        transform: translateY(18px) scale(0.97)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    .modal-hd {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 24px 28px 0
    }

    .modal-title {
      font-size: 19px;
      font-weight: 700
    }

    .close-btn {
      width: 30px;
      height: 30px;
      border: 1px solid var(--border);
      background: transparent;
      border-radius: 7px;
      cursor: pointer;
      color: var(--text2);
      font-size: 16px;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all var(--dur)
    }

    .close-btn:hover {
      background: var(--err-bg);
      color: var(--err);
      border-color: var(--err)
    }

    .modal-body {
      padding: 22px 28px 28px
    }

    /* ── FORM ── */
    .fgrid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 15px
    }

    .fg {
      display: flex;
      flex-direction: column;
      gap: 7px
    }

    .fg.full {
      grid-column: 1/-1
    }

    .flabel {
      font-size: 11px;
      font-weight: 700;
      color: var(--text2);
      text-transform: uppercase;
      letter-spacing: 0.07em
    }

    .finput {
      padding: 11px 13px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid var(--border);
      border-radius: var(--r2);
      color: var(--text);
      font-size: 14px;
      font-family: inherit;
      transition: all var(--dur);
      width: 100%
    }

    .finput:focus {
      outline: none;
      border-color: var(--primary);
      box-shadow: 0 0 0 3px var(--primary-glow)
    }

    .finput::placeholder {
      color: var(--text3)
    }

    /* ── AUTOCOMPLETE ── */
    .ac-wrap {
      position: relative
    }

    .ac-list {
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      right: 0;
      background: rgba(10, 13, 40, 0.98);
      border: 1px solid var(--border);
      border-radius: var(--r2);
      max-height: 240px;
      overflow-y: auto;
      z-index: 400;
      box-shadow: 0 16px 44px rgba(0, 0, 0, 0.55);
      display: none
    }

    .ac-list.open {
      display: block
    }

    .ac-item {
      padding: 10px 14px;
      font-size: 13px;
      cursor: pointer;
      border-bottom: 1px solid rgba(255, 255, 255, 0.04);
      transition: background var(--dur)
    }

    .ac-item:last-child {
      border-bottom: none
    }

    .ac-item:hover,
    .ac-item.active {
      background: rgba(124, 110, 241, 0.16);
      color: var(--primary)
    }

    /* ── TOGGLE ── */
    .tog-row {
      display: flex;
      align-items: center;
      gap: 10px;
      cursor: pointer;
      user-select: none
    }

    .tog {
      position: relative;
      width: 38px;
      height: 21px;
      flex-shrink: 0
    }

    .tog input {
      opacity: 0;
      width: 0;
      height: 0;
      position: absolute
    }

    .tog-track {
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, 0.1);
      border-radius: 11px;
      transition: background var(--dur);
      border: 1px solid var(--border)
    }

    .tog input:checked+.tog-track {
      background: var(--primary);
      border-color: var(--primary)
    }

    .tog-thumb {
      position: absolute;
      top: 3px;
      left: 3px;
      width: 15px;
      height: 15px;
      background: white;
      border-radius: 50%;
      transition: transform var(--dur);
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3)
    }

    .tog input:checked~.tog-thumb {
      transform: translateX(17px)
    }

    .tog-lbl {
      font-size: 13px;
      color: var(--text2)
    }

    /* ── FORM DIVIDER ── */
    .fsection {
      grid-column: 1/-1;
      border-top: 1px solid var(--border);
      padding-top: 18px;
      margin-top: 2px
    }

    .fsection-title {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: var(--text3);
      margin-bottom: 14px
    }

    /* ── MODAL FOOTER ── */
    .mfooter {
      display: flex;
      gap: 10px;
      justify-content: flex-end;
      grid-column: 1/-1;
      padding-top: 6px
    }

    .btn-sec {
      padding: 10px 18px;
      border: 1px solid var(--border);
      background: transparent;
      border-radius: var(--r2);
      color: var(--text2);
      font-size: 13px;
      font-weight: 500;
      font-family: inherit;
      cursor: pointer;
      transition: all var(--dur)
    }

    .btn-sec:hover {
      background: var(--card-h);
      color: var(--text);
      border-color: var(--border-h)
    }

    .btn-sub {
      padding: 10px 22px;
      background: var(--primary);
      border: none;
      border-radius: var(--r2);
      color: #fff;
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all var(--dur);
      display: flex;
      align-items: center;
      gap: 8px
    }

    .btn-sub:hover:not(:disabled) {
      background: var(--primary-d);
      box-shadow: 0 6px 22px var(--primary-glow)
    }

    .btn-sub:disabled {
      opacity: 0.5;
      cursor: not-allowed
    }

    .spinner {
      width: 13px;
      height: 13px;
      border: 2px solid rgba(255, 255, 255, 0.25);
      border-top-color: #fff;
      border-radius: 50%;
      animation: spin 0.65s linear infinite;
      display: none
    }

    @keyframes spin {
      to {
        transform: rotate(360deg)
      }
    }

    /* ── TOAST ── */
    .toasts {
      position: fixed;
      bottom: 22px;
      right: 22px;
      z-index: 500;
      display: flex;
      flex-direction: column;
      gap: 8px
    }

    .toast {
      padding: 13px 17px;
      border-radius: var(--r2);
      font-size: 13px;
      font-weight: 500;
      display: flex;
      align-items: center;
      gap: 9px;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
      animation: fadeUp 0.28s ease;
      max-width: 320px
    }

    .toast.ok {
      background: var(--success-bg);
      border: 1px solid rgba(34, 211, 165, 0.2);
      color: var(--success)
    }

    .toast.err {
      background: var(--err-bg);
      border: 1px solid rgba(242, 85, 85, 0.2);
      color: var(--err)
    }

    .toast.info {
      background: rgba(124, 110, 241, 0.12);
      border: 1px solid rgba(124, 110, 241, 0.2);
      color: var(--primary)
    }

    /* ── PROGRESS BAR ── */
    .pbar {
      height: 2px;
      background: var(--primary);
      position: fixed;
      top: 0;
      left: 0;
      z-index: 600;
      transition: width 1.1s ease;
      width: 0;
      display: none
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(10px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    /* ── RESPONSIVE ── */
    @media(max-width:900px) {
      .header {
        padding: 0 14px
      }

      .main {
        padding: 14px 14px 50px
      }

      .stats {
        grid-template-columns: repeat(2, 1fr)
      }

      .grid {
        grid-template-columns: 1fr
      }

      .fgrid {
        grid-template-columns: 1fr
      }
    }

    @media(max-width:480px) {
      .hstatus span {
        display: none
      }

      .login-card {
        padding: 36px 24px
      }

      .stat-val {
        font-size: 24px
      }
    }