/* Tunique & Corolle : feuille de style unique. Piles de polices système, aucune ressource externe. */
:root{--paper:#faf5ea;--card:#fffdf8;--ink:#2a1f33;--muted:#5a4f63;--orchid:#6b2f7e;--orchid-d:#4d2159;--onion:#9a4f0c;--leaf:#2f6b3a;--line:#d9ccb8;--tint:#f1e6d3;--r:3px;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);overflow-wrap:break-word}
img,svg{max-width:100%}
a{color:var(--orchid);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--orchid-d)}
:focus-visible{outline:3px solid var(--onion);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:50}
.skip:focus{left:8px;top:8px}
.sr,.sr-file{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Structure : rail latéral + scène ---------- */
.shell{display:block}
.rail{padding:14px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand img{display:block;width:44px;height:44px}
.wm{font:700 1.35rem/1.05 var(--serif);letter-spacing:.01em}
.wm i{font-style:italic;color:var(--onion);font-weight:400;padding:0 .12em}
.tagline{margin:6px 0 10px;color:var(--muted);font-size:.9rem;font-style:italic}
.rail nav{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}
.rail nav>a,.menu summary{display:inline-block;padding:6px 2px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;border-bottom:2px solid transparent;cursor:pointer}
.rail nav>a:hover,.menu summary:hover{border-bottom-color:var(--orchid)}
.menu{position:relative}
.menu summary{list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary::after{content:" ▾";font-size:.8em;color:var(--onion)}
.menu[open] summary::after{content:" ▴"}
.menu-panel{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding:8px 12px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--orchid)}
.menu-panel a{padding:5px 0;color:var(--ink);text-decoration:none;font-size:.94rem}
.menu-panel a:hover{color:var(--orchid);text-decoration:underline}
.stage{min-width:0}
main{display:block;max-width:980px;margin:0 auto;padding:0 18px 56px}
@media (min-width:1000px){
  .shell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh}
  .rail{position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;padding:28px 22px;border-bottom:0;border-right:1px solid var(--line)}
  .rail nav{flex-direction:column;align-items:stretch;gap:2px}
  .rail nav>a,.menu summary{display:block;padding:7px 0}
  .menu-panel{margin-top:4px}
  main{padding:0 40px 72px}
}

/* ---------- Titres et textes ---------- */
h1,h2,h3{font-family:var(--serif);line-height:1.15;color:var(--ink);margin:0}
h1{font-size:clamp(2rem,5.4vw,3.3rem);font-weight:700;letter-spacing:-.01em}
h2{font-size:1.6rem;margin:2.2em 0 .6em;padding-bottom:.25em;border-bottom:1px solid var(--line)}
h3{font-size:1.15rem;margin:1.6em 0 .4em}
p{margin:0 0 1em}
.lead{max-width:60ch;font-size:1.12rem;color:var(--muted)}
.note,.rnote,.help{color:var(--muted);font-size:.93rem}
.count{margin:.6em 0 0;color:var(--muted)}
.count b{color:var(--onion);font-size:1.2em}
.kicker{display:inline-block;margin:0 0 .8em;padding:2px 10px;border:1px dashed var(--onion);color:var(--onion);font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.pill{display:inline-block;margin:0 0 .6em;padding:2px 10px;background:var(--tint);color:var(--ink);font-weight:600;font-size:.88rem;border-radius:99px}

/* ---------- En-têtes de page ---------- */
.hero-home{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:center;padding:34px 0 22px;border-bottom:3px double var(--line)}
.hero-home>*{min-width:0}
.hero-home h1 em{font-style:italic;color:var(--onion)}
.hero-art{margin:0;max-width:340px}
.hero-art svg{display:block;width:100%;height:auto}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:1.2em 0 .6em}
@media (min-width:760px){.hero-home{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:36px;padding-top:48px}}
.hero.small,.page-head{position:relative;margin:0 0 18px;padding:28px 0 18px;border-bottom:3px double var(--line)}
.hero.small::before,.page-head::before{content:"";display:block;width:64px;height:6px;margin-bottom:14px;background:var(--c,var(--orchid))}
.hero.small .lead,.page-head .lead{margin-bottom:.4em}
.crumbs{margin:0 0 .8em;font-size:.88rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.crumbs i{font-style:normal;padding:0 .45em;color:var(--onion)}
.byline{display:flex;align-items:center;gap:10px;margin:.9em 0 0;font-size:.9rem;color:var(--muted)}
.byline img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.byline span{min-width:0}
.portrait{width:140px;height:140px;border-radius:50%;object-fit:cover;border:3px solid var(--c,var(--orchid));margin-bottom:12px}

/* ---------- Boutons ---------- */
.btn{display:inline-block;padding:11px 22px;background:var(--orchid);color:#fff;border:2px solid var(--orchid);border-radius:var(--r);font:700 .98rem var(--sans);text-decoration:none;cursor:pointer;box-shadow:3px 3px 0 var(--onion)}
.btn:hover{background:var(--orchid-d);color:#fff}
.btn.ghost,.btn.alt{background:transparent;color:var(--orchid);box-shadow:none}
.btn.ghost:hover,.btn.alt:hover{background:var(--orchid);color:#fff}
.btn.small{padding:7px 14px;font-size:.9rem;box-shadow:2px 2px 0 var(--onion)}
button.btn:disabled{opacity:.5;cursor:default}
.linkbtn{background:none;border:0;padding:4px 0;color:var(--orchid);font:inherit;text-decoration:underline;cursor:pointer}

/* ---------- Grilles et cartes ---------- */
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:16px}
.grid>li{min-width:0;display:flex}
.cats{margin-top:8px}
.cat{position:relative;display:flex;flex-direction:column;gap:4px;width:100%;padding:26px 16px 16px;background:var(--card);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r) var(--r);text-decoration:none;color:var(--ink);box-shadow:0 2px 0 var(--line);transition:transform .15s}
.cat::before{content:"";position:absolute;left:-1px;right:-1px;top:0;height:12px;background:var(--c,var(--orchid));border-radius:var(--r) var(--r) 0 0;clip-path:polygon(0 0,100% 0,100% 55%,96% 100%,92% 55%,88% 100%,84% 55%,80% 100%,76% 55%,72% 100%,68% 55%,64% 100%,60% 55%,56% 100%,52% 55%,48% 100%,44% 55%,40% 100%,36% 55%,32% 100%,28% 55%,24% 100%,20% 55%,16% 100%,12% 55%,8% 100%,4% 55%,0 100%)}
.cat:hover{transform:translateY(-3px);color:var(--ink)}
.cat i{font-style:normal;font-size:1.9rem;line-height:1}
.cat b{font:700 1.12rem/1.2 var(--serif);overflow-wrap:break-word}
.cat span{color:var(--muted);font-size:.9rem}
.cat.tool b{font-size:1.02rem}
.site{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:center;width:100%;padding:11px 12px 11px 14px;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--c,var(--orchid));border-radius:0 var(--r) var(--r) 0;text-decoration:none;color:var(--ink)}
.site:hover{background:#fff;border-color:var(--c,var(--orchid))}
.site i{grid-row:span 2;font-style:normal;font-size:1.5rem}
.site b{font-weight:700;font-size:.97rem;overflow-wrap:anywhere}
.site span{color:var(--muted);font-size:.8rem}
.grid.sites{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}
.grid.sites>li{position:relative}
.has-fav .site{padding-right:44px}
.fav{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;background:transparent;color:var(--onion);font-size:1.35rem;cursor:pointer}
.fav[aria-pressed="true"]{color:var(--orchid)}
.guide-card .cat b{font-size:1.02rem}
.family{margin-top:8px}
.family>p{max-width:62ch;color:var(--muted);margin-top:-.3em}

/* ---------- Annuaire : recherche, filtres, favoris ---------- */
.finder{margin:0 0 16px}
.finder-row{display:flex;gap:8px;align-items:center}
.finder input[type=search]{flex:1 1 auto;min-width:0;padding:11px 12px;border:1px solid #8b7a99;border-radius:var(--r);background:#fff;font:inherit;color:var(--ink)}
.finder-clear{flex:0 0 auto;width:40px;height:40px;border:1px solid #8b7a99;background:#fff;border-radius:var(--r);cursor:pointer;color:var(--ink)}
.chips{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chips button{padding:5px 11px;background:var(--card);border:1px solid var(--line);border-bottom:3px solid var(--c,var(--orchid));border-radius:var(--r);font:inherit;font-size:.88rem;color:var(--ink);cursor:pointer}
.chips button[aria-pressed="true"]{background:var(--orchid);border-color:var(--orchid);color:#fff}
.finder-count{margin:10px 0 0;color:var(--muted);font-size:.92rem}
.favbox{margin:0 0 20px;padding:14px 16px;background:var(--tint);border:1px dashed var(--onion)}
.favbox h3{margin:0 0 10px}
.favbox-actions{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0}
.empty{padding:36px 18px;text-align:center;border:1px dashed var(--onion);background:var(--card);color:var(--muted)}
.empty-emoji{font-size:2.4rem}

/* ---------- Texte courant ---------- */
.prose{max-width:74ch}
.prose.wide{max-width:none}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin:.3em 0}
.plain{list-style:none;padding:0!important;columns:2 260px;column-gap:28px}
.plain li{break-inside:avoid;margin:.25em 0}
.chiplist{list-style:none;margin:0 0 1em;padding:0!important;display:flex;flex-wrap:wrap;gap:8px}
.chiplist li{margin:0;min-width:0}
.chiplist a{display:inline-block;padding:6px 12px;background:var(--card);border:1px solid var(--line);border-radius:99px;text-decoration:none;font-size:.92rem}
.chiplist a:hover{border-color:var(--orchid)}
.links{list-style:none;padding:0!important;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px}
.links a{display:flex;flex-direction:column;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--orchid);text-decoration:none;overflow-wrap:anywhere}
.links b{color:var(--ink)}
.links span{color:var(--muted);font-size:.85rem}
.facts{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0 0 1em}
.facts dt{margin-top:12px;font-weight:700;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;color:var(--onion)}
.facts dd{margin:0;padding-bottom:6px;border-bottom:1px dotted var(--line);overflow-wrap:anywhere}
@media (min-width:700px){.facts{grid-template-columns:minmax(0,230px) minmax(0,1fr);column-gap:20px}.facts dt{margin-top:0;padding:8px 0;border-bottom:1px dotted var(--line)}.facts dd{padding:8px 0}}
.faq details{margin:0 0 8px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.faq summary{padding:12px 16px;font-weight:700;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";display:inline-block;width:1.2em;color:var(--onion);font-weight:700}
.faq details[open] summary::before{content:"\2212"}
.faq details p{margin:0;padding:0 16px 14px 36px}
.directory h2:first-child{margin-top:1.6em}
.callout{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin:2em 0;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-left:8px solid var(--c,var(--orchid))}
.callout p{margin:0;flex:1 1 260px;min-width:0}
.checklist{margin:0 0 1.4em;padding:14px 18px;background:var(--card);border:1px solid var(--line)}
.checklist ul{list-style:none;margin:0;padding:0!important}
.checklist li{position:relative;margin:.35em 0;padding-left:1.8em}
.checklist li::before{content:"\2610";position:absolute;left:0;color:var(--onion)}
.guide-nav{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:12px}
.guide-nav a{display:block;min-width:0;padding:12px 14px;background:var(--card);border:1px solid var(--line);text-decoration:none}
.guide-nav span{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
@media (min-width:640px){.guide-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Outils ---------- */
.toolbox{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin:22px 0;align-items:start}
.toolbox>*{min-width:0}
@media (min-width:860px){.toolbox{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.embed .toolbox{grid-template-columns:minmax(0,1fr)}}
.toolbox form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:18px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--orchid)}
.toolbox form>*{min-width:0}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field[hidden]{display:none}
.field label,.controls label{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea,.controls select,.embedbox textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid #8b7a99;border-radius:var(--r);background:#fff;font:inherit;color:var(--ink)}
.field textarea,.embedbox textarea{resize:vertical;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88rem}
.field.check{flex-direction:row;align-items:center}
.result{min-width:0;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--onion)}
.result>*:last-child{margin-bottom:0}
.res{margin:0 0 .8em;display:grid;gap:0}
.res>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 16px;padding:9px 0;border-bottom:1px dotted var(--line)}
.res dt{min-width:0;color:var(--muted);font-size:.95rem}
.res dd{margin:0;min-width:0;font-weight:700;text-align:right;overflow-wrap:break-word}
.res .main{margin:0 -10px;padding:11px 10px;background:var(--tint);border-bottom:0;border-left:4px solid var(--orchid)}
.res .main dd{font:700 1.2rem/1.25 var(--serif)}
.err{margin:0;padding:10px 12px;background:#f9e4e4;color:#7a1414;border-left:4px solid #a02020}
.example{padding:14px 16px;background:var(--tint);border-left:5px solid var(--onion)}
.example ul{margin:.3em 0 1em}
.example .result{background:var(--card)}
.embedbox{padding:16px;background:var(--card);border:1px solid var(--line)}
.status{min-height:1.4em;margin:.5em 0;color:var(--leaf);font-weight:600}
.conv-main{margin:0 0 .8em;font:700 1.25rem/1.3 var(--serif);overflow-wrap:break-word}
.swap{align-self:end;padding:9px 14px;background:var(--card);border:1px solid var(--orchid);border-radius:var(--r);color:var(--orchid);font:inherit;font-weight:700;cursor:pointer}
.swap:hover{background:var(--orchid);color:#fff}
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:0 0 14px}
.controls select{width:auto}
.fallback{padding:12px 14px;background:var(--tint);border-left:5px solid var(--onion)}
.fallback[hidden],[hidden]{display:none!important}

/* Atelier, plans et sorties texte */
.out{margin:0 0 .8em;padding:14px;max-height:420px;overflow:auto;max-width:100%;position:relative;background:#fff;border:1px solid var(--line);font:.88rem/1.55 ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:break-word}
.atelier-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.plan{list-style:none;margin:0 0 .8em;padding:0}
.plan li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 14px;padding:8px 0;border-bottom:1px dotted var(--line)}
.plan b{min-width:0}
.plan span{min-width:0;color:var(--muted)}
.tablewrap,.prose table{max-width:100%;overflow-x:auto;position:relative}
.tablewrap{margin:0 0 1em}
table{border-collapse:collapse}
.evlist{width:100%;min-width:480px;background:var(--card)}
.evlist th,.evlist td{padding:8px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}
.evlist thead th{background:var(--tint);font-size:.85rem}
.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:14px;margin:0 0 20px}
.month{min-width:0;overflow-x:auto;position:relative}
.month table{width:100%;font-size:.82rem;background:var(--card)}
.month caption{padding:4px 0;font:700 .95rem var(--serif);text-align:left}
.month th,.month td{width:14.28%;padding:3px 0;text-align:center;border:1px solid var(--line)}
.month th{background:var(--tint);font-size:.75rem}
.mk span{display:inline-block;min-width:1.7em;padding:1px 0;border-radius:3px;font-weight:700}
.mk-saison span{background:#cfe6c8;color:#1d3d1f}
.mk-heure span{background:#f4d9a6;color:#4a2c00}
.mk-ferie span{background:#e4cdee;color:#3a1646}

/* Fiches à remplir */
.modele-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin:22px 0}
.modele-grid>*{min-width:0}
@media (min-width:860px){.modele-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.modele-form{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:18px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--onion)}
.modele-form>*{min-width:0}
.modele-side h2{margin-top:0}
.paper{padding:22px 24px;background:#fff;border:1px solid var(--line);box-shadow:4px 4px 0 var(--tint);font:1rem/1.55 Georgia,"Times New Roman",serif;overflow-wrap:break-word;min-height:200px}
.paper p{margin:0 0 .3em}
.dl-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

/* Balances de choix */
.matrix{margin:22px 0}
.matrix-top{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:10px}
.matrix-top>*{min-width:0}
@media (min-width:700px){.matrix-top{grid-template-columns:repeat(2,minmax(0,1fr))}}
.names{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;margin:12px 0}
.names>*{min-width:0}
.crit{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0 0 14px;padding:14px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--orchid)}
.crit>*{min-width:0}
.crit legend{padding:0 6px;font:700 1rem var(--serif)}
.scores{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:10px}
.scores>*{min-width:0}
.ranking{list-style:none;margin:0 0 1em;padding:0}
.ranking li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 0;border-bottom:1px dotted var(--line)}
.rk{font:700 1.1rem var(--serif);color:var(--onion)}
.bar{grid-column:2/-1;height:8px;background:var(--tint)}
.bar i{display:block;height:100%;background:var(--orchid)}
.sc{font-weight:700}
.verdict{padding:12px 14px;background:var(--tint);border-left:5px solid var(--onion);font-weight:600}
.crit-list dt{text-transform:none;letter-spacing:0;font-size:1rem}

/* ---------- Pied de page ---------- */
.foot{margin-top:24px;padding:36px 18px 22px;background:var(--ink);color:#eadff0}
.foot a{color:#f6d9a4}
.foot a:hover{color:#fff}
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;max-width:980px;margin:0 auto}
.foot-grid>*{min-width:0}
.foot-title{margin:0 0 .6em;padding:0;border:0;font:700 .85rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#f6d9a4}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:.35em 0}
.foot-about .brand{color:#fff}
.foot-about .wm i{color:#f6d9a4}
.foot-about p{color:#eadff0;font-size:.92rem;margin-top:12px}
.foot-bottom{max-width:980px;margin:26px auto 0;padding-top:16px;border-top:1px solid #5a4a68;font-size:.84rem;color:#d9cce3}
.foot-bottom p{margin:0}
@media (min-width:760px){.foot-grid{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))}.foot-grid .foot-about{grid-row:span 2}}
@media (min-width:1000px){.foot{padding-left:40px;padding-right:40px}}

/* ---------- Pages intégrables ---------- */
body.embed{background:var(--card)}
.embed-wrap{max-width:640px;margin:0 auto;padding:14px 14px 20px}
.embed-wrap h1{font-size:1.4rem;margin-bottom:6px}
.embed-credit{margin:10px 0 0;text-align:right;font-size:.85rem}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.rail,.foot,.dl-actions,.crumbs,.byline{display:none!important}.shell{display:block}main{max-width:none;padding:0}.paper{border:0;box-shadow:none}body.modele main>*:not(.modele-grid){display:none}.modele-form{display:none}}
@media (max-width:420px){body{font-size:16px}.wm{font-size:1.2rem}.res .main{margin:0 -6px}.callout{padding:14px}}


/* ===== kit commun : export, filtre, outils liés, impression, grandes listes ===== */
.kit-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.9rem 0 0}
.kit-actions button{font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;padding:.45rem .85rem;min-height:44px;border:2px solid currentColor;border-radius:.6rem;background:transparent;color:inherit}
.kit-actions button:hover{text-decoration:underline}
.kit-status{font-size:.9rem;min-height:1.2em}
.kit-filter{margin:0 0 1.2rem}
.kit-filter label{display:block;font-weight:700;margin-bottom:.35rem}
.kit-filter input{font:inherit;width:100%;max-width:32rem;padding:.6rem .8rem;min-height:44px;border:2px solid #222;border-radius:.6rem;background:#fff;color:#111}
.kit-count{margin:.4rem 0 0;font-size:.92rem;min-height:1.2em}
.kit-related{margin:2.2rem 0 1rem;padding:1rem 1.2rem;border:2px solid currentColor;border-radius:.8rem}
.kit-related h2{font-size:1.15rem;margin:0 0 .7rem}
.kit-related ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.4rem .8rem}
.kit-related li{min-width:0}
.kit-related a{display:block;padding:.35rem .1rem;overflow-wrap:break-word}
ul:has(> li:nth-child(40)) > li{content-visibility:auto;contain-intrinsic-size:auto 100px}
@media print{
  body.kit-printing *{visibility:hidden!important}
  body.kit-printing .kit-print-target,body.kit-printing .kit-print-target *{visibility:visible!important}
  body.kit-printing .kit-print-target{position:absolute!important;left:0;top:0;width:100%;color:#000!important;background:#fff!important;box-shadow:none!important}
}
