:root {
  --bg: #0f172a;
  --panel: #111827;
  --panel-2: #1f2937;
  --line: #374151;
  --txt: #f9fafb;
  --muted: #9ca3af;
  --brand: #2563eb;
  --ok: #10b981;
  --warn: #f59e0b;
  --err: #ef4444;
  --info: #38bdf8;
  --blue3: #60a5fa;
  --radius: 10px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-soft: cubic-bezier(0.2, 0.8, 0.2, 1);
  --dur-fast: 180ms;
  --dur-mid: 320ms;
}

[data-theme="light"] {
  --bg: #f8fafc;
  --panel: #ffffff;
  --panel-2: #f1f5f9;
  --line: #cbd5e1;
  --txt: #1e293b;
  --muted: #64748b;
  --brand: #2563eb;
  --ok: #059669;
  --warn: #d97706;
  --err: #dc2626;
  --info: #0ea5e9;
  --blue3: #3b82f6;
}

.theme-toggle-btn {
  background: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--txt);
  cursor: pointer;
  padding: 6px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: all var(--dur-fast);
  margin-right: 8px;
}

.theme-toggle-btn:hover {
  background: var(--panel-2);
  border-color: var(--brand);
}

.theme-toggle-icon {
  margin-right: 6px;
  font-size: 16px;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

body {
  background: var(--bg);
  background-image: linear-gradient(160deg, #0b1224 0%, #121d35 45%, #0f172a 100%);
  background-attachment: fixed;
  color: var(--txt);
  min-height: 100vh;
  scroll-behavior: smooth;
}

[data-theme="light"] body {
  background-image: none;
}

/* Light Theme Component Overrides */
[data-theme="light"] .card,
[data-theme="light"] .panel,
[data-theme="light"] .ai-suggestions-panel,
[data-theme="light"] .planner-todo,
[data-theme="light"] .scenario-compare,
[data-theme="light"] .priority-panel,
[data-theme="light"] .todo-item,
[data-theme="light"] .kpi-card,
[data-theme="light"] .ai-suggestion-item,
[data-theme="light"] .ai-overview-item,
[data-theme="light"] .todo-detail-modal,
[data-theme="light"] .todo-stat,
[data-theme="light"] .todo-detail-metric,
[data-theme="light"] .todo-detail-section,
[data-theme="light"] .heat-item,
[data-theme="light"] .decision-time-track,
[data-theme="light"] .decision-gantt-track,
[data-theme="light"] .kpi-card-bg,
[data-theme="light"] .ai-suggestion-reason,
[data-theme="light"] .todo-detail-section,
[data-theme="light"] .ai-message.ai .ai-message-content,
[data-theme="light"] .ai-chat-body,
[data-theme="light"] .ai-chat-footer {
  background: var(--panel) !important;
  background-image: none !important;
  border-color: var(--line) !important;
  color: var(--txt) !important;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

[data-theme="light"] .ai-suggestion-reason,
[data-theme="light"] .todo-detail-section,
[data-theme="light"] .ai-overview-item,
[data-theme="light"] .todo-stat,
[data-theme="light"] .ai-message.user .ai-message-content {
  background: var(--panel-2) !important;
}

[data-theme="light"] .ai-panel-title,
[data-theme="light"] .todo-title,
[data-theme="light"] .kpi-value,
[data-theme="light"] .todo-detail-title,
[data-theme="light"] .scenario-metric-value,
[data-theme="light"] .heat-item-title,
[data-theme="light"] .progress-item-title,
[data-theme="light"] .aps-console-title-main,
[data-theme="light"] .user-dropdown-toggle .name,
[data-theme="light"] .ai-panel-title {
  color: var(--txt) !important;
}

[data-theme="light"] .ai-panel-subtitle,
[data-theme="light"] .ai-overview-label,
[data-theme="light"] .todo-meta,
[data-theme="light"] .todo-stat-label,
[data-theme="light"] .scenario-metric-label,
[data-theme="light"] .todo-detail-label,
[data-theme="light"] .todo-detail-subtitle,
[data-theme="light"] .aps-site-switch-label,
[data-theme="light"] .ai-panel-subtitle {
  color: var(--muted) !important;
}

[data-theme="light"] header,
[data-theme="light"] .aps-header-layout {
  background: var(--panel) !important;
  border-bottom: 1px solid var(--line) !important;
}

[data-theme="light"] .nav-item {
  color: var(--muted) !important;
}

[data-theme="light"] .nav-item.active {
  background: linear-gradient(135deg, #dbeafe, #bfdbfe) !important;
  border-color: #93c5fd !important;
  color: var(--brand) !important;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.14) !important;
}

[data-theme="light"] .aps-clock-chip {
  background: var(--panel-2) !important;
  color: var(--txt) !important;
  border: 1px solid var(--line) !important;
}

[data-theme="light"] .aps-notify-btn {
  background: var(--panel-2) !important;
  border: 1px solid var(--line) !important;
}

[data-theme="light"] .role-select {
  background: var(--panel-2) !important;
  border: 1px solid var(--line) !important;
  color: var(--txt) !important;
}

[data-theme="light"] .user-dropdown-toggle {
  background: var(--panel-2) !important;
  border: 1px solid var(--line) !important;
}

[data-theme="light"] .todo-icon {
  background: var(--panel-2) !important;
}

[data-theme="light"] .ai-panel-actions button {
  background: var(--panel-2) !important;
  color: var(--txt) !important;
  border-color: var(--line) !important;
}

[data-theme="light"] .ai-confidence-bar {
  background: var(--panel-2) !important;
}

[data-theme="light"] .ai-suggestion-actions button {
  background: var(--panel-2) !important;
  color: var(--txt) !important;
  border-color: var(--line) !important;
}

[data-theme="light"] .ai-suggestion-actions button.approve {
  background: var(--brand) !important;
  color: #fff !important;
}

[data-theme="light"] #toast {
  background: var(--panel) !important;
  color: var(--txt) !important;
  border-color: var(--line) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
}

[data-theme="light"] .user-dropdown-menu {
  background: var(--panel) !important;
  border-color: var(--line) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
}

[data-theme="light"] .user-dropdown-item {
  color: var(--txt) !important;
}

[data-theme="light"] .user-dropdown-item:hover {
  background: var(--panel-2) !important;
}

[data-theme="light"] .form-prompt-dialog,
[data-theme="light"] .confirm-dialog,
[data-theme="light"] .wip-orders-card,
[data-theme="light"] .collab-result,
[data-theme="light"] .collab-result-empty,
[data-theme="light"] .week-day-table-card,
[data-theme="light"] .inventory-overview-card,
[data-theme="light"] .warehouse-card,
[data-theme="light"] .warehouse-metric,
[data-theme="light"] .inventory-side-card,
[data-theme="light"] .inventory-side-item,
[data-theme="light"] .settings-base-hero-card,
[data-theme="light"] .settings-base-panel,
[data-theme="light"] .settings-base-form-grid .modal-field,
[data-theme="light"] .settings-base-chip,
[data-theme="light"] .settings-base-side-note,
[data-theme="light"] .user-profile-panel,
[data-theme="light"] .user-profile-item,
[data-theme="light"] .settings-ann-item,
[data-theme="light"] .usage-stat-card,
[data-theme="light"] .usage-block,
[data-theme="light"] .usage-module-item,
[data-theme="light"] .usage-insight-item,
[data-theme="light"] .usage-report-item,
[data-theme="light"] .integration-card,
[data-theme="light"] .sync-status-bar,
[data-theme="light"] .sync-log-panel,
[data-theme="light"] .wip-detail-table-wrap,
[data-theme="light"] .preplan-detail-table-wrap,
[data-theme="light"] .usage-table-wrap,
[data-theme="light"] .todo-stat-card,
[data-theme="light"] .todo-detail-card {
  background: var(--panel) !important;
  background-image: none !important;
  border-color: var(--line) !important;
  color: var(--txt) !important;
  box-shadow: 0 10px 28px rgb(15 23 42 / 0.08) !important;
}

[data-theme="light"] .gantt-wrap,
[data-theme="light"] .week-gantt-wrap,
[data-theme="light"] .month-calendar,
[data-theme="light"] .view-switch,
[data-theme="light"] .day-view-date-head,
[data-theme="light"] .wip-detail-table-wrap,
[data-theme="light"] .preplan-detail-table-wrap,
[data-theme="light"] .sync-log-content,
[data-theme="light"] .sync-log-item.info,
[data-theme="light"] .warehouse-bar,
[data-theme="light"] .month-load-bar,
[data-theme="light"] .collab-metric-bar {
  background: var(--panel-2) !important;
  background-image: none !important;
  border-color: var(--line) !important;
}

[data-theme="light"] .gantt-table th,
[data-theme="light"] .gantt-line-col,
[data-theme="light"] .week-gantt-head,
[data-theme="light"] .week-day-table-head,
[data-theme="light"] .week-day-table-toolbar,
[data-theme="light"] .week-day-table th,
[data-theme="light"] .month-weekdays div,
[data-theme="light"] .wip-detail-table th,
[data-theme="light"] .preplan-detail-table th,
[data-theme="light"] .settings-base-panel-hd,
[data-theme="light"] .user-profile-head,
[data-theme="light"] .usage-block-hd,
[data-theme="light"] .usage-table-note,
[data-theme="light"] .sync-log-hd {
  background: #eef2ff !important;
  color: var(--txt) !important;
  border-color: var(--line) !important;
}

[data-theme="light"] .week-gantt-row-label,
[data-theme="light"] .week-gantt-head-label,
[data-theme="light"] .week-gantt-head-track span,
[data-theme="light"] .wip-orders-title,
[data-theme="light"] .wip-orders-title span,
[data-theme="light"] .wip-order-no,
[data-theme="light"] .week-day-table-head b,
[data-theme="light"] .warehouse-card-title,
[data-theme="light"] .inventory-side-title,
[data-theme="light"] .settings-base-panel-title strong,
[data-theme="light"] .user-profile-head-title strong,
[data-theme="light"] .usage-block-title span,
[data-theme="light"] .usage-user-name strong,
[data-theme="light"] .integration-name,
[data-theme="light"] .sync-log-hd,
[data-theme="light"] .todo-page-title,
[data-theme="light"] .todo-stat-value,
[data-theme="light"] .todo-detail-title {
  color: var(--txt) !important;
}

[data-theme="light"] .wip-orders-sub,
[data-theme="light"] .wip-order-meta,
[data-theme="light"] .wip-order-time,
[data-theme="light"] .week-day-table-head span,
[data-theme="light"] .inventory-board-note,
[data-theme="light"] .inventory-overview-label,
[data-theme="light"] .inventory-overview-value .unit,
[data-theme="light"] .inventory-overview-sub,
[data-theme="light"] .warehouse-metric-label,
[data-theme="light"] .warehouse-card-foot,
[data-theme="light"] .inventory-side-caption,
[data-theme="light"] .settings-base-hero-label,
[data-theme="light"] .settings-base-hero-note,
[data-theme="light"] .settings-base-panel-title span,
[data-theme="light"] .settings-base-form-grid .modal-field label,
[data-theme="light"] .settings-base-field-note,
[data-theme="light"] .user-profile-item label,
[data-theme="light"] .user-profile-note,
[data-theme="light"] .usage-stat-label,
[data-theme="light"] .usage-stat-foot,
[data-theme="light"] .usage-block-title small,
[data-theme="light"] .usage-trend-label,
[data-theme="light"] .usage-insight-item p,
[data-theme="light"] .usage-report-item p,
[data-theme="light"] .usage-report-meta,
[data-theme="light"] .usage-table-note,
[data-theme="light"] .usage-user-name span,
[data-theme="light"] .sync-status-label,
[data-theme="light"] .integration-info,
[data-theme="light"] .todo-page-subtitle,
[data-theme="light"] .todo-stat-label,
[data-theme="light"] .todo-stat-note,
[data-theme="light"] .todo-detail-label,
[data-theme="light"] .todo-owner {
  color: var(--muted) !important;
}

[data-theme="light"] .wip-plant-select,
[data-theme="light"] #gantt-plant-filter,
[data-theme="light"] .day-date-input,
[data-theme="light"] .wip-filter-field select,
[data-theme="light"] .wip-filter-field input,
[data-theme="light"] .preplan-filter-field select,
[data-theme="light"] .preplan-filter-field input,
[data-theme="light"] .wip-seq-input,
[data-theme="light"] .preplan-seq-input,
[data-theme="light"] .week-seq-input,
[data-theme="light"] .usage-filter-bar input,
[data-theme="light"] .usage-filter-bar select {
  background: #fff !important;
  color: var(--txt) !important;
  border-color: var(--line) !important;
}

[data-theme="light"] .wip-all-link,
[data-theme="light"] .wip-page-btn,
[data-theme="light"] .week-page-btn,
[data-theme="light"] .preplan-page-btn,
[data-theme="light"] .resource-menu-item,
[data-theme="light"] .view-btn,
[data-theme="light"] .schedule-color-chip,
[data-theme="light"] .month-legend-item,
[data-theme="light"] .usage-kpi-pill,
[data-theme="light"] .usage-chip,
[data-theme="light"] .tag {
  background: var(--panel-2) !important;
  color: var(--txt) !important;
  border-color: var(--line) !important;
}

[data-theme="light"] .tag.red {
  background: #fee2e2 !important;
  border-color: #fca5a5 !important;
  color: #b91c1c !important;
}

[data-theme="light"] .tag.ok {
  background: #dcfce7 !important;
  border-color: #86efac !important;
  color: #166534 !important;
}

[data-theme="light"] .tag.warn {
  background: #fef3c7 !important;
  border-color: #fcd34d !important;
  color: #b45309 !important;
}

[data-theme="light"] .tag.info {
  background: #dbeafe !important;
  border-color: #93c5fd !important;
  color: #1d4ed8 !important;
}

[data-theme="light"] .resource-menu-item.active,
[data-theme="light"] .view-btn.active {
  background: linear-gradient(135deg, #dbeafe, #bfdbfe) !important;
  border-color: #93c5fd !important;
  color: #1d4ed8 !important;
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.14) !important;
}

[data-theme="light"] .week-gantt-bar {
  border-color: rgba(15, 23, 42, 0.12) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36), 0 4px 10px rgba(15, 23, 42, 0.12) !important;
}

[data-theme="light"] .week-gantt-bar.a {
  background: linear-gradient(90deg, #3b82f6, #1d4ed8) !important;
  color: #fff !important;
}

[data-theme="light"] .week-gantt-bar.b {
  background: linear-gradient(90deg, #facc15, #f59e0b) !important;
  color: #1f2937 !important;
}

[data-theme="light"] .week-gantt-bar.c {
  background: linear-gradient(90deg, #fb923c, #ea580c) !important;
  color: #fff7ed !important;
}

[data-theme="light"] .week-gantt-bar.d {
  background: linear-gradient(90deg, #ef4444, #b91c1c) !important;
  color: #fff !important;
}

[data-theme="light"] .todo-table tbody tr:hover {
  background: rgba(37, 99, 235, 0.06) !important;
}

[data-theme="light"] .todo-table tbody tr.active {
  background: rgba(37, 99, 235, 0.12) !important;
  box-shadow: inset 2px 0 0 #3b82f6 !important;
}

[data-theme="light"] .wip-order-item,
[data-theme="light"] .collab-metric-item,
[data-theme="light"] .task-editor-detail-value,
[data-theme="light"] .task-editor-status,
[data-theme="light"] .lock-strip,
[data-theme="light"] .month-task-chip,
[data-theme="light"] .week-day-tag,
[data-theme="light"] .sync-log-item.success,
[data-theme="light"] .sync-log-item.error {
  background: var(--panel-2) !important;
  border-color: var(--line) !important;
  color: var(--txt) !important;
}

[data-theme="light"] .week-day-card,
[data-theme="light"] .month-day {
  background: #fff !important;
  border-color: var(--line) !important;
  color: var(--txt) !important;
}

[data-theme="light"] .week-day-card.load-low {
  background: linear-gradient(180deg, rgba(34, 197, 94, 0.12), rgba(255, 255, 255, 0.98)) !important;
}

[data-theme="light"] .week-day-card.load-mid {
  background: linear-gradient(180deg, rgba(250, 204, 21, 0.12), rgba(255, 255, 255, 0.98)) !important;
}

[data-theme="light"] .week-day-card.load-high {
  background: linear-gradient(180deg, rgba(251, 146, 60, 0.14), rgba(255, 255, 255, 0.98)) !important;
}

[data-theme="light"] .week-day-card.load-full {
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.12), rgba(255, 255, 255, 0.98)) !important;
}

[data-theme="light"] .month-day.other {
  background: #f8fafc !important;
  color: #94a3b8 !important;
}

[data-theme="light"] .month-day.finished {
  background: linear-gradient(180deg, rgba(148, 163, 184, 0.16), rgba(255, 255, 255, 0.98)) !important;
  border-color: #cbd5e1 !important;
}

[data-theme="light"] .month-day.upcoming {
  background: linear-gradient(180deg, rgba(59, 130, 246, 0.1), rgba(255, 255, 255, 0.98)) !important;
  border-color: #bfdbfe !important;
}

[data-theme="light"] .month-day.idle {
  background: linear-gradient(180deg, rgba(148, 163, 184, 0.08), rgba(255, 255, 255, 0.98)) !important;
  border-color: #d7dee8 !important;
}

[data-theme="light"] .month-day-num,
[data-theme="light"] .week-day-date,
[data-theme="light"] .week-day-load,
[data-theme="light"] .day-date-text,
[data-theme="light"] .wip-page-info,
[data-theme="light"] .preplan-page-info {
  color: var(--txt) !important;
}

[data-theme="light"] .month-task-chip.load-low,
[data-theme="light"] .month-task-chip.load-mid,
[data-theme="light"] .month-task-chip.load-high,
[data-theme="light"] .month-task-chip.load-full,
[data-theme="light"] .month-task-chip.load-over {
  background: #fff !important;
}

[data-theme="light"] .month-day-status.finished,
[data-theme="light"] .month-day-status.upcoming,
[data-theme="light"] .month-day-status.idle,
[data-theme="light"] .month-factory-row,
[data-theme="light"] .month-plan-row,
[data-theme="light"] .month-empty-state {
  background: rgba(255, 255, 255, 0.92) !important;
  border-color: #d7dee8 !important;
}

[data-theme="light"] .month-row-plant,
[data-theme="light"] .month-row-score,
[data-theme="light"] .month-day-summary,
[data-theme="light"] .month-row-metric {
  color: var(--txt) !important;
}

[data-theme="light"] .month-row-flag.planned {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border-color: #bfdbfe !important;
}

[data-theme="light"] .week-day-table td,
[data-theme="light"] .wip-detail-table td,
[data-theme="light"] .preplan-detail-table td,
[data-theme="light"] .warehouse-metric-value,
[data-theme="light"] .inventory-overview-value,
[data-theme="light"] .user-profile-value,
[data-theme="light"] .sync-status-value,
[data-theme="light"] .todo-detail-text {
  color: var(--txt) !important;
}

[data-theme="light"] .week-day-pagination {
  background: #eef2ff !important;
  border-top-color: var(--line) !important;
}

[data-theme="light"] .gantt-table td,
[data-theme="light"] .week-day-table th,
[data-theme="light"] .week-day-table td,
[data-theme="light"] .wip-detail-table th,
[data-theme="light"] .wip-detail-table td,
[data-theme="light"] .preplan-detail-table th,
[data-theme="light"] .preplan-detail-table td {
  border-color: #e2e8f0 !important;
}

[data-theme="light"] .confirm-dialog-message,
[data-theme="light"] .form-prompt-dialog h3,
[data-theme="light"] .confirm-dialog h3,
[data-theme="light"] .form-prompt-dialog label {
  color: var(--txt) !important;
}

[data-theme="light"] .sync-progress-bar,
[data-theme="light"] .usage-bar-track,
[data-theme="light"] .progress {
  background: #dbe4f0 !important;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

body.ai-modal-open {
  overflow: hidden;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #60a5fa;
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: 12px;
  top: 0;
  transform: translateY(-120%);
  background: #0b1220;
  color: #e2e8f0;
  border: 1px solid #60a5fa;
  border-radius: 8px;
  padding: 8px 12px;
  z-index: 9999;
  text-decoration: none;
  font-size: 12px;
}

.skip-link:focus {
  transform: translateY(8px);
}

.form-prompt-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 23, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1200;
  padding: 16px;
}

.form-prompt-dialog {
  width: min(480px, 100%);
  background: #0f172a;
  border: 1px solid #334155;
  border-radius: 12px;
  box-shadow: 0 20px 45px rgba(2, 6, 23, 0.45);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.form-prompt-dialog h3 {
  font-size: 16px;
  margin: 0;
}

.form-prompt-dialog label {
  font-size: 12px;
  color: #9ca3af;
}

.form-prompt-input {
  width: 100%;
}

.form-prompt-error {
  min-height: 18px;
  font-size: 12px;
  color: #fda4af;
}

.form-prompt-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.confirm-dialog-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 23, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1250;
  padding: 16px;
}

.confirm-dialog {
  width: min(520px, 100%);
  background: linear-gradient(155deg, #0f172a 0%, #131f39 55%, #0f1c33 100%);
  border: 1px solid #334155;
  border-radius: 12px;
  box-shadow: 0 22px 50px rgba(2, 6, 23, 0.5);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.confirm-dialog h3 {
  margin: 0;
  font-size: 16px;
  color: #f8fafc;
}

.confirm-dialog-message {
  color: #cbd5e1;
  font-size: 13px;
  line-height: 1.6;
}

.confirm-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgb(17 24 39 / 85%);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(6px);
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.aps-header-layout {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto minmax(280px, 1fr);
  align-items: center;
  background: rgb(17 24 39 / 85%);
}

.brand-block {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  min-width: 360px;
}

.aps-header-layout .brand-block {
  min-width: 0;
  justify-self: start;
}

.header-logo {
  width: clamp(188px, 14vw, 228px);
  max-width: 100%;
  height: auto;
  max-height: 34px;
  object-fit: contain;
  object-position: left center;
  flex: 0 0 auto;
  display: block;
}

.aps-console-title {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.aps-console-title-main {
  font-size: 16px;
  font-weight: 800;
  color: #e2e8f0;
  letter-spacing: 0.3px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.aps-console-title-main::after {
  content: "v3.6";
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.18);
  border: 1px solid rgba(96, 165, 250, 0.4);
  color: #93c5fd;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2px;
}

.aps-console-title-sub {
  font-size: 11px;
  color: #93c5fd;
}

.aps-site-switch {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: 8px;
  background: rgba(15, 23, 42, 0.86);
  border: 1px solid #334155;
  border-radius: 10px;
  padding: 4px 6px;
}

.aps-site-switch-label {
  font-size: 11px;
  color: #94a3b8;
}

.aps-site-switch .role-select {
  margin-left: 0;
  width: 132px;
  height: 28px;
  border-color: #475569;
}

.brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.logo {
  font-weight: 800;
  letter-spacing: 0.5px;
  font-size: 18px;
  color: var(--info);
  white-space: nowrap;
}

.sub-title {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}

.nav {
  display: flex;
  align-items: center;
  gap: 22px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.nav-item {
  white-space: nowrap;
  font-size: 13px;
  padding: 8px 12px;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  border: 1px solid transparent;
  cursor: pointer;
  transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft), background var(--dur-fast) var(--ease-soft);
  text-decoration: none;
}

.nav-item:hover {
  color: var(--txt);
  border-color: var(--line);
  background: rgba(255, 255, 255, 0.04);
}

.nav-item.active {
  background: #1a3570;
  border-color: #2a4d9a;
  color: #fff;
}

.nav.aps-main-nav {
  gap: 10px;
  flex: 1;
  justify-content: center;
  min-width: 0;
}

.aps-header-layout .nav.aps-main-nav {
  grid-column: 2;
  flex: 0 1 auto;
  justify-self: center;
}

.nav.aps-main-nav .nav-item {
  font-size: 14px;
  font-weight: 700;
  padding: 11px 20px 10px;
  border-radius: 10px;
  border: 1px solid #334155;
  background: rgba(15, 23, 42, 0.5);
  color: #cbd5e1;
}

.nav.aps-main-nav .nav-item:hover {
  color: #fff;
  border-color: #475569;
  background: rgba(15, 23, 42, 0.72);
}

.nav.aps-main-nav .nav-item.active {
  background: linear-gradient(135deg, #1e3a8a, #2563eb);
  border-color: #2563eb;
  color: #fff;
}

.header-meta {
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
}

.aps-header-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.aps-header-layout .aps-header-meta {
  grid-column: 3;
  justify-self: end;
}

.aps-header-meta .aps-site-switch {
  margin-left: 0;
  margin-right: 4px;
}

.aps-clock-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid #334155;
  background: #111b2d;
  color: #9fb1cb;
  font-size: 11px;
}

.aps-notify-btn {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  border: 1px solid #334155;
  background: #111b2d;
  color: #dbeafe;
  font-size: 15px;
  cursor: pointer;
}

.aps-notify-btn:hover {
  border-color: #60a5fa;
  background: #172445;
}

.aps-notify-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  border: 1px solid #7f1d1d;
  background: #dc2626;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.aps-header-meta .user-dropdown {
  height: 34px;
}

.aps-header-meta .user-dropdown-toggle {
  height: 34px;
  padding: 0 8px;
}

.role-select {
  margin-left: 8px;
  padding: 4px 6px;
  font-size: 12px;
  width: 116px;
  height: 28px;
}

#app {
  padding: 16px 20px 30px;
}

.view {
  display: flex;
  flex-direction: column;
  gap: 14px;
  animation: fade 0.2s ease;
}

@keyframes fade {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.card {
  background: rgba(17, 24, 39, 0.95);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
  transition: transform var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out);
  box-shadow: 0 8px 20px rgba(2, 6, 23, 0.22);
}

.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top right, rgba(56, 189, 248, 0.09), transparent 45%);
  opacity: 0;
  transition: opacity var(--dur-mid) var(--ease-out);
  pointer-events: none;
}

.card:hover {
  transform: translateY(-3px);
  border-color: #4b5f82;
  box-shadow: 0 14px 30px rgba(8, 15, 35, 0.32);
}

.card:hover::before {
  opacity: 1;
}

.card-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding: 10px 12px;
  font-weight: 600;
  font-size: 13px;
}

.card-bd {
  padding: 12px;
  font-size: 12px;
  color: var(--txt);
}

.muted { color: var(--muted); }

.row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.btn {
  background: var(--panel-2);
  color: var(--txt);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease-soft), filter var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.btn:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 8px 16px rgba(2, 6, 23, 0.28);
}
.btn:active {
  transform: translateY(0);
  transition-duration: 80ms;
}
.btn.sm { padding: 4px 8px; font-size: 11px; }
.btn.primary { background: var(--brand); border-color: var(--brand); }
.btn.ok { background: var(--ok); border-color: var(--ok); color: #04140f; font-weight: 600; }
.btn.warn { background: var(--warn); border-color: var(--warn); color: #1a1203; font-weight: 600; }
.btn.err { background: var(--err); border-color: var(--err); }
.btn.txt-white { color: #fff !important; }

input, select, textarea {
  background: #1f2937;
  border: 1px solid var(--line);
  color: var(--txt);
  border-radius: 8px;
  padding: 6px 8px;
  font-size: 12px;
  transition: border-color var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.18);
  transform: translateY(-1px);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

th, td {
  padding: 8px 6px;
  border-bottom: 1px solid #293142;
  text-align: left;
}

tbody tr {
  transition: background-color var(--dur-fast) var(--ease-soft);
}

tbody tr:hover {
  background: rgba(56, 189, 248, 0.07);
}

th { color: var(--muted); font-weight: 600; }

.tag {
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #202938;
}

.tag.red { border-color: #7f1d1d; background: #3b1114; color: #fecaca; }
.tag.ok { border-color: #064e3b; background: #032f25; color: #6ee7b7; }
.tag.warn { border-color: #78350f; background: #44200a; color: #fde68a; }
.tag.info { border-color: #0c4a6e; background: #0b2e45; color: #7dd3fc; }

.kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.kpi {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #121a2b;
  transition: transform var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out);
}

.kpi:hover {
  transform: translateY(-2px);
  border-color: #486082;
  box-shadow: 0 8px 18px rgba(8, 15, 35, 0.26);
}

.kpi .v {
  font-size: 20px;
  font-weight: 800;
  margin-top: 4px;
}

.progress {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: #273245;
  overflow: hidden;
  position: relative;
}

.progress > span {
  height: 100%;
  display: block;
  background: linear-gradient(90deg, #38bdf8, #2563eb);
  position: relative;
  overflow: hidden;
  transition: width var(--dur-mid) var(--ease-out);
}

#toast {
  position: fixed;
  left: 50%;
  top: 60px;
  transform: translate(-50%, -8px) scale(0.98);
  background: #0f172a;
  color: #fff;
  border: 1px solid #334155;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);
  pointer-events: none;
  z-index: 9999;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

#toast.show {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

.modal-mask {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 23, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 120;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--dur-fast) var(--ease-soft), visibility var(--dur-fast) var(--ease-soft);
}

.modal-mask.show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.modal-card {
  width: min(560px, 100%);
  max-width: 100%;
  max-height: min(88vh, 820px);
  background: #0f172a;
  border: 1px solid #334155;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translateY(12px) scale(0.98);
  opacity: 0;
  transition: transform var(--dur-mid) var(--ease-out), opacity var(--dur-mid) var(--ease-out);
  box-shadow: 0 18px 40px rgba(2, 6, 23, 0.45);
}

.modal-mask.show .modal-card {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.modal-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid #334155;
  font-weight: 600;
  font-size: 14px;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.98), rgba(15, 23, 42, 0.9));
}

.modal-bd {
  padding: 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  overflow: auto;
}
.modal-bd.single-col {
  grid-template-columns: 1fr;
}

.modal-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
}

.modal-field label {
  color: var(--muted);
}

.modal-ft {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid #334155;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.98), rgba(15, 23, 42, 0.9));
}

.ai-assistant-icon {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

@keyframes itemIn {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* User Dropdown Styles */
.user-dropdown {
  position: relative;
  display: inline-block;
}

.user-dropdown-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 4px 6px;
  width: 116px;
  height: 28px;
  background: #172235;
  border: 1px solid #334155;
  border-radius: 8px;
  color: #e2e8f0;
  font-size: 12px;
  cursor: pointer;
  transition: background var(--dur-fast), border-color var(--dur-fast);
}

.user-dropdown-toggle:hover {
  background: #1e293b;
  border-color: #4b5f82;
}

.user-dropdown-toggle:focus-visible {
  outline: 2px solid #60a5fa;
  outline-offset: 2px;
}

.user-dropdown-toggle .avatar {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e3a8a, #2563eb);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 600;
  color: #fff;
  flex: 0 0 auto;
}

.user-dropdown-toggle .name {
  font-weight: 500;
  line-height: 1;
}

.user-dropdown-toggle .arrow {
  font-size: 10px;
  color: #94a3b8;
  transition: transform var(--dur-fast);
}

.user-dropdown.open .user-dropdown-toggle .arrow {
  transform: rotate(180deg);
}

.user-dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 6px;
  min-width: 140px;
  background: #0b1220;
  border: 1px solid #334155;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(8, 15, 35, 0.5);
  z-index: 100;
  display: none;
  overflow: hidden;
}

.user-dropdown.open .user-dropdown-menu {
  display: block;
}

.user-dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  color: #e2e8f0;
  font-size: 13px;
  cursor: pointer;
  transition: background var(--dur-fast);
  text-decoration: none;
}

.user-dropdown-item:hover {
  background: #1e293b;
}

.user-dropdown-item.logout {
  color: #ef4444;
  border-top: 1px solid #334155;
}

.user-dropdown-item.logout:hover {
  background: #3a1016;
}

/* AI Assistant Styles */
.ai-assistant-btn {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 64px;
  height: 64px;
  border: none;
  border-radius: 999px;
  padding: 0;
  background: transparent;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.35);
  cursor: pointer;
  z-index: 120;
  overflow: hidden;
  transition: transform var(--dur-fast) var(--ease-soft), filter var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ai-assistant-btn:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.45);
}

