*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0a0c0f;--pan:#16191e;--pan2:#14171c;--bor:rgba(255,255,255,.08);--bors:rgba(255,255,255,.16);
--tp:#e9ebee;--ts:#9aa1aa;--tm:#666d76;--acc:#38bdf8;--grn:#4ade80;--red:#f87171}
html,body{height:100%}
/* App-shell: a janela NUNCA rola (pensado pra Tauri/desktop). O conteúdo cabe ou rola internamente por painel. */
body{background:var(--bg);color:var(--tp);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;overflow:hidden}
a{color:inherit;text-decoration:none}
.app{display:flex;height:100vh;overflow:hidden}
.side{width:210px;flex-shrink:0;background:var(--pan2);border-right:0.5px solid var(--bor);padding:16px 12px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:9px;padding:4px 8px 16px}
.brand .logo{width:28px;height:28px;border-radius:8px;background:var(--acc);display:flex;align-items:center;justify-content:center;color:#04222f;font-weight:700}
.brand b{font-weight:500}
.nav{display:flex;flex-direction:column;gap:3px}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:var(--ts);font-size:13px}
.nav a:hover{background:rgba(255,255,255,.04);color:var(--tp)}
.nav a.on{background:#0e2230;color:var(--acc)}
.nav svg{width:17px;height:17px;flex-shrink:0}
.main{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;overflow:hidden}
.head{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:0.5px solid var(--bor);background:var(--pan);flex-shrink:0}
.head h1{font-size:16px;font-weight:500}
.sess{display:inline-flex;gap:6px;align-items:center;border:0.5px solid var(--bor);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--ts);cursor:pointer}
.sess b{color:var(--tp);font-weight:500}
/* Área de conteúdo da página: preenche o resto da altura. Por padrão rola internamente (nunca a janela);
   páginas adaptadas pro app-shell usam .body.fit pra caber sem rolagem nenhuma. */
.body{padding:22px;flex:1;min-height:0;overflow:auto}
.body.fit{overflow:hidden;display:flex;flex-direction:column;gap:9px;padding:8px 10px}
/* Cards da mesa de cálculo mais compactos (densidade) — só aqui; o .card global (tabelas etc.) fica 16px */
.body.fit .card{padding:12px}
/* Modo foco (apresentar ao cliente): esconde tipologias e orçamento; a esquadria toma a tela toda.
   !important porque o orçamento tem display:flex inline (senão a regra da classe não venceria). */
