/* AI-uutiset — tyylit. Lähde: visuaalinen speksi (ks. README), ilman speksiohjaimia ja demotiloja.
   Tiedosto julkaistaan sellaisenaan: ei sisäisiä polkuja kommentteihin. Lisäykset lopussa. */
@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/assets/fonts/nunito-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/assets/fonts/nunito-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  color-scheme: light;
  --bg:#f3f6ff;
  --surface:#ffffff;
  --fg:#111827;            /* 16.4:1 bg, 17.7:1 valkoinen */
  --fg-2:#374151;          /* 10.3:1 valkoinen — tiivistelmät */
  --muted:#5B6474;         /* 5.5:1 bg, 6.0:1 valkoinen — KORVAA design-systeemin #737d8c (3.9:1, FAIL) */
  --control:#7C8596;       /* 3.4:1 bg, 3.7:1 valkoinen — input-reunat, tyhjät painopisteet (1.4.11) */
  --line:rgba(17,24,39,.08);
  --primary:#4F46E5;       /* 6.3:1 valkoinen, 5.8:1 bg; valkoinen teksti päällä 6.3:1 */
  --primary-hover:#4338CA; /* valkoinen teksti 7.9:1 */
  --primary-light:#EEF2FF; /* primary-teksti päällä 5.6:1 */
  --ok-bg:#dcfce7;  --ok-fg:#166534;    /* 6.5:1 */
  --warn-bg:#fef3c7; --warn-fg:#92400e; /* 6.4:1 */
  --info-bg:#e0e7ff; --info-fg:#3730a3; /* 8.1:1 */
  --neutral-bg:#f1f5f9; --neutral-fg:#475569; /* 6.9:1 */
  --err-bg:#fee2e2; --err-fg:#991b1b;
  --mark:#fef08a;          /* fg päällä 15.2:1 */
  --track:#eceff5;
  --glass:linear-gradient(135deg,rgba(255,255,255,.90),rgba(255,255,255,.72));
  --glass-border:rgba(255,255,255,.95);
  --shadow:0 1px 2px rgba(17,24,39,.05),0 12px 32px -14px rgba(79,70,229,.22);
  --r-xl:28px; --r-lg:24px; --r-md:18px; --r-sm:14px;
  --ease:cubic-bezier(.2,.8,.2,1);
  /* Teemat: dataviz-referenssipaletin kiinteä järjestys (slotit 1–6). Väri vain pisteenä/raitana/palkkina, teksti aina tekstitokeneilla. */
  --t-agentit:#2a78d6; --t-koodaus:#eb6834; --t-mallit:#1baf7a;
  --t-turva:#eda100; --t-sovellukset:#e87ba4; --t-bisnes:#008300; --t-none:#7C8596;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
   radial-gradient(42rem 32rem at 88% -8%,rgba(79,70,229,.13),transparent 62%),
   radial-gradient(36rem 28rem at -12% 34%,rgba(27,175,122,.09),transparent 60%),
   radial-gradient(30rem 26rem at 104% 92%,rgba(235,104,52,.07),transparent 60%)}