.ai-assistant-btn::before {
  content: none;
}

.ai-assistant-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 23, 0.6);
  backdrop-filter: blur(2px);
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.ai-assistant-backdrop.open {
  display: flex;
}

.ai-assistant-modal {
  position: relative;
  width: 860px;
  height: 600px;
  max-width: calc(100vw - 40px);
  max-height: calc(100vh - 40px);
  background: #0b1220;
  border: 1px solid #334155;
  border-radius: 12px;
  box-shadow: 0 20px 40px rgba(8, 15, 35, 0.5);
  z-index: 201;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ai-assistant-modal.open {
  display: flex;
}

.ai-assistant-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: linear-gradient(135deg, #1e3a8a, #2563eb);
  border-bottom: 1px solid #334155;
}

.ai-assistant-title {
  font-weight: 600;
  color: #fff;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-assistant-close {
  background: none;
  border: none;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background var(--dur-fast);
}

.ai-assistant-close:hover {
  background: rgba(255, 255, 255, 0.2);
}

.ai-assistant-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ai-assistant-quickbar {
  padding: 12px 16px;
  border-top: 1px solid #243246;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.96) 0%, rgba(13, 20, 36, 0.96) 100%);
}

.ai-message {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  width: 100%;
}

.ai-message.user {
  flex-direction: row-reverse;
}

.ai-message-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: min(88%, 680px);
  min-width: 0;
  flex: 0 1 auto;
}

