/* GENERATED by patches/gen_themes.py - edit the design table there, not this file.
   A skin is a design language: palette (dark + light), typography, shape, and button/card character.
   Structural tokens live on html[data-skin]; palettes on html[data-skin][data-theme]. design.css applies them.
   The accent can still be overridden per shop (inline --accent). */
html[data-skin="nexa"][data-theme="dark"] { --bg:#0b0a0f; --bg-2:#131119; --panel:#15131b; --ink:#f5f4f8; --ink-dim:#8b879a; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#a879ff; --accent-2:#d6c0ff; --on-accent:#ffffff; }
html[data-skin="nexa"][data-theme="light"] { --bg:#f6f5fa; --bg-2:#ecebf4; --panel:#ffffff; --ink:#17141f; --ink-dim:#6b6680; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#6d3fe0; --accent-2:#4c28a8; --on-accent:#ffffff; }
html[data-skin="stockholm"] { --font-body:'Manrope','NexaAr','Segoe UI',sans-serif; --font-head:'Manrope','NexaAr',sans-serif; --r-ctl:12px; --r-card:20px; --btn-bg:var(--accent); --btn-color:var(--on-accent); --btn-border:0; --btn-shadow:0 8px 18px -10px var(--accent); --btn-tt:none; --btn-ls:0; --btn-fw:600; --h-fw:700; --h-ls:-.015em; --card-border:1px solid var(--line); --card-shadow:0 1px 2px rgba(20,23,28,.04), 0 12px 28px -18px rgba(20,23,28,.18); --nav-r:12px; --bg-fx:none; --glass:0; }
html[data-skin="stockholm"][data-theme="dark"] { --bg:#0f1216; --bg-2:#151a20; --panel:#171c23; --ink:#f2f4f7; --ink-dim:#8a94a3; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#7c97ff; --accent-2:#b8c6ff; --on-accent:#0b0b0d; }
html[data-skin="stockholm"][data-theme="light"] { --bg:#f5f4f1; --bg-2:#ecebe6; --panel:#ffffff; --ink:#14171c; --ink-dim:#6b7079; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#3355ff; --accent-2:#1f3ac7; --on-accent:#ffffff; }
html[data-skin="zurich"] { --font-body:'Inter','NexaAr','Helvetica Neue',Arial,sans-serif; --font-head:'Inter','NexaAr','Helvetica Neue',Arial,sans-serif; --r-ctl:2px; --r-card:2px; --btn-bg:var(--accent); --btn-color:var(--on-accent); --btn-border:0; --btn-shadow:none; --btn-tt:uppercase; --btn-ls:.07em; --btn-fw:700; --h-fw:800; --h-ls:-.025em; --card-border:1px solid var(--ink-rule); --card-shadow:none; --nav-r:0px; --bg-fx:none; --glass:0; }
html[data-skin="zurich"][data-theme="dark"] { --bg:#0a0a0a; --bg-2:#111111; --panel:#0f0f0f; --ink:#f5f5f5; --ink-dim:#9a9a9a; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#ff3b3b; --accent-2:#ff9a9a; --on-accent:#ffffff; }
html[data-skin="zurich"][data-theme="light"] { --bg:#f2f2f2; --bg-2:#e8e8e8; --panel:#ffffff; --ink:#0a0a0a; --ink-dim:#5e5e5e; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#da291c; --accent-2:#9f1b12; --on-accent:#ffffff; }
html[data-skin="milano"] { --font-body:'Inter','NexaAr','Segoe UI',sans-serif; --font-head:'Playfair Display','Noto Naskh Arabic',Georgia,serif; --r-ctl:4px; --r-card:6px; --btn-bg:var(--accent); --btn-color:var(--on-accent); --btn-border:0; --btn-shadow:inset 0 -2px 0 rgba(0,0,0,.22); --btn-tt:uppercase; --btn-ls:.14em; --btn-fw:600; --h-fw:600; --h-ls:0; --card-border:1px solid var(--line); --card-shadow:0 20px 40px -32px rgba(0,0,0,.6); --nav-r:4px; --bg-fx:none; --glass:0; }
html[data-skin="milano"][data-theme="dark"] { --bg:#0c0a0a; --bg-2:#141010; --panel:#171212; --ink:#f6efea; --ink-dim:#9b8e86; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#d94a52; --accent-2:#f2a3a7; --on-accent:#ffffff; }
html[data-skin="milano"][data-theme="light"] { --bg:#f4efe7; --bg-2:#ebe4d8; --panel:#fbf8f3; --ink:#14100e; --ink-dim:#74695f; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#8c1d2c; --accent-2:#5e121d; --on-accent:#ffffff; }
html[data-skin="paris"] { --font-body:'Jost','NexaAr','Segoe UI',sans-serif; --font-head:'Cormorant Garamond','Noto Naskh Arabic',Georgia,serif; --r-ctl:0px; --r-card:0px; --btn-bg:transparent; --btn-color:var(--ink); --btn-border:1px solid var(--accent); --btn-shadow:none; --btn-tt:uppercase; --btn-ls:.2em; --btn-fw:500; --h-fw:600; --h-ls:.01em; --card-border:1px solid var(--line); --card-shadow:none; --nav-r:0px; --bg-fx:none; --glass:0; }
html[data-skin="paris"][data-theme="dark"] { --bg:#0b0b0c; --bg-2:#121213; --panel:#141415; --ink:#f4efe6; --ink-dim:#958d80; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#c9a45c; --accent-2:#e7d3a4; --on-accent:#0b0b0d; }
html[data-skin="paris"][data-theme="light"] { --bg:#f8f4ec; --bg-2:#efe8da; --panel:#fffdf9; --ink:#1a1714; --ink-dim:#7b7268; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#9c7a3c; --accent-2:#6f5528; --on-accent:#ffffff; }
html[data-skin="berlin"] { --font-body:'Space Grotesk','NexaAr','Segoe UI',sans-serif; --font-head:'Space Grotesk','NexaAr',sans-serif; --r-ctl:6px; --r-card:8px; --btn-bg:var(--accent); --btn-color:var(--on-accent); --btn-border:2px solid var(--ink-rule); --btn-shadow:3px 3px 0 var(--ink-rule); --btn-tt:none; --btn-ls:0; --btn-fw:700; --h-fw:700; --h-ls:-.02em; --card-border:2px solid var(--ink-rule); --card-shadow:none; --nav-r:6px; --bg-fx:none; --glass:0; }
html[data-skin="berlin"][data-theme="dark"] { --bg:#121212; --bg-2:#1a1a1a; --panel:#1c1c1c; --ink:#ededed; --ink-dim:#8c8c86; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#ffc629; --accent-2:#ffe08a; --on-accent:#0b0b0d; }
html[data-skin="berlin"][data-theme="light"] { --bg:#e8e7e3; --bg-2:#dad9d4; --panel:#f5f4f0; --ink:#1a1a1a; --ink-dim:#6a6a66; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#f2b600; --accent-2:#b98700; --on-accent:#0b0b0d; }
html[data-skin="copenhagen"] { --font-body:'Outfit','NexaAr','Segoe UI',sans-serif; --font-head:'Outfit','NexaAr',sans-serif; --r-ctl:14px; --r-card:26px; --btn-bg:linear-gradient(180deg, color-mix(in srgb, var(--accent) 100%, #fff), var(--accent)); --btn-color:var(--on-accent); --btn-border:0; --btn-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 10px 24px -14px rgba(0,0,0,.55); --btn-tt:none; --btn-ls:.01em; --btn-fw:500; --h-fw:500; --h-ls:-.01em; --card-border:1px solid var(--line); --card-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 24px 48px -28px rgba(0,0,0,.6); --nav-r:14px; --bg-fx:radial-gradient(90% 60% at 80% -10%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 60%); --glass:1; }
html[data-skin="copenhagen"][data-theme="dark"] { --bg:#0d0e10; --bg-2:#141518; --panel:#16181b; --ink:#f1f3f5; --ink-dim:#8b9098; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#d5d9de; --accent-2:#9aa1aa; --on-accent:#0b0b0d; }
html[data-skin="copenhagen"][data-theme="light"] { --bg:#eff1f3; --bg-2:#e4e7ea; --panel:#fafbfc; --ink:#16181b; --ink-dim:#6c737b; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#3a4048; --accent-2:#22262b; --on-accent:#ffffff; }
html[data-skin="london"] { --font-body:'Source Sans 3','NexaAr','Segoe UI',sans-serif; --font-head:'Libre Baskerville','Noto Naskh Arabic',Georgia,serif; --r-ctl:4px; --r-card:4px; --btn-bg:var(--accent); --btn-color:var(--on-accent); --btn-border:1px solid var(--accent-2); --btn-shadow:none; --btn-tt:uppercase; --btn-ls:.09em; --btn-fw:600; --h-fw:700; --h-ls:0; --card-border:1px solid var(--line); --card-shadow:0 1px 0 rgba(255,255,255,.04); --nav-r:3px; --bg-fx:none; --glass:0; }
html[data-skin="london"][data-theme="dark"] { --bg:#0a0e17; --bg-2:#0f1522; --panel:#121a2b; --ink:#f1eee8; --ink-dim:#8e97ab; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#c9a06b; --accent-2:#e4cba3; --on-accent:#0b0b0d; }
html[data-skin="london"][data-theme="light"] { --bg:#f3efe8; --bg-2:#e9e3d8; --panel:#fcfaf6; --ink:#10182b; --ink-dim:#5f6577; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#15294b; --accent-2:#b98b5a; --on-accent:#ffffff; }
html[data-skin="amsterdam"] { --font-body:'DM Sans','NexaAr','Segoe UI',sans-serif; --font-head:'DM Sans','NexaAr',sans-serif; --r-ctl:16px; --r-card:24px; --btn-bg:var(--accent); --btn-color:var(--on-accent); --btn-border:0; --btn-shadow:0 10px 20px -10px var(--accent), inset 0 -3px 0 rgba(0,0,0,.14); --btn-tt:none; --btn-ls:0; --btn-fw:700; --h-fw:800; --h-ls:-.02em; --card-border:1px solid var(--line); --card-shadow:0 14px 30px -22px rgba(14,26,51,.35); --nav-r:16px; --bg-fx:none; --glass:0; }
html[data-skin="amsterdam"][data-theme="dark"] { --bg:#0b1020; --bg-2:#111833; --panel:#131b36; --ink:#f0f4ff; --ink-dim:#8a97bb; --line:rgba(255,255,255,.12); --ink-rule:rgba(255,255,255,.55); --shadow:rgba(0,0,0,.5); --accent:#ff8a3d; --accent-2:#ffc59a; --on-accent:#0b0b0d; }
html[data-skin="amsterdam"][data-theme="light"] { --bg:#f6f8fc; --bg-2:#eaeff8; --panel:#ffffff; --ink:#0e1a33; --ink-dim:#5f6e8c; --line:rgba(20,20,30,.12); --ink-rule:rgba(10,10,10,.88); --shadow:rgba(30,20,50,.12); --accent:#e8590c; --accent-2:#b13e00; --on-accent:#ffffff; }
