/* Otoolia — outils Maison & bricolage (calepinage, cabane bois) — styles limités à .bk / .bk-* */
.bk-head h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); margin-bottom: .2em; }
.bk h2 { font-size: 1.08rem; margin: 0 0 10px; }
.bk h3 { font-size: .95rem; margin: 14px 0 6px; }
.bk-main { display: grid; gap: var(--ot-space); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1000px) { .bk-main { grid-template-columns: minmax(310px, 390px) minmax(0, 1fr); } .bk-sticky { position: sticky; top: 76px; } }
.bk-main > *, .bk-stack > * { min-width: 0; }
/* colonne des réglages escamotable */
.bk-side { display: grid; gap: 8px; align-content: start; min-width: 0; }
.bk-sidebtn { display: inline-flex; align-items: center; gap: 7px; justify-self: start; border: 1px solid var(--ot-border); background: var(--ot-surface); color: var(--ot-text); font: inherit; font-size: .85rem; font-weight: 600; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.bk-sidebtn:hover { border-color: var(--ot-logo-blue); }
.bk-sidebtn svg { flex: none; }
.bk-main.is-collapsed > .bk-side > .bk-stack { display: none; }
@media (min-width: 1000px) {
  .bk-main.is-collapsed { grid-template-columns: 44px minmax(0, 1fr); }
  .bk-main.is-collapsed .bk-sidebtn { writing-mode: vertical-rl; padding: 12px 7px; border-radius: 12px; position: sticky; top: 76px; }
  .bk-main.is-collapsed .bk-sidebtn svg { transform: rotate(90deg); }
}
.bk-sidebtn .bk-sb-open { display: none; }
.bk-main.is-collapsed .bk-sidebtn .bk-sb-open { display: inline; }
.bk-main.is-collapsed .bk-sidebtn .bk-sb-close { display: none; }
.bk-stack { display: grid; gap: var(--ot-space); min-width: 0; }
.bk-row { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: flex-end; margin: 8px 0; }
.bk-f { display: flex; flex-direction: column; gap: 4px; font-size: .8rem; font-weight: 600; color: var(--ot-text-soft); min-width: 0; }
.bk-f .ot-input, .bk-f .ot-select { min-height: 36px; font-size: .96rem; width: 104px; max-width: 100%; }
.bk-f--wide { flex: 1 1 200px; } .bk-f--wide .ot-input, .bk-f--wide .ot-select { width: 100%; }
.bk-f small { font-weight: 400; }
.bk-ck { display: flex; gap: 7px; align-items: center; font-size: .9rem; cursor: pointer; margin: 6px 0; }
.bk-note { font-size: .85rem; color: var(--ot-text-soft); margin: 6px 0; line-height: 1.45; }
.bk-warn { font-size: .86rem; background: color-mix(in srgb, var(--ot-logo-orange) 14%, var(--ot-surface)); border-left: 3px solid var(--ot-logo-orange); padding: 7px 10px; border-radius: 6px; margin: 6px 0; }
.bk-ok { font-size: .86rem; background: color-mix(in srgb, var(--ot-success) 12%, var(--ot-surface)); border-left: 3px solid var(--ot-success); padding: 7px 10px; border-radius: 6px; margin: 6px 0; }
.bk-sm { min-height: 32px; padding: 4px 11px; font-size: .84rem; }
.bk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.bk-chip { border: 1px solid var(--ot-border); background: var(--ot-surface); color: var(--ot-text); font: inherit; font-size: .82rem; padding: 5px 10px; border-radius: 999px; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.bk-chip:hover { border-color: var(--ot-logo-blue); }
.bk-chip[aria-pressed="true"] { background: color-mix(in srgb, var(--ot-brand) 14%, var(--ot-surface)); border-color: var(--ot-brand); font-weight: 600; }
.bk-chip svg { flex: none; }
.bk-pats { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 6px; margin: 4px 0 8px; }
.bk-pat { border: 1px solid var(--ot-border); background: var(--ot-surface); color: var(--ot-text); font: inherit; font-size: .76rem; line-height: 1.2; padding: 6px 4px; border-radius: 10px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.bk-pat:hover { border-color: var(--ot-logo-blue); }
.bk-pat[aria-pressed="true"] { border-color: var(--ot-brand); background: color-mix(in srgb, var(--ot-brand) 12%, var(--ot-surface)); font-weight: 700; }
.bk-pat svg { width: 54px; height: 36px; }
.bk-cards { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 10px 0; }
.bk-card { background: var(--ot-surface-2); border: 1px solid var(--ot-border); border-radius: var(--ot-radius-s); padding: 9px 11px; }
.bk-card small { display: block; font-size: .72rem; color: var(--ot-text-soft); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.bk-card b { display: block; font-size: 1.3rem; line-height: 1.25; font-variant-numeric: tabular-nums; }
.bk-card span { font-size: .8rem; color: var(--ot-text-soft); }
.bk-card--main { background: color-mix(in srgb, var(--ot-brand) 10%, var(--ot-surface)); border-color: color-mix(in srgb, var(--ot-brand) 40%, var(--ot-border)); }
.bk-tablewrap { overflow-x: auto; margin: 8px 0; }
.bk-table { border-collapse: collapse; width: 100%; font-size: .87rem; font-variant-numeric: tabular-nums; }
.bk-table th, .bk-table td { border-bottom: 1px solid var(--ot-border); padding: 5px 7px; text-align: right; }
.bk-table th:first-child, .bk-table td:first-child { text-align: left; }
.bk-table thead th { font-size: .76rem; color: var(--ot-text-soft); font-weight: 700; background: var(--ot-surface-2); }
.bk-table tfoot td { font-weight: 700; border-top: 2px solid var(--ot-border); }
.bk-table .ot-input { min-height: 30px; padding: 3px 6px; width: 74px; font-size: .9rem; }
.bk-table td.bk-l { text-align: left; }
.bk-table tr.bk-grp td { background: var(--ot-surface-2); font-weight: 700; text-align: left; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; color: var(--ot-text-soft); }
.bk-x { border: 0; background: none; color: var(--ot-text-soft); cursor: pointer; font-size: 1rem; padding: 2px 6px; }
.bk-x:hover { color: var(--ot-danger); }
.bk-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.bk-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: var(--ot-text); color: var(--ot-bg); padding: 10px 18px; border-radius: 999px; font-size: .9rem; z-index: 50; max-width: calc(100vw - 32px); text-align: center; }
.bk-about { margin-top: calc(var(--ot-space) * 2); }
.bk-plan { position: relative; background: var(--ot-surface); border: 1px solid var(--ot-border); border-radius: var(--ot-radius-s); overflow: hidden; touch-action: none; }
.bk-plan canvas { display: block; width: 100%; cursor: grab; }
.bk-plan canvas.is-drag { cursor: grabbing; }
.bk-plan canvas.is-pt { cursor: move; }
.bk-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .8rem; color: var(--ot-text-soft); margin: 8px 0 0; }
.bk-legend i { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: -2px; margin-right: 5px; border: 1px solid rgba(0,0,0,.25); }
.bk-tabs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; }
.bk-tab { border: 1px solid var(--ot-border); background: var(--ot-surface); color: var(--ot-text); font: inherit; font-size: .86rem; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.bk-tab[aria-selected="true"] { background: var(--ot-brand); border-color: var(--ot-brand); color: #fff; font-weight: 600; }
.bk-seg { display: inline-flex; border: 1px solid var(--ot-border); border-radius: 999px; overflow: hidden; flex-wrap: wrap; }
.bk-seg button { border: 0; background: var(--ot-surface); color: var(--ot-text); font: inherit; font-size: .85rem; padding: 7px 13px; cursor: pointer; }
.bk-seg button + button { border-left: 1px solid var(--ot-border); }
.bk-seg button[aria-pressed="true"] { background: var(--ot-brand); color: #fff; font-weight: 600; }
.bk-svg { width: 100%; height: auto; display: block; background: var(--ot-surface); border: 1px solid var(--ot-border); border-radius: var(--ot-radius-s); }
.bk-svg text { font-family: var(--ot-font); }
.bk-views { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.bk-views figure { margin: 0; }
.bk-views figcaption { font-size: .8rem; font-weight: 700; color: var(--ot-text-soft); margin: 0 0 4px; text-transform: uppercase; letter-spacing: .03em; }
.bk-printonly { display: none; }
.cb-pl { display: none; } .cb-pl.is-on { display: block; }
#cb-pltabs { margin-right: auto; }
@media print {
  .bk-noprint, #ot-header, #ot-footer, .bk-about, .ot-guide, .ot-related, .ot-fold__btn, .bk-acts { display: none !important; }
  .bk-printonly { display: block; }
  .bk-main { display: block; }
  .bk-sidebtn { display: none !important; }
  /* un bloc plus haut qu'une page ne doit pas être repoussé en entier à la page suivante (page blanche) */
  #bk .ot-panel, .bk .ot-panel { break-inside: auto; }
  .bk-svg, .bk-views figure { break-inside: avoid; }
  .cb-pl { display: block !important; break-inside: avoid; margin-bottom: 14px !important; }
  .cb-pl figcaption { display: none !important; }
  .cb-pl svg { max-height: 23cm; }
  body.cb-print-plans .cb-pl + .cb-pl { break-before: page; }
  body.cb-print-plans .bk-main .ot-panel:not(#cb-plans-p), body.cb-print-plans #cb-presets, body.cb-print-plans .bk-head p { display: none !important; }
  body.cb-print-plans #cb-plans-p > :not(.ot-fold__h):not(#cb-plans) { display: none !important; }
  .ot-panel { box-shadow: none !important; border: 0 !important; padding: 0 !important; break-inside: avoid; margin-bottom: 10px; }
  .bk-plan { border: 1px solid #999; }
  .bk-table { font-size: 9pt; }
}
