/* Сгенерировано tools/build_themes.py — руками не править */
@font-face{font-family:"K Lora";src:url(fonts/lora.woff) format("woff");font-weight:400 700;font-display:swap}
@font-face{font-family:"K Inter";src:url(fonts/inter-400.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"K Inter";src:url(fonts/inter-500.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"K Inter";src:url(fonts/inter-600.woff) format("woff");font-weight:600;font-display:swap}
@font-face{font-family:"K Inter";src:url(fonts/inter-700.woff) format("woff");font-weight:700 900;font-display:swap}
@font-face{font-family:"K Inter Display";src:url(fonts/interd-700.woff) format("woff");font-weight:500 900;font-display:swap}
@font-face{font-family:"K Liberation Mono";src:url(fonts/libmono-400.woff) format("woff");font-weight:400 500;font-display:swap}
@font-face{font-family:"K Liberation Mono";src:url(fonts/libmono-700.woff) format("woff");font-weight:600 900;font-display:swap}
@font-face{font-family:"K FreeMono";src:url(fonts/freemono-400.woff) format("woff");font-weight:400 500;font-display:swap}
@font-face{font-family:"K FreeMono";src:url(fonts/freemono-700.woff) format("woff");font-weight:600 900;font-display:swap}
@font-face{font-family:"K Unifont";src:url(fonts/unifont.woff) format("woff");font-weight:100 900;font-display:swap}
@font-face{font-family:"K Liberation Serif";src:url(fonts/libserif-700.woff) format("woff");font-weight:400 900;font-display:swap}
@font-face{font-family:"K Liberation Sans";src:url(fonts/libsans-400.woff) format("woff");font-weight:400 500;font-display:swap}
@font-face{font-family:"K Liberation Sans";src:url(fonts/libsans-700.woff) format("woff");font-weight:600 900;font-display:swap}
@font-face{font-family:"K FreeSerif";src:url(fonts/freeserif-400.woff) format("woff");font-weight:400 500;font-display:swap}
@font-face{font-family:"K FreeSerif";src:url(fonts/freeserif-700.woff) format("woff");font-weight:600 900;font-display:swap}
@font-face{font-family:"K Carlito";src:url(fonts/carlito-400.woff) format("woff");font-weight:400 500;font-display:swap}
@font-face{font-family:"K Carlito";src:url(fonts/carlito-700.woff) format("woff");font-weight:600 900;font-display:swap}
/* ===== фон ===== */
body[data-bgs=flat]{background:var(--ink)}
body[data-bgs=grad]{background:linear-gradient(160deg,var(--bg2),var(--ink) 60%)}
body[data-bgs=mesh]{background:radial-gradient(60% 50% at 10% 10%,color-mix(in srgb,#ff6fd8 60%,transparent),transparent 60%),radial-gradient(60% 50% at 90% 20%,color-mix(in srgb,#3813c2 55%,transparent),transparent 60%),radial-gradient(70% 60% at 50% 100%,color-mix(in srgb,#00c9ff 60%,transparent),transparent 60%),linear-gradient(160deg,var(--ink),var(--bg2))}
body[data-mode=light][data-bgs=mesh]{background:radial-gradient(60% 50% at 10% 10%,#ffc6ee,transparent 60%),radial-gradient(60% 50% at 90% 20%,#cfc4ff,transparent 60%),radial-gradient(70% 60% at 50% 100%,#bfefff,transparent 60%),var(--ink)}
body[data-bgs=girih]{background:repeating-conic-gradient(from 45deg at 50% 50%,color-mix(in srgb,var(--teal) 10%,transparent) 0 25%,transparent 0 50%) 0 0/36px 36px,linear-gradient(180deg,var(--ink),var(--bg2))}
body[data-bgs=scan]{background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--text) 6%,transparent) 0 1px,transparent 1px 3px),var(--ink)}
body[data-bgs=band]{background:linear-gradient(180deg,var(--band) 0 150px,var(--ink) 150px)}
body[data-bgs=dots]{background:radial-gradient(color-mix(in srgb,var(--gold) 35%,transparent) 1px,transparent 1.5px) 0 0/16px 16px,var(--ink)}
body[data-bgs=wave]{background:radial-gradient(140% 60% at 50% 0%,var(--bg2),var(--ink) 70%)}
body[data-bgs=aurora]{background:radial-gradient(70% 40% at 20% 0%,color-mix(in srgb,var(--emerald) 30%,transparent),transparent 70%),radial-gradient(60% 40% at 90% 10%,color-mix(in srgb,var(--indigo) 30%,transparent),transparent 70%),radial-gradient(50% 30% at 50% 30%,color-mix(in srgb,var(--teal) 18%,transparent),transparent 70%),var(--ink)}
body[data-bgs=blob]{background:radial-gradient(40% 30% at 90% 5%,color-mix(in srgb,var(--carmine) 25%,transparent),transparent 70%),radial-gradient(40% 30% at 0% 30%,color-mix(in srgb,var(--teal) 25%,transparent),transparent 70%),var(--ink)}
body[data-bgs=stars]{background:radial-gradient(1px 1px at 20px 30px,var(--text),transparent),radial-gradient(1px 1px at 90px 120px,color-mix(in srgb,var(--text) 65%,transparent),transparent),radial-gradient(1.5px 1.5px at 160px 60px,var(--text),transparent),radial-gradient(1px 1px at 60px 170px,color-mix(in srgb,var(--text) 50%,transparent),transparent) 0 0/200px 200px,radial-gradient(80% 50% at 80% 0%,var(--bg2),var(--ink))}
body[data-bgs=petal]{background:radial-gradient(30% 20% at 100% 0%,color-mix(in srgb,var(--gold) 30%,transparent),transparent 70%),radial-gradient(25% 18% at 0% 60%,color-mix(in srgb,var(--gold) 18%,transparent),transparent 70%),var(--ink)}
body[data-bgs=diag]{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--text) 4%,transparent) 0 10px,transparent 10px 20px),var(--ink)}
body[data-bgs=synth]{background:linear-gradient(transparent 60%,color-mix(in srgb,var(--carmine) 20%,transparent)),repeating-linear-gradient(0deg,color-mix(in srgb,var(--gold) 14%,transparent) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--teal) 10%,transparent) 0 1px,transparent 1px 40px),linear-gradient(180deg,var(--ink),var(--bg2))}
body[data-bgs=leaf]{background:radial-gradient(80% 50% at 0% 0%,color-mix(in srgb,var(--emerald) 16%,transparent),transparent 70%),var(--ink)}
body[data-bgs=ikat]{background:linear-gradient(180deg,transparent,var(--ink) 260px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--carmine) 14%,transparent) 0 18px,color-mix(in srgb,var(--amber) 14%,transparent) 18px 30px,color-mix(in srgb,var(--emerald) 14%,transparent) 30px 44px,color-mix(in srgb,var(--indigo) 14%,transparent) 44px 60px),var(--ink)}
body[data-bgs]{background-attachment:fixed}

