:root{
  --paper:#e8f0e3; --panel:#f6f9f2; --ink:#17203a; --muted:#4f5d75; --rule:#b9cdb2;
  --grid:rgba(52,120,78,.11); --blue:#2340c4; --blue-soft:#aebbee; --red:#c8102e; --on-blue:#f6f9f2;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#0f1a17; --panel:#15231f; --ink:#e3efe6; --muted:#98aaa0; --rule:#2c4238;
    --grid:rgba(120,210,165,.07); --blue:#93a9ff; --blue-soft:#33437f; --red:#ff7285; --on-blue:#0f1a17;}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background-color:var(--paper);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:24px 24px;color:var(--ink);font:400 1rem/1.6 var(--sans)}
.wrap{max-width:62rem;margin:0 auto;padding-left:clamp(1rem,4vw,2rem);padding-right:clamp(1rem,4vw,2rem)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
a{color:var(--blue)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
button,input,select{font:inherit}

header.site{border-bottom:1.5px solid var(--ink);background:var(--panel)}
.sitebar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1.25rem;padding:.9rem 0}
.brand{font:600 1.3rem var(--serif);color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.brand span{color:var(--blue)}
.brand em{font-style:normal;color:var(--muted);font-size:.75em}
.catnav{display:flex;flex-wrap:wrap;gap:.2rem 1rem}
.catnav a{color:var(--ink);text-decoration:none;font-size:.92rem;padding:.2rem 0;border-bottom:2px solid transparent}
.catnav a:hover{border-color:var(--blue);color:var(--blue)}
@media (max-width:40rem){
  .sitebar{flex-wrap:nowrap}
  .brand{flex:none}
  .catnav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0 1.15rem;padding-bottom:.2rem;-webkit-mask-image:linear-gradient(to right,#000 92%,transparent);mask-image:linear-gradient(to right,#000 92%,transparent)}
  .catnav a{white-space:nowrap;padding:.6rem 0;flex:none}
}

main.wrap{padding-top:clamp(1.25rem,3vw,2rem);padding-bottom:4rem;min-height:60vh}
.crumbs{color:var(--muted);font-size:.88rem;margin-bottom:1.25rem}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--blue)}
.crumbs .sep{margin:0 .4rem}

h1{font:600 clamp(1.9rem,4.6vw,2.9rem)/1.08 var(--serif);letter-spacing:-.015em;margin:0 0 .5rem;max-width:22ch}
h2{font:600 1.35rem var(--serif);margin:2rem 0 .6rem}
h3{font:600 1.08rem var(--serif);margin:1.25rem 0 .35rem}
.lede{color:var(--muted);max-width:52ch;font-size:1.05rem;margin:0 0 1.5rem}
p{max-width:68ch}

/* ---- converter card (shared by pair page + category page) ---- */
.conv{background:var(--panel);border:1.5px solid var(--ink);padding:1.25rem clamp(1rem,3vw,1.75rem) 1.4rem;margin-bottom:2rem}
.conv-row{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:end}
.conv-field label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:.3rem}
.conv-field .valwrap{display:flex;border:1.5px solid var(--ink);background:var(--paper)}
.conv-field input[type=number],.conv-field input[type=text]{flex:1;min-width:0;border:0;background:transparent;color:inherit;padding:.65rem .75rem;font:500 1.15rem var(--mono)}
.conv-field select{flex:1;min-width:0;border:0;border-left:1.5px solid var(--ink);background:var(--panel);color:inherit;padding:.65rem .6rem;font:500 .95rem var(--sans)}
.swap{align-self:center;background:var(--blue);color:var(--on-blue);border:0;width:2.6rem;height:2.6rem;border-radius:50%;font-size:1.05rem;line-height:1;cursor:pointer}
.swap:hover{filter:brightness(1.1)}
@media (max-width:34rem){.conv-row{grid-template-columns:1fr}.qc-row{grid-template-columns:1fr}.qc-go{width:100%}.swap{justify-self:center;transform:rotate(90deg)}}

.answer{margin:1.1rem 0 0;background:var(--paper);border:2.5px solid var(--red);
  border-radius:255px 18px 225px 18px/18px 225px 18px 255px;padding:.9rem 1.4rem}
.answer .big{font:600 1.5rem var(--serif)}
.answer .small{color:var(--muted);font-size:.9rem;margin-top:.15rem}

table.conv-table{width:100%;border-collapse:collapse;margin:.75rem 0 1.25rem;font-size:.95rem}
table.conv-table caption{caption-side:top;text-align:left;color:var(--muted);font-size:.85rem;margin-bottom:.4rem}
table.conv-table th,table.conv-table td{text-align:left;padding:.45rem .7rem;border-bottom:1px solid var(--rule)}
table.conv-table th{color:var(--muted);font-weight:500;font-size:.85rem}
table.conv-table td{font-family:var(--mono)}

.formula{background:var(--panel);border-left:3px solid var(--blue);padding:.85rem 1.1rem;margin:1rem 0;font-family:var(--mono);font-size:.95rem;line-height:1.7}

/* ---- quick converter search (homepage) ---- */
.quickconv{margin-bottom:2rem}
.qc-row{display:grid;grid-template-columns:5.5rem 1fr auto 1fr;gap:.6rem;align-items:end}
.qc-field label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:.3rem}
.qc-field input[type=number]{width:100%;border:1.5px solid var(--ink);background:var(--paper);color:inherit;padding:.65rem .6rem;font:500 1.1rem var(--mono)}
.combo{position:relative}
.combo input[type=text]{width:100%;border:1.5px solid var(--ink);background:var(--paper);color:inherit;padding:.65rem .75rem;font-size:16px;font-family:var(--sans);font-weight:500}
.combo input[type=text]:focus{outline:3px solid var(--blue);outline-offset:1px}
.combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 2px);max-height:16rem;overflow-y:auto;
  background:var(--panel);border:1.5px solid var(--ink);list-style:none;margin:0;padding:.25rem 0;display:none}
