/* Kits (việc 325) – same tokens as app.css (light/dark), cards like the map panel, big touch targets */
.khero{padding:1rem 0 .2rem}.khero h1{font-size:clamp(1.6rem,4.5vw,2.2rem);line-height:1.15;margin:.2rem 0 .5rem;letter-spacing:-.015em}
.khero p{color:var(--muted);margin:.2rem 0;max-width:60ch}
.kpriv{display:inline-flex;gap:.4rem;align-items:center;background:var(--soft);color:var(--fg);border-radius:99px;padding:.3rem .8rem;font-size:.88rem;font-weight:600;margin:.5rem 0}
.ktabs{display:flex;gap:.4rem;overflow-x:auto;padding:.6rem 0 .8rem;scrollbar-width:none}
.ktabs button{flex:none;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:99px;padding:.55rem 1rem;font:inherit;font-size:.95rem;font-weight:600;min-height:44px;cursor:pointer}
.ktabs button[aria-selected=true]{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.ktool h2{font-size:1.35rem;margin:.6rem 0 .3rem}.ktool>p.kintro{color:var(--muted);margin:.2rem 0 .8rem;max-width:62ch}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:1rem;margin:0 0 .8rem}
.kcard h3{margin:0 0 .6rem;font-size:1.08rem}
.kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.7rem;align-items:end;position:relative}
.kgrid.k3{grid-template-columns:1fr 1fr;margin-bottom:.7rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}.kgrid.k3>label:first-child{grid-column:1/-1}
.krow.kfl{grid-template-columns:1fr auto!important;margin-bottom:.6rem}
.kbody label{display:flex;flex-direction:column;gap:.25rem;font-size:.92rem;font-weight:600;color:var(--fg);min-width:0}
.kbody input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),.kbody select,.kbody textarea{width:100%;min-height:44px;padding:.5rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit;font-size:16px;font-weight:400}
.kbody textarea{min-height:64px;resize:vertical}
.kbody input[type=range]{width:100%;accent-color:var(--acc);min-height:44px}
.kbody label.kchk{flex-direction:row;align-items:center;gap:.5rem;min-height:44px}.kchk input{width:22px;height:22px;accent-color:var(--acc)}
.kseg{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .8rem}.kseg label{flex-direction:row!important}
.kseg input{position:absolute;opacity:0;pointer-events:none}.kseg span{display:inline-flex;align-items:center;min-height:44px;padding:.4rem .9rem;border:1px solid var(--line);border-radius:99px;background:var(--bg);cursor:pointer;font-weight:600}
.kseg input:checked+span{background:var(--soft);border-color:var(--acc);color:var(--acc2)}.kseg input:focus-visible+span{outline:3px solid var(--gold)}
.kbtn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.55rem 1.1rem;border-radius:12px;border:1px solid var(--acc);background:var(--acc);color:var(--on-acc);font:inherit;font-weight:700;cursor:pointer}
.kbtn.ghost{background:var(--card);color:var(--acc)}.kbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.link{background:none;border:0;color:var(--acc);font:inherit;text-decoration:underline;cursor:pointer;padding:.4rem 0;min-height:44px}
.kx{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:99px;width:36px;height:36px;font-size:1.1rem;cursor:pointer;flex:none}
.knote{color:var(--muted);font-size:.9rem;margin:.5rem 0}.kwarn{color:var(--warn);font-weight:600;margin:.3rem 0}.kwarn:empty{display:none}
.kscope{background:var(--relief);border-radius:10px;padding:.6rem .8rem;margin:0 0 .8rem;font-size:.94rem}
small a,.knote a{overflow-wrap:anywhere}
.kroom{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin:0 0 .7rem;box-shadow:var(--shadow)}
.kroom>summary{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.85rem 1rem;cursor:pointer;min-height:48px;list-style:none}
.kroom>summary::-webkit-details-marker{display:none}.kroom>summary span{color:var(--muted);font-size:.86rem;text-align:end}
.kitem{border-top:1px solid var(--line);padding:.7rem 1rem;display:grid;gap:.45rem}
.krow{display:grid;grid-template-columns:1fr minmax(120px,42%);gap:.5rem;align-items:center}.krow .kname{font-weight:700}
.kroom>p{padding:0 1rem;margin:.2rem 0 .5rem}.kwas{margin:0;font-size:.86rem;color:var(--muted)}
.kp{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}
.kp figure{position:relative;margin:0;width:96px}.kp img{width:96px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block;background:var(--soft)}
.kp figcaption{font-size:.7rem;color:var(--muted);line-height:1.25;margin-top:.15rem}.kp .kx{position:absolute;top:-8px;inset-inline-end:-8px;width:28px;height:28px;font-size:.95rem}
.kadd{position:relative;display:inline-flex!important;align-items:center;justify-content:center;width:96px;height:72px;border:1.5px dashed var(--acc);border-radius:8px;color:var(--acc);font-size:.82rem!important;cursor:pointer;text-align:center}
.kadd input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.kadd:focus-within{outline:3px solid var(--gold)}
.kletter{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.8rem;font:15px/1.5 system-ui,sans-serif;max-height:22rem;overflow:auto}
.kres{margin:.4rem 0 1rem}
.kbig{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;background:var(--soft);border-radius:var(--r);padding:.9rem 1rem;margin:0 0 .8rem}
.kbig b{font-size:1.9rem;letter-spacing:-.02em}.kbig span{color:var(--muted)}.kbig.fail{background:color-mix(in srgb,var(--warn) 14%,var(--card))}
.ktag{display:inline-block;font-size:.72rem!important;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)!important;border:1px solid var(--gold);border-radius:99px;padding:0 .45rem;align-self:center}
.kvans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:.6rem}
.kvan{border:1px solid var(--line);border-radius:12px;padding:.7rem;background:var(--card);display:grid;gap:.25rem}.kvan.on{border:2px solid var(--acc)}
.kvan span{color:var(--muted);font-size:.86rem}.kfill{height:16px;width:var(--w);background:var(--soft);border-radius:4px;overflow:hidden}.kfill i{display:block;height:100%;width:var(--f);background:var(--acc)}
.kvt,.ksplit{width:100%;border-collapse:collapse}.kvt td,.kvt th,.ksplit td,.ksplit th{padding:.3rem .25rem;text-align:start;font-size:.9rem;border-bottom:1px solid var(--line)}
.kvt input{max-width:4.5rem}.kvt select{min-width:6.6rem}.ksplit input{min-width:0}.ksplit td:first-child{width:30%}
.kticks{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.kticks label{display:flex;gap:.7rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;cursor:pointer}
.kticks input{width:24px;height:24px;flex:none;accent-color:var(--acc);margin-top:.1rem}.kticks span{display:grid;gap:.15rem}.kticks small{color:var(--muted)}
.kticks input:checked+span b{text-decoration:line-through;color:var(--muted)}
.kchecks{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.kchecks li{display:flex;gap:.7rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem}
.kchecks i{flex:none;width:26px;height:26px;border-radius:99px;display:grid;place-items:center;font-style:normal;font-weight:800;background:var(--soft);color:var(--acc2)}
.kchecks li.problem{border-color:var(--warn)}.kchecks li.problem i{background:var(--warn);color:var(--card)}.kchecks li.check i{background:var(--relief);color:var(--gold)}
.kchecks small{display:block;color:var(--muted);margin-top:.2rem}
.kplan{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.6rem;margin:0 0 .7rem;color:var(--fg);overflow-x:auto}.kplan svg{width:100%;height:auto;max-height:260px;display:block}
.kbars{display:grid;gap:.5rem;margin:0 0 .6rem}.kbarrow{display:grid;grid-template-columns:auto minmax(4rem,8rem) 1fr auto;gap:.5rem;align-items:center}
.kdot{width:12px;height:12px;border-radius:3px}.kbarv{height:12px;background:var(--soft);border-radius:6px;overflow:hidden}.kbarv i{display:block;height:100%}.kamt{font-weight:700;text-align:end}
.kscale{position:relative;height:64px;margin:1.2rem .4rem 1rem;border-bottom:3px solid var(--line)}
.kmk{position:absolute;inset-inline-start:var(--x);bottom:-3px;transform:translateX(-50%);border-inline-start:2px dashed var(--muted);height:44px;padding-inline-start:.25rem;font-size:.75rem;display:flex;flex-direction:column;line-height:1.1;white-space:nowrap}
.kmk small{color:var(--muted)}.kme{position:absolute;inset-inline-start:0;bottom:-3px;height:14px;width:var(--x);background:var(--acc);border-radius:7px 7px 0 0;opacity:.85}
.kverdict{font-weight:600;padding:.7rem .9rem;border-radius:12px;background:var(--soft)}.kverdict.fail{background:color-mix(in srgb,var(--warn) 14%,var(--card));color:var(--fg)}.kverdict.council,.kverdict.check{background:var(--relief)}
.kmap{display:grid;gap:.6rem;margin:0 0 .6rem}.kmap figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.5rem}
.kmap figcaption{font-size:.9rem;margin:0 0 .3rem}.kmap svg{width:100%;height:auto;display:block}.kmap text{fill:var(--fg)}
.kr{fill:var(--soft);stroke:var(--line);stroke-width:1.5}.kr.st{fill:none;stroke-dasharray:4 3}
.ks{fill:var(--warn)}.kc{fill:var(--gold)}.kmap .kst{fill:#fff;font-weight:800}
.kleg{display:inline-block;width:12px;height:12px;border-radius:99px;vertical-align:middle}.kleg.ks{background:var(--warn)}.kleg.kc{background:var(--gold)}
.kparts>.kgrid{margin-bottom:.5rem}.kparts .kx{align-self:end;margin-bottom:4px}
.kprint{display:none}
.kgrid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:.8rem;margin:1rem 0}
.kkit{display:grid;gap:.35rem;text-decoration:none;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;box-shadow:var(--shadow)}
.kkit b{font-size:1.15rem;color:var(--acc)}.kkit span{color:var(--muted)}.kkit ul{margin:.3rem 0 0;padding-inline-start:1.1rem;font-size:.92rem}
@media (max-width:420px){.kbarrow{grid-template-columns:auto 1fr auto}.kbarv{display:none}.ksplit th:nth-child(5),.ksplit td:nth-child(5){display:none}.krow{grid-template-columns:1fr}}
@media print{
  body[data-print] header.top,body[data-print] footer,body[data-print] .khero,body[data-print] .ktabs,body[data-print] .ktool>*:not(.kbody),body[data-print] .kbody>*:not(.kprint){display:none!important}
  body[data-print] .kprint{display:block!important;color:#000;font-size:11pt}
  .kprint table{width:100%;border-collapse:collapse;margin:.3rem 0}.kprint td,.kprint th{border:1px solid #999;padding:3px 5px;text-align:left;font-size:10pt}
  .kprint .kpp{display:flex;flex-wrap:wrap;gap:6px}.kprint figure{margin:0;width:31%;break-inside:avoid}.kprint img{width:100%;height:auto}
  .kprint figcaption{font-size:7.5pt}.kprint h3{break-after:avoid;margin:.6rem 0 .2rem}.kprint pre{white-space:pre-wrap;font:10pt/1.4 system-ui,sans-serif}
}
