:root {
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: #222;
      background: #f8fafc;
      line-height: 1.5;
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
    }

    .app-shell {
      width: min(1200px, 100%);
      max-height: calc(100vh - 48px);
      display: grid;
      grid-template-columns: 1.2fr 0.9fr;
      gap: 32px;
      align-items: stretch;
      padding: 32px;
      background: #ffffffee;
      border-radius: 24px;
      box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
    }

    .admin-shell {
        display: none;
        width: min(1200px, 100%);
        max-height: calc(100vh - 48px);
        padding: 32px;
        background: #ffffffee;
        border-radius: 24px;
        box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
    }

    .main-panel,
    .side-panel {
      display: flex;
      flex-direction: column;
      gap: 24px;
      min-height: 0;
    }

    .title-text {
      margin: 0;
      font-size: clamp(2.2rem, 3vw, 3rem);
      text-align: center;
      letter-spacing: -0.04em;
      user-select: none;
    }

    .title-text:hover {
      cursor: default;
    }

    .panel-card {
      background: #f8fafc;
      border-radius: 20px;
      border: 1px solid rgba(148, 163, 184, 0.24);
      padding: 24px;
      display: flex;
      flex-direction: column;
      min-height: 0;
    }

    .panel-card.search-results-panel {
      flex: 1;
      min-height: 0;
    }

    search-results {
      display: flex;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }

    .table-plate {
      width: 110px;
      height: 110px;
      background-color: #d2e3fc;
      border-radius: 50%;
      border: 4px solid rgba(59, 130, 246, 0.2);
      /*box-shadow: inset 0 6px 16px rgba(15, 23, 42, 0.08);*/
      box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
      display: grid;
      place-items: center;
      position: relative;
    }

    .table-plate.highlighted {
      box-shadow: inset 0 6px 16px rgba(15, 23, 42, 0.08), 0 0 0 18px rgba(59, 130, 246, 0.18);
      animation: glowPulse 3s ease-in-out infinite;
    }

    .chair {
      width: 24px;
      height: 14px;
      background: #cbd5e1;
      border-radius: 10px;
      position: absolute;
      box-shadow: 0 3px 10px rgba(15, 23, 42, 0.12);
    }

    .chair.top { top: -6px; left: 50%; transform: translateX(-50%); }
    .chair.bottom { bottom: -6px; left: 50%; transform: translateX(-50%); }
    .chair.left { left: -6px; top: 50%; transform: translateY(-50%); width: 14px; height: 24px; }
    .chair.right { right: -6px; top: 50%; transform: translateY(-50%); width: 14px; height: 24px; }
    .chair.top-right { top: 12px; right: 12px; width: 14px; height: 24px; transform: rotate(-45deg); }
    .chair.bottom-right { bottom: 12px; right: 12px; width: 14px; height: 24px; transform: rotate(45deg); }
    .chair.bottom-left { bottom: 12px; left: 12px; width: 14px; height: 24px; transform: rotate(-45deg); }
    .chair.top-left { top: 12px; left: 12px; width: 14px; height: 24px; transform: rotate(45deg); }

    .table-card {
      display: grid;
      place-items: center;
      position: relative;
      padding: 8px;
      background: transparent;
      border: none;
      box-shadow: none;
      overflow: visible;
    }

    .table-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(120px, 1fr));
      grid-auto-rows: minmax(180px, auto);
      gap: 10px;
      padding: 10px;
    }

    .table-cell {
      min-height: 180px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px dashed transparent;
      border-radius: 18px;
      transition: background-color 0.2s ease, border-color 0.2s ease;
    }

    .table-cell.drop-target {
      border-color: #3b82f6;
      background-color: rgba(59, 130, 246, 0.08);
    }

    @media (max-width: 960px) {
      .app-shell {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 700px) {
      .app-shell {
        width: 100%;
        padding: 18px;
      }

      .panel-card {
        padding: 20px;
      }
    }

    @keyframes glowPulse {
      0%, 100% {
        box-shadow: inset 0 6px 10px rgba(15, 42, 15, 0.08), 0 0 0 12px rgba(59, 246, 68, 0.18);
      }
      50% {
        box-shadow: inset 0 6px 10px rgba(15, 42, 16, 0.08), 0 0 0 30px rgba(75, 246, 59, 0.4);
      }
    }