a{color:var(--primary);font-weight:700;text-underline-offset:3px}
a:hover{color:var(--primary-hover)}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ic{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic-sm{width:16px;height:16px}
.page{max-width:1200px;margin:0 auto;padding:0 16px}
@media(min-width:640px){.page{padding:0 24px}}

/* ---------- YLÄPALKKI ---------- */
.topbar{position:sticky;top:0;z-index:20;background:rgba(243,246,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.topbar .page{display:flex;align-items:center;gap:12px;min-height:64px}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--fg);flex:none}
.brand-mark{width:36px;height:36px;border-radius:13px;background:var(--primary);color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px -6px rgba(79,70,229,.6);transition:background .2s var(--ease)}
.brand-name{font-weight:900;font-size:18px;line-height:1.1;white-space:nowrap}
.brand-sub{display:none;font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}
@media(min-width:760px){.brand-sub{display:block}}
.tabs{margin-left:auto;display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;flex:none}
.tabs button{border:0;background:none;border-radius:999px;min-height:40px;padding:0 12px;font-weight:800;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
@media(min-width:420px){.tabs button{padding:0 16px}}
.tabs button[aria-current="page"]{background:var(--primary);color:#fff}

/* ---------- GLASS-KORTTI ---------- */
.glass{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.eyebrow{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.h2{font-size:20px;font-weight:900;margin:0 0 12px;line-height:1.25}
.hint{font-size:13px;color:var(--muted);font-weight:600;margin:8px 0 0}

/* ---------- PÄIVÄNAVIGAATIO ---------- */
.daynav{display:flex;align-items:center;gap:8px;margin:16px 0 10px}
.daynav h1{font-size:24px;line-height:1.2;font-weight:900;margin:0;flex:1;min-width:0}
.daynav h1 small{display:block;font-size:14px;font-weight:700;color:var(--muted)}
.iconbtn{width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--fg);flex:none}
.iconbtn:hover{border-color:var(--primary);color:var(--primary)}
.iconbtn[disabled]{opacity:.4;cursor:not-allowed}
.strip{display:flex;gap:6px;overflow-x:auto;padding:12px 2px 6px;scrollbar-width:thin;scroll-snap-type:x proximity}
.chip-day{flex:none;scroll-snap-align:center;min-width:52px;min-height:56px;border-radius:16px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;align-content:center;cursor:pointer;text-decoration:none;color:var(--fg);padding:4px 8px}
.chip-day b{font-size:15px;font-weight:900;line-height:1.1}
.chip-day span{font-size:12px;font-weight:700;color:var(--muted);line-height:1.2}
.chip-day:hover{border-color:var(--primary)}
.chip-day[aria-current="date"]{background:var(--primary);border-color:var(--primary);color:#fff}
.chip-day[aria-current="date"] span{color:#fff}
.chip-gap{flex:none;align-self:center;font-size:12px;font-weight:700;color:var(--muted);padding:0 4px;display:flex;flex-direction:column;align-items:center;line-height:1.15;text-align:center}
.chip-gap::before{content:"";width:16px;border-top:2px dotted var(--control);margin-bottom:4px}
.oldday{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--primary-light);border-radius:var(--r-sm);padding:10px 14px;font-size:14px;font-weight:700;margin-bottom:12px}

/* ---------- PÄIVÄN ASETTELU ---------- */
/* minmax(0,1fr) + min-width:0 on pakollinen: muuten vaakavieritettävä suodatinrivi venyttää sarakkeen (testattu 360 px: 754 px leveä sivu). */
.daygrid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding-bottom:40px}
.daygrid>*{min-width:0}
@media(min-width:1024px){
  .daygrid{grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:28px;align-items:start}
  .glance{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto;padding:2px 6px 8px 2px;scrollbar-width:thin}
}
.glance{display:grid;gap:16px;align-content:start}
.pk{padding:20px}
.pk-lead{margin:0;font-size:20px;line-height:1.35;font-weight:900}
.pk-rest{margin:8px 0 0;font-size:16px;line-height:1.55;font-weight:600;color:var(--fg-2)}
.pk:not(.is-full) .pk-rest{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media(min-width:1024px){.pk:not(.is-full) .pk-rest{display:block}.pk-more{display:none!important}}
.pk-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.stat{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:800;color:var(--fg)}

/* Teemakartta: tasakokoiset laatat, paino palkkina (ks. md: miksi ei pinta-alaa) */
.tk{padding:18px}
.tkartta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tile{--tv:var(--t-none);text-align:left;cursor:pointer;border-radius:var(--r-sm);padding:12px;
  background:color-mix(in srgb,var(--tv) 6%,#fff);border:1.5px solid color-mix(in srgb,var(--tv) 28%,#fff);
  display:flex;flex-direction:column;gap:2px;min-height:44px;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}
.tile:hover{transform:translateY(-1px);box-shadow:0 6px 18px -10px rgba(17,24,39,.35)}
.tile[aria-pressed="true"]{border:2px solid var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.tile-name{display:flex;align-items:center;gap:6px;font-weight:900;font-size:15px;line-height:1.2}
.tile-meta{font-size:13px;font-weight:700;color:var(--muted)}
.tile-bar{height:6px;border-radius:3px;background:var(--track);margin:6px 0 4px;overflow:hidden}
.tile-bar i{display:block;height:100%;border-radius:3px;background:var(--tv)}
.tile-sum{font-size:14px;color:var(--fg-2);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dot{width:10px;height:10px;border-radius:50%;background:var(--tv);flex:none;box-shadow:0 0 0 2px #fff}

/* Painavimmat */
.top{padding:18px}
.top ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.top-row{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:#fff;border-radius:var(--r-sm);padding:10px 12px;min-height:56px;cursor:pointer;border:1px solid var(--line)}
.top-row:hover{border-color:var(--primary)}
.rank{width:32px;height:32px;border-radius:12px;background:var(--primary-light);color:var(--primary);font-weight:900;display:grid;place-items:center;flex:none}
.top-row .t{display:block;font-weight:800;line-height:1.3;font-size:15px}
.top-row .m{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--muted);margin-top:2px}

/* Lista */
.listhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 10px;scroll-margin-top:80px}
.listhead .h2{margin:0}
.filters{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:thin}
.fchip{--tv:var(--t-none);flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--control);background:#fff;font-weight:800;font-size:14px;cursor:pointer}
.fchip[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:#fff}
.fchip[aria-pressed="true"] .dot{box-shadow:0 0 0 2px var(--fg)}
.stack{display:grid;gap:10px}
.band-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:900;color:var(--muted);margin:18px 0 8px;text-transform:uppercase;letter-spacing:.06em}
.band-title::after{content:"";flex:1;border-top:1px solid var(--line)}

/* ---------- KOHDEKORTTI ---------- */
.kortti{--tv:var(--t-none);position:relative;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);scroll-margin-top:84px}
.kortti::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--tv)}
.kortti h3{margin:0;font-size:inherit}
.kortti-nappi{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;width:100%;text-align:left;background:none;border:0;padding:14px 14px 14px 20px;cursor:pointer;min-height:56px;border-radius:var(--r-md)}
.kortti-nappi:focus-visible{outline-offset:-3px}
.kortti-meta{grid-column:1;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:13px;font-weight:700;color:var(--muted)}
.tlabel{display:inline-flex;align-items:center;gap:6px;color:var(--fg);font-weight:800}
.kortti-title{grid-column:1;font-size:16px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.kortti--iso .kortti-title{font-size:19px;font-weight:900}
.kortti-tiiv{grid-column:1;color:var(--fg-2);font-size:15px;font-weight:500;line-height:1.5}
.chev{grid-column:2;grid-row:1/span 3;align-self:center;width:36px;height:36px;border-radius:999px;display:grid;place-items:center;background:var(--primary-light);color:var(--primary);transition:transform .2s var(--ease)}
.is-open .chev{transform:rotate(180deg)}
.kortti--rivi{box-shadow:none;border-color:rgba(17,24,39,.06)}
.kortti--rivi .kortti-nappi{padding:10px 12px 10px 18px;min-height:52px}
.kortti--rivi .kortti-title{font-size:15px;font-weight:700}
.kortti--rivi .chev{width:32px;height:32px;background:transparent}
.paino{display:inline-flex;gap:3px;align-items:center}
.paino i{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--control);display:block}
.paino i.on{background:var(--primary);border-color:var(--primary)}
.kortti-runko{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s var(--ease)}
.is-open .kortti-runko{grid-template-rows:1fr}
.kortti-runko>div{overflow:hidden;min-height:0}
.runko{padding:2px 16px 16px 20px;display:grid;gap:14px}
.runko .tiiv-auki{margin:0;font-size:16px;color:var(--fg-2);font-weight:600}
.syv{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.syv h4,.subh{margin:0 0 2px;font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:6px}
.syv p{margin:0}
.empty-line{display:flex;gap:8px;align-items:flex-start;color:var(--muted);font-size:14px;font-weight:600;background:var(--neutral-bg);border-radius:12px;padding:10px 12px;margin:0}
.empty-line .ic{margin-top:2px}
.kokeile{display:flex;gap:10px;background:var(--primary-light);border-radius:var(--r-sm);padding:12px 14px;color:var(--fg)}
.kokeile .ic{color:var(--primary);margin-top:2px}
.kokeile b{display:block;font-size:13px;font-weight:900;color:var(--primary);text-transform:uppercase;letter-spacing:.06em}
.facts{display:grid;gap:8px;margin:0}
.facts div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;align-items:start}
.facts dt{font-size:13px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:2px}
.facts dd{margin:0;font-size:15px}
@media(max-width:380px){.facts div{grid-template-columns:minmax(0,1fr);gap:2px}}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:800;line-height:1.4}
.pill-ok{background:var(--ok-bg);color:var(--ok-fg)}
.pill-warn{background:var(--warn-bg);color:var(--warn-fg)}
.pill-info{background:var(--info-bg);color:var(--info-fg)}
.pill-neutral{background:var(--neutral-bg);color:var(--neutral-fg)}
.pill-dark{background:var(--fg);color:#fff}
.lahteet{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.lahteet a{display:inline-flex;align-items:center;gap:6px;min-height:32px;overflow-wrap:anywhere}
.jatkoa{display:grid;gap:6px}
.jatkoa-link{display:flex;gap:10px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;min-height:48px;cursor:pointer}
.jatkoa-link:hover{border-color:var(--primary)}
.jatkoa-link .d{font-size:13px;font-weight:900;color:var(--muted);flex:none;width:44px}
.jatkoa-link .t{font-weight:700;font-size:14px;line-height:1.3}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:0;font-weight:800;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px -8px rgba(79,70,229,.7)}
.btn-primary:hover{background:var(--primary-hover);color:#fff}
.btn-ghost{background:#fff;border:1.5px solid var(--control);color:var(--fg)}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}
.btn-quiet{background:transparent;color:var(--muted);padding:0 12px}
.btn-quiet:hover{color:var(--primary)}
.linkbtn{background:none;border:0;color:var(--primary);font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0}
.linkbtn:hover{color:var(--primary-hover)}


/* ---------- TILAT ---------- */
.state{padding:28px 20px;text-align:center;display:grid;justify-items:center;gap:10px}
.state .badge-ic{width:56px;height:56px;border-radius:20px;display:grid;place-items:center;background:var(--primary-light);color:var(--primary)}
.state .badge-ic.err{background:var(--err-bg);color:var(--err-fg)}
.state h2{margin:0;font-size:20px;font-weight:900}
.state p{margin:0;color:var(--muted);font-weight:600;max-width:42ch}

/* ---------- ARKISTO ---------- */
.arkgrid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"search" "side" "results";gap:16px;padding:20px 0 40px}
.arkgrid>*{min-width:0}
.ark-search{grid-area:search}.arkside{grid-area:side}.ark-results{grid-area:results}
@media(max-width:1023px){.arkgrid.is-searching .arkside{display:none}}
@media(min-width:1024px){.arkgrid{grid-template-columns:minmax(0,1fr) 400px;grid-template-areas:"search side" "results side";gap:16px 28px;align-items:start}.arkside{position:sticky;top:84px}}
.search{padding:18px}
.search label{display:block;font-weight:900;font-size:15px;margin-bottom:8px}
.sbox{position:relative;display:flex;align-items:center}
.sbox>.ic{position:absolute;left:14px;color:var(--muted);pointer-events:none}
.sbox input{width:100%;min-height:48px;border-radius:999px;border:1.5px solid var(--control);background:#fff;padding:0 52px 0 44px;font:inherit;font-weight:700;color:var(--fg);-webkit-appearance:none;appearance:none}
.sbox input::-webkit-search-cancel-button{display:none}
.sbox input::placeholder{color:var(--muted);opacity:1}
.sbox input:focus-visible{outline:3px solid var(--primary);outline-offset:1px;border-color:var(--primary)}
.sbox .clear{position:absolute;right:2px;width:44px;height:44px;border:0;background:none;border-radius:999px;display:grid;place-items:center;cursor:pointer;color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center}
.tag{min-height:36px;padding:0 12px;border-radius:999px;border:1.5px solid var(--control);background:#fff;font-weight:800;font-size:14px;cursor:pointer}
.tag[aria-pressed="true"]{background:var(--fg);color:#fff;border-color:var(--fg)}
.tag small{font-weight:700;opacity:.75;margin-left:4px}
.reshead{font-weight:900;margin:4px 0 8px;font-size:15px}
.resday{font-size:13px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:14px 0 6px}
.res{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:12px 14px;margin-bottom:6px;cursor:pointer;--tv:var(--t-none)}
.res:hover{border-color:var(--primary)}
.res .t{font-weight:800;line-height:1.3;display:block;margin:2px 0}
.res .s{font-size:14px;color:var(--fg-2);display:block}
.res .m{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:700;color:var(--muted)}
mark{background:var(--mark);color:var(--fg);border-radius:4px;padding:0 2px}
.daycard{display:block;width:100%;text-align:left;cursor:pointer;padding:14px 16px;margin-bottom:8px}
.daycard:hover{border-color:var(--primary)}
.daycard .top-l{display:flex;justify-content:space-between;gap:8px;font-weight:900}
.daycard .top-l span{color:var(--muted);font-size:13px;font-weight:700;white-space:nowrap}
.daycard p{margin:6px 0 10px;font-size:14px;color:var(--fg-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.minibar{display:flex;gap:2px;height:8px}
.minibar i{display:block;height:100%;border-radius:4px;background:var(--tv)}
.daycard .foc{font-size:13px;font-weight:700;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:6px}
.gapcard{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:700;margin:0 0 8px 6px}

/* Trendi */
.trend{padding:18px}
.tpills{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 6px}
.plot{position:relative;margin-top:6px}
.plot svg{display:block;width:100%;overflow:visible}
.plot text{font-family:inherit;font-size:12px;font-weight:700;fill:var(--muted)}
.plot .lbl{fill:var(--fg);font-weight:900;font-size:13px}
.plot .pt:focus{outline:none}
.plot .pt:focus-visible{stroke:var(--primary);stroke-width:3}
.tip{position:absolute;pointer-events:none;background:var(--fg);color:#fff;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:700;white-space:nowrap;transform:translate(-50%,-125%);opacity:0;transition:opacity .12s}
.tip.on{opacity:1}
.ttable{width:100%;border-collapse:collapse;font-size:14px;margin-top:10px}
.ttable th,.ttable td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}
.ttable th:first-child,.ttable td:first-child{text-align:left}
.ttable th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}

/* Footer */
.foot{border-top:1px solid var(--line);padding:24px 0 40px;color:var(--muted);font-size:14px;font-weight:600}
.foot p{margin:0 0 6px;max-width:70ch}

/* Toast */
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,20px);background:var(--fg);color:#fff;border-radius:999px;padding:10px 18px;font-weight:800;font-size:14px;opacity:0;pointer-events:none;transition:all .2s var(--ease);z-index:50;max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}


@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- tuotannon lisäykset ---------- */
.tabs a{border:0;background:none;border-radius:999px;min-height:40px;padding:0 12px;font-weight:800;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px;text-decoration:none}
@media(min-width:420px){.tabs a{padding:0 16px}}
.tabs a[aria-current="page"]{background:var(--primary);color:#fff}
a.top-row,a.jatkoa-link,a.res,a.daycard{text-decoration:none;color:inherit;font-weight:inherit}
a.btn{text-decoration:none}
a.btn-ghost{color:var(--fg)}
a.btn-primary,a.btn-primary:hover{color:#fff}
.oldday a{margin-left:auto}
.tile-sum{overflow-wrap:anywhere}
.kortti-title code,.kortti-tiiv code,.runko code,.top-row code,.jatkoa-link code,.res code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--neutral-bg);border-radius:6px;padding:0 4px;overflow-wrap:anywhere}
/* hidden-attribuutti voittaa aina komponenttien display-säännöt (esim. .empty-line{display:flex}). */
[hidden]{display:none !important}
.notfound{padding:28px 0 60px}
