/**
 * LDC — Workspace visual language overlay.
 * Mirrors Parcl9 Workspace tokens (gold, Inter, Playfair, shell, ghost/primary buttons).
 * Loaded after frontend.css / upload-limits.css so these rules win.
 */

:root {
  --ldc-gold:        #9a6f2e;
  --ldc-gold-light:  #c9a84c;
  --ldc-gold-bg:     #faf5ec;
  --ldc-surface:     #fcfaf7;
  --ldc-border:      #e5e7eb;
  --ldc-border-soft: #f3f4f6;
  --ldc-toolbar:     #f9fafb;
  --ldc-text:        #111827;
  --ldc-muted:       #6b7280;
  --ldc-font:        'Inter', system-ui, sans-serif;
  --ldc-serif:       'Playfair Display', Georgia, serif;
  --ldc-primary:     #9a6f2e;
}

.ldc-main-layout,
.ldc-container,
.ldc-upload-limits,
.ldc-modal,
.ldc-gate,
.ldc-register-modal {
  font-family: var(--ldc-font);
  color: var(--ldc-text);
  font-size: 14px;
}

/* ── Shell (Workspace card) ──────────────────────────────────────────────── */

.ldc-container {
  background: #fff;
  border: 1px solid var(--ldc-border);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  max-width: 100%;
}

.ldc-dz-page .ldc-header,
.ldc-container > .ldc-header {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 2px;
  margin: 0;
  padding: 12px 18px;
  background: #fff;
  border-bottom: 1px solid var(--ldc-border);
}

.ldc-header__eyebrow {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ldc-gold);
}

.ldc-dz-page .ldc-header h2,
.ldc-container > .ldc-header h2 {
  font-family: var(--ldc-serif);
  font-size: 18px;
  font-weight: 400;
  color: #1a1814;
  margin: 0;
  line-height: 1.3;
}

.ldc-dz-page .ldc-header p,
.ldc-container > .ldc-header p {
  font-size: 13px;
  color: var(--ldc-muted);
  margin: 2px 0 0;
  line-height: 1.45;
}

.ldc-dz-page .ldc-dz,
.ldc-dz-page #ldc-results {
  padding: 18px 18px 20px;
  background: var(--ldc-surface);
}

.ldc-dz-page .ldc-guest-notice {
  margin: 0;
  border-radius: 0;
  border-left: none;
  border-right: none;
}

.ldc-container .ldc-tab-container,
.ldc-container form#ldc-compare-form,
.ldc-container form#ldc-analyze-form {
  padding: 16px 18px;
  background: var(--ldc-surface);
}

.ldc-dz-page .ldc-history-section {
  margin: 0;
  padding: 0 18px 18px;
  background: var(--ldc-surface);
}

/* ── Buttons ──────────────────────────────────────────────────────────────── */

.ldc-btn,
.ldc-modal-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--ldc-font);
  font-size: 13px;
  font-weight: 500;
  padding: 6px 14px;
  border-radius: 6px;
  line-height: 1.4;
  transition: background 0.12s, border-color 0.12s, opacity 0.12s;
}

.ldc-btn--primary,
.ldc-modal-select {
  background: #111827 !important;
  color: #fff !important;
  border: 1px solid #111827 !important;
}
.ldc-btn--primary:hover:not(:disabled),
.ldc-modal-select:hover:not(:disabled) {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
}
.ldc-btn--primary:disabled,
.ldc-modal-select:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  background: #111827 !important;
  border-color: #111827 !important;
  color: #fff !important;
}

.ldc-btn--outline,
.ldc-modal-cancel {
  background: transparent !important;
  color: #4b5563 !important;
  border: 1px solid var(--ldc-border) !important;
}
.ldc-btn--outline:hover,
.ldc-modal-cancel:hover {
  background: #f3f4f6 !important;
  border-color: #9ca3af !important;
  color: #1f2937 !important;
}

.ldc-dz__actions .ldc-btn--outline {
  background: #fff !important;
  border: 1px solid var(--ldc-border) !important;
  color: #4b5563 !important;
  font-size: 13px;
  padding: 6px 12px;
}
.ldc-dz__actions .ldc-btn--outline:hover {
  background: #f3f4f6 !important;
  border-color: #9ca3af !important;
}

