/* Shared Kissa palette. Covers the SPA and server-rendered public pages.
   Physical deck materials and functional success/danger/mode colors stay intact. */
:root{
  color-scheme:dark;
  --ld-bg:#282d20; --ld-bg-rgb:40 45 32;
  --ld-header:#24291e; --ld-header-rgb:36 41 30;
  --ld-panel:#303526; --ld-panel-rgb:48 53 38;
  --ld-raised:#383e2d; --ld-raised-rgb:56 62 45;
  --ld-control:#414833; --ld-control-rgb:65 72 51;
  --ld-ink:#eee6d4; --ld-ink-rgb:238 230 212;
  --ld-muted:#c3bfaa; --ld-dim:#b9b69e;
  --ld-accent:#d7b475; --ld-accent-rgb:215 180 117;
  --ld-accent-text:#e3c68f; --ld-accent-hover:#f1dab1;
  --ld-border:#66664b; --ld-border-rgb:102 102 75;
  --ld-control-border:#81816b;
  /* Existing server templates use these names. */
  --fondo:var(--ld-bg); --tinta:var(--ld-ink); --gris:var(--ld-muted);
  --ambar:var(--ld-accent); --borde:var(--ld-border); --panel:var(--ld-header);
}
body{background:var(--ld-bg);color:var(--ld-ink);}
body::after{content:none;background:none;}
.te-vignette{box-shadow:none;}
::selection{background:var(--ld-accent);color:var(--ld-header);}
input::placeholder,textarea::placeholder{color:var(--ld-dim);opacity:1;}

/* Exact utility selectors: hover/focus colors apply only in those states. */
.bg-black{background-color:var(--ld-bg)!important;}
.bg-black\/20{background-color:rgb(var(--ld-bg-rgb) / 0.2)!important;}
.bg-black\/25{background-color:rgb(var(--ld-bg-rgb) / 0.25)!important;}
.bg-black\/30{background-color:rgb(var(--ld-bg-rgb) / 0.3)!important;}
.bg-black\/40{background-color:rgb(var(--ld-bg-rgb) / 0.4)!important;}
.bg-black\/55{background-color:rgb(var(--ld-bg-rgb) / 0.55)!important;}
.bg-black\/60{background-color:rgb(var(--ld-bg-rgb) / 0.6)!important;}
.bg-black\/70{background-color:rgb(var(--ld-bg-rgb) / 0.7)!important;}
.bg-black\/90{background-color:rgb(var(--ld-header-rgb) / .97)!important;}
.bg-zinc-100{background-color:var(--ld-ink)!important;}
.bg-zinc-300{background-color:var(--ld-muted)!important;}
.bg-zinc-400{background-color:var(--ld-dim)!important;}
.bg-zinc-800{background-color:var(--ld-control)!important;}
.bg-zinc-900{background-color:var(--ld-raised)!important;}
.bg-zinc-900\/40{background-color:rgb(var(--ld-raised-rgb) / 0.4)!important;}
.bg-zinc-900\/60{background-color:rgb(var(--ld-raised-rgb) / 0.6)!important;}
.bg-zinc-900\/70{background-color:rgb(var(--ld-raised-rgb) / 0.7)!important;}
.bg-zinc-900\/80{background-color:rgb(var(--ld-raised-rgb) / 0.8)!important;}
.bg-zinc-950{background-color:var(--ld-panel)!important;}
.bg-zinc-950\/30{background-color:rgb(var(--ld-panel-rgb) / 0.3)!important;}
.bg-zinc-950\/40{background-color:rgb(var(--ld-panel-rgb) / 0.4)!important;}
.bg-zinc-950\/50{background-color:rgb(var(--ld-panel-rgb) / 0.5)!important;}
.bg-zinc-950\/95{background-color:rgb(var(--ld-panel-rgb) / 0.95)!important;}
.border-zinc-100{border-color:var(--ld-ink)!important;}
.border-zinc-600{border-color:var(--ld-control-border)!important;}
.border-zinc-700{border-color:var(--ld-control-border)!important;}
.border-zinc-700\/40{border-color:color-mix(in srgb, var(--ld-control-border) 40%, transparent)!important;}
.border-zinc-700\/60{border-color:color-mix(in srgb, var(--ld-control-border) 60%, transparent)!important;}
.border-zinc-800{border-color:var(--ld-border)!important;}
.border-zinc-800\/80{border-color:rgb(var(--ld-border-rgb) / 0.8)!important;}
.border-zinc-900{border-color:var(--ld-border)!important;}
.border-zinc-900\/60{border-color:rgb(var(--ld-border-rgb) / 0.6)!important;}
.border-zinc-900\/80{border-color:rgb(var(--ld-border-rgb) / 0.8)!important;}
.hover\:bg-zinc-700:hover{background-color:var(--ld-control)!important;}
.hover\:bg-zinc-800:hover{background-color:var(--ld-control)!important;}
.hover\:bg-zinc-900:hover{background-color:var(--ld-raised)!important;}
.hover\:bg-zinc-900\/40:hover{background-color:rgb(var(--ld-raised-rgb) / 0.4)!important;}
.hover\:bg-zinc-900\/60:hover{background-color:rgb(var(--ld-raised-rgb) / 0.6)!important;}
.hover\:bg-zinc-900\/70:hover{background-color:rgb(var(--ld-raised-rgb) / 0.7)!important;}
.hover\:border-zinc-600:hover{border-color:var(--ld-control-border)!important;}
.hover\:border-zinc-700:hover{border-color:var(--ld-control-border)!important;}
.hover\:text-zinc-100:hover{color:var(--ld-ink)!important;}
.hover\:text-zinc-200:hover{color:var(--ld-ink)!important;}
.hover\:text-zinc-300:hover{color:var(--ld-muted)!important;}
.text-zinc-100{color:var(--ld-ink)!important;}
.text-zinc-200{color:var(--ld-ink)!important;}
.text-zinc-300{color:var(--ld-muted)!important;}
.text-zinc-400{color:var(--ld-muted)!important;}
.text-zinc-500{color:var(--ld-dim)!important;}
.text-zinc-600{color:var(--ld-dim)!important;}
.text-zinc-700{color:var(--ld-dim)!important;}

