/* Alec's Furniture Tools - shared styles (hub, tool pages, embed). Uses the site's tokens. */
:root{
  --t-green:#31b770; --t-green-d:#1f8f57; --t-navy:#09427c; --t-ink:#1b2a3a; --t-muted:#4a5b6c;
  --t-line:#e2e8f0; --t-bg:#f6f9fc; --t-card:#fff;
  --t-ok:#17663b; --t-ok-bg:#e8f7ef; --t-warn:#7a4e00; --t-warn-bg:#fff4d9; --t-bad:#9b1c1c; --t-bad-bg:#fdecec;
}
/* theme header is position:fixed: clear it (~80px mobile, ~113px desktop) */
@media(min-width:769px){.tools-wrap{padding-top:128px!important}}
.tools-wrap{max-width:1100px;margin:0 auto;padding:92px 16px 48px;color:var(--t-ink);font-family:inherit;line-height:1.6}
.tools-wrap *,.tools-wrap *::before,.tools-wrap *::after{box-sizing:border-box}
.tools-wrap h1{font-size:clamp(1.7rem,4.5vw,2.5rem);line-height:1.2;color:var(--t-navy);margin:.4em 0 .4em}
.tools-wrap h2{font-size:clamp(1.3rem,3vw,1.7rem);color:var(--t-navy);margin:1.8em 0 .5em;line-height:1.25}
.tools-wrap h3{font-size:1.1rem;color:var(--t-navy);margin:1.4em 0 .4em}
.tools-wrap p,.tools-wrap li{max-width:70ch}
.tools-wrap a{color:var(--t-navy);text-decoration:underline;text-underline-offset:2px}
.tools-wrap a:hover{color:var(--t-green-d)}
.tools-wrap :focus-visible{outline:3px solid #f5a623;outline-offset:2px}
.tools-crumbs{font-size:.9rem;padding:14px 0 0;color:var(--t-muted)}
.tools-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.tools-crumbs li+li::before{content:"/";margin-right:6px;color:#8795a4}
.tools-lead{font-size:1.1rem;color:var(--t-muted)}
.tools-hero{background:linear-gradient(135deg,#eef6ff,#e8f7ef);border:1px solid var(--t-line);border-radius:14px;padding:28px 22px;margin:14px 0 8px}
.tools-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:600px){.tools-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.tools-grid{grid-template-columns:repeat(3,1fr)}}
.tool-card{background:var(--t-card);border:1px solid var(--t-line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:10px;transition:transform .2s,box-shadow .2s}
.tool-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12)}
@media(prefers-reduced-motion:reduce){.tool-card{transition:none}.tool-card:hover{transform:none}}
.tool-card h3{margin:0}
.tool-card p{margin:0;color:var(--t-muted)}
.tool-pill{align-self:flex-start;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;border-radius:999px;padding:3px 10px;background:var(--t-navy);color:#fff}
.tool-card .tool-link{margin-top:auto;font-weight:700}
.tools-links{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none}
.tools-links a{display:inline-block;border:1px solid var(--t-line);border-radius:999px;padding:8px 16px;text-decoration:none;font-weight:600;background:#fff}
.tools-links a:hover{border-color:var(--t-green);}
.tools-note{background:var(--t-bg);border:1px solid var(--t-line);border-left:4px solid var(--t-navy);border-radius:8px;padding:14px 16px;margin:18px 0}
.tools-faq details{border:1px solid var(--t-line);border-radius:10px;padding:12px 16px;margin:8px 0;background:#fff}
.tools-faq summary{cursor:pointer;font-weight:700;color:var(--t-navy)}
.tools-diagram{max-width:480px;width:100%;height:auto;margin:10px 0}
.tools-embed textarea{width:100%;font:13px/1.4 ui-monospace,Consolas,monospace;padding:10px;border:1px solid var(--t-line);border-radius:8px;min-height:92px;background:#fff;color:var(--t-ink)}

/* ---- calculator ---- */
#sofa-fit-app{min-height:420px}
.sf-form,.sf-results{background:#fff;border:1px solid var(--t-line);border-radius:14px;padding:18px}
.sf-results{margin-top:18px}
.sf-set{border:1px solid var(--t-line);border-radius:10px;padding:14px 14px 6px;margin:0 0 16px}
.sf-set legend{font-weight:700;color:var(--t-navy);padding:0 8px}
.sf-grid2,.sf-grid3{display:grid;gap:0 16px;grid-template-columns:1fr}
@media(min-width:560px){.sf-grid2{grid-template-columns:1fr 1fr}.sf-grid3{grid-template-columns:repeat(3,1fr)}}
.sf-field{margin-bottom:12px}
.sf-field label{display:block;font-weight:600;font-size:.95rem;margin-bottom:4px}
.sf-unit{font-weight:400;color:var(--t-muted)}
.sf-field input,.sf-field select{width:100%;min-height:46px;font-size:16px;padding:8px 10px;border:1.5px solid #8795a4;border-radius:8px;background:#fff;color:var(--t-ink);font-family:inherit}
.sf-field input[aria-invalid=true]{border-color:var(--t-bad);background:#fff8f8}
.sf-hint{font-size:.85rem;color:var(--t-muted);margin:4px 0 0}
.sf-error{font-size:.9rem;color:var(--t-bad);font-weight:600;margin:4px 0 0}
.sf-error::before{content:"\26A0\00a0"}
.sf-error-summary{border:2px solid var(--t-bad);background:var(--t-bad-bg);border-radius:10px;padding:10px 16px;margin-bottom:16px;color:var(--t-bad)}
.sf-error-summary ul{margin:6px 0 0;padding-left:20px}
.sf-error-summary a{color:var(--t-bad)}
.sf-units{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.sf-units-label{font-weight:700}
.sf-radio{display:inline-flex;gap:6px;align-items:center;min-height:44px;cursor:pointer}
.sf-radio input{width:20px;height:20px}
.sf-details{margin:4px 0 12px}
.sf-details summary{cursor:pointer;font-weight:600;color:var(--t-navy);min-height:44px;display:flex;align-items:center}
.sf-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.sf-btn{min-height:46px;padding:10px 20px;font:inherit;font-weight:700;border-radius:999px;cursor:pointer;border:2px solid var(--t-navy);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.sf-btn-primary{background:var(--t-navy);color:#fff}
.sf-btn-primary:hover{background:#06305a}
.sf-btn-ghost{background:#fff;color:var(--t-navy)}
.tools-wrap a.sf-btn-ghost{text-decoration:none}
.sf-btn-ghost:hover{background:var(--t-bg)}
.sf-status{display:flex;gap:14px;align-items:flex-start;border-radius:12px;padding:14px 16px;border:2px solid}
.sf-status-title{margin:0 0 4px!important;font-size:1.3rem!important}
.sf-status p{margin:0}
.sf-status-icon{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;font-weight:800;color:#fff}
.sf-status-likely{background:var(--t-ok-bg);border-color:var(--t-ok);color:var(--t-ok)}.sf-status-likely .sf-status-icon{background:var(--t-ok)}
.sf-status-tight{background:var(--t-warn-bg);border-color:var(--t-warn);color:var(--t-warn)}.sf-status-tight .sf-status-icon{background:var(--t-warn)}
.sf-status-unlikely{background:var(--t-bad-bg);border-color:var(--t-bad);color:var(--t-bad)}.sf-status-unlikely .sf-status-icon{background:var(--t-bad)}
.sf-status-title,.sf-status p{color:inherit}
.sf-panels{display:grid;gap:12px;grid-template-columns:1fr;margin:16px 0 6px}
@media(min-width:700px){.sf-panels{grid-template-columns:repeat(3,1fr)}}
.sf-panel{margin:0;border:1px solid var(--t-line);border-radius:10px;padding:8px;background:var(--t-bg);text-align:center;font-size:.85rem}
.sf-panel-best{border-color:var(--t-navy);box-shadow:0 0 0 2px var(--t-navy) inset}
.sf-svg{width:100%;max-width:300px;height:auto;display:block;margin:0 auto}
.sf-door{fill:#fff;stroke:var(--t-navy);stroke-width:3}
.sf-sofa{stroke-width:2.5}
.sf-fit{fill:rgba(49,183,112,.35);stroke:var(--t-ok)}
.sf-nofit{fill:rgba(155,28,28,.15);stroke:var(--t-bad);stroke-dasharray:6 4}
.sf-dim{font-size:11px;fill:var(--t-muted)}
.sf-verdict{font-size:13px;font-weight:700;fill:var(--t-ink)}
.sf-tablewrap{overflow-x:auto}
.sf-table{border-collapse:collapse;width:100%;font-size:.92rem}
.sf-table th,.sf-table td{border:1px solid var(--t-line);padding:8px 10px;text-align:left;vertical-align:top}
.sf-table thead th{background:var(--t-bg)}
.sf-list{padding-left:20px;margin:6px 0}
.sf-note{background:var(--t-bg);border-radius:8px;padding:10px 14px}
.sf-status-msg{min-height:1.4em;font-weight:600;color:var(--t-ok)}
.sf-print-only{display:none}
.sf-results:focus{outline:none}
.sf-embed-foot{text-align:center;font-size:.85rem;padding:10px 0 0;color:var(--t-muted)}
.sf-embed-foot a{color:var(--t-navy)}
body.sf-embed{margin:0;background:#fff;font-family:"Open Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
body.sf-embed .tools-wrap{padding-bottom:12px}

@media print{
  body.sf-printing *{visibility:hidden!important}
  body.sf-printing #sofa-fit-results,body.sf-printing #sofa-fit-results *{visibility:visible!important}
  body.sf-printing #sofa-fit-results{position:absolute;left:0;top:0;width:100%;border:0;padding:0;display:block}
  body.sf-printing .sf-noprint{display:none!important}
  body.sf-printing .sf-print-only{display:block!important;font-size:.85rem;margin-top:16px}
  .sf-panel{break-inside:avoid}
}

/* ---- shared by the corner, sofa bed and room planner tools ---- */
.tl-checks{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}
.tools-wrap .tl-checks li{max-width:none;display:flex;gap:10px;align-items:flex-start;border:1px solid var(--t-line);border-radius:10px;padding:10px 12px;background:#fff}
.tl-badge{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:.9rem}
.tl-ok .tl-badge{background:var(--t-ok)}.tl-warn .tl-badge{background:var(--t-warn)}.tl-bad .tl-badge{background:var(--t-bad)}
.tl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tl-plan{max-width:560px;width:100%;height:auto;display:block;margin:12px auto;border:1px solid var(--t-line);border-radius:10px;background:#fff}
.tl-wall{fill:#cbd5e1}.tl-floor{fill:#f6f9fc}
.tl-closed{fill:none;stroke:var(--t-navy);stroke-width:2;stroke-dasharray:5 4}
.tl-open{fill:rgba(49,183,112,.28);stroke:var(--t-ok);stroke-width:2}
.tl-clear{fill:rgba(9,66,124,.08);stroke:var(--t-navy);stroke-dasharray:3 3}
.tl-label{font-size:11px;fill:var(--t-ink);font-family:inherit}
@media print{.tl-plan{break-inside:avoid}}
.sf-table tr.sf-pick th,.sf-table tr.sf-pick td{background:var(--t-ok-bg)}