.ai-message.user .ai-message-main {
  align-items: flex-end;
  margin-left: auto;
}

.ai-message.ai .ai-message-main {
  margin-right: auto;
}

.ai-message-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
}

.ai-message.ai .ai-message-avatar {
  background: linear-gradient(135deg, #1e3a8a, #2563eb);
  color: #fff;
}

.ai-message.user .ai-message-avatar {
  background: linear-gradient(135deg, #0f766e, #14b8a6);
  color: #fff;
}

.ai-message-content {
  width: fit-content;
  max-width: 100%;
  min-width: 96px;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.ai-message.ai .ai-message-content {
  background: #1e293b;
  color: #e2e8f0;
  border-bottom-left-radius: 4px;
}

.ai-message.user .ai-message-content {
  background: linear-gradient(135deg, #1e3a8a, #2563eb);
  color: #fff;
  border-bottom-right-radius: 4px;
}

.ai-message-time {
  font-size: 10px;
  color: #64748b;
  margin-top: 4px;
  max-width: 100%;
}

.ai-assistant-footer {
  padding: 12px 16px;
  border-top: 1px solid #334155;
  background: #111b2d;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ai-input-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-assistant-input {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid #334155;
  border-radius: 20px;
  background: #0f1a2d;
  color: #e2e8f0;
  font-size: 13px;
  outline: none;
  transition: border-color var(--dur-fast);
}

.ai-assistant-input:focus {
  border-color: #2563eb;
}

.ai-assistant-send {
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e3a8a, #2563eb);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: filter var(--dur-fast);
}

.ai-assistant-send:hover {
  filter: brightness(1.1);
}

.ai-assistant-send:disabled {
  opacity: 0.65;
  cursor: wait;
}

.ai-preset-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}

.ai-preset-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 0;
  padding: 9px 10px;
  background:
    radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 42%),
    linear-gradient(180deg, #0f1a2d 0%, #172235 100%);
  border: 1px solid rgba(51, 65, 85, 0.96);
  border-radius: 12px;
  cursor: pointer;
  transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast), box-shadow var(--dur-fast);
  text-align: left;
  box-shadow: 0 8px 18px rgba(2, 6, 23, 0.16);
}

.ai-preset-card-media {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.88) 0%, rgba(17, 24, 39, 0.68) 100%);
  border: 1px solid rgba(59, 130, 246, 0.18);
  padding: 8px;
}