/* Amber utility states keep the existing matching semantics. */
  [class*="bg-amber-1"],[class*="bg-amber-2"],[class*="bg-amber-4"],[class*="bg-amber-5"],[class*="bg-amber-3"]:not([class*="hover:bg-amber-3"]){background-color:var(--ld-accent)!important;}
  [class*="hover:bg-amber-3"]:hover{background-color:var(--ld-accent)!important;}
  [class*="text-amber-1"],[class*="text-amber-5"],[class*="text-amber-2"]:not([class*="hover:text-amber-2"]),[class*="text-amber-3"]:not([class*="hover:text-amber-3"]),[class*="text-amber-4"]:not([class*="hover:text-amber-4"]){color:var(--ld-accent-text)!important;}
  [class*="hover:text-amber-2"]:hover,[class*="hover:text-amber-3"]:hover,[class*="hover:text-amber-4"]:hover{color:var(--ld-accent-text)!important;}
  [class*="border-amber-1"],[class*="border-amber-2"],[class*="border-amber-3"],[class*="border-amber-4"]:not([class*="hover:border-amber-4"]),[class*="border-amber-5"]:not([class*="hover:border-amber-5"]):not([class*="focus:border-amber-5"]):not([class*="focus-within:border-amber-5"]){border-color:var(--ld-accent)!important;}
  [class*="hover:border-amber-4"]:hover,[class*="hover:border-amber-5"]:hover{border-color:var(--ld-accent)!important;}
  [class*="focus:border-amber-5"]:focus{border-color:var(--ld-accent)!important;}
  [class*="focus-within:border-amber-5"]:focus-within{border-color:var(--ld-accent)!important;}