.combo-list.open{display:block}
.combo-opt{padding:.7rem .8rem;cursor:pointer;font-size:.94rem;display:flex;justify-content:space-between;gap:.6rem;min-height:2.75rem;align-items:center}
.combo-opt .cat{color:var(--muted);font-size:.8rem}
.combo-opt[aria-selected="true"],.combo-opt:hover{background:var(--blue);color:var(--on-blue)}
.combo-opt[aria-selected="true"] .cat,.combo-opt:hover .cat{color:var(--on-blue);opacity:.75}
.combo-empty{padding:.7rem .8rem;color:var(--muted);font-size:.88rem}
.qc-go{background:var(--blue);color:var(--on-blue);border:0;padding:.7rem 1rem;font-weight:600;height:2.85rem}
.qc-go:hover{filter:brightness(1.1)}

.linkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.25rem 1rem;list-style:none;margin:.5rem 0 0;padding:0}
.linkgrid a{text-decoration:none;font-size:.92rem;color:var(--ink);border-bottom:1px solid transparent}
.linkgrid a:hover{color:var(--blue);border-color:var(--blue)}

.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.9rem;list-style:none;margin:0 0 2rem;padding:0}
.tile{display:block;background:var(--panel);border:1.5px solid var(--rule);padding:1rem 1.1rem;text-decoration:none;color:var(--ink)}
.tile:hover{border-color:var(--blue)}
.tile h3{margin:0 0 .25rem;font-size:1.05rem}
.tile p{margin:0;color:var(--muted);font-size:.85rem;max-width:none}

.chip{display:inline-block;font:500 .85rem var(--mono);background:transparent;color:var(--ink);border:1px solid var(--rule);padding:.3rem .6rem;text-decoration:none;margin:.15rem .3rem .15rem 0}
.chip:hover{border-color:var(--blue);color:var(--blue)}
@media (max-width:40rem){.chip{padding:.5rem .7rem}}

footer.site{margin-top:2rem;border-top:1.5px solid var(--ink);background:var(--panel);color:var(--muted);font-size:.92rem}
.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;padding:2rem 0 1rem}
.footgrid h2{font:600 .95rem var(--sans);color:var(--ink);margin:0 0 .5rem}
.footgrid ul{list-style:none;margin:0;padding:0}
.footgrid li{margin:.2rem 0}
.footgrid a{color:var(--muted);text-decoration:none}
.footgrid a:hover{color:var(--blue)}
.footgrid p{max-width:32ch;font-size:.88rem}
.legal{padding:1rem 0 1.5rem;font-size:.82rem}
@media (max-width:40rem){.footgrid{grid-template-columns:1fr;gap:1.25rem}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