.ai-preset-card-icon {
  width: 100%;
  max-width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
}

.ai-preset-card-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.ai-preset-card-title {
  font-size: 11px;
  font-weight: 700;
  color: #f8fafc;
  line-height: 1.3;
}

.ai-preset-card-desc {
  font-size: 9px;
  line-height: 1.35;
  color: #94a3b8;
}

.ai-preset-card:hover {
  background:
    radial-gradient(circle at top left, rgba(59, 130, 246, 0.24), transparent 42%),
    linear-gradient(180deg, #12213b 0%, #182946 100%);
  border-color: rgba(59, 130, 246, 0.72);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.32);
}

.ai-preset-card:hover .ai-preset-card-desc {
  color: #dbeafe;
}

.ai-preset-card:focus-visible {
  outline: none;
  border-color: #60a5fa;
  box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.3), 0 14px 28px rgba(15, 23, 42, 0.32);
}

/* Gantt Task Styles */
.gantt-task {
  position: absolute;
  height: 28px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  padding: 0 8px;
  font-size: 11px;
  color: #fff;
  cursor: pointer;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast);
  border: 1px solid rgba(255, 255, 255, 0.1);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.gantt-task:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  z-index: 10;
}

.gantt-task.status-normal { background: linear-gradient(90deg, #059669, #10b981); }
.gantt-task.status-delayed { background: linear-gradient(90deg, #dc2626, #ef4444); }
.gantt-task.status-warning { background: linear-gradient(90deg, #d97706, #f59e0b); }
.gantt-task.status-completed { background: linear-gradient(90deg, #2563eb, #3b82f6); }

@media (max-width: 960px) {
  header { flex-wrap: wrap; }
  .aps-header-layout { display: flex; }
  .header-meta { width: 100%; }
  .brand-block { min-width: 0; flex-wrap: wrap; }
  .nav.aps-main-nav { justify-content: flex-start; }
  .nav.aps-main-nav .nav-item { font-size: 13px; padding: 9px 12px; }
  .aps-header-meta { width: auto; margin-left: auto; }
  .aps-site-switch { width: 100%; }
  .aps-header-meta .aps-site-switch { width: auto; }
  .aps-site-switch .role-select { width: 100%; }
  .aps-header-meta .aps-site-switch .role-select { width: 132px; }
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .ai-assistant-modal { width: calc(100% - 20px); height: min(600px, calc(100vh - 20px)); }
  .ai-message-main { max-width: 92%; }
  .ai-assistant-quickbar { padding: 10px 12px; }
  .ai-preset-cards { grid-template-columns: 1fr; }
  .ai-preset-card { grid-template-columns: 48px minmax(0, 1fr); padding: 9px 10px; }
  .ai-preset-card-media { width: 48px; height: 48px; }
  .ai-preset-card-icon { max-width: 28px; height: 28px; }
}