/* ===== плитки (большие кнопки) ===== */
body[data-note=flat] .note{background:var(--c);box-shadow:none}
body[data-note=flat] .note::before,body[data-note=flat] .note .cur{display:none}
body[data-note=tile] .note{background:repeating-conic-gradient(from 45deg,rgba(255,255,255,.12) 0 25%,transparent 0 50%) 0 0/22px 22px,linear-gradient(160deg,var(--c),var(--d))}
body[data-note=tile] .note::before{border:2px solid color-mix(in srgb,var(--gold) 55%,transparent)}
body[data-note=neon] .note{background:transparent;color:var(--c);box-shadow:0 0 0 1.5px var(--c),0 0 18px color-mix(in srgb,var(--c) 55%,transparent),inset 0 0 22px color-mix(in srgb,var(--c) 25%,transparent)}
body[data-note=neon] .note::before{display:none}
body[data-note=neon] .note .sym,body[data-note=neon] .note .lbl{text-shadow:0 0 10px var(--c)}
body[data-note=swiss] .note{background:var(--paper);color:var(--hard);box-shadow:inset 0 0 0 2px var(--hard)}
body[data-note=swiss] .note.r{background:var(--carmine);color:#fff;box-shadow:none}
body[data-note=swiss] .note::before{display:none}
body[data-note=swiss] .note .sym{font-size:56px}
body[data-note=brutal] .note{background:var(--c);color:#111;box-shadow:5px 5px 0 var(--hard);border:2.5px solid var(--hard)}
body[data-note=brutal] .note::before{display:none}
body[data-note=brutal] .big.chosen .note.on{box-shadow:5px 5px 0 var(--hard)}
body[data-note=glass] .note{background:linear-gradient(140deg,color-mix(in srgb,var(--c) 55%,transparent),color-mix(in srgb,var(--paper) 40%,transparent));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--glass),0 12px 30px -10px var(--c)}
body[data-note=neu] .note{background:var(--ink);color:var(--c);box-shadow:7px 7px 14px var(--sh1),-7px -7px 14px var(--sh2)}
body[data-note=neu] .note::before{display:none}
body[data-note=neu] .big.chosen .note.on{box-shadow:inset 6px 6px 12px var(--sh1),inset -6px -6px 12px var(--sh2)}
body[data-note=term] .note{background:transparent;color:var(--c);box-shadow:none;border:1px dashed var(--c)}
body[data-note=term] .note::before{display:none}
body[data-note=term] .note .sym::before{content:"["}
body[data-note=term] .note .sym::after{content:"]"}
body[data-note=corp] .note{background:linear-gradient(180deg,var(--c),var(--d));box-shadow:0 6px 16px -8px var(--d)}
body[data-note=corp] .note::before{display:none}
body[data-note=corp] .note .sym{font-size:30px;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.18)}
body[data-note=duo] .note{background:linear-gradient(135deg,var(--c) 0 55%,var(--d) 55%)}
body[data-note=duo] .note::before{display:none}
body[data-note=stamp] .note{background:var(--c);box-shadow:none}
body[data-note=stamp] .note::before{inset:5px;border:2px dashed rgba(255,255,255,.55)}
body[data-note=aur] .note{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 30%,var(--indigo)));box-shadow:0 10px 30px -10px var(--c)}
body[data-note=aur] .note::before{display:none}
body[data-note=receipt] .note{background:var(--paper);color:var(--hard);box-shadow:none;border:2px solid var(--hard)}
body[data-note=receipt] .note.r{color:var(--carmine);border-color:var(--carmine)}
body[data-note=receipt] .note::before{inset:4px;border:1px dashed currentColor;opacity:.6}
body[data-note=metro] .note{background:var(--c);box-shadow:none;min-height:140px}
body[data-note=metro] .note::before{display:none}
body[data-note=metro] .note .lbl{position:absolute;left:14px;bottom:12px;font-weight:400;font-size:20px}
body[data-note=metro] .note .sym{font-weight:300;font-size:48px}
body[data-note=pastel] .note{background:color-mix(in srgb,var(--c) 45%,var(--paper));color:var(--text);box-shadow:0 10px 24px -14px var(--c)}
body[data-note=pastel] .note::before{display:none}
body[data-note=stripe] .note{background:repeating-linear-gradient(-45deg,rgba(0,0,0,.14) 0 8px,transparent 8px 16px),var(--c)}
body[data-note=stripe] .note::before{display:none}
body[data-note=orb] .note{background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.45),transparent 35%),radial-gradient(circle at 30% 120%,var(--d),var(--c))}
body[data-note=soft] .note{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 75%,#fff),var(--c))}
body[data-note=soft] .note::before{border-color:rgba(255,255,255,.6)}
body[data-note=stencil] .note{background:repeating-linear-gradient(45deg,rgba(0,0,0,.18) 0 6px,transparent 6px 12px),var(--d);color:var(--c);box-shadow:inset 0 0 0 2px var(--c)}
body[data-mode=light][data-note=stencil] .note{background:repeating-linear-gradient(45deg,rgba(0,0,0,.06) 0 6px,transparent 6px 12px),color-mix(in srgb,var(--c) 14%,var(--paper))}
body[data-note=stencil] .note::before{display:none}
body[data-note=stencil] .note .lbl{letter-spacing:2px}
body[data-note=outline] .note{background:color-mix(in srgb,var(--c) 10%,var(--paper));color:var(--c);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 45%,var(--paper))}
body[data-note=outline] .note::before{display:none}
body[data-note=synth] .note{background:linear-gradient(180deg,var(--c),var(--gold));box-shadow:0 0 24px -4px var(--c)}
body[data-note=synth] .note::before{border-color:rgba(255,255,255,.5)}
body[data-note=mono] .note{background:var(--ink);color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}
body[data-note=mono] .note.r{background:var(--text);color:var(--ink)}
body[data-note=mono] .note::before{display:none}
body[data-note=ikat] .note{background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 6px,transparent 6px 14px,rgba(0,0,0,.12) 14px 18px,transparent 18px 26px),linear-gradient(160deg,var(--c),var(--d))}
body[data-note=ikat] .note::before{border:2px dotted rgba(255,255,255,.55)}

