/* ═══════════════════════════════════════════════════════════════════════
   ABCDE-kirja — työkalujen yhteinen talotyyli (paperi ja muste)

   Jokainen työkalu (.html) lataa tämän:
     <link rel="stylesheet" href="/stylesheets/paper.css">
   ja kirjoittaa omaan <style>-blokkiinsa vain omat erityispiirteensä
   (asettelu, kuvan värit). Työkalun omat säännöt tulevat tämän jälkeen,
   joten ne voittavat tarvittaessa.

   Rakennuspalikat:
     .wrap .masthead .lead      sivun runko ja otsikko
     .sec > h2 > .num           numeroitu osio (paksu viiva, punainen numero)
     .presets button            esiasetusnapit (aria-pressed)
     .sl .row label output      liukusäädin; input.ranged = normaalialue radalla
     .legend .detail .cap       selitteet ja kuvatekstit
     .tablewrap .ibw            taulukko
     footer                     lähteet
   Upotettuna (iframe) <html class="embedded"> piilottaa mastheadin.
   ═══════════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;800;900&family=JetBrains+Mono:wght@400;500;700;800&display=swap');
@import url('design-tokens.css?v=20261018c');

*,*::before,*::after{box-sizing:border-box}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
html,body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.5 var(--sans)}

/* runko ja otsikko */
.wrap{max-width:1320px;margin:0 auto;padding:22px 20px 56px}
.masthead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:3px solid var(--ink);padding-bottom:10px;margin-bottom:10px}
.masthead h1{font-size:32px;font-weight:900;letter-spacing:-.035em;text-transform:uppercase;line-height:.95;margin:0}
.masthead .meta{font:500 10px/1.6 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);text-align:right;white-space:nowrap}
.embedded .masthead{display:none}
html.embedded{overflow:hidden}   /* ei omaa vierityspalkkia: kehys kasvaa sisällön mittaiseksi */
.embedded .wrap{padding:0 0 16px}   /* ei omaa sivureunusta: Material antaa jo sisällön marginaalin */
.lead{max-width:100ch;margin:0 0 14px;font-size:15px}
@media(max-width:620px){.masthead{flex-direction:column;align-items:flex-start;gap:6px}.masthead .meta{text-align:left}.masthead h1{font-size:27px}}

/* kuva */
#chart{display:block;width:100%;height:auto}
#chart text{font-family:var(--mono)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend svg{flex:none;display:block}
.legend.abbr b{font-weight:700;color:var(--ink)}

/* numeroitu osio */
.sec{border-top:3px solid var(--ink);padding:8px 0 14px}
.sec h2{font-size:15px;font-weight:800;letter-spacing:-.01em;text-transform:uppercase;margin:0 0 9px;display:flex;gap:9px;align-items:baseline}
.sec h2 .num{font:800 12px/1 var(--mono);color:var(--red)}

/* esiasetukset */
.presets{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.presets button{font:600 13px/1.15 var(--sans);text-align:left;padding:7px 9px;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);border-radius:0;cursor:pointer}
.presets button:hover{background:var(--paper2)}
.presets button .n{display:block}
.presets button .s{display:block;font:400 10.5px/1.3 var(--mono);color:var(--dim);margin-top:2px}
.presets button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.presets button[aria-pressed=true] .s{color:var(--faint)}
button:focus-visible,input[type=range]:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* liukusäätimet */
.sl{margin:0 0 5px}
.sl .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.sl output{font:700 14px/1 var(--mono);white-space:nowrap}
.sl output small{font-weight:400;color:var(--dim);font-size:11px}
.sl .norm{margin-right:auto;font:400 10.5px/1 var(--mono);color:var(--dim);white-space:nowrap}
.sl .norm i{display:inline-block;width:14px;height:8px;background:var(--faint);margin-right:5px;vertical-align:-1px}
/* normaalialue liu'un radalla: --lo ja --hi ovat osuuksia liu'un alueesta (nuppi 15 px leveä) */
input[type=range].ranged{background:linear-gradient(to right,
  transparent calc(7.5px + (100% - 15px)*var(--lo)), var(--faint) 0,
  var(--faint) calc(7.5px + (100% - 15px)*var(--hi)), transparent 0) center/100% 10px no-repeat}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;margin:0;display:block}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--ink)}
input[type=range]::-moz-range-track{height:2px;background:var(--ink)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:20px;background:var(--red);border:0;border-radius:0;margin-top:-9px;cursor:pointer}
input[type=range]::-moz-range-thumb{width:15px;height:20px;background:var(--red);border:0;border-radius:0;cursor:pointer}

/* taulukko ja tekstit */
.tablewrap{overflow-x:auto}
.cap{font:400 11px/1.5 var(--mono);color:var(--dim);max-width:110ch}
footer{margin-top:26px;border-top:1px solid var(--ink);padding-top:9px;font:400 11px/1.6 var(--mono);color:var(--dim);max-width:110ch}
