/* Shared FreeStudio UI palette. Custom artwork and printable documents opt out
   through base.html's theme_class block; content colors (e.g. subtitle swatches)
   and inline success/error states are intentionally not remapped. */
:root {
  --site-bg: #121415;
  --site-surface: #1c1f21;
  --site-field: #25292c;
  --site-border: #454c51;
  --site-text: #e8e7df;
  --site-muted: #b0b7bc;
  --site-accent: #ff6b2c;
  --site-accent-hover: #ff8c59;
}
body.site-theme {
  color-scheme: var(--theme-scheme, dark);
  background: var(--site-bg);
  color: var(--site-text);
  font-family: 'Bahnschrift', 'Microsoft YaHei', sans-serif;
}
.site-theme ::selection { background: var(--site-accent); color: var(--site-bg); }
.site-theme :is(.bg-white, .bg-gray-50, .bg-gray-100) {
  background-color: var(--site-surface);
  color: var(--site-text);
}
.site-theme :is(.bg-gray-200, .bg-gray-300) { background-color: var(--site-field); }
.site-theme :is(.text-black, .text-gray-800, .text-gray-900) { color: var(--site-text); }
.site-theme :is(.text-gray-500, .text-gray-600, .text-gray-700) { color: var(--site-muted); }
.site-theme :is(.border-gray-100, .border-gray-200, .border-gray-300, .border-gray-400, hr) { border-color: var(--site-border); }
.site-theme :is(.bg-blue-50, .bg-blue-100, .bg-green-50, .bg-green-100) {
  background-color: #2d251f;
  color: #e8c3ad;
}
.site-theme :is(.text-blue-400, .text-blue-500, .text-blue-600, .text-blue-700) { color: var(--site-accent-hover); }
.site-theme :is(input:not([type='checkbox']):not([type='radio']):not([type='color']):not([type='range']):not([type='button']):not([type='submit']), textarea, select) {
  background-color: var(--site-field);
  color: var(--site-text);
  border-color: var(--site-border);
  border-radius: 3px;
}
.site-theme :is(input, textarea)::placeholder { color: #a2abb1; opacity: 1; }
.site-theme :is(input, progress) { accent-color: var(--site-accent); }
.site-theme option { background: var(--site-field); color: var(--site-text); }
.site-theme :is(button, a, input[type='submit']):is(.bg-blue-400, .bg-blue-500, .bg-blue-600, .bg-blue-700, .bg-green-400, .bg-green-500, .bg-green-600, .btn-primary) {
  background-color: var(--site-accent);
  color: #151719;
  border-color: var(--site-accent);
  border-radius: 3px;
}
.site-theme :is(button, a, input[type='submit']):is(.bg-blue-400, .bg-blue-500, .bg-blue-600, .bg-blue-700, .bg-green-400, .bg-green-500, .bg-green-600, .btn-primary):hover {
  background-color: var(--site-accent-hover);
  color: #151719;
}
.site-theme :is(button, a):is(.bg-white, .bg-gray-100, .bg-gray-200):hover { background-color: #343b40; color: var(--site-text); }
.site-theme :is(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--site-accent);
  outline-offset: 3px;
  --tw-ring-color: var(--site-accent);
}
.site-theme :is(button, input, select):disabled { opacity: .5; cursor: not-allowed; }
.site-theme input::file-selector-button { background: #343b40; color: var(--site-text); border: 1px solid var(--site-border); padding: 5px 10px; margin-right: 10px; }
.site-theme :is(.shadow-lg, .shadow-md, .shadow) { box-shadow: 0 0 0 1px #343b40; }
.site-theme :is(.rounded-lg, .rounded-md, .rounded) { border-radius: 3px; }
.site-theme :is(th, td) { border-color: var(--site-border); }
.site-theme thead { background: var(--site-field); }
@media print {
  body.site-theme, .site-theme :is(.bg-white, .bg-gray-50, .bg-gray-100, .bg-gray-200) { background: white; color: black; }
  .site-theme :is(.text-gray-500, .text-gray-600, .text-gray-700, .text-gray-800, .text-gray-900) { color: black; }
}
/* Keep completed/approved actions distinguishable from ordinary actions. */
.site-theme button.bg-green-600, .site-theme button.bg-green-600:hover {
  background-color: #244d39;
  color: #d2f4df;
  border-color: #528468;
}

:root { --theme-scheme: dark; }
:root[data-theme="light"] {
  --theme-scheme: light;
  --site-bg: #eeede8;
  --site-surface: #faf9f5;
  --site-field: #e7e7e1;
  --site-border: #aeb5b8;
  --site-text: #24282b;
  --site-muted: #536068;
  --site-accent: #b94311;
  --site-accent-hover: #99380e;
}
[data-theme="light"] .site-theme :is(button, a, input[type='submit']):is(.bg-blue-400, .bg-blue-500, .bg-blue-600, .bg-blue-700, .bg-green-400, .bg-green-500, .bg-green-600, .btn-primary) { color: #fffaf5; }
[data-theme="light"] .site-theme :is(input, textarea)::placeholder { color: #606b72; }
[data-theme="light"] .site-theme :is(.bg-blue-50, .bg-blue-100, .bg-green-50, .bg-green-100) { background: #f3e4d8; color: #653916; }
[data-theme="light"] .site-theme :is(button, a):is(.bg-white, .bg-gray-100, .bg-gray-200):hover,
[data-theme="light"] .site-theme input::file-selector-button { background: #d8dcd9; color: #24282b; }
[data-theme="light"] .site-theme :is(.shadow-lg, .shadow-md, .shadow) { box-shadow: 0 0 0 1px #ccd0cc; }
[data-theme="light"] .site-theme button.bg-green-600 { background: #d8ebde; color: #22523a; }
.theme-toggle { cursor: pointer; font: inherit; font-size: 11px; padding: 7px 10px; background: var(--site-surface); color: var(--site-text); border: 1px solid var(--site-border); white-space: nowrap; }
.theme-toggle:hover { border-color: var(--site-accent); color: var(--site-accent); }
.theme-toggle:focus-visible { outline: 2px solid var(--site-accent); outline-offset: 3px; }
.theme-toggle[hidden], .custom-theme > .theme-toggle-floating, .workspace-theme > .theme-toggle-floating { display: none; }
.theme-toggle-floating { position: fixed; bottom: 16px; right: 16px; z-index: 50; }
@media (max-width: 480px) { .menu-right { gap: 8px; } .menu-right time { display: none; } }
@media print { .theme-toggle { display: none !important; } }