.body.calc-focus .pickerCard,.body.calc-focus .quotePanel{display:none!important}
input,select,textarea{background:#0b0d10;border:0.5px solid var(--bor);color:var(--tp);border-radius:9px;outline:none;font-family:inherit;font-size:14px;padding:8px 10px}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(56,189,248,.14)}
/* Controle de altura reduzida (~26px): o padding padrão de 8px estoura a altura e corta o texto na vertical — aqui reduz pra caber. */
.ctrl-sm{padding:2px 8px}
input:disabled,select:disabled,textarea:disabled,.btn:disabled{opacity:.4;cursor:not-allowed}
/* Edição inline padrão do sistema (clique único): affordance de tracejado no hover, mesmo look em todo lugar */
.sc-editable,.ec{cursor:text;border-bottom:1px dashed transparent;transition:border-color .1s}
.sc-editable:hover,.ec:hover{border-bottom-color:var(--tm)}
.sc-editable input,.ec input{background:#0b0d10;border:0.5px solid var(--acc);border-radius:6px;color:var(--tp);font-family:inherit}
label.fld{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--tm);margin-bottom:5px}
/* Padrões de seção: rótulo e divisor consistentes (unificam os vários labels/margens ad-hoc pelas telas) */
.seclbl{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--tm);margin-bottom:8px;user-select:none}
.dvdr{border-top:0.5px solid var(--bor);margin:16px 0}
.btn{border:0.5px solid var(--bors);background:transparent;color:var(--tp);border-radius:9px;cursor:pointer;font-family:inherit;font-size:13px;padding:9px 14px}
.btn:hover{background:rgba(255,255,255,.05)}
.btn.acc{background:var(--acc);color:#04222f;border-color:transparent;font-weight:500}
.btn.acc:hover{background:#5cc7fb}
/* HUD: barra de ações densa. Botões GHOST (sem contorno — evita o "muro de pílulas"): ícone + rótulo, o
   realce vem no hover; só o CTA é preenchido e puxa o olho. Vive dentro de .hudbar (faixa inset). */
.hudbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:0.5px solid var(--bor)}
/* Botão de ação: ghost (sem contorno). Rótulo em cor CLARA (legibilidade > sutileza — a hierarquia vem do
   CTA preenchido, não de apagar o texto). Fonte 13.5px, altura confortável. */
.ibtn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--tp);font-family:inherit;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}
.ibtn svg{width:17px;height:17px;flex-shrink:0;color:var(--ts)}
.ibtn:hover{background:rgba(255,255,255,.08)}
.ibtn:hover svg{color:var(--tp)}
.ibtn.acc{background:var(--acc);color:#04222f;font-weight:600}
.ibtn.acc svg,.ibtn.acc:hover svg{color:#04222f}
.ibtn.acc:hover{background:#5cc7fb;color:#04222f}
.ibtn.grn{background:#12452f;color:#8ff0b5;font-weight:500}
.ibtn.grn svg,.ibtn.grn:hover svg{color:#8ff0b5}
.ibtn.grn:hover{background:#175a3c;color:#a6f5c4}
.ibtn.mut{color:var(--ts)}
.ibtn.mut:hover{color:var(--tp)}
/* Separador vertical entre grupos de ações na mesma barra */
.isep{width:1px;height:20px;background:var(--bors);flex-shrink:0;margin:0 6px}
/* Remover linha/item: × minimalista (carrinho, avulso) — some no fundo, acende vermelho no hover */
.crx{font-size:15px;color:var(--tm);cursor:pointer;line-height:1;flex-shrink:0;padding:0 2px;transition:color .12s}
.crx:hover{color:var(--red)}
/* Reordenar item do carrinho: alça de arraste + linha que mostra onde a peça vai cair */
.cgrip{color:var(--tm);cursor:grab;font-size:13px;line-height:1;flex-shrink:0;user-select:none;letter-spacing:-1px;opacity:.55;transition:opacity .12s,color .12s}
.cgrip:hover{opacity:1;color:var(--ts)}
.cgrip:active{cursor:grabbing}
.cartrow.cdragging{opacity:.35}
.cartrow.cdrop-before{box-shadow:inset 0 2px 0 0 var(--acc)}
.cartrow.cdrop-after{box-shadow:inset 0 -2px 0 0 var(--acc)}
/* Chip de estado (só leitura, ou clicável quando abre um painel) — maior e mais legível */
.schip{display:inline-flex;align-items:center;gap:5px;height:25px;padding:0 11px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--tp);font-size:12.5px;white-space:nowrap}
.schip svg{width:14px;height:14px}
.schip.acc{background:#123243;color:#7fd4fb}
.schip.grn{background:#12402d;color:#8ff0b5}
.schip.btn2{cursor:pointer;user-select:none;color:var(--ts)}
.schip.btn2:hover{background:rgba(255,255,255,.14);color:var(--tp)}
.card{background:var(--pan);border:0.5px solid var(--bor);border-radius:14px;padding:16px}
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th{text-align:left;color:var(--tm);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:0.5px solid var(--bor)}
.table td{padding:10px;border-bottom:0.5px solid var(--bor)}
.table tr:hover td{background:rgba(255,255,255,.02)}
.badge{display:inline-block;font-size:11px;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--ts)}
.badge.grn{background:#0e2a1e;color:#6ee7a8}
.badge.acc{background:#0e2230;color:var(--acc)}
.tabs{display:flex;gap:6px;margin-bottom:16px}
.tabs a{padding:7px 14px;border-radius:9px;font-size:13px;color:var(--ts);border:0.5px solid var(--bor)}
.tabs a.on{background:#0e2230;color:var(--acc);border-color:var(--acc)}
.grid{display:grid;gap:12px}
.tcard{position:relative;border:0.5px solid var(--bor);border-radius:12px;background:var(--pan);overflow:hidden}
.tcard .draw{background:#0a0c0f;padding:10px;display:flex;align-items:center;justify-content:center}
.tcard .info{padding:11px 13px}
.tcard .info b{font-weight:500;display:block}
.tcard .info span:not(.badge){font-size:12px;color:var(--tm)}
.delBtn{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:rgba(10,12,15,.75);border:0.5px solid var(--bors);color:var(--tm);display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;opacity:0;transition:opacity .12s,color .12s,border-color .12s;z-index:2}
.tcard:hover .delBtn{opacity:1}
/* Card "+" de nova tipologia: layout vem da classe (não do inline), senão o filtro que mexe em style.display zera o flex e quebra a centralização. */
.tcard.addnew{display:flex;align-items:center;justify-content:center;min-height:180px;cursor:pointer;color:var(--tm)}
.delBtn:hover{color:#ff8080;border-color:#ff8080}
.delRow{opacity:0;transition:opacity .12s;color:var(--tm);cursor:pointer;font-size:15px;padding:0 4px}
tr:hover .delRow{opacity:1}
.delRow:hover{color:#ff8080}
.thumb{border:0.5px solid var(--bor);border-radius:10px;background:var(--pan);cursor:pointer;padding:8px 7px;text-align:center;flex:0 0 118px;min-width:118px;max-width:118px;width:118px;height:112px;box-sizing:border-box;transition:border-color .15s,background .15s,transform .15s;user-select:none;-webkit-user-select:none;display:flex;flex-direction:column}
.thumb:hover{border-color:var(--bors);transform:translateY(-2px)}
.thumb.sel{border:1.5px solid var(--acc);background:#0e2230}
.thumb p{font-size:11px;font-weight:500;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thumb .cattag{font-size:9px;color:var(--tm);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.gchip{display:inline-flex;gap:5px;align-items:center;border:0.5px solid var(--bor);border-radius:999px;padding:6px 12px;font-size:12px;color:var(--ts);cursor:pointer}
.gchip.on{background:#0e2a1e;border-color:#1f6b45;color:#6ee7a8}
.dim{position:relative;flex:1}
.dim label{position:absolute;top:7px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tm)}
.dim input{width:100%;text-align:center;font-size:22px;font-weight:500;height:56px;padding-top:14px;font-variant-numeric:tabular-nums;border-radius:11px}
.krow{display:flex;justify-content:space-between;font-size:12px;color:var(--ts);padding:3px 0}
.krow b{color:var(--tp);font-weight:500;font-variant-numeric:tabular-nums}
.empty{text-align:center;padding:50px 20px;color:var(--tm)}
.noscroll{scrollbar-width:none}
.noscroll::-webkit-scrollbar{display:none}
.szchip{display:inline-flex;align-items:center;border:0.5px solid var(--bor);border-radius:8px;padding:4px 9px;font-size:12px;color:var(--ts);cursor:pointer;font-variant-numeric:tabular-nums}
.szchip:hover{border-color:var(--bors);color:var(--tp)}
/* Autocomplete de medidas: cai embaixo do campo ao focar/digitar, com as medidas de reuso (aprendidas + comuns). */
.szdrop{position:absolute;left:0;top:100%;margin-top:4px;width:max-content;min-width:100%;max-width:240px;background:var(--pan);border:0.5px solid var(--bors);border-radius:9px;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:30;overflow:hidden;display:none}
.szdrop.on{display:block}
.szdrop .opt{padding:7px 13px;font-size:13px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;white-space:nowrap;font-variant-numeric:tabular-nums}
.szdrop .opt:hover{background:#0e2230;color:var(--acc)}
.szdrop .opt small{color:var(--tm);font-size:10px;white-space:nowrap}
.szdrop .opthd{padding:6px 11px 4px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--tm);border-bottom:0.5px solid var(--bor)}
.qbtn{width:28px;height:23px;border:0.5px solid var(--bor);background:#0b0d10;border-radius:6px;font-size:10px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center}
.qbtn.up{color:var(--grn)} .qbtn.dn{color:var(--red)} .qbtn:hover{border-color:var(--bors)}
.ltab{padding:5px 12px;border-radius:8px;font-size:12px;color:var(--ts);cursor:pointer;border:0.5px solid var(--bor)}
.ltab.on{background:#0e2230;color:var(--acc);border-color:var(--acc)}
.swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-shadow:0 0 0 0.5px var(--bors)}
.swatch.on{border-color:var(--acc)}
.dfield label{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--tm);margin-bottom:5px;text-align:center}
.dfield input{width:100%;height:50px;text-align:center;font-size:20px;font-weight:500;border-radius:11px;font-variant-numeric:tabular-nums}
.chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px;justify-content:center;min-height:22px}
.linedot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle}
#toast{position:fixed;top:18px;right:18px;z-index:99;display:flex;flex-direction:column;gap:8px}
.toast{background:#0e2a1e;border:0.5px solid #1f6b45;color:#6ee7a8;padding:11px 15px;border-radius:10px;font-size:13px;animation:sl .2s}
@keyframes sl{from{transform:translateX(20px);opacity:0}}
.sc-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadein .15s}
.sc-modal{background:var(--pan);border:0.5px solid var(--bors);border-radius:14px;padding:20px;min-width:320px;max-width:90vw;max-height:85vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.5)}
/* Confirmação ANCORADA (SC.confirmPop): pill SLIM colado no botão que disparou, no lugar do modal central —
   praticamente só os ícones: ✓ verde (confirma) + ✕ vermelho (cancela), rótulo minúsculo opcional. */
.sc-cpop{position:fixed;z-index:1100;max-width:calc(100vw - 20px);display:inline-flex;align-items:center;gap:6px;padding:5px;border:0.5px solid var(--bors);border-radius:11px;background:var(--pan);box-shadow:0 12px 30px rgba(0,0,0,.5);animation:fadein .12s}
.sc-cpop-lbl{font-size:11px;color:var(--tm);padding:0 3px 0 5px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-cpop-yes{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;border:0;border-radius:8px;background:var(--grn);color:#052e16;cursor:pointer;transition:filter .12s}
.sc-cpop-yes:hover{filter:brightness(1.07)}
.sc-cpop-yes svg{width:16px;height:16px;stroke-width:2.6}
.sc-cpop-no{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0.5px solid rgba(248,113,113,.5);border-radius:8px;background:rgba(248,113,113,.13);color:var(--red);font-size:15px;line-height:1;cursor:pointer;transition:background .12s}
.sc-cpop-no:hover{background:rgba(248,113,113,.24)}
/* ✕ de excluir na LISTA de orçamentos: discreto (idioma de "remover" do app), vira vermelho no hover. */
.qdelx{display:inline-block;color:var(--tm);font-size:14px;line-height:1;cursor:pointer;padding:3px 6px;border-radius:6px;transition:color .12s,background .12s}
.qdelx:hover{color:var(--red);background:rgba(248,113,113,.12)}
@keyframes fadein{from{opacity:0}}
/* Ícone "ƒx" à esquerda das células de qtd/medida — atalho óbvio pro Construtor de Fórmula. */
.fx-edit{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 5px;margin-right:7px;border:0.5px solid var(--bor);border-radius:6px;background:var(--pan2);color:var(--acc);font-size:11px;font-style:italic;font-family:ui-monospace,Menlo,Consolas,monospace;cursor:pointer;vertical-align:middle;user-select:none}
.fx-edit:hover{border-color:var(--acc);background:#0e2230}

/* Conhecimento técnico: base, auditoria e calibração são fluxos separados. */
.knowledge-head>div:first-child{display:flex;align-items:baseline;gap:10px;min-width:0}
.knowledge-head>div:first-child span{font-size:12px;color:var(--tm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.knowledge-actions{display:flex;align-items:center;gap:3px}
.knowledge-body{max-width:1540px;width:100%;margin:0 auto}
.ktabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}
.ktabs a{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:0.5px solid var(--bor);border-radius:12px;background:var(--pan2);color:var(--ts)}
.ktabs a:hover{border-color:var(--bors);color:var(--tp)}
.ktabs a.on{border-color:#235778;background:#0e2230;color:var(--acc)}
.ktabs b{font-size:13px;font-weight:600}.ktabs span{font-size:11px;color:var(--tm)}
.kstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}
.kstats>div{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:13px 14px;border:0.5px solid var(--bor);border-radius:12px;background:var(--pan)}
.kstats span{font-size:11px;color:var(--tm);text-transform:uppercase;letter-spacing:.05em}.kstats b{grid-row:1/3;grid-column:2;font-size:24px;font-weight:550;font-variant-numeric:tabular-nums}.kstats small{font-size:11px;color:var(--ts)}
.kstats .needs-work b{color:#e0b429}.kstats .healthy b{color:var(--grn)}
.kfilters{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:12px;margin-bottom:12px}
.kfilters label{display:flex;flex-direction:column;gap:5px;min-width:120px;flex:1}.kfilters label.ksearch{min-width:260px;flex:2}
.kfilters label>span,.kform-grid label>span{font-size:10px;color:var(--tm);text-transform:uppercase;letter-spacing:.05em}
.kfilters input,.kfilters select{width:100%;height:36px;font-size:12.5px}.kfilters .ibtn{height:36px}
.kresults-head{display:flex;justify-content:space-between;align-items:center;padding:5px 2px 10px;color:var(--ts);font-size:12px}.kresults-head b{color:var(--tp);font-size:14px}.kresults-head>span{color:var(--tm)}
.krules{display:flex;flex-direction:column;gap:8px}.krule{background:var(--pan);border:0.5px solid var(--bor);border-radius:13px;overflow:hidden;scroll-margin-top:12px}.krule.is-retired{opacity:.65}
.krule details>summary{list-style:none}.krule details>summary::-webkit-details-marker{display:none}
.krule-summary{display:flex;align-items:center;gap:11px;padding:13px 14px;cursor:pointer;user-select:none}.krule-summary:hover{background:rgba(255,255,255,.025)}
.krule-caret{width:8px;height:8px;border-right:1.5px solid var(--tm);border-bottom:1.5px solid var(--tm);transform:rotate(-45deg);transition:transform .12s;flex:0 0 auto}.krule details[open] .krule-caret{transform:rotate(45deg) translateY(-2px)}
.krule-identity{display:flex;flex-direction:column;gap:3px;min-width:180px;flex:1}.krule-identity b{font-size:13.5px;font-weight:600;line-height:1.35}.krule-meta{font-size:10.5px;color:var(--tm);text-transform:none}
.krule-chips{display:flex;gap:5px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.schip.warn{background:#3a3014;color:#f0c84b}.schip.bad{background:#3a1418;color:#ff9b9b}.schip.muted{color:var(--tm)}
.krule-content{border-top:0.5px solid var(--bor);padding:0 15px 15px}.krule-toolbar{display:flex;align-items:center;gap:6px;min-height:48px;border-bottom:0.5px solid var(--bor);margin-bottom:15px}.krule-edit{margin-left:auto}
.krule-layout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(480px,1.35fr);gap:18px;align-items:start}.krule-instruction,.krule-drawing{min-width:0}
.krule-layout.text-only{display:block}.krule-layout.text-only .krule-instruction{max-width:1100px}
.krule-body{font-size:13px;color:var(--ts);line-height:1.65;margin-bottom:15px}.krule-facts{display:grid;grid-template-columns:1fr 150px;gap:8px;margin-bottom:15px}.krule-facts>div{padding:9px 10px;background:var(--pan2);border:0.5px solid var(--bor);border-radius:9px}.krule-facts span,.krule-foot>div>span{display:block;font-size:9.5px;color:var(--tm);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.krule-facts b{font-size:12px;font-weight:500;color:var(--ts)}
.krule-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.klist,.ksteps,.kissues{padding-left:18px;color:var(--ts);font-size:12px;line-height:1.55;margin-bottom:14px}.klist.compact{font-family:ui-monospace,Consolas,monospace;font-size:11px}.ksteps li::marker{color:var(--acc);font-weight:600}.kmissing{font-size:11.5px;color:#e0b429;margin:0 0 14px}
.kstage{background:#07090b;border:0.5px solid var(--bor);border-radius:11px;padding:10px;overflow:auto}.kstage svg{display:block;margin:auto;min-width:560px}.kstage-note{font-size:10.5px;color:var(--tm);line-height:1.45;margin-top:6px}
.krule-foot{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px;padding-top:13px;border-top:0.5px solid var(--bor)}.krule-foot>div{min-width:0}.krule-foot p,.krule-foot small{font-size:11px;color:var(--tm);line-height:1.5}.krule-foot code{display:block;max-height:90px;overflow:auto;padding:8px;border-radius:8px;background:#0b0d10;color:var(--ts);font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.kissues{color:#e0b429;margin:0}.kok{color:var(--grn)!important}
.kversions{margin-top:12px;border-top:.5px solid var(--bor);padding-top:10px}.kversions>summary{display:flex;align-items:center;gap:7px;width:max-content;cursor:pointer;color:var(--ts);font-size:11px}.kversions>summary svg{width:14px;height:14px;color:var(--acc)}.kversions ol{margin:10px 0 0 20px;color:var(--tm);font-size:10.5px}.kversions li{padding:4px 0}.kversions li b{display:inline-block;min-width:48px;color:var(--ts)}.kversions li span{line-height:1.45}
.kpanel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:12px}.kpanel-head h2{font-size:18px;font-weight:550;margin-bottom:5px}.kpanel-head p{font-size:12.5px;color:var(--ts);line-height:1.55;max-width:760px}.kaudit-table{overflow:auto;padding:6px}.kaudit-table table{min-width:850px}.kaudit-table td{vertical-align:top}.kaudit-table td:nth-child(1){width:25%}.kaudit-table td:nth-child(2){width:150px}.kaudit-findings{list-style:none;display:flex;flex-direction:column;gap:7px}.kaudit-findings li{font-size:11px}.kaudit-findings a{display:block;color:var(--tp);font-weight:500}.kaudit-findings span{display:block;color:var(--tm);line-height:1.4;margin-top:2px}
.kflags{display:flex;flex-direction:column;gap:8px}.kflag{display:flex;gap:12px;align-items:flex-start}.kflag>span{color:#e0b429;font-size:18px}.kflag b{font-size:13px}.kflag small{display:block;color:var(--tm);font-size:10.5px;margin-top:2px}.kflag p{font-size:12px;color:var(--ts);line-height:1.5;margin-top:6px}
.kmodal{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:28px 16px;background:rgba(0,0,0,.72);overflow:auto}.kmodal[hidden]{display:none}.kmodal-card{width:min(900px,100%);box-shadow:0 24px 80px rgba(0,0,0,.6)}.kmodal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:0.5px solid var(--bor);padding-bottom:12px;margin-bottom:14px}.kmodal-head h2{font-size:17px;font-weight:550}.kform-error{padding:9px 11px;margin-bottom:12px;border-radius:9px;background:#3a1418;color:#ff9b9b;font-size:12px}.kform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.kform-grid label{display:flex;flex-direction:column;gap:5px}.kform-grid .wide{grid-column:1/-1}.kform-grid input,.kform-grid select,.kform-grid textarea{width:100%}.kform-grid textarea{resize:vertical;line-height:1.45}.kadvanced{border:0.5px solid var(--bor);border-radius:9px;padding:10px}.kadvanced summary{cursor:pointer;font-size:12px;color:var(--ts)}.kadvanced p{font-size:11px;color:var(--tm);margin:8px 0}.kadvanced textarea{font:11px ui-monospace,Consolas,monospace}.kmodal-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:14px;padding-top:12px;border-top:0.5px solid var(--bor)}
@media (max-width:1080px){.kstats{grid-template-columns:repeat(2,1fr)}.krule-layout{grid-template-columns:1fr}.krule-drawing{order:-1}.knowledge-head>div:first-child span{display:none}}
@media (max-width:760px){.knowledge-body{padding:12px}.knowledge-head{padding:10px 12px}.knowledge-actions .isep,.knowledge-actions .ibtn.mut span{display:none}.knowledge-actions .ibtn{padding:0 8px}.ktabs{grid-template-columns:1fr}.ktabs a{padding:9px 11px}.kstats{grid-template-columns:1fr 1fr}.kfilters{align-items:stretch}.kfilters label,.kfilters label.ksearch{min-width:calc(50% - 5px)}.kfilters .ibtn{flex:1}.kresults-head>span{display:none}.krule-summary{align-items:flex-start}.krule-chips{max-width:45%}.krule-chips .schip:first-child{display:none}.krule-content{padding:0 10px 12px}.krule-columns,.krule-foot,.krule-facts{grid-template-columns:1fr}.kstage svg{min-width:620px}.kpanel-head{align-items:flex-start;flex-direction:column}.kform-grid{grid-template-columns:1fr}.kform-grid .wide{grid-column:auto}.kmodal{padding:8px}.kmodal-card{padding:13px}}
