/* Havoc themes - generated by Havoc (app/core/themes.py), do not edit. */

:root[data-theme="havoc"] {
  --danger: #c4320a;
  --ok: #067647;
  --warn: #9a5b06;
  --info: #175cd3;
  --bg: #f4f5fb;
  --surface: #ffffff;
  --surface-2: #f1f2f8;
  --border: #e3e5ef;
  --text: #12141f;
  --muted: #5d6275;
  --accent: #4f46e5;
  --accent-2: #7c3aed;
  --accent-hover: #4338ca;
  --accent-soft: #eef0ff;
  --accent-text: #ffffff;
  --danger-soft: #f9eae6;
  --ok-soft: #e6f1ed;
  --warn-soft: #f5efe6;
  --info-soft: #e8effb;
  --glow: rgba(79, 70, 229, 0.09);
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-lg: 0 12px 28px -8px rgba(16, 24, 40, 0.14), 0 4px 10px -4px rgba(16, 24, 40, 0.06);
  --danger-bg: #f9eae6;
  --ok-bg: #e6f1ed;
  --warn-bg: #f5efe6;
  --radius: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="havoc"]:not([data-mode="light"]) {
    --danger: #ff8a7a;
    --ok: #5fe0a0;
    --warn: #ffc65c;
    --info: #84caff;
    --bg: #0c0d16;
    --surface: #151726;
    --surface-2: #1c1f31;
    --border: #262a40;
    --text: #e9eaf4;
    --muted: #9a9fba;
    --accent: #8b85ff;
    --accent-2: #b18cff;
    --accent-hover: #a9a4ff;
    --accent-soft: #211f45;
    --accent-text: #0c0b1f;
    --danger-soft: #442e37;
    --ok-soft: #243f3e;
    --warn-soft: #443a31;
    --info-soft: #2b3b51;
    --glow: rgba(139, 133, 255, 0.08);
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
    --danger-bg: #442e37;
    --ok-bg: #243f3e;
    --warn-bg: #443a31;
    --radius: 14px;
    color-scheme: dark;
  }
}
:root[data-theme="havoc"][data-mode="dark"] {
  --danger: #ff8a7a;
  --ok: #5fe0a0;
  --warn: #ffc65c;
  --info: #84caff;
  --bg: #0c0d16;
  --surface: #151726;
  --surface-2: #1c1f31;
  --border: #262a40;
  --text: #e9eaf4;
  --muted: #9a9fba;
  --accent: #8b85ff;
  --accent-2: #b18cff;
  --accent-hover: #a9a4ff;
  --accent-soft: #211f45;
  --accent-text: #0c0b1f;
  --danger-soft: #442e37;
  --ok-soft: #243f3e;
  --warn-soft: #443a31;
  --info-soft: #2b3b51;
  --glow: rgba(139, 133, 255, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
  --danger-bg: #442e37;
  --ok-bg: #243f3e;
  --warn-bg: #443a31;
  --radius: 14px;
  color-scheme: dark;
}

:root[data-theme="studio"] {
  --danger: #c4320a;
  --ok: #067647;
  --warn: #9a5b06;
  --info: #175cd3;
  --bg: #f4f6f6;
  --surface: #ffffff;
  --surface-2: #f0f3f3;
  --border: #e3e8e8;
  --text: #101828;
  --muted: #5b6672;
  --accent: #0d9488;
  --accent-2: #0891b2;
  --accent-hover: #0f766e;
  --accent-soft: #e3f5f2;
  --accent-text: #ffffff;
  --danger-soft: #f9eae6;
  --ok-soft: #e6f1ed;
  --warn-soft: #f5efe6;
  --info-soft: #e8effb;
  --glow: rgba(13, 148, 136, 0.09);
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-lg: 0 12px 28px -8px rgba(16, 24, 40, 0.14), 0 4px 10px -4px rgba(16, 24, 40, 0.06);
  --danger-bg: #f9eae6;
  --ok-bg: #e6f1ed;
  --warn-bg: #f5efe6;
  --radius: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="studio"]:not([data-mode="light"]) {
    --danger: #f97066;
    --ok: #47cd89;
    --warn: #fdb022;
    --info: #84caff;
    --bg: #0b0f11;
    --surface: #12181b;
    --surface-2: #192125;
    --border: #243036;
    --text: #e8eef0;
    --muted: #91a0a8;
    --accent: #2dd4bf;
    --accent-2: #22d3ee;
    --accent-hover: #5eead4;
    --accent-soft: #0e2d2a;
    --accent-text: #04201d;
    --danger-soft: #402a2a;
    --ok-soft: #1d3c31;
    --warn-soft: #41361c;
    --info-soft: #293c49;
    --glow: rgba(45, 212, 191, 0.08);
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
    --danger-bg: #402a2a;
    --ok-bg: #1d3c31;
    --warn-bg: #41361c;
    --radius: 14px;
    color-scheme: dark;
  }
}
:root[data-theme="studio"][data-mode="dark"] {
  --danger: #f97066;
  --ok: #47cd89;
  --warn: #fdb022;
  --info: #84caff;
  --bg: #0b0f11;
  --surface: #12181b;
  --surface-2: #192125;
  --border: #243036;
  --text: #e8eef0;
  --muted: #91a0a8;
  --accent: #2dd4bf;
  --accent-2: #22d3ee;
  --accent-hover: #5eead4;
  --accent-soft: #0e2d2a;
  --accent-text: #04201d;
  --danger-soft: #402a2a;
  --ok-soft: #1d3c31;
  --warn-soft: #41361c;
  --info-soft: #293c49;
  --glow: rgba(45, 212, 191, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
  --danger-bg: #402a2a;
  --ok-bg: #1d3c31;
  --warn-bg: #41361c;
  --radius: 14px;
  color-scheme: dark;
}

:root[data-theme="ocean"] {
  --danger: #c4320a;
  --ok: #067647;
  --warn: #9a5b06;
  --info: #175cd3;
  --bg: #f3f7fb;
  --surface: #ffffff;
  --text: #0f1b2d;
  --accent: #0369a1;
  --accent-2: #0891b2;
  --surface-2: #ecf0f5;
  --border: #dce1e6;
  --muted: #666f7b;
  --accent-hover: #035a8a;
  --accent-soft: #e1edf4;
  --accent-text: #ffffff;
  --danger-soft: #f9eae6;
  --ok-soft: #e6f1ed;
  --warn-soft: #f5efe6;
  --info-soft: #e8effb;
  --glow: rgba(3, 105, 161, 0.09);
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-lg: 0 12px 28px -8px rgba(16, 24, 40, 0.14), 0 4px 10px -4px rgba(16, 24, 40, 0.06);
  --danger-bg: #f9eae6;
  --ok-bg: #e6f1ed;
  --warn-bg: #f5efe6;
  --radius: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="ocean"]:not([data-mode="light"]) {
    --danger: #f97066;
    --ok: #47cd89;
    --warn: #fdb022;
    --info: #84caff;
    --bg: #08111c;
    --surface: #0f1a29;
    --text: #e6eef7;
    --accent: #38bdf8;
    --accent-2: #22d3ee;
    --surface-2: #151e29;
    --border: #2c343f;
    --muted: #929aa4;
    --accent-hover: #60caf9;
    --accent-soft: #173b52;
    --accent-text: #0b0b0f;
    --danger-soft: #3e2b35;
    --ok-soft: #1a3e3c;
    --warn-soft: #3f3828;
    --info-soft: #263d54;
    --glow: rgba(56, 189, 248, 0.08);
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
    --danger-bg: #3e2b35;
    --ok-bg: #1a3e3c;
    --warn-bg: #3f3828;
    --radius: 14px;
    color-scheme: dark;
  }
}
:root[data-theme="ocean"][data-mode="dark"] {
  --danger: #f97066;
  --ok: #47cd89;
  --warn: #fdb022;
  --info: #84caff;
  --bg: #08111c;
  --surface: #0f1a29;
  --text: #e6eef7;
  --accent: #38bdf8;
  --accent-2: #22d3ee;
  --surface-2: #151e29;
  --border: #2c343f;
  --muted: #929aa4;
  --accent-hover: #60caf9;
  --accent-soft: #173b52;
  --accent-text: #0b0b0f;
  --danger-soft: #3e2b35;
  --ok-soft: #1a3e3c;
  --warn-soft: #3f3828;
  --info-soft: #263d54;
  --glow: rgba(56, 189, 248, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
  --danger-bg: #3e2b35;
  --ok-bg: #1a3e3c;
  --warn-bg: #3f3828;
  --radius: 14px;
  color-scheme: dark;
}

:root[data-theme="forest"] {
  --danger: #c4320a;
  --ok: #067647;
  --warn: #9a5b06;
  --info: #175cd3;
  --bg: #f4f7f3;
  --surface: #ffffff;
  --text: #13201a;
  --accent: #15803d;
  --accent-2: #65a30d;
  --surface-2: #edf1ec;
  --border: #dee2dd;
  --muted: #68726c;
  --accent-hover: #126e34;
  --accent-soft: #e3f0e8;
  --accent-text: #ffffff;
  --danger-soft: #f9eae6;
  --ok-soft: #e6f1ed;
  --warn-soft: #f5efe6;
  --info-soft: #e8effb;
  --glow: rgba(21, 128, 61, 0.09);
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-lg: 0 12px 28px -8px rgba(16, 24, 40, 0.14), 0 4px 10px -4px rgba(16, 24, 40, 0.06);
  --danger-bg: #f9eae6;
  --ok-bg: #e6f1ed;
  --warn-bg: #f5efe6;
  --radius: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="forest"]:not([data-mode="light"]) {
    --danger: #f97066;
    --ok: #47cd89;
    --warn: #fdb022;
    --info: #84caff;
    --bg: #0a110d;
    --surface: #111a15;
    --text: #e6efe9;
    --accent: #4ade80;
    --accent-2: #a3e635;
    --surface-2: #171e1a;
    --border: #2d3530;
    --muted: #929b95;
    --accent-hover: #6ee599;
    --accent-soft: #1c412a;
    --accent-text: #0b0b0f;
    --danger-soft: #3f2b25;
    --ok-soft: #1c3e2c;
    --warn-soft: #403818;
    --info-soft: #283d44;
    --glow: rgba(74, 222, 128, 0.08);
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
    --danger-bg: #3f2b25;
    --ok-bg: #1c3e2c;
    --warn-bg: #403818;
    --radius: 14px;
    color-scheme: dark;
  }
}
:root[data-theme="forest"][data-mode="dark"] {
  --danger: #f97066;
  --ok: #47cd89;
  --warn: #fdb022;
  --info: #84caff;
  --bg: #0a110d;
  --surface: #111a15;
  --text: #e6efe9;
  --accent: #4ade80;
  --accent-2: #a3e635;
  --surface-2: #171e1a;
  --border: #2d3530;
  --muted: #929b95;
  --accent-hover: #6ee599;
  --accent-soft: #1c412a;
  --accent-text: #0b0b0f;
  --danger-soft: #3f2b25;
  --ok-soft: #1c3e2c;
  --warn-soft: #403818;
  --info-soft: #283d44;
  --glow: rgba(74, 222, 128, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
  --danger-bg: #3f2b25;
  --ok-bg: #1c3e2c;
  --warn-bg: #403818;
  --radius: 14px;
  color-scheme: dark;
}

:root[data-theme="sand"] {
  --danger: #c4320a;
  --ok: #067647;
  --warn: #9a5b06;
  --info: #175cd3;
  --bg: #f8f5f0;
  --surface: #fffdf9;
  --text: #2a2118;
  --accent: #c2410c;
  --accent-2: #d97706;
  --surface-2: #f2efea;
  --border: #e3e0da;
  --muted: #78726a;
  --accent-hover: #a7380a;
  --accent-soft: #f8e6dd;
  --accent-text: #ffffff;
  --danger-soft: #f9e9e1;
  --ok-soft: #e6f0e7;
  --warn-soft: #f5ede1;
  --info-soft: #e8edf5;
  --glow: rgba(194, 65, 12, 0.09);
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-lg: 0 12px 28px -8px rgba(16, 24, 40, 0.14), 0 4px 10px -4px rgba(16, 24, 40, 0.06);
  --danger-bg: #f9e9e1;
  --ok-bg: #e6f0e7;
  --warn-bg: #f5ede1;
  --radius: 12px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="sand"]:not([data-mode="light"]) {
    --danger: #f97066;
    --ok: #47cd89;
    --warn: #fdb022;
    --info: #84caff;
    --bg: #14110d;
    --surface: #1d1914;
    --text: #f1ebe2;
    --accent: #fb923c;
    --accent-2: #fbbf24;
    --surface-2: #211e1a;
    --border: #37342f;
    --muted: #9d9891;
    --accent-hover: #fca863;
    --accent-soft: #49311c;
    --accent-text: #0b0b0f;
    --danger-soft: #492a24;
    --ok-soft: #253d2b;
    --warn-soft: #4a3717;
    --info-soft: #323c43;
    --glow: rgba(251, 146, 60, 0.08);
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
    --danger-bg: #492a24;
    --ok-bg: #253d2b;
    --warn-bg: #4a3717;
    --radius: 12px;
    color-scheme: dark;
  }
}
:root[data-theme="sand"][data-mode="dark"] {
  --danger: #f97066;
  --ok: #47cd89;
  --warn: #fdb022;
  --info: #84caff;
  --bg: #14110d;
  --surface: #1d1914;
  --text: #f1ebe2;
  --accent: #fb923c;
  --accent-2: #fbbf24;
  --surface-2: #211e1a;
  --border: #37342f;
  --muted: #9d9891;
  --accent-hover: #fca863;
  --accent-soft: #49311c;
  --accent-text: #0b0b0f;
  --danger-soft: #492a24;
  --ok-soft: #253d2b;
  --warn-soft: #4a3717;
  --info-soft: #323c43;
  --glow: rgba(251, 146, 60, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
  --danger-bg: #492a24;
  --ok-bg: #253d2b;
  --warn-bg: #4a3717;
  --radius: 12px;
  color-scheme: dark;
}

:root[data-theme="graphite"] {
  --danger: #c4320a;
  --ok: #067647;
  --warn: #9a5b06;
  --info: #175cd3;
  --bg: #f5f5f4;
  --surface: #ffffff;
  --text: #18181b;
  --accent: #3f3f46;
  --surface-2: #eeeeed;
  --border: #dfdfde;
  --muted: #6c6c6d;
  --accent-2: #3f3f46;
  --accent-hover: #36363c;
  --accent-soft: #e8e8e9;
  --accent-text: #ffffff;
  --danger-soft: #f9eae6;
  --ok-soft: #e6f1ed;
  --warn-soft: #f5efe6;
  --info-soft: #e8effb;
  --glow: rgba(63, 63, 70, 0.09);
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-lg: 0 12px 28px -8px rgba(16, 24, 40, 0.14), 0 4px 10px -4px rgba(16, 24, 40, 0.06);
  --danger-bg: #f9eae6;
  --ok-bg: #e6f1ed;
  --warn-bg: #f5efe6;
  --radius: 10px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="graphite"]:not([data-mode="light"]) {
    --danger: #f97066;
    --ok: #47cd89;
    --warn: #fdb022;
    --info: #84caff;
    --bg: #0d0d0f;
    --surface: #17171a;
    --text: #ececef;
    --accent: #d4d4d8;
    --surface-2: #1a1a1c;
    --border: #313133;
    --muted: #97979a;
    --accent-2: #d4d4d8;
    --accent-hover: #dddde0;
    --accent-soft: #3d3d40;
    --accent-text: #0b0b0f;
    --danger-soft: #442929;
    --ok-soft: #213b30;
    --warn-soft: #45361c;
    --info-soft: #2d3b48;
    --glow: rgba(212, 212, 216, 0.08);
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
    --danger-bg: #442929;
    --ok-bg: #213b30;
    --warn-bg: #45361c;
    --radius: 10px;
    color-scheme: dark;
  }
}
:root[data-theme="graphite"][data-mode="dark"] {
  --danger: #f97066;
  --ok: #47cd89;
  --warn: #fdb022;
  --info: #84caff;
  --bg: #0d0d0f;
  --surface: #17171a;
  --text: #ececef;
  --accent: #d4d4d8;
  --surface-2: #1a1a1c;
  --border: #313133;
  --muted: #97979a;
  --accent-2: #d4d4d8;
  --accent-hover: #dddde0;
  --accent-soft: #3d3d40;
  --accent-text: #0b0b0f;
  --danger-soft: #442929;
  --ok-soft: #213b30;
  --warn-soft: #45361c;
  --info-soft: #2d3b48;
  --glow: rgba(212, 212, 216, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, 0.55);
  --danger-bg: #442929;
  --ok-bg: #213b30;
  --warn-bg: #45361c;
  --radius: 10px;
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {

}

/* ---- Personal appearance options (attributes on <html>) ---- */

/* Size: everything grows or shrinks together, like the browser's zoom. */
:root[data-scale="112"] body { zoom: 1.125; }
:root[data-scale="125"] body { zoom: 1.25; }

/* Motion: off on request (and when the system asks for it). */
:root[data-motion="reduce"] *, :root[data-motion="reduce"] *::before, :root[data-motion="reduce"] *::after {
  animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important; scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  :root *, :root *::before, :root *::after {
    animation-duration: 0.01ms !important; transition-duration: 0.01ms !important;
  }
}

/* More contrast: darker secondary text, stronger lines, visible focus. */
:root[data-contrast="more"] {
  --muted: color-mix(in srgb, var(--text) 84%, var(--bg)) !important;
  --border: color-mix(in srgb, var(--text) 42%, var(--surface)) !important;
  --hairline: var(--border) !important;
}
:root[data-contrast="more"] :focus-visible { outline: 3px solid var(--accent) !important; outline-offset: 2px !important; }

/* Links always underlined (not buttons, cards or navigation). */
:root[data-links="underline"] :is(main, article, .card) a:not(.button):not(.card):not([class*="nav"]) {
  text-decoration: underline !important; text-underline-offset: 2px;
}