.ldc-btn--premium {
  background: var(--ldc-gold) !important;
  color: #fff !important;
  border: 1px solid var(--ldc-gold) !important;
  box-shadow: none;
  letter-spacing: 0;
}
.ldc-btn--premium:hover:not(:disabled) {
  opacity: 0.88;
  box-shadow: none;
}

.ldc-btn-icon:hover { color: var(--ldc-gold); }

/* ── Drop zone ────────────────────────────────────────────────────────────── */

.ldc-dz__area {
  border: 2px dashed #d5c9b8;
  border-radius: 8px;
  background: #fff;
  padding: 36px 24px;
}
.ldc-dz__area:hover,
.ldc-dz__area--over {
  border-color: var(--ldc-gold);
  background: #fdf9f4;
}
.ldc-dz__primary {
  font-size: 14px;
  font-weight: 600;
  color: #1a1814;
}
.ldc-dz__hint {
  font-size: 12px;
  color: #9c9288;
}

.ldc-dz__save-toggle input:checked ~ .ldc-dz__save-slider {
  background: var(--ldc-gold);
}
.ldc-dz__save-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--ldc-text);
}
.ldc-dz__save-hint {
  color: var(--ldc-muted);
}

.ldc-dz-chip {
  background: #faf8f5;
  border: 1px solid #ece8e1;
  border-radius: 6px;
  color: #1a1814;
  font-size: 12px;
  padding: 7px 10px;
}
.ldc-dz-chip__remove:hover { color: #b91c1c; }

.ldc-dz__notice,
.ldc-dz-fm-cap-notice {
  background: #fffbeb;
  border-color: #fcd34d;
  color: #92400e;
}

/* ── Selects ──────────────────────────────────────────────────────────────── */

.ldc-ws-project-select,
.ldc-name-input,
.ldc-register-modal__row input[type="text"],
.ldc-register-modal__row input[type="email"],
.ldc-register-modal__row input[type="password"] {
  border: 1px solid var(--ldc-border);
  border-radius: 6px;
  font-family: var(--ldc-font);
  font-size: 13px;
  color: var(--ldc-text);
  background: #fff;
}
.ldc-ws-project-select:focus,
.ldc-name-input:focus,
.ldc-register-modal__row input:focus {
  outline: none;
  border-color: var(--ldc-gold) !important;
  box-shadow: 0 0 0 3px rgba(154, 111, 46, 0.12);
}

.ldc-modal-content.ldc-ws-save-modal-content {
  height: auto;
  max-height: 80vh;
  max-width: 440px;
}
.ldc-ws-save-project:hover,
.ldc-ws-save-project:focus {
  border-color: var(--ldc-gold);
  background: var(--ldc-gold-bg);
}
.ldc-ws-save-project.is-last {
  border-color: var(--ldc-gold);
  box-shadow: inset 3px 0 0 var(--ldc-gold);
  background: var(--ldc-gold-bg);
}
.ldc-ws-save-modal-content .ldc-modal-footer {
  justify-content: flex-end;
}

/* ── Modals ───────────────────────────────────────────────────────────────── */

.ldc-modal {
  background: rgba(0, 0, 0, 0.35);
  z-index: 9999;
}
.ldc-modal-content {
  margin: 8vh auto;
  border-radius: 10px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.22);
  max-width: 520px;
  height: min(80vh, 640px);
  max-height: 80vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.ldc-modal-header {
  background: #fff;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--ldc-border);
  flex-shrink: 0;
}
.ldc-modal-header h3 {
  font-size: 14px;
  font-weight: 600;
  color: var(--ldc-text);
}
.ldc-modal-body {
  padding: 14px 16px 0;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.ldc-modal-footer {
  background: var(--ldc-toolbar);
  padding: 12px 16px;
  border-top: 1px solid var(--ldc-border);
  flex-shrink: 0;
}
.ldc-modal-instructions,
.ldc-modal-hint,
.ldc-dz-fm-cap-notice {
  flex-shrink: 0;
}
.ldc-dz-fm-list,
.ldc-file-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
}
.ldc-dz-fm-list {
  margin: 0 -16px;
  padding: 0 16px 8px;
}
.ldc-modal-btn {
  padding: 6px 14px;
  font-size: 13px;
  border-radius: 6px;
}

.ldc-file-item {
  border-color: var(--ldc-border);
  border-radius: 6px;
  padding: 10px 12px;
  margin-bottom: 6px;
}
.ldc-file-item:hover {
  border-color: var(--ldc-gold);
  background: var(--ldc-gold-bg);
  transform: none;
  box-shadow: none;
}
.ldc-file-item.selected,
.ldc-file-item input[type="radio"]:checked + .ldc-file-info,
.ldc-file-item input[type="checkbox"]:checked + .ldc-file-info {
  background: var(--ldc-gold-bg);
  border-color: var(--ldc-gold);
  border-left: 3px solid var(--ldc-gold);
}
.ldc-file-item input[type="radio"]:checked + .ldc-file-info .ldc-file-name,
.ldc-file-item input[type="checkbox"]:checked + .ldc-file-info .ldc-file-name {
  color: var(--ldc-gold);
}
.ldc-dz-fm-check { accent-color: var(--ldc-gold); }
.ldc-dz-fm-item label:hover { background: var(--ldc-gold-bg); }

/* ── Tabs ─────────────────────────────────────────────────────────────────── */

.ldc-tab-header {
  background: var(--ldc-toolbar);
  border: 1px solid var(--ldc-border);
  border-radius: 8px;
  padding: 4px;
}
.ldc-tab-btn {
  font-family: var(--ldc-font);
  font-size: 13px;
  font-weight: 500;
  color: var(--ldc-muted);
  border-radius: 6px;
  min-height: 40px;
  padding: 8px 14px;
  transition: background 0.12s, color 0.12s;
}
.ldc-tab-btn:hover:not(:disabled) {
  background: #f3f4f6;
  color: var(--ldc-text);
  transform: none;
}
.ldc-tab-btn.ldc-tab-active {
  background: #111827;
  color: #fff;
  border: none;
  transform: none;
  box-shadow: none;
}

/* ── History ──────────────────────────────────────────────────────────────── */

.ldc-history-toggle {
  background: var(--ldc-toolbar);
  border: 1px solid var(--ldc-border);
  border-radius: 6px;
  font-family: var(--ldc-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--ldc-text);
  padding: 10px 14px;
}
.ldc-history-toggle:hover,
.ldc-history-toggle.is-open {
  background: var(--ldc-gold-bg);
  border-color: #e8d9b8;
}
.ldc-history-dropdown {
  border-color: var(--ldc-border);
  border-radius: 0 0 6px 6px;
}
.ldc-history-item:hover { background: var(--ldc-gold-bg); }
.ldc-bulk-bar { background: var(--ldc-toolbar); border-color: var(--ldc-border); }

/* ── Results / analysis ───────────────────────────────────────────────────── */

.ldc-results {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
.ldc-result-actions {
  background: #fff;
  border: 1px solid var(--ldc-border);
  border-radius: 6px;
  padding: 10px 14px;
}
.ldc-result-actions--top {
  border-radius: 6px;
  border-bottom: 1px solid var(--ldc-border);
}

.ldc-analysis { color: #374151; }
.ldc-analysis h1,
.ldc-analysis h2,
.ldc-analysis h3 {
  color: #1a1814;
  margin-left: 0;
}
.ldc-analysis h1 {
  font-family: var(--ldc-serif);
  font-weight: 400;
  border-bottom: 1px solid var(--ldc-border);
}
.ldc-analysis h2,
.ldc-analysis h3 {
  color: var(--ldc-gold);
  font-weight: 600;
}
.ldc-analysis p { margin-left: 0; text-align: left; }

.ldc-comparison-subtable {
  background: #fff;
  box-shadow: none;
  border: 1px solid var(--ldc-border);
  border-radius: 6px;
  overflow: hidden;
}
.ldc-comparison-subtable h3,
.ldc-comprehensive-comparison .ldc-comparison-subtable h3 {
  background: var(--ldc-toolbar) !important;
  border-left: 2px solid var(--ldc-gold);
  color: #1a1814;
  font-size: 13px;
  font-weight: 600;
}
.ldc-comparison-subtable-inner { box-shadow: none; }
.ldc-comparison-subtable-inner th {
  background: #111827;
  color: #fff;
}
.ldc-comprehensive-comparison h2 {
  color: #1a1814;
  font-family: var(--ldc-serif);
  font-weight: 400;
  border-bottom: 1px solid var(--ldc-border);
}

/* ── Loading ──────────────────────────────────────────────────────────────── */

.ldc-spinner {
  border-color: var(--ldc-border);
  border-top-color: var(--ldc-gold);
  width: 28px;
  height: 28px;
  border-width: 3px;
}
.ldc-loading p { color: var(--ldc-muted); font-size: 13px; }

.ldc-step--active .ldc-step-icon {
  background: var(--ldc-gold-bg);
  color: var(--ldc-gold);
}

/* ── Limits sidebar ───────────────────────────────────────────────────────── */

.ldc-upload-limits {
  background: #fff;
  border: 1px solid var(--ldc-border);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  padding: 0;
}
.ldc-limits-card,
.ldc-upload-limits--guest .ldc-limits-card {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 14px 16px;
}
.ldc-limits-card__header {
  border-bottom-color: var(--ldc-border-soft);
  justify-content: space-between;
  align-items: flex-start;
}
.ldc-limits-card__heading .ldc-header__eyebrow {
  display: block;
  margin-bottom: 2px;
}
.ldc-limits-card__title {
  font-family: var(--ldc-serif);
  font-weight: 400;
  font-size: 16px;
  color: #1a1814;
}
.ldc-limits-card__level {
  color: var(--ldc-gold);
  font-weight: 600;
  font-size: 10px;
}
.ldc-limits-card__bar { background: var(--ldc-border-soft); }
.ldc-limits-card__bar-fill {
  background: linear-gradient(90deg, var(--ldc-gold), var(--ldc-gold-light));
}
.ldc-limits-card__cta {
  flex-wrap: wrap;
}
.ldc-limits-card__cta .ldc-btn {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
}
.ldc-limits-card__alerts {
  margin: 0 0 10px;
}
.ldc-limits-card .ldc-warning-message {
  display: none;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.45;
}
.ldc-limits-card .ldc-warning-message.active { display: block; }
.ldc-limits-card .ldc-warning-message p { margin: 0; }
.ldc-limits-card .ldc-warning-icon { display: none; }
.ldc-limits-card .ldc-warning-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 6px;
}
.ldc-manage-files-btn,
.ldc-upgrade-btn,
.ldc-purchase-tokens-btn,
.ldc-refresh-limits-btn {
  cursor: pointer;
}
.ldc-limits-card .ldc-manage-files-btn,
.ldc-limits-card .ldc-upgrade-btn,
.ldc-limits-card .ldc-purchase-tokens-btn {
  transform: none;
  display: inline-flex;
}
.ldc-limits-card .ldc-manage-files-btn:hover,
.ldc-limits-card .ldc-upgrade-btn:hover,
.ldc-limits-card .ldc-purchase-tokens-btn:hover {
  transform: none;
}
.ldc-limits-card .ldc-refresh-limits-btn {
  flex-shrink: 0;
  margin-top: 2px;
}

.ldc-limit-warning,
.ldc-warning-message {
  background: #fffbeb;
  border-color: #fcd34d;
  color: #92400e;
}
.ldc-limits-loading {
  background: var(--ldc-gold-bg);
  border-color: #e8d9b8;
  color: var(--ldc-gold);
}

/* ── Gate / guest ─────────────────────────────────────────────────────────── */

.ldc-gate {
  background: var(--ldc-surface);
  border: 1px solid var(--ldc-border);
  border-radius: 8px;
  box-shadow: none;
}
.ldc-gate h4 {
  font-family: var(--ldc-serif);
  font-weight: 400;
  color: #1a1814;
}
.ldc-guest-notice {
  background: var(--ldc-gold-bg);
  border: 1px solid #e8d9b8;
  color: #6b6458;
}
.ldc-guest-notice a { color: var(--ldc-gold); }

.ldc-register-overlay { background: rgba(0, 0, 0, 0.35); }
.ldc-register-modal {
  border-radius: 10px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.22);
}
.ldc-register-modal__header h3 {
  font-family: var(--ldc-serif);
  font-weight: 400;
  color: #1a1814;
}

/* ── Limit notices ────────────────────────────────────────────────────────── */

.ldc-limit-notice {
  border-radius: 6px;
}
.ldc-progress-elapsed {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  background: #f7f4ee;
  border: 1px solid #ece5d6;
  border-radius: 5px;
  padding: 2px 7px;
  color: #9c9288;
}

@media (max-width: 1404px) {
  .ldc-upload-limits-display {
    margin-top: 16px;
  }
}
