/* Control and management desktop pages */
.control-page {
  background: var(--page-bg, #f5f7fa);
  padding: 28px 18px 56px;
}

.control-page .container {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.control-page .container-frame,
.control-page .container-project,
.control-page .container-subfolder {
  width: 100%;
  margin: 0 0 18px;
  padding: 22px;
  border: 1px solid var(--border-color, #dde6ee);
  border-radius: 12px;
  background: var(--surface-bg, #fff);
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
}

.control-page .container-frame > h3,
.control-page .container-project > h3,
.control-page .section-title {
  margin: 0 0 18px;
  padding: 0 0 12px;
  border-bottom: 2px solid var(--brand-color, #348dcc);
  color: var(--text-color, #172331);
  font-size: 1.28rem;
  font-weight: 800;
  letter-spacing: 0;
  text-align: left;
}

.control-page .filter-buttons,
.control-page .search-container,
.control-page .planner-header,
.control-page .calendar-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin-bottom: 18px;
}

.control-page h4,
.control-page .search-container h4 {
  margin: 0 0 7px;
  color: var(--muted-text, #5b6775);
  font-size: 0.86rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
}

.control-page input,
.control-page select,
.control-page textarea {
  min-height: 40px;
  border: 1px solid var(--border-color, #d7e0e8);
  border-radius: 8px;
  background: #fff;
  color: var(--text-color, #172331);
  padding: 8px 11px;
  box-shadow: none;
}

.control-page input:focus,
.control-page select:focus,
.control-page textarea:focus {
  border-color: var(--brand-color, #348dcc);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(52, 141, 204, 0.15);
}

.control-page #searchInput,
.control-page input[id^="search"] {
  width: min(420px, 42vw);
}

.control-page .btn,
.control-page button {
  min-height: 40px;
  border-radius: 8px;
  font-weight: 700;
  box-shadow: none;
}

.control-page .btn-primary,
.control-page .btn-success,
.control-page .planner-header button,
.control-page .calendar-actions button,
.control-page #btnSave {
  border: 0;
  background: var(--brand-color, #348dcc);
  color: #fff;
}

.control-page .btn-primary:hover,
.control-page .btn-success:hover,
.control-page .planner-header button:hover,
.control-page .calendar-actions button:hover,
.control-page #btnSave:hover {
  filter: brightness(0.94);
}

.control-page .btn-secondary,
.control-page #btnClose {
  border: 0;
  background: #64748b;
  color: #fff;
}

.control-page .btn-danger {
  border: 0;
  background: #c94a4a;
  color: #fff;
}

.control-page .btn-dark {
  border: 0;
  background: #25364a;
  color: #fff;
}

.control-page .table-wrapper {
  width: 100%;
  min-height: 46vh;
  max-height: calc(100vh - 290px);
  overflow: auto;
  border: 1px solid var(--border-color, #dfe7ef);
  border-radius: 10px;
  background: #fff;
}

.control-page table {
  width: 100%;
  min-width: 1100px;
  margin: 0;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0;
  float: none !important;
}

.control-page th,
.control-page td {
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid #e7edf3;
  color: var(--text-color, #172331);
  font-size: 0.88rem;
  line-height: 1.35;
  vertical-align: middle;
}

.control-page th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #eef4f8;
  color: #25364a;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
  white-space: nowrap;
}

.control-page tbody tr:nth-child(even) {
  background: #fafcff;
}

.control-page tbody tr:hover {
  background: rgba(52, 141, 204, 0.08);
}

.control-page .sort-indicator {
  display: inline-block;
  margin-left: 5px;
  color: #7c8b9b;
  font-size: 0.8rem;
}

.control-page #loadingSpinner.control-spinner {
  display: none;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 24px 0;
}

.control-page #loadingSpinner.control-spinner .loading {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 74px;
}

.control-page #loadingSpinner.control-spinner .spinner {
  display: none;
}

.control-page #loadingSpinner.control-spinner .loading::after {
  width: 42px;
  height: 42px;
  content: "";
  border: 4px solid #d9e4ed;
  border-top-color: var(--brand-color, #348dcc);
  border-radius: 999px;
  animation: control-spin 0.8s linear infinite;
}

.control-page .modal-content,
.control-page .calendar-modal,
.control-page #detailBox {
  border: 0;
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.2);
}

.control-page .modal-header,
.control-page .planner-header,
.control-page .calendar-toolbar {
  border-bottom: 1px solid var(--border-color, #dfe7ef);
  background: #f7fafc;
}

@keyframes control-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 900px) {
  .control-page {
    padding: 18px 10px 42px;
  }

  .control-page .container-frame,
  .control-page .container-project,
  .control-page .container-subfolder {
    padding: 16px;
  }

  .control-page #searchInput,
  .control-page input[id^="search"] {
    width: 100%;
  }

  .control-page .filter-buttons,
  .control-page .search-container {
    align-items: stretch;
  }

  .control-page .btn,
  .control-page button,
  .control-page input {
    width: 100%;
  }
}
