*{box-sizing:border-box}
body{margin:0;background:#06111f;color:#eef5fb;font-family:Arial,Helvetica,sans-serif;line-height:1.5}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
a{color:#84b8ed}
header{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:20px;align-items:center;background:#020a12;border-bottom:1px solid #b88a2c;padding:14px 18px}
.brand{font-size:26px}
.brand small{display:block;color:#f1b735;font-size:11px;margin-left:36px}
.slogan{text-align:center;font-weight:800}
.slogan span{color:#73b3ef}
.search{display:flex;justify-content:flex-end}
.search form{display:flex;width:100%;max-width:340px}
.search input{flex:1;background:#0c1724;color:white;border:1px solid #45688b;padding:10px;border-radius:7px 0 0 7px;min-width:0}
.search button{background:#1455a0;color:white;border:1px solid #45688b;border-radius:0 7px 7px 0;padding:0 14px}
.mega{display:grid;grid-template-columns:repeat(11,minmax(180px,1fr));overflow-x:auto;border-bottom:1px solid #2f5676;background:#071522}
.mega button{min-height:210px;text-align:left;background:#0a1b2d;color:#fff;border:0;border-right:1px solid #36546d;padding:12px}
.mega button:hover{background:#0e2a46}
.mega button.active{background:#123558;outline:1px solid #b88a2c}
.mega b,.mega span{display:block;margin:4px 0}
.mega b{color:#f0c15a;margin-bottom:10px}
.mega span{font-size:13px}
main{display:grid;grid-template-columns:205px 1fr;gap:14px;padding:12px}
aside h3{color:#84b8ed;margin:.4em 0}
.side{display:grid;gap:4px}
.side button{background:#0b1d2e;color:#fff;border:0;padding:9px;border-radius:5px;text-align:left}
.side button:hover{background:#174e8c}
.side button.active{background:#174e8c;outline:1px solid #b88a2c}
.player,.panel{background:#0b2035;border:1px solid #29567b;border-radius:10px;padding:12px}
.player{text-align:center;margin-top:12px}
.live{display:inline-block;color:#ff5f56;background:#2a0f12;border:1px solid #9b3030;padding:3px 8px;border-radius:8px;font-weight:900}
.player #play{width:46px;height:46px;border-radius:50%;background:#10283d;color:white;border:1px solid #d9e7f4}
.wave{color:#7ca7ff;margin:8px 0}
.content{display:grid;gap:14px;align-content:start}
.pagehdr{border:1px solid #6d5427;border-radius:12px;padding:22px 24px;background:linear-gradient(130deg,#0d1723,#0d1824 55%,#32170e)}
.pagehdr h1{margin:0 0 6px;font-size:30px}
.pagehdr p{margin:0;color:#c6d4df;max-width:760px}
.pagehdr .crumbs{color:#84b8ed;font-size:13px;margin-bottom:8px}
.hero{min-height:300px;display:grid;grid-template-columns:1fr .8fr;align-items:center;padding:28px;background:radial-gradient(circle at 75% 50%,rgba(255,120,40,.22),transparent 25%),linear-gradient(130deg,#0d1723,#0d1824 55%,#32170e);border:1px solid #6d5427;border-radius:12px}
.hero h1{font-size:38px;margin:12px 0}
.hero p{color:#c6d4df}
.studio{display:grid;place-items:center;font-size:90px;text-align:center}
.studio b{font-size:34px}
.studio span{font-size:16px;color:#f1b735;font-weight:800}
.primary{background:linear-gradient(#1d6cc3,#124c8e);border:1px solid #3986db;color:#fff;padding:10px 16px;border-radius:7px;font-weight:800}
.primary:hover{filter:brightness(1.1)}
.ghost{background:transparent;color:#cfe4f7;border:1px solid #3986db;padding:10px 16px;border-radius:7px}
.two{display:grid;grid-template-columns:1fr 390px;gap:14px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.cards button{min-height:150px;text-align:left;background:linear-gradient(#10273d,#091a2a);color:#fff;border:1px solid #315978;border-radius:8px;padding:12px}
.cards button:hover{background:linear-gradient(#17437a,#0a1c30)}
.cards b{display:block;color:#f1b735;font-size:11px;margin-bottom:8px}
.cards strong,.cards small{display:block}
.cards small{color:#b7c9d8;margin-top:8px}
.cities{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cities button{min-height:85px;background:linear-gradient(#123a60,#091a2b);color:#fff;border:1px solid #3f6688;border-radius:8px;font-weight:800}
.cities button:hover{background:linear-gradient(#1a4f80,#0a1c30)}
.phone{font-size:28px;color:#f1b735;font-weight:900;margin:10px 0}
#chatlog{height:160px;overflow:auto;background:#061421;border:1px solid #294b69;border-radius:7px;padding:8px}
#chat{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}
#chat input{background:#071522;color:#fff;border:1px solid #315978;border-radius:7px;padding:10px}
#chat button{background:#1455a0;color:#fff;border:0;border-radius:7px;padding:0 18px}
footer{display:flex;justify-content:space-between;padding:14px;background:#020a12;border-top:1px solid #315979;color:#a9bfd2}

/* Page list / articles */
.page{display:grid;gap:14px}
.section-title{color:#f1b735;border-bottom:1px solid #315978;padding-bottom:6px;margin:.2em 0 .8em;font-size:20px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.article{background:#0b2035;border:1px solid #29567b;border-radius:10px;padding:14px}
.article h3{margin:0 0 6px;color:#f7dfa5}
.article h3 button{background:none;border:0;color:inherit;font-size:inherit;padding:0;text-align:left}
.article h3 button:hover{color:#fff}
.article p{margin:0 0 8px;color:#c6d4df}
.article .meta{font-size:12px;color:#7ea3c4}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{background:#102a43;border:1px solid #315978;border-radius:999px;padding:4px 10px;font-size:12px}
.chip button{background:none;border:0;color:#84b8ed}
.status{display:inline-block;font-size:11px;font-weight:800;padding:3px 8px;border-radius:6px;margin-left:6px}
.status.avoin{background:#1d3a22;color:#7ce38b;border:1px solid #3c7a49}
.status.seuranta{background:#3a331d;color:#f1c95a;border:1px solid #7a6a3c}
.status.valmis{background:#1d2c3a;color:#7fb7e8;border:1px solid #3c5f7a}
.tabbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.tabbar button{background:#0b1d2e;border:1px solid #315978;color:#c6d4df;padding:8px 14px;border-radius:7px}
.tabbar button.active{background:#174e8c;color:#fff;border-color:#b88a2c}
table.data{width:100%;border-collapse:collapse;font-size:14px}
table.data th,table.data td{border:1px solid #315978;padding:8px 10px;text-align:left}
table.data th{background:#0e2a46;color:#f1c95a}
table.data tr:nth-child(even){background:#0a1c30}
table.data tr:hover{background:#123558}
form.default{display:grid;gap:10px}
form.default input,form.default textarea,form.default select{background:#071522;color:#fff;border:1px solid #315978;border-radius:7px;padding:10px;width:100%}
form.default label{font-weight:800;color:#cfe4f7}
fieldset{border:1px solid #315978;border-radius:10px;padding:14px}
legend{color:#f1c95a;font-weight:800;padding:0 6px}
.alert{border-left:4px solid #b88a2c;background:#0b2035;padding:12px 14px;border-radius:6px}
.chatline{margin:4px 0}
.chatline b{color:#f1c95a}
.timeline{border-left:2px solid #315978;margin-left:6px;padding-left:16px}
.timeline .step{position:relative;margin:0 0 16px}
.note{font-size:12px;color:#7ea3c4}

@media(max-width:1100px){header{grid-template-columns:1fr}.slogan{text-align:left}.search{justify-content:flex-start}main{grid-template-columns:1fr}.two{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}.cities{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}}
@media(max-width:700px){.hero{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.cities{grid-template-columns:1fr 1fr}.studio{font-size:60px}.studio b{font-size:25px}}

/* ===== UUDET OMINAISUUDET ===== */

/* Teemavaihto (CSS-muuttujat + data-theme) */
:root{
  --bg:#06111f;--bg2:#0a1c30;--card:#0b2035;--text:#eef5fb;--muted:#7ea3c4;
  --line:#315978;--accent:#f1b735;--accent2:#1455a0;--headerbg:#020a12;
}
[data-theme="light"]{
  --bg:#eef4fb;--bg2:#d7e4f2;--card:#ffffff;--text:#16212e;--muted:#52677e;
  --line:#9db6cf;--accent:#8a6200;--accent2:#1d6cc3;--headerbg:#d2e0f0;
}
body{background:var(--bg);color:var(--text)}
header{background:var(--headerbg)}
footer{background:var(--headerbg)}
.player,.panel,.article{background:var(--card);border-color:var(--line)}
.article p,.pagehdr p,.hero p{color:var(--muted)}
.pagehdr,.hero{background:var(--bg2)}

/* Napit headerissa */
.headerbtns{display:flex;gap:8px;align-items:center}
.iconbtn{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px 10px;font-size:16px;transition:transform .15s}
.iconbtn:hover{transform:translateY(-1px);filter:brightness(1.15)}

/* Toast-ilmoitukset */
#toastwrap{position:fixed;bottom:18px;right:18px;z-index:999;display:flex;flex-direction:column;gap:8px;max-width:340px}
.toast{background:#0d2840;color:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:12px 14px;box-shadow:0 6px 18px rgba(0,0,0,.4);animation:toastin .25s ease}
.toast.ok{border-left-color:#4cc46a}
.toast.err{border-left-color:#e0605a}
.toast small{color:#a9c3da;display:block;margin-top:2px}
@keyframes toastin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Tooltip */
[data-tip]{position:relative}
[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:120%;left:0;background:#0d2840;border:1px solid var(--line);padding:4px 8px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:50}

/* Tilastolaatikot */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.statbox{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center}
.statbox .num{font-size:34px;font-weight:900;color:var(--accent)}
.statbox .lbl{font-size:13px;color:var(--muted);margin-top:4px}

/* Haku-tulokset etusivun ohi / hakupalkki suositusehdotukset */
.searchwrap{position:relative;width:100%;max-width:340px}
.sug{position:absolute;top:100%;left:0;right:0;background:#0b2035;border:1px solid var(--line);border-radius:0 0 8px 8px;overflow:hidden;z-index:60;box-shadow:0 8px 18px rgba(0,0,0,.4)}
.sug button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text);padding:10px 12px;font-size:13px}
.sug button:hover{background:var(--bg2)}
.sug .sugcat{color:var(--muted);font-size:11px;display:block}

/* Palauttaa ylös -nappi */
#toTop{position:fixed;bottom:70px;right:18px;z-index:900;width:46px;height:46px;border-radius:50%;background:var(--accent2);color:#fff;border:1px solid var(--line);font-size:20px;opacity:0;pointer-events:none;transition:opacity .2s}
#toTop.show{opacity:1;pointer-events:auto}
#toTop:hover{filter:brightness(1.15)}

/* Kello + alatunnisteen lisätiedot */
.clock,.lastmod{font-variant-numeric:tabular-nums}
footer .fright{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--muted)}
footer{flex-wrap:wrap;gap:8px}

/* Suodatin-napit (kategoria) */
.filterwrap{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.filterwrap select{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px 10px}
.countbadge{color:var(--muted);font-size:12px;margin-left:4px}

/* Kommentit */
.comments{display:grid;gap:10px}
.comment{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:12px}
.comment b{color:var(--accent)}
.comment .meta{font-size:11px;color:var(--muted)}
.commentbox textarea{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px;width:100%;min-height:70px}

/* Aiheeseen liittyvät */
.related{display:grid;gap:8px}
.related a{display:block;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--text);text-decoration:none}
.related a:hover{border-color:var(--accent)}
.related small{color:var(--muted);display:block}

/* Uutiskirje */
.newsletter form{display:flex;gap:6px;margin-top:6px}
.newsletter input{flex:1;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:9px}
.newsletter button{background:var(--accent2);color:#fff;border:0;border-radius:7px;padding:0 12px}

/* Jaotuspainikkeet / copy */
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.btnrow button{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px 12px}
.btnrow button:hover{filter:brightness(1.15)}

/* Edistymispalkki (scroll) */
#prog{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0%;z-index:1000;transition:width .05s linear}

@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}.fright{align-items:flex-start}}

/* ===== RAKENNE / KÄYTTÖLIITTYMÄN HELPPOKÄYTTÖISYYS ===== */

/* Skip-link (saavutettavuus) */
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#000;padding:8px 14px;border-radius:0 0 8px 0;z-index:10000;font-weight:800}
.skip:focus{left:0}

/* Mobiilivalikko (hampurilainen) */
.menubtn{display:none;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px 12px;font-size:18px}
.fsctl{display:flex;align-items:center;gap:4px;margin-left:4px}

/* Tekstikoko-painikkeet */
.fontbtn{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:6px 9px;font-weight:800}
.fontbtn:hover{filter:brightness(1.15)}
.fontreset{font-size:12px}

/* Uutiseurapyrä (ticker) */
.ticker{overflow:hidden;background:var(--bg2);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;margin-bottom:4px;white-space:nowrap}
.ticker .track{display:inline-block;padding:8px 0;animation:tickerscroll 28s linear infinite}
.ticker span{margin:0 22px;color:var(--text)}
.ticker b{color:var(--accent)}
.ticker button{background:none;border:0;color:var(--accent);padding:0 4px;cursor:pointer;text-decoration:underline}
@keyframes tickerscroll{from{transform:translateX(100%)}to{transform:translateX(-100%)}}

/* Viimeksi katsotut / suosituimmat / tallennetut */
.minirow{display:grid;gap:8px}
.mini{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--text);text-align:left;width:100%}
.mini:hover{border-color:var(--accent)}
.mini small{color:var(--muted);display:block}
.mini .rank{color:var(--accent);font-weight:900;min-width:22px}
.mini .starbtn{margin-left:auto;background:none;border:0;font-size:16px;cursor:pointer}
.mini .starbtn:hover{transform:scale(1.15)}

/* Tallennettu-painike artikkeli-sivulla */
.star-btn{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px 12px}
.star-btn.on{border-color:var(--accent);color:var(--accent)}

/* FAQ / Tietosivu */
.faq{display:grid;gap:10px}
.faq details{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:12px}
.faq summary{cursor:pointer;font-weight:800;color:var(--accent)}
.faq p{margin:.5em 0 0;color:var(--text)}

/* Tietosivun tilastot */
.datagrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.listdata li{padding:4px 0;border-bottom:1px solid var(--line)}

/* Tulostusnäkymä */
@media print{
  header,aside,footer,.mega,#toTop,#prog,#toastwrap,.ticker,.btnrow {display:none !important}
  main{display:block;padding:0}
  body,.content{background:#fff;color:#000}
  .article,.panel{box-shadow:none;border:1px solid #999}
}

/* Mobiili */
@media(max-width:900px){
  .menubtn{display:inline-block}
  aside{display:none}
  main.openside aside{display:block;grid-column:1/-1}
}
@media(max-width:700px){.datagrid{grid-template-columns:1fr}}

/* ---------- UUDET OMINAISUUDET (lisätty myöhemmin) ---------- */

/* Reaktiot (tykkää/ei tykkää) */
.reactions{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.react-btn{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 14px;cursor:pointer;font-size:.95em;display:inline-flex;gap:6px;align-items:center;transition:.15s}
.react-btn:hover{border-color:var(--accent)}
.react-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.react-btn .cnt{opacity:.7;font-size:.85em}
.react-votes{display:flex;gap:14px;margin-top:8px;color:var(--muted);font-size:.85em}
.react-votes b{color:var(--text)}

/* Lukuaika-merkintä */
.readtime{display:inline-flex;gap:5px;align-items:center;color:var(--muted);font-size:.82em;background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:3px 10px;margin-right:6px}
.viewcount{display:inline-flex;gap:5px;align-items:center;color:var(--muted);font-size:.82em;background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:3px 10px}

/* Edellinen/seuraava -navigointi */
.pager{display:flex;justify-content:space-between;gap:10px;margin-top:20px;flex-wrap:wrap}
.pager button{flex:1;min-width:160px;text-align:left;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:12px;cursor:pointer;color:var(--text);transition:.15s}
.pager button:hover{border-color:var(--accent);transform:translateY(-1px)}
.pager button small{display:block;color:var(--muted);font-size:.8em}
.pager button b{font-size:.9em}
.pager .next{text-align:right}

/* Satunnaisartikkeli */
.random-btn{background:linear-gradient(135deg,var(--accent),#6a3bd1);border:0;color:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;font-weight:700;width:100%;margin:6px 0 4px;transition:.15s}
.random-btn:hover{filter:brightness(1.1)}

/* Ilmoituskello */
.bellwrap{position:relative;display:inline-flex}
.bellbtn{background:var(--bg2);border:1px solid var(--line);border-radius:8px;width:40px;height:40px;cursor:pointer;font-size:1.1em;color:var(--text);position:relative;transition:.15s}
.bellbtn:hover{border-color:var(--accent)}
.bellbadge{position:absolute;top:-5px;right:-5px;background:#e6422a;color:#fff;font-size:.7em;font-weight:800;border-radius:10px;min-width:17px;height:17px;line-height:17px;text-align:center;padding:0 4px;display:none}
.bellbadge.show{display:block;animation:badgepulse 1.6s infinite}
@keyframes badgepulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* Tickerin tauko/soitto */
.tickerctl{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:.8em}
.ticker.paused .track{animation-play-state:paused}

/* Reaktio-baari (panee yhteisön suosikit) */
.popbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.popbar .bar{height:8px;border-radius:5px;background:linear-gradient(90deg,var(--accent),#7cc4f5);transition:width .4s}

/* Nosto / oma asia -pikapainike */
.nostacard{background:linear-gradient(135deg,rgba(57,134,219,.12),rgba(106,59,209,.12));border:1px solid rgba(57,134,219,.4);border-radius:10px;padding:16px;margin-top:12px}

/* ---------- ROUND 4: oma asia, nousevat, laajenna, tulosta, jako ---------- */

/* Nosta oma asia -lomake */
.nostacard form{display:grid;gap:10px;margin-top:10px}
.nostacard input,.nostacard select,.nostacard textarea{background:var(--bg2);border:1px solid var(--line);border-radius:7px;color:var(--text);padding:9px 11px;font:inherit}
.nostacard textarea{min-height:70px;resize:vertical}
.nostacard .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:520px){.nostacard .row2{grid-template-columns:1fr}}
.nostacard button{justify-self:start}

/* Omat asiat -lista */
.ownitem{display:flex;align-items:flex-start;gap:10px;background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:12px;margin-bottom:10px}
.ownitem .ownicon{font-size:1.4em}
.ownitem .ownbody{flex:1}
.ownitem b{display:block;margin-bottom:2px}
.ownitem .meta{font-size:.82em;color:var(--muted)}
.ownitem .ownactions{display:flex;gap:6px;margin-top:6px}
.ownitem button{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 9px;font-size:.8em;cursor:pointer}
.ownitem .ochip{display:inline-block;font-size:.72em;padding:2px 8px;border-radius:20px;background:rgba(57,134,219,.15);color:var(--accent);font-weight:700}

/* Nousevat nyt (hot) -merkintä */
.hotnum{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#e6422a,#f2a33c);color:#fff;border-radius:20px;padding:2px 8px;font-size:.72em;font-weight:800;margin-left:6px}
.hotbadge{font-size:1.2em;vertical-align:middle}

/* Laajennetavat rivit (lue lisää) */
.artbody{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.artbody.open{-webkit-line-clamp:unset;display:block}
a.arttoggle{display:inline-block;color:var(--accent);cursor:pointer;font-size:.85em;font-weight:700;margin-top:4px;text-decoration:underline}

/* Jako-painikerivi */
.sharebar{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.sharebar a,.sharebar button{display:inline-flex;gap:6px;align-items:center;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:7px 10px;font-size:.85em;text-decoration:none;cursor:pointer;transition:.15s}
.sharebar a:hover,.sharebar button:hover{border-color:var(--accent);transform:translateY(-1px)}

/* Tulostus valitun näkymän sisällä – nappi kätketään tulostettaessa */
@media print{.sharebar,.nostacard,.hotnum{display:none}}