/* Shared controls: no size or layout changes. More specific deck rules still win. */
.te-card{position:relative;border-color:rgb(var(--ld-border-rgb) / .45)!important;box-shadow:0 8px 20px -14px #10150c99;}
.te-card::after,.te-djsets-banner::after{content:none;}
.te-card:hover{border-color:rgb(var(--ld-accent-rgb) / .65)!important;box-shadow:0 8px 20px -10px #10150c99!important;}
.te-btn-primary{background:var(--ld-accent);color:var(--ld-header);box-shadow:none;}
.te-btn-primary:hover:not(:disabled){background:var(--ld-accent-text);box-shadow:0 3px 8px #10150c30;}
.te-btn-primary:active:not(:disabled){box-shadow:none;}
.te-btn-primary:is(.te-accent-rose,.te-accent-emerald,.te-accent-violet){box-shadow:none;}
.te-btn-primary.te-accent-rose:hover:not(:disabled){background:#D06848;}
.te-btn-primary.te-accent-emerald:hover:not(:disabled){background:#9FB56A;}
.te-btn-primary.te-accent-violet:hover:not(:disabled){background:#AC7A9D;}
.te-btn-ghost,.te-btn-ghost-sm{border-color:var(--ld-control-border);color:var(--ld-muted);}
.te-btn-ghost:hover,.te-btn-ghost-sm:hover{border-color:var(--ld-accent);color:var(--ld-accent-text);background:rgb(var(--ld-accent-rgb) / .08);}
.te-input{background:var(--ld-header);border-color:var(--ld-control-border);color:var(--ld-ink);}
.te-input::placeholder{color:var(--ld-dim);}
.te-input:focus{border-color:var(--ld-accent);box-shadow:0 0 0 3px rgb(var(--ld-accent-rgb) / .15);}
.te-modal-overlay{background:rgb(var(--ld-header-rgb) / .8);}
.te-modal-shell{background:var(--ld-panel);border-color:var(--ld-border);box-shadow:0 20px 60px -20px #10150c99;}
.te-close-btn{color:var(--ld-accent-text);background:rgb(var(--ld-accent-rgb) / .1);border-color:rgb(var(--ld-accent-rgb) / .45);}
.te-close-btn:hover{color:var(--ld-accent-hover);background:rgb(var(--ld-accent-rgb) / .18);}
.te-close-btn-sm{color:var(--ld-dim);}
.te-row-card{background:var(--ld-panel);border-color:rgb(var(--ld-border-rgb) / .5);}
.te-row-card:hover{background:var(--ld-raised);border-color:var(--ld-accent);box-shadow:0 8px 18px #10150c33;}
.te-empty-state{color:var(--ld-dim);border-color:var(--ld-border);}
.te-skeleton{background-image:linear-gradient(90deg,var(--ld-panel) 0%,var(--ld-raised) 40%,var(--ld-panel) 80%);}
.te-bdx-solid{background:var(--ld-raised);color:var(--ld-ink);border-color:var(--ld-border);}
.te-bdx-line{border-color:var(--ld-control-border);color:var(--ld-muted);}
.te-bdx-line:hover{background:rgb(var(--ld-accent-rgb) / .08);}
.te-bdx-bar{background:var(--ld-header);border-color:var(--ld-border);}
.te-bdx-text{color:var(--ld-muted);}
.te-bdx-text-dim{color:var(--ld-dim);}
.te-bdx-card-sel{border-color:var(--ld-accent)!important;--tw-ring-color:rgb(var(--ld-accent-rgb) / .5);}
.te-djsets-banner{background:var(--ld-panel);color:var(--ld-ink);border-color:var(--ld-border);box-shadow:none;}
.te-djsets-banner .te-djsets-sub{color:var(--ld-accent-text);}
.te-djsets-banner:hover{border-color:var(--ld-accent);box-shadow:0 8px 20px -10px #10150c66;}

/* Standalone public pages share tokens without changing their content or type. */
body[data-theme-page] :is(input,textarea){background:var(--ld-header);border-color:var(--ld-control-border);color:var(--ld-ink);}
body[data-theme-page] :is(input,textarea)::placeholder{color:var(--ld-dim);}
body[data-theme-page] :is(input,textarea):focus{border-color:var(--ld-accent);}
body[data-theme-page] :is(a,button,input,textarea):focus-visible{outline:2px solid var(--ld-accent-text);outline-offset:4px;}
body[data-theme-page="legal"] button{color:var(--ld-header);}
body[data-theme-page="not-found"] h1 em{color:var(--ld-accent);}
body[data-theme-page="not-found"] p{color:var(--ld-muted);}
body[data-theme-page="not-found"] a{background:var(--ld-accent);color:var(--ld-header);}