/* ===== вкладки ===== */
body[data-tabs=under] .tabs button{background:none;border:0;border-radius:0;border-bottom:3px solid transparent;padding:10px 8px}
body[data-tabs=under] .tabs button::before{display:none}
body[data-tabs=under] .tabs button.on{background:none;color:var(--text);border-bottom-color:var(--c)}
body[data-tabs=seg] .tabs{gap:0;margin:0 0 16px;padding:4px;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-m)}
body[data-tabs=seg] .tabs button{border:0;background:none;border-radius:calc(var(--r-m) - 4px)}
body[data-tabs=seg] .tabs button::before{display:none}
body[data-tabs=seg] .tabs button.on{background:var(--c)}
body[data-tabs=neon] .tabs button{background:transparent;border-color:color-mix(in srgb,var(--c) 45%,transparent)}
body[data-tabs=neon] .tabs button.on{background:transparent;color:var(--c);border-color:var(--c);box-shadow:0 0 14px color-mix(in srgb,var(--c) 60%,transparent)}
body[data-tabs=neon] .tabs button.on::before{background:var(--c)}
body[data-tabs=box] .tabs button{border-radius:0}
body[data-tabs=box] .tabs button::before{border-radius:0}
body[data-tabs=brutal] .tabs button{border:2px solid var(--hard);border-radius:0;background:var(--paper);color:var(--text);box-shadow:3px 3px 0 var(--hard)}
body[data-tabs=brutal] .tabs button::before{border-radius:0}
body[data-tabs=brutal] .tabs button.on{background:var(--c);color:#111;border-color:var(--hard)}
body[data-tabs=brutal] .tabs button.on::before{background:#111}
body[data-tabs=glass] .tabs button{background:color-mix(in srgb,var(--paper) 70%,transparent);border-color:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-tabs=glass] .tabs button.on{background:var(--c)}
body[data-tabs=neu] .tabs button{border:0;background:var(--ink);box-shadow:4px 4px 8px var(--sh1),-4px -4px 8px var(--sh2)}
body[data-tabs=neu] .tabs button.on{background:var(--c)}
body[data-tabs=term] .tabs button{border-radius:0;background:none;border:1px solid var(--rule);color:var(--muted)}
body[data-tabs=term] .tabs button::before{content:">";width:auto;height:auto;background:none;box-shadow:none;color:var(--c)}
body[data-tabs=term] .tabs button.on{background:var(--text);color:var(--ink);border-color:var(--text)}
body[data-tabs=term] .tabs button.on::before{color:var(--ink);background:none}
body[data-tabs=mono] .tabs button{border-radius:0;background:none;border:1px solid var(--rule)}
body[data-tabs=mono] .tabs button::before{display:none}
body[data-tabs=mono] .tabs button.on{background:var(--text);color:var(--ink);border-color:var(--text)}

/* ===== карточки ===== */
body[data-card=plain] .card::before{display:none}
body[data-card=left] .card::before{left:0;top:0;bottom:0;right:auto;width:5px;height:auto;background:var(--acc)}
body[data-card=neon] .card{box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 50%,transparent),0 0 30px -10px var(--acc)}
body[data-card=neon] .card::before{display:none}
body[data-card=line] .card{border-width:2px}
body[data-card=line] .card::before{height:6px;background:var(--acc)}
body[data-card=brutal] .card{border:2.5px solid var(--hard);box-shadow:6px 6px 0 var(--hard)}
body[data-card=brutal] .card::before{display:none}
body[data-card=brutal] input,body[data-card=brutal] select,body[data-card=brutal] textarea{border:2px solid var(--hard)}
body[data-card=glass] .card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px var(--glass)}
body[data-card=glass] .card::before{display:none}
body[data-card=neu] .card{border:0;box-shadow:8px 8px 18px var(--sh1),-8px -8px 18px var(--sh2)}
body[data-card=neu] .card::before{display:none}
body[data-card=neu] input,body[data-card=neu] select,body[data-card=neu] textarea{border:0;box-shadow:inset 3px 3px 7px var(--sh1),inset -3px -3px 7px var(--sh2)}
body[data-card=term] .card{box-shadow:none}
body[data-card=term] .card::before{content:"┌─ kassa ─────────────";position:static;display:block;height:auto;background:none;color:var(--muted);margin:-8px 0 8px}
body[data-card=receipt] .card{border:0;border-radius:0;box-shadow:none;-webkit-mask:conic-gradient(from 135deg at top,#0000,#000 1deg 89deg,#0000 90deg) top/16px 51% repeat-x,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 51% repeat-x;mask:conic-gradient(from 135deg at top,#0000,#000 1deg 89deg,#0000 90deg) top/16px 51% repeat-x,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 51% repeat-x;padding-top:26px;padding-bottom:26px}
body[data-card=receipt] .card::before{display:none}
body[data-card=receipt] input,body[data-card=receipt] select,body[data-card=receipt] textarea{border:0;border-bottom:1.5px dashed var(--hard);border-radius:0;background:transparent}
body[data-card=shadow] .card{border:0;box-shadow:0 1px 2px color-mix(in srgb,var(--text) 6%,transparent),0 12px 32px -12px color-mix(in srgb,var(--text) 18%,transparent)}
body[data-card=shadow] .card::before{display:none}

/* ===== главная кнопка ===== */
body[data-send=flat] .send{background:var(--b);box-shadow:none}
body[data-send=neon] .send{background:transparent;color:var(--b);box-shadow:0 0 0 1.5px var(--b),0 0 18px color-mix(in srgb,var(--b) 50%,transparent)}
body[data-send=brutal] .send{background:var(--b);color:#111;border:2.5px solid var(--hard);box-shadow:4px 4px 0 var(--hard)}
body[data-send=glass] .send{background:color-mix(in srgb,var(--b) 70%,transparent);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px var(--glass)}
body[data-send=neu] .send{background:var(--ink);color:var(--b);box-shadow:6px 6px 12px var(--sh1),-6px -6px 12px var(--sh2)}
body[data-send=term] .send{background:var(--b);color:var(--ink);box-shadow:none;border-radius:0}
body[data-send=term] .send::before{content:"$ "}
body[data-send=receipt] .send{background:var(--hard);color:var(--paper);box-shadow:none;letter-spacing:2px}
body[data-send=receipt] .send.r{background:var(--carmine)}
body[data-send=pastel] .send{background:color-mix(in srgb,var(--b) 60%,var(--paper));color:var(--text);box-shadow:none}
body[data-send=gold] .send{background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 70%,#fff),var(--gold));color:#2a1606}
body[data-send=gold] .send.r{background:linear-gradient(180deg,color-mix(in srgb,var(--carmine) 75%,#fff),var(--carmine));color:#fff}
body[data-send=synth] .send{background:linear-gradient(90deg,var(--b),var(--gold));color:#fff}
body[data-send=mono] .send,body[data-send=mono] .send.r{background:var(--text);color:var(--ink);box-shadow:none}

/* ===== печать в шапке ===== */
body[data-seal=square] .seal{border-radius:var(--r-m);background:var(--gold);box-shadow:none}
body[data-seal=square] .seal svg{display:none}
body[data-seal=square] .seal b{color:var(--onacc)}
body[data-seal=none] .seal{display:none}
body[data-seal=mono] .seal{background:var(--paper-2);box-shadow:0 0 0 1px var(--rule)}
body[data-seal=mono] .seal svg{color:var(--text)}
body[data-seal=mono] .seal b{color:var(--text)}
body[data-seal=star] .seal{border-radius:0;clip-path:polygon(50% 0,61% 20%,85% 15%,80% 39%,100% 50%,80% 61%,85% 85%,61% 80%,50% 100%,39% 80%,15% 85%,20% 61%,0 50%,20% 39%,15% 15%,39% 20%);background:var(--gold);box-shadow:none}
body[data-seal=star] .seal svg{display:none}
body[data-seal=star] .seal b{color:var(--onacc)}
body[data-seal=band] .seal{border-radius:var(--r-m);background:#fff;box-shadow:none}
body[data-seal=band] .seal svg{display:none}
body[data-seal=band] .seal b{color:var(--band)}
body[data-bgs=band] .mast h1,body[data-bgs=band] .mast h1 span{color:#fff}
body[data-bgs=band] .mast p{color:rgba(255,255,255,.75)}

/* ===== особые штрихи отдельных тем ===== */
body[data-th="5"] .mast h1{font-size:26px;letter-spacing:-.5px}
body[data-th="5"] .tabs button.on{background:var(--hard);border-color:var(--hard);color:var(--paper)}
body[data-th="5"] .tabs button::before{background:var(--carmine)}
body[data-th="29"] .tabs button::before{background:var(--text)}
body[data-th="29"] .split .g,body[data-th="29"] .split .r{background:var(--text);color:var(--ink)}
body[data-th="10"] .mast h1,body[data-th="4"] .mast h1{letter-spacing:-.5px}
