@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--radius-sm:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1)}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.block{display:block}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
@font-face{font-family:Sofia Pro;src:url(/fonts/SofiaPro-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sofia Pro;src:url(/fonts/SofiaPro-Bold.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Sofia Pro;src:url(/fonts/SofiaPro-RegularItalic.otf)format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Sofia Pro;src:url(/fonts/SofiaPro-BoldItalic.otf)format("opentype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Sofia Pro;src:url(/fonts/SofiaPro-SemiBoldItalic.otf)format("opentype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Sofia Pro;src:url(/fonts/SofiaPro-BlackItalic.otf)format("opentype");font-weight:900;font-style:italic;font-display:swap}:root{--green:#00ae65;--green-dark:#064;--green-compliment:#00877c;--green-compliment-dark:#004d46;--ghost-white:#f9f9f9;--blue-dark:#001231;--slate-dark:#003b45;--yellow-hi:#fff35f;--turquoise:#a3e6ee;--brand-hover:#00c272;--gradient-brand:linear-gradient(120deg,#00ae65 0%,#00877c 48%,#003b45 100%);--brand:var(--green);--brand-dark:var(--green-dark);--brand-soft:#00ae651f;--accent:var(--yellow-hi);--bg:var(--ghost-white);--surface:#fff;--surface-2:#5c686412;--border:#e7eae9;--text-strong:#000;--text:#2b3733;--muted:#5c6864;--radius:20px;--radius-sm:14px;--shadow-sm:0 2px 8px #0a141112;--shadow-md:0 8px 24px #0a141117;--shadow-lg:0 18px 48px #0a14111f;--shadow-green:0 12px 30px #00ae6547;--ease-out:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{overflow-x:clip}body{color:var(--text);background:radial-gradient(1000px 560px at 12% -10%, #00ae6514, transparent 55%), radial-gradient(760px 420px at 100% 0%, #00877c0f, transparent 50%), var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .24s var(--ease-out);background-attachment:fixed;margin:0;font-family:Sofia Pro,Futura,Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6}body.view-mint{background:linear-gradient(0deg, #00ae651f, #00ae651f), var(--ghost-white)}header.top{--reuna:22px;padding:14px max(var(--reuna), calc((100% - 960px) / 2 + var(--reuna)));background:var(--green-compliment-dark);flex-wrap:wrap;align-items:center;gap:14px;display:flex}header.top a.koti{border-radius:10px;align-items:center;gap:14px;text-decoration:none;display:flex}header.top a.koti:focus-visible{outline-offset:4px;outline:3px solid #fff}header.top .logo-img{height:26px;display:block}header.top .tag{letter-spacing:-.01em;color:var(--green-compliment-dark);background:var(--yellow-hi);border-radius:999px;padding:3px 12px;font-size:.9rem;font-weight:700}nav#nav{align-items:center;gap:6px;margin-left:26px;display:flex}.navbtn{color:#ffffffd9;box-shadow:none;font:inherit;cursor:pointer;transition:background var(--ease-out) .16s, color var(--ease-out) .16s;background:0 0;border:none;border-radius:999px;padding:8px 16px;font-size:1rem;font-weight:700}.navbtn:hover{color:#fff;background:#ffffff1f}.navbtn.on{color:#fff;background:#ffffff29}header.top :is(.navbtn,.kayttaja button):focus-visible{outline-offset:2px;outline:3px solid #fff}header.top .kayttaja{color:#fffc;align-items:center;gap:14px;margin-left:auto;font-size:.95rem;display:flex}header.top .kayttaja form{margin:0}header.top .kayttaja button{color:#fff;box-shadow:none;background:0 0;border:2px solid #ffffff8c;padding:6px 18px;font-size:.95rem}header.top .kayttaja button:hover{background:#ffffff1f;border-color:#fff}@media (max-width:960px){header.top .kayttaja .nimi{display:none}}@media (max-width:820px){header.top{row-gap:10px;padding-top:12px;padding-bottom:8px}nav#nav{order:3;width:100%;margin-left:0}}@media (max-width:600px){header.top{--reuna:16px;column-gap:10px}header.top a.koti{gap:10px}header.top .logo-img{height:22px}header.top .kayttaja button{padding:5px 14px;font-size:.9rem}}main{max-width:960px;margin:0 auto;padding:12px 22px 40px}h1{letter-spacing:-.02em;color:var(--text-strong);margin:0 0 6px;font-size:1.7rem;font-weight:700}h2{color:var(--text-strong);letter-spacing:-.01em;margin:26px 0 10px;font-size:1.15rem;font-weight:700}h2.section{color:var(--green-dark);margin-top:38px}.sektio{margin-bottom:18px}.sektio .card-grid{margin-bottom:10px}.katso-kaikki{color:var(--green-dark);border:1px solid var(--border);background:0 0;border-radius:999px;margin-top:8px;padding:9px 18px;font-weight:700}.katso-kaikki:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.polku-otsikko{color:var(--green);cursor:pointer;letter-spacing:-.01em;background:0 0;border:none;align-items:center;gap:12px;margin:38px 0 6px;padding:0;font-size:1.15rem;font-weight:700;display:inline-flex}.polku-otsikko:hover{color:var(--green-dark);background:0 0}.polku-linkki{color:var(--brand);font-size:.8rem;font-weight:700}.polku-otsikko:hover .polku-linkki{text-decoration:underline}.scroller{position:relative}.card-row{scroll-behavior:smooth;gap:16px;padding:4px 2px 12px;display:flex;overflow-x:auto}.card-row::-webkit-scrollbar{height:8px}.card-row::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.card-row .coursecard{flex:0 0 240px}.scroll-btn{z-index:3;width:38px;height:38px;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.35rem;line-height:1;display:flex;position:absolute;top:46%;transform:translateY(-50%)}.scroll-btn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.scroll-btn:disabled{opacity:.35;cursor:not-allowed}.scroll-btn.left{left:-8px}.scroll-btn.right{right:-8px}.muted{color:var(--muted)}.welcome{background:var(--gradient-brand);border-radius:var(--radius);box-shadow:var(--shadow-green);margin:14px 0 18px;padding:40px 34px}.welcome-title{letter-spacing:-.035em;color:var(--green);margin:0 0 6px;font-size:2.4rem;font-weight:700}.welcome .welcome-title{color:#fff}.welcome-sub{color:var(--muted);margin:0;font-size:1.1rem}.welcome .welcome-sub{color:#ffffffe6}.stats{flex-wrap:wrap;gap:14px;margin:18px 0 44px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--brand);border-radius:var(--radius);min-width:130px;box-shadow:var(--shadow-sm);flex-direction:column;padding:14px 18px;display:flex}.stat-label{color:var(--muted);font-size:.8rem}.stat-val{color:var(--green-dark);margin-top:2px;font-size:1.15rem;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:12px 0;padding:16px 18px}.card.clickable{cursor:pointer;transition:transform var(--ease-out) .2s, box-shadow var(--ease-out) .2s, border-color var(--ease-out) .15s}.card.clickable:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-3px)}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pill{background:var(--brand-soft);color:var(--green-dark);white-space:nowrap;border-radius:999px;padding:4px 11px;font-size:.78rem;font-weight:700}.pill.done{background:var(--brand);color:#fff}.progress{background:var(--border);border:1px solid var(--border);border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--green), var(--green-compliment));width:0;height:100%;transition:width .3s;display:block}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:8px 0 6px;display:grid}.coursecard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform var(--ease-out) .2s, box-shadow var(--ease-out) .2s, border-color var(--ease-out) .15s;flex-direction:column;display:flex;overflow:hidden}.coursecard.clickable{cursor:pointer}.coursecard.clickable:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-3px)}.thumb{background:radial-gradient(120px 80px at 30% 20%, #ffffff38, transparent 60%), var(--gradient-brand);justify-content:center;align-items:center;height:120px;display:flex;position:relative}.thumb-icon{font-size:2.6rem}.coursebody{flex-direction:column;flex:1;gap:6px;padding:14px 16px 16px;display:flex}.coursetitle{color:var(--green-dark);font-size:1.02rem;font-weight:700}.coursedesc{margin:0;font-size:.9rem}button{font:inherit;cursor:pointer;background:var(--brand);color:#fff;box-shadow:var(--shadow-green);transition:background var(--ease-out) .2s, transform var(--ease-out) .12s;border:none;border-radius:999px;padding:11px 24px;font-weight:700}button:hover{background:var(--brand-hover)}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button:focus-visible{outline-offset:2px;outline:4px solid #00ae6573}.btnrow{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.valmis-note{color:var(--green-dark);font-weight:700}.back{color:var(--green-dark);box-shadow:none;background:0 0;padding:6px 0;font-weight:700}.back:hover{color:var(--brand);background:0 0;text-decoration:underline}ul.clean{padding-left:20px}ul.clean li{margin:4px 0}.media-img{border-radius:var(--radius-sm);max-width:100%;margin:10px 0;display:block}.media-video{border-radius:var(--radius-sm);background:#000;width:100%;margin:10px 0}.media-audio{width:100%;margin:10px 0}.media-youtube{aspect-ratio:16/9;border-radius:var(--radius-sm);background:#000;width:100%;margin:10px 0;display:block;overflow:hidden}.media-youtube.pysty{aspect-ratio:9/16;max-width:320px;margin:10px auto}.media-youtube iframe{border:0;width:100%;height:100%;display:block}.media-youtube.yt-kansi,.media-youtube.yt-kansi:hover{border-radius:var(--radius-sm);background:var(--gradient-brand);color:#fff;box-shadow:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex}.media-youtube.yt-kansi:active{transform:none}.yt-toista{width:72px;height:72px;box-shadow:var(--shadow-md);transition:transform .2s var(--ease-out);background:#fff;border-radius:50%;place-items:center;display:grid}.yt-toista svg{width:34px;height:34px;fill:var(--green);margin-left:4px}.yt-kansi:hover .yt-toista,.yt-kansi:focus-visible .yt-toista{transform:scale(1.06)}.yt-otsikko{font-size:1.15rem;line-height:1.3}.yt-huom{font-size:.85rem;font-weight:400}.video-huom{text-align:center;color:var(--muted);margin:4px 0 10px;font-size:.9rem}.media-placeholder{background:var(--brand-soft);color:var(--green-dark);border:1px dashed var(--brand);border-radius:var(--radius-sm);text-align:center;margin:10px 0;padding:24px;font-weight:700}.liite{margin:10px 0}.liite-otsikko{color:var(--green-dark);margin-bottom:8px;font-weight:700}iframe.pdf{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;width:100%;height:70vh}.liite-lataa{color:var(--green-dark);margin-top:8px;font-size:.88rem;display:inline-block}.kysymys{margin:14px 0}.vaihtoehto{text-align:left;background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-sm);box-shadow:none;transition:border-color var(--ease-out) .15s;margin:6px 0;padding:12px 14px;font-weight:400;display:block}.vaihtoehto:hover{border-color:var(--brand);background:var(--surface-2)}.vaihtoehto.oikea{border-color:var(--brand);background:var(--brand-soft);color:var(--green-dark);font-weight:700}.vaihtoehto.vaara{border-color:var(--yellow-line);background:var(--yellow-soft)}.palaute{color:var(--muted);margin-top:6px;font-size:.92rem}.palaute-vaara{color:var(--text)}.valmis-banner{background:var(--brand-soft);border:1px solid var(--brand);color:var(--green-dark);border-radius:var(--radius);margin:18px 0;padding:16px 18px;font-weight:700}.merkit-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-top:14px;display:grid}.merkki-kortti{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow-sm);padding:18px}.merkki-kortti.lukittu{opacity:.5}.merkki-kortti.ansaittu{border-color:var(--brand);box-shadow:0 6px 22px #00ae652e}.merkki-ikoni{font-size:2.1rem}.merkki-nimi{color:var(--green-dark);margin:6px 0 2px;font-weight:700}.merkki-tila{font-size:.82rem}body>footer{text-align:center;color:#ffffffb3;background:var(--green-compliment-dark);margin-top:40px;padding:34px;font-size:.85rem}@media (max-width:600px){main{padding-left:16px;padding-right:16px}.welcome-title{font-size:1.8rem}.welcome-sub{font-size:1rem}h1{font-size:1.4rem}.card-grid{grid-template-columns:1fr}iframe.pdf{height:60vh}.navbtn{padding:8px 13px}}.searchbar{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:10px;margin:8px 0 30px;padding:12px 18px;display:flex}.searchbar .search-ic{opacity:.7}.searchbar .filter-ic{opacity:.55;display:inline-flex}input.search{color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1}input.search::placeholder{color:var(--muted)}.cardtype{color:var(--muted);margin-top:auto;padding-top:12px;font-size:.85rem;font-weight:700}.thumb-check{color:#fff;background:#0012318c;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-weight:700;display:flex;position:absolute;top:10px;right:10px}.thumb-badge{color:var(--green-dark);box-shadow:var(--shadow-sm);background:#fff;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:700;position:absolute;top:10px;right:10px}.coursecard.valmis{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand), 0 10px 26px #00ae652e}.coursecard.valmis .thumb:after{content:"";background:linear-gradient(#00ae6500 40%,#004d4659);position:absolute;inset:0}.cardtype.valmis-txt{color:var(--green-dark)}.cert-month{color:var(--muted);margin:16px 2px 8px;font-size:.85rem}.cert-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:14px;margin:8px 0;padding:14px 16px;display:flex}.cert-icon{background:var(--brand-soft);width:40px;height:40px;color:var(--green-dark);border:1px solid var(--brand);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.cert-main{flex:1;min-width:0}.cert-name{color:var(--green-dark);font-weight:700}.cert-date{font-size:.85rem}.cert-dl{color:var(--green-dark);border:1px solid var(--border);box-shadow:none;background:#fff;padding:8px 16px;font-weight:700}.cert-dl:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.admin-table .cert-dl{margin-left:8px;padding:5px 12px;font-size:.82rem}.table-scroll{margin-top:12px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:520px;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.admin-table thead th{color:var(--muted);font-size:.82rem;font-weight:700}.admin-table tbody tr:hover{background:var(--surface-2)}.admin-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);cursor:pointer}.admin-table thead th:first-child,.admin-table tbody tr:not(.moduuli-detalji) td:first-child{z-index:1;background:var(--bg);box-shadow:1px 0 0 var(--border);position:sticky;left:0}.admin-table thead th:first-child{z-index:2}.admin-table tbody tr:not(.moduuli-detalji):hover td:first-child{background:var(--surface-2)}.admin-valinta{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 4px;display:flex}.admin-select{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:#fff;padding:8px 12px;font-weight:700}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0 6px;display:flex}.admin-toolbar .searchbar{flex:1;min-width:220px;margin:0}.admin-vie{white-space:nowrap}.pill.pill-none{color:var(--muted);border:1px solid var(--border);background:0 0}.moduuli-toggle{color:var(--green-dark);cursor:pointer;box-shadow:none;background:0 0;border:none;margin-top:2px;padding:2px 0;font-size:.8rem;font-weight:700}.moduuli-toggle:hover{color:var(--brand);background:0 0;text-decoration:underline}.moduuli-detalji td{background:var(--surface-2)}.moduuli-otsikko{margin-bottom:4px;font-size:.85rem}.moduuli-lista{flex-wrap:wrap;gap:6px;padding:6px 0;display:flex}.moduuli-chip{border:1px solid var(--border);color:var(--muted);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:.8rem}.moduuli-chip.ok{border-color:var(--brand);color:var(--green-dark);background:var(--brand-soft)}.rank-row{grid-template-columns:repeat(4,1fr);gap:clamp(14px,3.5vw,30px) clamp(6px,2vw,14px);max-width:640px;margin:22px auto 14px;display:grid}.rank{text-align:center}.rank-badge{color:#fff;background:var(--border);justify-content:center;align-items:center;width:clamp(58px,16vw,86px);height:clamp(58px,16vw,86px);margin:0 auto;font-size:clamp(1.5rem,5.5vw,2.4rem);display:flex}.rank.locked .rank-badge{background:var(--border);color:var(--muted)}.rank.current .rank-badge{box-shadow:0 0 0 3px #00ae6559, var(--shadow-md)}.rank-name{color:var(--text-strong);margin-top:10px;font-size:clamp(.85rem,3.2vw,1.02rem);font-weight:700}.rank.locked .rank-name{color:var(--muted)}.rank-req{color:var(--muted);margin-top:4px;font-size:clamp(.72rem,2.6vw,.82rem);line-height:1.35}.rank-req.ok{color:var(--green-dark)}.shape-circle{border-radius:50%}.shape-squircle{border-radius:30%}.shape-diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.shape-hexagon{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.shape-octagon{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)}.shape-shield{clip-path:polygon(50% 0,100% 18%,100% 62%,50% 100%,0 62%,0 18%)}.shape-star{clip-path:polygon(50% 4%,63% 27%,90% 27%,76% 50%,90% 73%,63% 73%,50% 96%,37% 73%,10% 73%,24% 50%,10% 27%,37% 27%)}.shape-burst{clip-path:polygon(50% 0%,63% 10%,78% 6%,80% 22%,95% 28%,88% 43%,100% 55%,85% 62%,88% 78%,72% 78%,64% 92%,50% 84%,36% 92%,28% 78%,12% 78%,15% 62%,0% 55%,12% 43%,5% 28%,20% 22%,22% 6%,37% 10%)}.method-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;margin:18px 0;display:grid}.method{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:18px}.method .head{align-items:center;gap:11px;margin-bottom:8px;display:flex}.method .ic{background:var(--brand-soft);border-radius:11px;flex:none;place-items:center;width:38px;height:38px;display:grid}.method .ic svg{width:20px;height:20px;color:var(--green-dark)}.method h4{color:var(--text-strong);margin:0;font-size:1rem;font-weight:700}.method p{color:var(--muted);margin:0;font-size:.92rem}.callout{border-radius:var(--radius-sm);border:1px solid var(--border);margin:18px 0;padding:18px 20px}.callout .clabel{text-transform:uppercase;letter-spacing:.13em;align-items:center;gap:9px;margin-bottom:9px;font-size:.74rem;font-weight:700;display:flex}.callout .clabel svg{flex:none;width:16px;height:16px}.callout p{max-width:none;margin:0}.callout p+p{margin-top:10px}.callout.tip{background:#a3e6ee47;border-color:#0000}.callout.tip .clabel{color:var(--green-compliment-dark)}.callout.example{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:0 var(--radius-sm) var(--radius-sm) 0;box-shadow:var(--shadow-sm)}.callout.example .clabel{color:var(--green-dark)}.dodont{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0;display:grid}.dd{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);padding:18px 20px}.dd .dl{align-items:center;gap:9px;margin-bottom:10px;font-size:.95rem;font-weight:700;display:flex}.dd .dl svg{flex:none;width:19px;height:19px}.dd.good{border-top:3px solid var(--green)}.dd.good .dl{color:var(--green-dark)}.dd.bad{border-top:3px solid var(--yellow-line)}.dd.bad .dl{color:var(--text)}.dd ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.dd li{align-items:flex-start;gap:9px;font-size:.93rem;display:flex}.dd li svg{flex:none;width:15px;height:15px;margin-top:3px}.dd.good li svg{color:var(--green)}.dd.bad li svg{color:var(--text-strong)}.vaihtoehto{align-items:center;gap:12px;display:flex}.vaihtoehto:hover:not(:disabled){border-color:var(--green);background:var(--brand-soft)}.vaihtoehto .mark{border:2px solid var(--border);width:22px;height:22px;transition:all var(--ease-out) .16s;border-radius:50%;flex:none;place-items:center;display:grid}.vaihtoehto .mark svg{opacity:0;color:#fff;width:13px;height:13px}.vaihtoehto .vt-text{flex:auto}.vaihtoehto.oikea .mark{border-color:var(--green);background:var(--green)}.vaihtoehto.oikea .mark svg{opacity:1}.vaihtoehto.vaara .mark{border-color:var(--yellow-hi);background:var(--yellow-hi)}.vaihtoehto.vaara .mark svg{color:var(--blue-dark);opacity:1}.kurssi-progress{z-index:6;background:0 0;height:5px;margin:-6px 0 10px;position:sticky;top:0}.kurssi-progress-bar{background:var(--green);width:0;height:5px;transition:width .22s var(--ease-out);border-radius:999px}.kurssi-vaihe{animation:kurssiIn .3s var(--ease-out)}.kurssi-vaihe[hidden]{display:none}@keyframes kurssiIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.kurssi .eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--green-dark);margin:6px 0 10px;font-size:.74rem;font-weight:700}.kurssi-h1{letter-spacing:-.02em;color:var(--text-strong);margin:0 0 12px;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:700}.kurssi .lede{color:var(--muted);max-width:60ch;margin:0 0 22px;font-size:1.1rem}.kurssi .meta-row{flex-wrap:wrap;gap:12px;margin-bottom:8px;display:flex}.kurssi .meta-chip{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:8px;padding:8px 15px;font-size:.88rem;font-weight:700;display:inline-flex}.kurssi .meta-chip svg{width:16px;height:16px;color:var(--green-dark);flex:none}.kurssi .goals{margin-top:22px}.kurssi .goals-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.kurssi .goals-list li{align-items:flex-start;gap:11px;display:flex}.kurssi .goals-list .gic{background:var(--brand-soft);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;margin-top:1px;display:grid}.kurssi .goals-list .gic svg{width:14px;height:14px;color:var(--green-dark)}.mod-head{align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.mod-num{color:#fff;background:var(--green);min-width:28px;height:28px;box-shadow:var(--shadow-green);border-radius:999px;place-items:center;padding:0 8px;font-size:.82rem;font-weight:700;display:inline-grid}.mod-kicker{text-transform:uppercase;letter-spacing:.16em;color:var(--green-dark);font-size:.68rem;font-weight:700}.kurssi-h2{letter-spacing:-.01em;color:var(--text-strong);margin:0 0 10px;font-size:1.45rem;font-weight:700}.kurssi-quiz{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);margin:22px 0 6px;padding:22px 24px}.kurssi-quiz .qlabel{text-transform:uppercase;letter-spacing:.14em;color:var(--green-dark);align-items:center;gap:8px;margin-bottom:12px;font-size:.72rem;font-weight:700;display:flex}.kurssi-quiz .qlabel svg{width:16px;height:16px}.kurssi-quiz .q-otsikko{color:var(--text-strong);margin:0 0 14px;font-size:1.06rem;font-weight:700}.kurssi-quiz .q-options{gap:10px;display:grid}.kurssi-quiz .palaute{border-radius:var(--radius-sm);margin-top:12px;padding:12px 15px;font-size:.93rem}.kurssi-quiz .palaute-ok{background:var(--brand-soft);color:var(--green-dark)}.kurssi-quiz .palaute-vaara{color:var(--text);background:#fff35f47}.score-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:28px}.key-takeaways{gap:11px;margin:18px 0 0;display:grid}.key-takeaways .kt{background:var(--surface-2);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:13px 16px;display:flex}.key-takeaways .kt svg{width:18px;height:18px;color:var(--green-dark);flex:none;margin-top:2px}.stepnav{border-top:1px solid var(--border);align-items:center;gap:12px;margin:22px 0 6px;padding-top:20px;display:flex}.stepnav .spacer{flex:auto}.stepnav .step-indicator{letter-spacing:.1em;text-transform:uppercase;color:var(--green-dark);white-space:nowrap;font-size:.78rem;font-weight:700}.stepnav .nav-next{background:var(--green);color:#fff;box-shadow:var(--shadow-sm);border-radius:999px;padding:10px 22px;font-weight:700}.stepnav .nav-next:hover:not(:disabled){background:var(--brand-hover)}.stepnav .nav-next:disabled,.stepnav .nav-next.lukittu{background:var(--surface-2);color:var(--muted);cursor:not-allowed;box-shadow:none}.stepnav .nav-prev{color:var(--green-dark);box-shadow:none;background:0 0;padding:8px 12px;font-weight:700}.stepnav .nav-prev:hover{background:0 0;text-decoration:underline}.reflect{background:var(--surface);border-radius:var(--radius-sm);border:1px dashed #00ae6559;margin:16px 0;padding:18px 20px}.reflect .rq{color:var(--text-strong);margin:0 0 12px;font-weight:700}.reflect .reveal-btn{color:var(--green-dark);border:1px solid var(--border);box-shadow:none;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:.9rem;font-weight:700;display:inline-flex}.reflect .reveal-btn:hover{background:var(--surface-2)}.reflect .reveal-btn svg{flex:none;width:16px;height:16px}.reflect .reveal-answer{color:var(--text);border-top:1px solid var(--border);margin-top:12px;padding-top:12px;font-size:.95rem;display:none}.reflect .reveal-answer.show{display:block}.tilanne{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:0 var(--radius-sm) var(--radius-sm) 0;box-shadow:var(--shadow-sm);margin:18px 0;padding:18px 20px}.tilanne-label{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);align-items:center;gap:9px;margin-bottom:9px;font-size:.74rem;font-weight:700;display:flex}.tilanne-label svg{flex:none;width:16px;height:16px}.tilanne-teksti{margin:0 0 8px}.tilanne-kysymys{color:var(--text-strong);margin:0 0 12px;font-weight:700}.tilanne-optio{text-align:left;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--text);cursor:pointer;box-shadow:none;transition:border-color .16s var(--ease-out), background .16s var(--ease-out);align-items:center;gap:12px;margin:8px 0 0;padding:12px 15px;font-size:.96rem;display:flex}.tilanne-optio:hover:not(.avattu){border-color:var(--green);background:var(--brand-soft)}.tilanne-optio .mark{border:2px solid var(--border);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.tilanne-optio .mark svg{opacity:0;color:#fff;width:12px;height:12px}.tilanne-optio .tv-text{flex:auto}.tilanne-optio.avattu.hyva{border-color:var(--green);background:var(--brand-soft);color:var(--green-dark);font-weight:700}.tilanne-optio.avattu.hyva .mark{border-color:var(--green);background:var(--green)}.tilanne-optio.avattu.huono{border-color:var(--yellow-line);background:var(--yellow-soft)}.tilanne-optio.avattu.huono .mark{border-color:var(--yellow-hi);background:var(--yellow-hi)}.tilanne-optio.avattu.huono .mark svg{color:var(--blue-dark)}.tilanne-optio.avattu .mark svg{opacity:1}.tilanne-palaute{border-radius:var(--radius-sm);margin:8px 0 4px 34px;padding:11px 14px;font-size:.92rem}.tilanne-palaute.hyva{background:var(--brand-soft);color:var(--green-dark)}.tilanne-palaute.huono{color:var(--text);background:#fff35f47}.jarjesta{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin:18px 0;padding:18px 20px}.jarjesta-label{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);align-items:center;gap:9px;margin-bottom:9px;font-size:.74rem;font-weight:700;display:flex}.jarjesta-label svg{flex:none;width:16px;height:16px}.jarjesta-ohje{color:var(--muted);margin:0 0 12px;font-size:.93rem}.jarjesta-tulos{counter-reset:j;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.jarjesta-tulos:empty{display:none}.jarjesta-tulos li{counter-increment:j;background:var(--brand-soft);border:1px solid var(--green);border-radius:var(--radius-sm);color:var(--green-dark);align-items:center;gap:11px;padding:11px 14px;font-size:.95rem;font-weight:700;display:flex}.jarjesta-tulos li:before{content:counter(j);background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.8rem;font-weight:700;display:grid}.jarjesta-pool{flex-wrap:wrap;gap:9px;display:flex}.jarjesta-pala{background:var(--surface-2);border:1.5px solid var(--border);font:inherit;color:var(--text);cursor:pointer;box-shadow:none;transition:border-color .16s var(--ease-out), background .16s var(--ease-out);border-radius:999px;padding:9px 16px;font-size:.92rem}.jarjesta-pala:hover:not(:disabled){border-color:var(--green);background:var(--brand-soft)}.jarjesta-pala:disabled{display:none}.jarjesta-pala.heilu{border-color:var(--yellow-line);background:var(--yellow-soft);animation:.34s heilu}@keyframes heilu{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.jarjesta-status{min-height:1.1em;margin-top:10px;font-size:.9rem;font-weight:700}.jarjesta-status.ok{color:var(--green-dark)}.jarjesta-status.vaara{color:var(--text-strong)}.sitoumus{background:var(--brand-soft);border:1px solid var(--green);border-radius:var(--radius);margin:18px 0;padding:20px 22px}.sitoumus-label{color:var(--green-dark);align-items:center;gap:9px;margin-bottom:6px;font-size:.98rem;font-weight:700;display:flex}.sitoumus-label svg{flex:none;width:18px;height:18px}.sitoumus-ohje{color:var(--text);margin:0 0 12px;font-size:.93rem}.sitoumus-optio{text-align:left;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--text);cursor:pointer;box-shadow:none;transition:border-color .16s var(--ease-out);align-items:center;gap:12px;margin:8px 0 0;padding:12px 15px;font-size:.96rem;display:flex}.sitoumus-optio:hover{border-color:var(--green)}.sitoumus-optio .mark{border:2px solid var(--border);border-radius:50%;flex:none;width:20px;height:20px}.sitoumus-optio.valittu{border-color:var(--green)}.sitoumus-optio.valittu .mark{border-color:var(--green);background:var(--green);box-shadow:inset 0 0 0 3px var(--surface)}.sitoumus-optio .so-text{flex:auto}.sitoumus-vahvistus{color:var(--green-dark);align-items:center;gap:9px;margin-top:12px;font-size:.93rem;font-weight:700;display:flex}.sitoumus-vahvistus svg{flex:none;width:17px;height:17px}:root{--green-line:#00ae654d;--yellow-soft:#fff35f47;--yellow-line:var(--yellow-hi);--ok-bg:#00ae651f;--ok-text:var(--green-dark)}.method-grid.nelja{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.method-grid.vaiheet .head{align-items:flex-start}.method-grid.vaiheet .mod-num{flex:none}.method-grid.vaiheet h4{margin-top:2px}@supports (grid-template-rows:subgrid){.method-grid.vaiheet .method{grid-row:span 2;grid-template-rows:subgrid;row-gap:8px;display:grid}.method-grid.vaiheet .method .head{margin-bottom:0}}.banneri{background:var(--gradient-brand);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);margin:20px 0;padding:28px 30px}.banneri .blab{text-transform:uppercase;letter-spacing:.2em;color:#ffffffc7;align-items:center;gap:9px;margin:0 0 10px;font-size:.7rem;font-weight:700;display:flex}.banneri .blab svg{flex:none;width:15px;height:15px}.banneri .bteksti{letter-spacing:-.015em;text-wrap:balance;color:#fff;max-width:28ch;margin:0 0 8px;font-size:1.28rem;font-weight:700;line-height:1.28}.banneri .bselite{color:#ffffffdb;max-width:52ch;margin:0;font-size:.95rem}.banneri strong{color:#fff}.mf-lista{gap:12px;margin:18px 0;display:grid}.mf{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden}.mf-nappi{text-align:left;width:100%;font:inherit;color:var(--text);box-shadow:none;background:0 0;border:none;border-radius:0;align-items:flex-start;gap:12px;padding:16px 18px;font-weight:400;display:flex}.mf-nappi:hover{background:var(--surface-2)}.mf-nappi:active{transform:none}.mf-nappi:focus-visible{box-shadow:inset 0 0 0 3px var(--green-line);outline:none}.mf-merkki{letter-spacing:.14em;text-transform:uppercase;color:var(--text-strong);background:var(--yellow-soft);border-radius:999px;flex:none;margin-top:2px;padding:4px 10px;font-size:.66rem;font-weight:700}.mf-vaite{min-width:0;color:var(--text-strong);flex:auto;font-weight:700}.mf-avaa{color:var(--green-dark);border:1.5px solid var(--green);background:var(--brand-soft);transition:background .2s var(--ease-out), color .2s var(--ease-out);border-radius:999px;flex:none;align-items:center;gap:6px;margin:-4px 0;padding:6px 12px 6px 15px;font-size:.82rem;font-weight:700;display:flex}.mf-nappi:hover .mf-avaa,.mf-nappi:focus-visible .mf-avaa{background:var(--green);color:#fff}.mf.avattu .mf-avaa{background:var(--surface);color:var(--green-dark)}.mf-avaa svg{width:14px;height:14px;transition:transform .2s var(--ease-out)}.mf.avattu .mf-avaa svg{transform:rotate(180deg)}.mf-fakta{border-top:1px solid var(--border);padding:0 18px 18px}.mf-fakta .flab{letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);align-items:center;gap:8px;margin:14px 0 8px;font-size:.68rem;font-weight:700;display:flex}.mf-fakta .flab svg{flex:none;width:15px;height:15px}.mf-fakta p{margin:0;font-size:.95rem}.muistikortit{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin:18px 0;display:grid}.mkortti{font:inherit;text-align:left;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--text);transition:border-color .16s var(--ease-out), transform .16s var(--ease-out);align-content:start;gap:8px;padding:16px 18px;font-weight:400;display:grid}.mkortti:hover{background:var(--surface);border-color:var(--green-line);transform:translateY(-2px)}.mkortti:focus-visible{box-shadow:0 0 0 3px var(--green-line);outline:none}.mkortti .mk-etu{color:var(--text-strong);font-size:.98rem;font-weight:700}.mkortti .mk-kaanna{letter-spacing:.1em;text-transform:uppercase;color:var(--green-dark);align-items:center;gap:6px;font-size:.76rem;font-weight:700;display:flex}.mkortti .mk-kaanna svg{width:13px;height:13px}.mkortti .mk-taka{color:var(--text);border-top:1px solid var(--border);padding-top:9px;font-size:.92rem}.mkortti [hidden]{display:none}.mkortti.auki,.mkortti.auki:hover{border-color:var(--green);background:var(--ok-bg)}.mkortti.auki .mk-etu,.mkortti.auki .mk-taka{color:var(--ok-text)}.mkortti.auki .mk-taka{border-top-color:var(--green-line)}.luokittelu .clabel,.itsearvio .clabel{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);align-items:center;gap:9px;margin-bottom:8px;font-size:.74rem;font-weight:700;display:flex}.luokittelu .clabel svg,.itsearvio .clabel svg{flex:none;width:16px;height:16px}.luokittelu .ohje,.itsearvio .ohje{color:var(--muted);margin:0 0 14px;font-size:.94rem}.luokittelu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:18px 0;padding:22px 24px}.palat{flex-wrap:wrap;gap:9px;min-height:8px;margin-bottom:18px;display:flex}.pala{font:inherit;color:var(--text);background:var(--surface-2);border:1.5px solid var(--border);box-shadow:none;transition:border-color .16s var(--ease-out), background .16s var(--ease-out);border-radius:999px;padding:9px 16px;font-size:.92rem;font-weight:700}button.pala:hover{background:var(--surface-2);border-color:var(--green-line)}button.pala:focus-visible{box-shadow:0 0 0 3px var(--green-line);outline:none}.pala.valittu,button.pala.valittu:hover{border-color:var(--green);background:var(--brand-soft)}.pala.heilu{border-color:var(--yellow-line);background:var(--yellow-soft);animation:.34s heilu}.pala.sijoitettu{border-color:var(--green);background:var(--ok-bg);color:var(--ok-text);display:inline-block}.korit{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.kori{border:2px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface-2);transition:border-color .16s var(--ease-out), background .16s var(--ease-out);padding:15px 16px}.kori.aktiivinen{border-color:var(--green);background:var(--brand-soft);cursor:pointer}.kori:focus-visible{box-shadow:0 0 0 3px var(--green-line);outline:none}.kori h4{color:var(--text-strong);margin:0 0 4px;font-size:.97rem;font-weight:700}.kori .kori-selite{color:var(--muted);margin:0 0 10px;font-size:.84rem}.kori-sisalto{flex-wrap:wrap;gap:8px;min-height:34px;display:flex}.lstatus{min-height:1.1em;margin:14px 0 0;font-size:.92rem;font-weight:700}.lstatus.ok{color:var(--green-dark)}.lstatus.vaara{color:var(--text-strong)}.lvalmis{background:var(--brand-soft);border-radius:var(--radius-sm);margin-top:12px;padding:15px 17px;font-size:.94rem}.lvalmis p{margin:0}.itsearvio{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:18px 0;padding:22px 24px}.ia-rivi{border-top:1px solid var(--border);gap:9px;padding:14px 0;display:grid}.ia-vaite{color:var(--text-strong);font-size:.97rem;font-weight:700}.ia-napit{flex-wrap:wrap;gap:8px;display:flex}.ia-nappi{font:inherit;color:var(--text);background:var(--surface-2);border:1.5px solid var(--border);box-shadow:none;transition:border-color .16s var(--ease-out), background .16s var(--ease-out);border-radius:999px;padding:8px 16px;font-size:.88rem;font-weight:700}.ia-nappi:hover{background:var(--surface-2);border-color:var(--green-line)}.ia-nappi:focus-visible{box-shadow:0 0 0 3px var(--green-line);outline:none}.ia-nappi.valittu,.ia-nappi.valittu:hover{border-color:var(--green);background:var(--ok-bg);color:var(--ok-text)}.ia-koonti{background:var(--brand-soft);border-radius:var(--radius-sm);margin-top:16px;padding:15px 17px;font-size:.94rem}.ia-koonti p{margin:0}.repliikit{gap:12px;margin:18px 0;display:grid}.repl{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.repl-puoli{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);padding:15px 17px}.repl-puoli .rl{text-transform:uppercase;letter-spacing:.13em;align-items:center;gap:8px;margin-bottom:8px;font-size:.7rem;font-weight:700;display:flex}.repl-puoli .rl svg{flex:none;width:15px;height:15px}.repl-puoli .rteksti{color:var(--text-strong);margin:0 0 6px;font-size:1rem;font-style:italic}.repl-puoli .rselite{color:var(--muted);margin:0;font-size:.86rem}.repl-puoli.ei{background:var(--yellow-soft)}.repl-puoli.ei .rl{color:var(--text-strong)}.repl-puoli.ei .rteksti{color:var(--text)}.repl-puoli.kylla{border-left:3px solid var(--green)}.repl-puoli.kylla .rl{color:var(--green-dark)}.repl-tilanne{color:var(--text-strong);margin:8px 0 0;font-weight:700}.method-grid.kaksi{grid-template-columns:repeat(2,minmax(0,1fr))}.method-grid.viisi{grid-template-columns:repeat(6,minmax(0,1fr))}.method-grid.viisi>*{grid-column:span 2}.method-grid.viisi>:nth-child(4){grid-column:2/span 2}.method-grid.viisi>:nth-child(5){grid-column:4/span 2}@media (max-width:760px){.method-grid.viisi{grid-template-columns:repeat(4,minmax(0,1fr))}.method-grid.viisi>:nth-child(n){grid-column:span 2}.method-grid.viisi>:nth-child(5){grid-column:2/span 2}}.asiakkaan-aani{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--green-compliment);border-radius:0 var(--radius) var(--radius) 0;box-shadow:var(--shadow-sm);margin:20px 0;padding:22px 24px 20px 26px}.asiakkaan-aani .alab{text-transform:uppercase;letter-spacing:.16em;color:var(--green-compliment);align-items:center;gap:9px;margin-bottom:10px;font-size:.7rem;font-weight:700;display:flex}.asiakkaan-aani .alab svg{flex:none;width:15px;height:15px}.asiakkaan-aani blockquote{color:var(--text-strong);margin:0 0 10px;font-size:1.08rem;line-height:1.5}.asiakkaan-aani .lahde{color:var(--muted);margin:0;font-size:.85rem;font-weight:700}details.lue{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin:18px 0}details.lue>summary{cursor:pointer;color:var(--green-dark);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:15px 18px;font-size:.95rem;font-weight:700;list-style:none;display:flex}details.lue>summary::-webkit-details-marker{display:none}details.lue>summary:focus-visible{box-shadow:0 0 0 3px var(--green-line);outline:none}details.lue>summary svg{width:16px;height:16px;transition:transform .2s var(--ease-out);flex:none}details.lue[open]>summary svg{transform:rotate(90deg)}details.lue .lue-sisalto{border-top:1px solid var(--border);padding:0 18px 18px}details.lue .lue-sisalto>p{margin:14px 0 0;font-size:.94rem}details.lue .lue-sisalto>ul{gap:7px;margin:12px 0 0;padding-left:20px;font-size:.94rem;display:grid}details.lue .lue-sisalto>ul li{margin:0}.taulukko-kaari{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);margin:18px 0;overflow-x:auto}table.vastuut{border-collapse:collapse;width:100%;min-width:640px;font-size:.9rem}table.vastuut th,table.vastuut td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:12px 14px}table.vastuut thead th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.12em;color:var(--green-dark);white-space:nowrap;font-size:.7rem}table.vastuut tbody th{color:var(--text-strong);white-space:nowrap;font-weight:700}table.vastuut tbody tr:last-child th,table.vastuut tbody tr:last-child td{border-bottom:none}table.vastuut.kapea{min-width:0}table.vastuut.kapea tbody th{white-space:normal;width:44%;font-weight:400}table.vastuut.apk tbody th{width:auto;font-weight:700}table.vastuut.apk td,table.vastuut.apk th{font-variant-numeric:tabular-nums}.taulukko-vihje{color:var(--muted);margin:-8px 0 18px;font-size:.82rem}ol.vaiheet{counter-reset:v;margin:16px 0 20px;padding:0;list-style:none;display:grid}ol.vaiheet>li{counter-increment:v;border-bottom:1px solid var(--border);align-items:flex-start;gap:13px;padding:11px 0;display:flex}ol.vaiheet>li:last-child{border-bottom:none}ol.vaiheet>li:before{content:counter(v);background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;margin-top:1px;font-size:.84rem;font-weight:700;display:grid;box-shadow:0 4px 12px #00ae653d}ol.vaiheet>li>span{flex:1;min-width:0}ul.pisteet{gap:10px;margin:14px 0 18px;padding:0;list-style:none;display:grid}ul.pisteet>li{align-items:flex-start;gap:11px;display:flex}ul.pisteet>li>svg{width:18px;height:18px;color:var(--green);flex:none;margin-top:3px}ul.pisteet>li>span{flex:1;min-width:0}.matkat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:18px 0 20px;padding:20px 22px 18px}.matkat .mlab{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);align-items:center;gap:9px;margin:0 0 12px;font-size:.74rem;font-weight:700;display:flex}.matkat .mlab svg{flex:none;width:16px;height:16px}.matka-rivi{grid-template-columns:70px 1fr 50px;align-items:center;gap:12px;padding:7px 0;display:grid}.matka-nopeus{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.matka-palkki{background:var(--surface-2);border-radius:999px;height:18px;display:flex;overflow:hidden}.matka-palkki .reaktio{background:var(--green-line)}.matka-palkki .jarrutus{background:var(--green)}.matka-m{text-align:right;color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:700}.matka-selite{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:12px 0 0;font-size:.85rem;display:flex}.matka-selite span:before{content:"";vertical-align:-1px;border-radius:4px;width:12px;height:12px;margin-right:7px;display:inline-block}.matka-selite .s-reaktio:before{background:var(--green-line)}.matka-selite .s-jarrutus:before{background:var(--green)}.matka-huom{color:var(--muted);margin:12px 0 0;font-size:.85rem}.kurssi-vaihe.tauko{text-align:center;padding:20px 0}.tauko-kortti{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:520px;box-shadow:var(--shadow-md);margin:0 auto;padding:38px 32px 34px}.tauko-ikoni{background:var(--brand-soft);border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 18px;display:grid}.tauko-ikoni svg{width:29px;height:29px;color:var(--green-dark)}.tauko .yla{text-transform:uppercase;letter-spacing:.2em;color:var(--green-dark);margin:0 0 8px;font-size:.72rem;font-weight:700}.tauko .leipa{max-width:44ch;color:var(--muted);margin:0 auto}.tauko .tauko-vinkki{border-radius:var(--radius-sm);max-width:44ch;color:var(--text);background:#a3e6ee47;margin:20px auto 0;padding:14px 18px;font-size:.94rem}@media (max-width:560px){.matka-rivi{grid-template-columns:58px 1fr 44px;gap:9px}.matkat{padding:18px 16px 16px}.banneri{padding:22px 20px}.luokittelu,.itsearvio{padding:18px 16px}.tauko-kortti{padding:30px 20px 26px}.method-grid.kaksi,.method-grid.viisi{grid-template-columns:1fr}.method-grid.viisi>:nth-child(n){grid-column:auto}}@media (prefers-reduced-motion:reduce){.mkortti,.mkortti:hover{transition:none;transform:none}.pala.heilu{animation:none}}.roolivalinta{color:#fff;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;margin-left:auto;font-size:.74rem;font-weight:700;display:flex}.roolivalinta select{font:inherit;letter-spacing:0;text-transform:none;color:var(--text-strong);cursor:pointer;background:#fff;border:0;border-radius:999px;padding:5px 10px;font-size:.88rem;font-weight:700}.kurssi-ylarivi{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.muokkaa-nappi{align-items:center;gap:8px;margin-left:auto;padding:9px 18px;display:inline-flex}.muokkaa-nappi svg,.editbar-ohje svg,.tallennettu svg{flex:none;width:16px;height:16px}.tallennettu{background:var(--ok-bg);color:var(--ok-text);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;font-weight:700;display:inline-flex}.editbar{z-index:30;background:var(--surface);border-top:3px solid var(--green);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 22px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0000001f}.editbar-ohje{color:var(--text);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.editbar-ohje svg{color:var(--green-dark)}.editbar .spacer{flex:1}.editbar .ghost{color:var(--green-dark);box-shadow:none;border:1px solid var(--border);background:0 0}.editbar .ghost:hover{background:var(--surface-2)}.edit-tila{color:var(--muted);font-size:.85rem}.edit-tila.virhe{color:var(--text-strong);font-weight:700}.editbar~.stepnav{margin-bottom:110px}.kurssi.muokkaus [data-polku]{outline-offset:2px;cursor:text;border-radius:3px;outline:1px dashed #00877c80;transition:background .15s}.kurssi.muokkaus [data-polku]:hover{background:#00ae6512}.kurssi.muokkaus [data-polku]:focus{outline:2px solid var(--green);background:#00ae6514}.kurssi.muokkaus [data-polku].muutettu{background:var(--yellow-soft);outline-color:var(--yellow-line)}.kurssi.muokkaus .vaihtoehto,.kurssi.muokkaus .tilanne-optio,.kurssi.muokkaus .mkortti,.kurssi.muokkaus .mf-nappi,.kurssi.muokkaus .jarjesta-pala,.kurssi.muokkaus .ia-nappi,.kurssi.muokkaus .reveal-btn,.kurssi.muokkaus .kori{cursor:default}.muok-selite{letter-spacing:.12em;text-transform:uppercase;color:var(--green-compliment-dark);margin:14px 0 6px;font-size:.7rem;font-weight:700}@media (max-width:560px){.editbar{gap:6px 8px;padding:8px 12px}.editbar-ohje{flex-basis:100%;font-size:.85rem}.editbar-vinkki,.editbar .spacer{display:none}.edit-tila{flex:1}.editbar button{padding:8px 14px;font-size:.9rem}.roolivalinta>span{display:none}}
a{color:var(--green-dark)}a.navbtn{text-decoration:none;display:inline-block}a.nappi{background:var(--brand);color:#fff;box-shadow:var(--shadow-green);transition:background var(--ease-out) .2s;border-radius:999px;padding:11px 24px;font-weight:700;text-decoration:none;display:inline-block}a.nappi:hover{background:var(--brand-hover)}a.nappi.toissijainen{color:var(--green-dark);box-shadow:none;border:1px solid var(--border);background:0 0}a.back{text-decoration:none;display:inline-block}.tallennusvirhe{border-radius:var(--radius-sm);background:var(--yellow-soft);border:1px solid var(--yellow-line);color:var(--text-strong);margin:8px 0;padding:10px 14px;font-weight:700}.kurssilista{gap:12px;margin:18px 0;padding:0;list-style:none;display:grid}.kurssirivi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:14px;padding:14px 18px;display:flex}.kurssirivi .mod-num{flex:none}.kurssirivi .tiedot{flex:auto;min-width:0}.kurssirivi .tiedot h3{color:var(--text-strong);margin:0;font-size:1rem}.kurssirivi .tiedot p{color:var(--muted);margin:2px 0 0;font-size:.85rem}.kurssirivi.valmis{border-color:var(--brand)}.tilasiru{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.tilasiru.valmis{background:var(--ok-bg);color:var(--ok-text)}.tilasiru.kesken{background:var(--yellow-soft);color:var(--text-strong)}@media (max-width:560px){.kurssirivi{flex-wrap:wrap}.kurssirivi .toiminto{width:100%}.kurssirivi .toiminto a.nappi{text-align:center;display:block}}.ilmoitus{margin:18px 0}.kirjautuminen{max-width:460px;margin:30px auto}body>footer a{color:inherit}.seloste{max-width:760px}.seloste .lede{margin-bottom:4px}.seloste ul{gap:6px;padding-left:22px;display:grid}.seloste .taulukko-kaari{margin:10px 0}.kirjautuminen form{margin:12px 0 0}.kirjautuminen .kehitys{border-top:1px dashed var(--border);margin-top:22px;padding-top:16px}.kirjautuminen .kehitys .btnrow button{color:var(--green-dark);box-shadow:none;border:1px solid var(--border);background:0 0}.kirjautuminen .kehitys .btnrow button:hover{background:var(--surface-2)}.hallinta-taulukko{border-collapse:collapse;background:var(--surface);width:100%;font-size:.88rem}.hallinta-taulukko th,.hallinta-taulukko td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.hallinta-taulukko th{color:var(--green-dark);font-weight:700}nav.admin-nav{flex-wrap:wrap;gap:6px;margin:4px 0 14px;display:flex}nav.admin-nav a{color:var(--green-dark);border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 14px;font-weight:700;text-decoration:none}nav.admin-nav a:hover{background:var(--surface-2)}.kuittaus{border-radius:var(--radius-sm);background:var(--ok-bg);color:var(--ok-text);margin:8px 0;padding:10px 14px;font-weight:700}.lomakekortti{margin:22px 0}.lomakekortti summary{cursor:pointer}.lomake{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:12px 16px;margin-top:10px;display:grid}.lomake label{color:var(--green-dark);gap:4px;font-size:.85rem;font-weight:700;display:grid}.lomake input{font:inherit;color:var(--text-strong);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:9px 12px;font-weight:400}.lomake input:focus{outline-offset:1px;border-color:var(--brand);outline:4px solid #00ae6559}.lomake input[readonly]{background:var(--surface-2);color:var(--muted)}.lomake .btnrow{margin-top:0}.lomake select{font:inherit;color:var(--text-strong);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);max-width:100%;padding:9px 12px;font-weight:400}.pieni{font-size:.78rem}.pienet-napit{flex-wrap:wrap;gap:6px;display:inline-flex}.pienet-napit button{box-shadow:none;padding:5px 12px;font-size:.78rem}.pienet-napit button.toissijainen{color:var(--green-dark);border:1px solid var(--border);background:0 0}.pienet-napit button.toissijainen:hover{background:var(--surface-2)}.lasnasolu{justify-items:start;gap:6px;margin:0;display:grid}.huomio{border-radius:var(--radius-sm);background:var(--surface-2);margin:10px 0;padding:10px 14px;font-size:.9rem}.lahipaiva-lista{margin:16px 0;padding:0;list-style:none}.osallistujakortti p{margin:6px 0}.isot-napit{flex-wrap:wrap;gap:8px;margin:10px 0 4px;display:flex}.isot-napit button{min-height:46px;box-shadow:none;white-space:nowrap;flex:110px;padding:10px 12px}.isot-napit button.toissijainen{color:var(--green-dark);border:1px solid var(--border);background:0 0}.isot-napit button.toissijainen:hover{background:var(--surface-2)}.kommenttilomake{justify-items:start;gap:6px;margin-top:10px;display:grid}.kommenttilomake label{width:100%;color:var(--green-dark);gap:4px;font-size:.85rem;font-weight:700;display:grid}.kommenttilomake textarea{font:inherit;color:var(--text-strong);resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 12px;font-weight:400}.kommenttilomake textarea:focus{outline-offset:1px;border-color:var(--brand);outline:4px solid #00ae6559}.kommentti-teksti{white-space:pre-line}.valvoja-kurssit{gap:8px;padding-left:22px;display:grid}.valvoja-kurssit a{color:var(--green-dark);font-weight:700}.hallinta-taulukko a{color:var(--green-dark)}.huomautus{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;margin:18px 0;padding:16px 20px;display:flex}.huomautus p{flex:260px;margin:0}.huomautus.valmis{background:var(--ok-bg);border-color:var(--green-line)}.kurssit-otsikko{margin:28px 0 4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:560px){.huomautus a.nappi{text-align:center;width:100%}}button.toissijainen{background:var(--surface);color:var(--green-dark);border:1.5px solid var(--border);box-shadow:none}button.toissijainen:hover:not(:disabled){background:var(--surface);border-color:var(--green)}.pieni-nappi,a.nappi.pieni-nappi{box-shadow:none;padding:7px 16px;font-size:.85rem}a.nappi,.kommentoi-nappi,.valmis-note{align-items:center;gap:8px;display:inline-flex}a.nappi svg,.kommentoi-nappi svg,.valmis-note svg{flex:none;width:17px;height:17px}.kurssi-ylarivi{justify-content:space-between;margin-bottom:22px}.opiskeluaika{background:var(--surface);border:1.5px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:.8rem;display:inline-flex}.opiskeluaika>svg{width:15px;height:15px;color:var(--green-dark);flex:none}.oa-otsikko{color:var(--green-dark);font-weight:700}.oa-palkki{background:var(--ghost-white);border:1px solid var(--border);border-radius:999px;flex:none;width:56px;height:6px;overflow:hidden}@media (max-width:560px){.oa-otsikko,.oa-palkki{display:none}}.oa-palkki span{background:var(--green);border-radius:999px;height:100%;transition:width 1s linear;display:block}.oa-aika{font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:700}.opiskeluaika.pysahtynyt>svg,.opiskeluaika.pysahtynyt .oa-otsikko,.opiskeluaika.pysahtynyt .oa-aika{color:var(--muted)}.opiskeluaika.pysahtynyt .oa-palkki span{background:var(--muted)}.tauko-ajastin{text-align:left;max-width:44ch;margin:24px auto 0}.tauko-palkki{background:var(--ghost-white);border:1px solid var(--border);border-radius:999px;height:12px;overflow:hidden}.tauko-palkki span{background:var(--green);border-radius:999px;width:0;height:100%;transition:width 1s linear;display:block}.tauko-aika{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.tauko-luku{font-variant-numeric:tabular-nums;color:var(--text-strong);font-size:1.05rem;font-weight:700}.aani-kytkin{background:var(--surface);color:var(--green-dark);border:1.5px solid var(--border);box-shadow:none;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;display:inline-flex}.aani-kytkin:hover{background:var(--surface);border-color:var(--green)}.aani-kytkin[aria-pressed=false]{color:var(--muted)}.aani-kytkin svg{width:15px;height:15px}.ylarivi-oikea{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.tauko-tila{color:var(--muted);align-items:flex-start;gap:8px;margin:12px 0 0;font-size:.95rem;display:flex}.tauko-ajastin.valmis .tauko-tila{color:var(--green-dark);background:var(--brand-soft);border-radius:var(--radius-sm);padding:12px 14px}.tauko-tila svg{flex:none;width:20px;height:20px;margin-top:1px}.aiempi-vastaus{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin:4px 0 8px;font-size:.9rem;display:flex}.aiemmat-vastaukset{margin-top:22px}.aiemmat-vastaukset a{color:var(--green-dark);font-weight:700}.kurssit-yhteenveto{flex-wrap:wrap;align-items:baseline;gap:8px 18px;display:flex}.kurssit-yhteenveto a{color:var(--green-dark);font-weight:700}.vastauskurssi{margin:18px 0;padding:20px 22px}.ov-otsikko h2{margin:0 0 2px}.vastauslista{gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.vastauslista li{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);padding:12px 14px}.vastauslista li.oikein{border-color:var(--green-line)}.vastauslista li.vaarin{background:var(--yellow-soft)}.vastauslista p{margin:0 0 6px}.vl-kysymys{color:var(--text-strong);font-weight:700}.vl-vastaus{align-items:flex-start;gap:8px;display:flex}.vl-merkki{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}li.vaarin .vl-merkki{background:var(--yellow-hi);color:var(--blue-dark)}.vl-merkki svg{width:13px;height:13px}.vl-oikea{color:var(--green-dark)}.vastauslista a{color:var(--green-dark);font-weight:700}.ov-avoimet{color:var(--text-strong);margin:20px 0 0;font-size:1rem}.vastauslista li.kirjoitettu{border-color:var(--green-line)}.vl-avoin{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px}.kommentti-dialogi{border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100vw - 32px);box-shadow:var(--shadow-lg);background:var(--surface);color:var(--text);padding:0}.kommentti-dialogi::backdrop{background:#00123173}.kd-sisalto{padding:22px 24px}.kd-sisalto h2{color:var(--text-strong);margin:0 0 8px}.kd-sisalto textarea{width:100%;font:inherit;color:var(--text-strong);resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:120px;padding:10px 12px}.kd-sisalto textarea:focus{outline-offset:1px;border-color:var(--brand);outline:4px solid #00ae6559}.valilehdet{flex-wrap:wrap;gap:6px;display:flex}.valilehdet a{color:var(--green-dark);border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 14px;font-weight:700;text-decoration:none}.valilehdet a[aria-current=page]{background:var(--green);border-color:var(--green);color:#fff}.kommenttilista{gap:12px;margin:14px 0;padding:0;list-style:none;display:grid}.kommenttikortti{margin:0}.kommenttikortti.kasitelty{opacity:.75}.kommenttikortti p{margin:0 0 6px}.kk-kohta a{color:var(--green-dark);font-weight:700}.kk-tila{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;display:flex}.laskuri{background:var(--green);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;font-size:.72rem;display:inline-grid}.muokkain{width:min(1440px,100vw - 32px);position:relative;left:50%;transform:translate(-50%)}.mk-palkki{z-index:8;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin:8px 0 16px;padding:10px 14px;display:flex;position:sticky;top:0}.mk-vaihe{flex:360px;align-items:center;gap:8px;min-width:0;display:flex}.mk-vaihe select{min-width:0;font:inherit;color:var(--text-strong);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex:auto;padding:8px 12px;font-weight:700}.mk-tallennus{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mk-tila{color:var(--muted);font-size:.85rem}.mk-tila.virhe{color:var(--text-strong);background:var(--yellow-soft);border-radius:999px;padding:4px 10px;font-weight:700}.mk-sarakkeet{grid-template-columns:minmax(0,1fr);gap:22px;display:grid}@media (min-width:1100px){.mk-sarakkeet{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}.mk-esikatselu{max-height:calc(100vh - 100px);position:sticky;top:84px;overflow:auto}}.mk-esikatselu{background:var(--ghost-white);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px 18px}.mk-esikatselu-otsikko{letter-spacing:.12em;text-transform:uppercase;color:var(--green-dark);align-items:center;gap:8px;margin:0 0 8px;font-size:.78rem;font-weight:700;display:flex}.mk-esikatselu-otsikko svg{width:16px;height:16px}.mk-esikatselu .kurssi-progress{margin:0 0 12px;position:static}.mk-vaiheotsikko{color:var(--text-strong);margin:18px 0 6px;font-size:1.25rem}.mk-ryhma{letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);margin:20px 0 6px;font-size:.78rem;font-weight:700}.mk-kentta{margin:0 0 10px}.mk-nimi{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.mk-nimi label{color:var(--text);font-size:.82rem;font-weight:700}.mk-kumoa{box-shadow:none;color:var(--green-dark);background:0 0;padding:0;font-size:.8rem;text-decoration:underline}.mk-kumoa:hover{background:0 0}.mk-kentta textarea{width:100%;font:inherit;color:var(--text-strong);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);resize:vertical;field-sizing:content;min-height:2.8em;margin-top:4px;padding:9px 12px;font-size:.95rem;line-height:1.5;display:block}.mk-kentta textarea:focus{outline-offset:1px;border-color:var(--brand);outline:4px solid #00ae6559}.mk-kentta.muutettu textarea{background:var(--yellow-soft)}.mk-kentta.ristiriita textarea{border-color:var(--text-strong)}.mk-haku{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);padding:12px 14px}.mk-haku label{color:var(--green-dark);align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:flex}.mk-haku label svg{width:16px;height:16px}.mk-haku input{width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:6px;padding:8px 12px}.mk-haku input:focus{outline-offset:1px;border-color:var(--brand);outline:4px solid #00ae6559}.mk-osumat{gap:4px;max-height:320px;margin:8px 0 0;padding:0;list-style:none;display:grid;overflow:auto}.mk-osuma{text-align:left;border-radius:var(--radius-sm);background:var(--ghost-white);width:100%;color:var(--text);box-shadow:none;gap:2px;padding:8px 10px;font-size:.85rem;font-weight:400;display:grid}.mk-osuma:hover{background:var(--brand-soft)}.mk-osuma-paikka{color:var(--green-dark);font-size:.78rem;font-weight:700}.mk-osuma mark{background:var(--yellow-hi);color:var(--text-strong);border-radius:4px;padding:0 2px}.mk-ohje{margin-top:18px}.mk-historia{margin-top:28px}.muutos-solu{max-width:520px;font-size:.85rem}.muutos-solu del{color:var(--muted)}.muutos-solu ins{background:var(--brand-soft);color:var(--text-strong);border-radius:4px;padding:0 2px;text-decoration:none}code{background:var(--brand-soft);border-radius:6px;padding:1px 5px;font-size:.88em}.yht-palkki{background:var(--green);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-green);padding:24px 26px}.yht-palkki .yht-ylin{align-items:center;gap:16px;display:flex}.yht-palkki .yht-merkki{width:52px;height:52px;color:var(--green);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.yht-palkki .yht-merkki svg{stroke-width:3px;width:28px;height:28px}.yht-palkki .yht-kurssi{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.yht-palkki .yht-otsikko{color:#fff;margin:2px 0 0;font-size:1.9rem;line-height:1.15}.yht-palkki .yht-sirut{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.yht-palkki .yht-sirut span{background:var(--green-dark);border-radius:999px;align-items:center;gap:6px;padding:6px 13px;font-size:.85rem;font-weight:700;display:inline-flex}.yht-palkki .yht-sirut svg{flex:none;width:15px;height:15px}.yht-johdanto{color:var(--muted);margin:26px 0 12px}.yht-opit{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px;margin-top:16px;display:grid}.yht-johdanto+.yht-opit{margin-top:0}.yht-kortti{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.yht-kortti .yht-kortti-merkki{background:var(--brand-soft);width:30px;height:30px;color:var(--green-dark);border-radius:50%;flex:none;place-items:center;display:grid}.yht-kortti .yht-kortti-merkki svg{stroke-width:3px;width:16px;height:16px}.yht-kortti .yht-kortti-otsikko{color:var(--text-strong);margin:3px 0 4px;font-weight:700}.yht-kortti .yht-kortti-teksti{margin:4px 0 0;font-size:.95rem}.yht-kortti .yht-kortti-otsikko+.yht-kortti-teksti{margin-top:0}.yht-seuraava{background:var(--slate-dark);color:#fff;border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:28px;padding:22px 24px;display:flex}.yht-seuraava .yht-seuraava-teksti{flex:280px}.yht-seuraava .yht-seuraava-yla{letter-spacing:.14em;text-transform:uppercase;color:var(--turquoise);margin:0;font-size:.72rem;font-weight:700}.yht-seuraava .yht-seuraava-nimi{margin:4px 0 12px;font-size:1.2rem;font-weight:700}.yht-seuraava .yht-edistyminen{background:#ffffff29;border-radius:999px;height:8px;display:block;overflow:hidden}.yht-seuraava .yht-edistyminen span{background:var(--green);border-radius:999px;height:100%;display:block}.yht-seuraava .yht-edistyminen-teksti{color:#ffffffd1;margin:8px 0 0;font-size:.85rem}@media (max-width:560px){.yht-palkki{padding:20px}.yht-palkki .yht-otsikko{font-size:1.5rem}.yht-seuraava a.nappi{justify-content:center;width:100%}}.aikakatkaisu-tausta{z-index:1000;background:#0012318c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.aikakatkaisu{width:100%;max-width:460px;box-shadow:var(--shadow-lg);margin:0;padding:28px}.aikakatkaisu h2{margin:0 0 10px}.aikakatkaisu p{margin:0 0 18px}.aikakatkaisu .btnrow{margin:0}
.tehtava{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:18px 0;padding:22px 24px}.tehtava .clabel{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);align-items:center;gap:9px;margin-bottom:8px;font-size:.74rem;font-weight:700;display:flex}.tehtava .clabel svg{flex:none;width:16px;height:16px}.tehtava .ohje{color:var(--muted);margin:0 0 14px;font-size:.94rem}.tehtava-nappi{padding:10px 20px;font-size:.94rem}.tehtava-nappi.toissijainen,.tehtava-nappi.toissijainen:hover{background:var(--surface);color:var(--green-dark);border:1.5px solid var(--border);box-shadow:none}.tehtava-nappi.toissijainen:hover{border-color:var(--green)}.tehtava-loppu{border-radius:var(--radius-sm);background:var(--ok-bg);color:var(--ok-text);margin-top:14px;padding:13px 16px;font-size:.95rem}.kt-rivi{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px;display:flex}.kt-nappaimet{color:var(--muted);margin:-6px 0 12px;font-size:.82rem}.kt-kuva{border-radius:var(--radius-sm);cursor:crosshair;touch-action:manipulation;-webkit-user-select:none;user-select:none;line-height:0;position:relative;overflow:hidden}.kt-kuva img{pointer-events:none;width:100%;height:auto;display:block}.kt-kuva:focus-visible{outline:4px solid var(--green);outline-offset:2px}.kt-merkki{background:var(--green);color:#fff;width:30px;height:30px;animation:ktIn .25s var(--ease-out);border:3px solid #fff;border-radius:50%;place-items:center;font:700 .85rem/1 Sofia Pro,sans-serif;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000059}.kt-merkki.naytetty{background:var(--blue-dark)}.kt-ohi{background:var(--yellow-hi);width:30px;height:30px;color:var(--blue-dark);border:3px solid #fff;border-radius:50%;place-items:center;animation:1.4s forwards ktOhi;display:grid;position:absolute;transform:translate(-50%,-50%)}.kt-ohi svg{width:16px;height:16px}.kt-tahtain{width:40px;height:40px;box-shadow:0 0 0 3px var(--blue-dark);pointer-events:none;border:3px solid #fff;border-radius:50%;display:none;position:absolute;transform:translate(-50%,-50%)}.kt-tahtain:before,.kt-tahtain:after{content:"";box-shadow:0 0 0 1px var(--blue-dark);background:#fff;position:absolute}.kt-tahtain:before{width:2px;top:6px;bottom:6px;left:50%;transform:translate(-50%)}.kt-tahtain:after{height:2px;top:50%;left:6px;right:6px;transform:translateY(-50%)}.kt-kuva.tahtain-nakyy .kt-tahtain{display:block}@keyframes ktIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ktOhi{0%{opacity:0}15%,70%{opacity:1}to{opacity:0}}.kt-laskuri{color:var(--text-strong);font-weight:700}.kt-loydot{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.kt-loydot li{background:var(--ok-bg);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:11px 14px;display:flex}.kt-loydot li.naytetty{background:var(--surface-2)}.kt-loydot p{margin:0;font-size:.94rem}.kt-loydot .kt-nimi{color:var(--text-strong);margin-bottom:2px;font-weight:700}.kt-tunniste{color:var(--muted);font-size:.85rem;font-weight:400}.kt-nro{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;margin-top:1px;font-size:.8rem;font-weight:700;display:grid}.kt-loydot li.naytetty .kt-nro{background:var(--blue-dark)}.vk-video{border-radius:var(--radius-sm);background:#000;line-height:0;overflow:hidden}.vk-video video{width:100%;height:auto;display:block}.vk-video.pysahtynyt{box-shadow:0 0 0 3px var(--green)}.vk-aikajana{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.vk-aikajana li{color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.vk-aikajana li svg{width:14px;height:14px}.vk-aikajana li.nyt{color:var(--blue-dark);background:var(--yellow-soft);border-color:var(--yellow-line)}.vk-aikajana li.tehty{color:var(--ok-text);background:var(--ok-bg);border-color:var(--green-line)}.vk-kysymys{border-left:4px solid var(--green);margin-top:14px;padding:4px 0 4px 16px}.vk-yla{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);margin:0 0 4px;font-size:.74rem;font-weight:700}.vk-teksti{color:var(--text-strong);margin:0 0 6px;font-weight:700}.vk-teksti:focus{outline:none}.vk-kysymys .tehtava-nappi{margin-top:14px}.vk-vihje{color:var(--muted);margin:10px 0 0;font-size:.9rem}.vk-kysymys .tilanne-optio:disabled{opacity:.55;cursor:default}.pr-sarakkeet{grid-template-columns:1fr 1fr;gap:14px;display:grid}.pr-sarake{flex-direction:column;gap:8px;min-width:0;display:flex}.pr-otsikko{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 2px;font-size:.74rem;font-weight:700}.pr-pala{text-align:left;width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:none;overflow-wrap:anywhere;transition:border-color .16s var(--ease-out), background .16s var(--ease-out);padding:11px 13px;font-size:.92rem;font-weight:700}.pr-pala:hover{background:var(--surface-2);border-color:var(--green)}.pr-pala:focus-visible{box-shadow:0 0 0 3px var(--green-line);outline:none}.pr-pala.valittu,.pr-pala.valittu:hover{border-color:var(--green);background:var(--brand-soft);color:var(--green-dark)}.pr-pala.heilu{border-color:var(--yellow-line);background:var(--yellow-soft);animation:.34s heilu}.pr-valmiit{gap:8px;margin:4px 0 0;padding:0;list-style:none;display:grid}.pr-valmiit li{background:var(--ok-bg);border-radius:var(--radius-sm);padding:11px 14px}.pr-pari{color:var(--ok-text);align-items:flex-start;gap:9px;margin:0;font-size:.94rem;display:flex}.pr-pari svg{flex:none;width:16px;height:16px;margin-top:3px}.pr-selite{color:var(--text);margin:6px 0 0 25px;font-size:.9rem}.ht-kulku{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.ht-kulku li{border-radius:var(--radius-sm);background:var(--surface-2);align-items:flex-start;gap:11px;padding:10px 13px;display:flex}.ht-askel{background:var(--slate-dark);color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.78rem;font-weight:700;display:grid}.ht-valittu{color:var(--text-strong);margin:0;font-size:.92rem;font-weight:700}.ht-seuraus{color:var(--text);margin:4px 0 0;font-size:.9rem}.ht-solmu{border-left:4px solid var(--green);margin:4px 0 6px;padding:4px 0 4px 16px}.ht-solmu:focus{outline:none}.ht-solmu:focus-visible{outline:3px solid var(--green-line);outline-offset:4px}.ht-teksti{color:var(--text-strong);margin:0;font-size:1rem}.ht-solmu.loppu{border-radius:var(--radius-sm);border-left:none;padding:14px 16px}.ht-solmu.loppu.hyva{background:var(--ok-bg)}.ht-solmu.loppu.kohtalainen{background:var(--surface-2)}.ht-solmu.loppu.huono{background:var(--yellow-soft)}.ht-loppuotsikko{text-transform:uppercase;letter-spacing:.12em;color:var(--green-dark);align-items:center;gap:8px;margin:0 0 6px;font-size:.78rem;font-weight:700;display:flex}.ht-solmu.loppu.huono .ht-loppuotsikko{color:var(--text-strong)}.ht-loppuotsikko svg{width:16px;height:16px}.ht-nuoli{width:22px;height:22px;color:var(--green-dark);flex:none;place-items:center;display:grid}.ht-nuoli svg{width:16px;height:16px}.av-tilanne{margin:0 0 12px}.av-kysymys{color:var(--text-strong);margin:0 0 8px;font-weight:700;display:block}.av-kentta{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);resize:vertical;min-height:120px;padding:12px 14px;font-size:1rem}.av-kentta:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-line);outline:none}.av-tieto{color:var(--muted);align-items:flex-start;gap:8px;margin:8px 0 0;font-size:.82rem;display:flex}.av-tieto svg{flex:none;width:14px;height:14px;margin-top:2px}.av-vertailu:focus{outline:none}.av-tallennettu{color:var(--green-dark);margin:0 0 10px;font-weight:700}.av-sarakkeet{grid-template-columns:1fr 1fr;gap:12px;display:grid}.av-laatikko{border-radius:var(--radius-sm);min-width:0;padding:13px 15px}.av-laatikko p{margin:0;font-size:.95rem}.av-laatikko.oma{background:var(--surface-2)}.av-laatikko.malli{background:var(--ok-bg)}.av-laatikko-otsikko{text-transform:uppercase;letter-spacing:.12em;color:var(--green-dark);font-weight:700;margin-bottom:6px!important;font-size:.74rem!important}.av-oma{white-space:pre-wrap;overflow-wrap:anywhere}.av-kriteerit{border:none;margin:16px 0 0;padding:0}.av-kriteerit legend{color:var(--text-strong);margin-bottom:8px;padding:0;font-weight:700}.av-kriteeri{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:10px;margin-top:8px;padding:10px 12px;font-size:.94rem;display:flex}.av-kriteeri input{width:20px;height:20px;accent-color:var(--green);flex:none;margin:1px 0 0}.av-kriteeri.valittu{border-color:var(--green);background:var(--ok-bg)}.vaihekaista{margin:4px 0 18px}.vk-otsikko{text-transform:uppercase;letter-spacing:.12em;color:var(--green-dark);align-items:center;gap:8px;margin:0 0 8px;font-size:.74rem;font-weight:700;display:flex}.vk-otsikko svg{flex:none;width:16px;height:16px}.vaihekaista ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.vaihekaista li{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);text-align:center;border:1.5px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-size:.82rem;line-height:1.25;display:flex}.vaihekaista li.tarkea{background:var(--brand-soft);border-color:var(--green);color:var(--green-dark);font-weight:700}.vk-nro{background:var(--surface);width:26px;height:26px;color:var(--muted);border:1.5px solid var(--border);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.vaihekaista li.tarkea .vk-nro{background:var(--green);color:#fff;border-color:var(--green)}.vk-nimi{overflow-wrap:normal;-webkit-hyphens:manual;hyphens:manual}ol.vaiheet.kuvalliset{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}ol.vaiheet.kuvalliset>li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);grid-template-rows:auto 1fr;grid-template-columns:28px 1fr;gap:10px 12px;padding:12px;display:grid}ol.vaiheet.kuvalliset>li:last-child{border-bottom:1px solid var(--border)}ol.vaiheet.kuvalliset>li:before{grid-row:2}ol.vaiheet.kuvalliset>li>img{border-radius:10px;grid-column:1/-1;width:100%;height:auto;display:block}ol.vaiheet.kuvalliset>li>span{grid-area:2/2}.t-merkit{gap:8px;margin-bottom:8px;display:flex}.t-merkit img{width:auto;height:52px;display:block}.ps-kuva{width:100%;height:auto;margin:4px 0 6px;display:block}.ps-tie{fill:var(--muted)}.ps-viiva{stroke:#fff;stroke-width:3px;stroke-dasharray:6 6}.ps-este{stroke:var(--yellow-hi);stroke-width:6px}.ps-reaktio{fill:#ffffff73}.ps-jarrutus,.ps-auto.auto-0{fill:var(--green)}.ps-auto.auto-1{fill:var(--blue-dark)}.ps-ikkuna{fill:#ffffffb3}.ps-teksti{fill:var(--text-strong);font:700 22px Sofia Pro,sans-serif}.ps-tilat{gap:6px;margin:0;padding:0;list-style:none;display:grid}.ps-tilat li{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.94rem;display:flex}.ps-merkki{border-radius:4px;flex:none;width:14px;height:14px}.ps-merkki.auto-0{background:var(--green)}.ps-merkki.auto-1{background:var(--blue-dark)}.ps-vaara{color:var(--text-strong);background:var(--yellow-soft);border-radius:999px;padding:2px 10px;font-weight:700}.ps-selite{color:var(--muted);gap:16px;margin:10px 0 0;font-size:.82rem;display:flex}.ps-selite span:before{content:"";vertical-align:middle;border-radius:4px;width:18px;height:8px;margin-right:6px;display:inline-block}.ps-selite .s-reaktio:before{background:var(--muted);opacity:.5}.ps-selite .s-jarrutus:before{background:var(--green)}.ps-saadin{min-width:200px;color:var(--muted);flex:1;align-items:center;gap:10px;font-size:.9rem;display:flex}.ps-saadin input{accent-color:var(--green);flex:1}.ps-aika{font-variant-numeric:tabular-nums;text-align:right;min-width:3.2em}@media (max-width:560px){.vaihekaista ol{gap:4px}.vaihekaista li{padding:8px 2px;font-size:.7rem}.vk-nro{width:22px;height:22px;font-size:.72rem}ol.vaiheet.kuvalliset{grid-template-columns:1fr}.t-merkit img{height:40px}.tehtava{padding:18px 16px}.pr-sarakkeet{gap:8px}.pr-pala{padding:10px;font-size:.86rem}.av-sarakkeet{grid-template-columns:1fr}.kt-merkki,.kt-ohi{width:26px;height:26px;font-size:.78rem}}@media (prefers-reduced-motion:reduce){.kt-merkki,.pr-pala.heilu{animation:none}.kt-ohi{opacity:1;animation:none}}
.raikas{--r-vihrea:#00ae651f;--r-hehku:0 12px 28px #00ae6552;font-size:1.125rem;line-height:1.65}body:has(.kurssi.raikas) :is(.opiskeluaika,.aani-kytkin){font-size:.875rem}.raikas mark.korostus{background:var(--yellow-hi);color:var(--green-compliment-dark);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:10px;padding:0 .22em}.raikas :is(.r-hero,.kurssi-hero){color:#fff;background:var(--gradient-brand);box-shadow:var(--shadow-md);border-radius:28px;margin:8px 0 40px;padding:clamp(28px,5vw,52px) clamp(22px,5vw,52px)}.raikas .r-hero h1,.kurssi.raikas .kurssi-h1{color:#fff;letter-spacing:-.025em;text-wrap:balance;margin:0 0 18px;font-size:clamp(2rem,4.6vw,3rem);line-height:1.26}.raikas :is(.r-hero,.kurssi-hero) .lede{color:#fff;max-width:60ch;margin:0;font-size:clamp(1.1rem,2vw,1.25rem);line-height:1.6}.kurssi.raikas .kurssi-hero .lede{margin-bottom:26px}.kurssi.raikas .kurssi-hero .eyebrow{color:#fff;margin:0 0 16px;font-size:.875rem}.kurssi.raikas .meta-row{gap:10px;margin:0}.kurssi.raikas .meta-chip{color:#fff;box-shadow:none;background:#ffffff29;border:1px solid #ffffff4d;padding:9px 17px;font-size:1rem}.kurssi.raikas .meta-chip svg{color:#fff;width:18px;height:18px}.raikas .r-hero-yla{letter-spacing:.2em;text-transform:uppercase;color:#fff;margin:0 0 14px;font-size:.875rem;font-weight:700}.raikas .r-sirut{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.raikas .r-sirut li{background:#ffffff29;border:1px solid #ffffff4d;border-radius:999px;padding:7px 16px;font-size:1rem}.raikas .r-jatka{flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:26px;display:flex}.raikas :is(a,button).r-jatka-nappi{cursor:pointer;color:var(--green-dark);box-shadow:var(--shadow-md);transition:transform .16s var(--ease-out);background:#fff;border:0;border-radius:999px;align-items:center;gap:10px;padding:13px 24px;font-family:inherit;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.raikas :is(a,button).r-jatka-nappi:hover{background:#fff;transform:translateY(-1px)}.raikas .r-jatka-nappi svg{flex:none;width:20px;height:20px}.raikas .r-edistyminen{color:#fff;margin:0;font-size:1.05rem}.raikas .r-edistyminen strong{letter-spacing:-.02em;margin-right:4px;font-size:1.75rem}.raikas .huomautus{background:var(--r-vihrea);border:none;margin:0 0 40px;padding:22px 26px}.raikas .huomautus a.nappi{box-shadow:var(--r-hehku)}.raikas .r-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--green-dark);margin:0 0 14px;font-size:.875rem;font-weight:700}.raikas .r-vaiheet{margin:0 0 40px}.raikas .r-vaiheet ol{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.raikas .r-vaiheet li{background:var(--surface);box-shadow:var(--shadow-md);border:2px solid #0000;border-radius:20px;flex-direction:column;align-items:flex-start;padding:22px;display:flex}.raikas .r-vaiheet li.vuorossa{border-color:var(--green)}.raikas .r-vaiheet h3{color:var(--text-strong);margin:14px 0 4px;font-size:1.15rem}.raikas .r-vaiheet p{color:var(--text);margin:0 0 14px;font-size:1rem}.raikas .r-vaiheet .r-tila{margin-top:auto}.raikas .r-merkki{background:var(--r-vihrea);width:36px;height:36px;color:var(--green-dark);border-radius:50%;flex:none;place-items:center;font-size:1rem;font-weight:700;display:grid}.raikas .r-merkki svg{width:18px;height:18px}.raikas .r-vaiheet li:is(.valmis,.vuorossa) .r-merkki{background:var(--green);color:#fff}.raikas .r-tila{white-space:nowrap;border-radius:999px;padding:5px 13px;font-size:.875rem;font-weight:700;display:inline-block}.raikas .r-tila:is(.valmis,.kesken){background:var(--r-vihrea);color:var(--green-dark)}.raikas .r-tila.varattu{background:var(--yellow-hi);color:var(--blue-dark)}.raikas .r-tila.tulossa{background:var(--ghost-white);color:var(--muted);border:1px solid var(--border)}.raikas .r-kurssit-yla{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;display:flex}.raikas .r-kurssit-yla a{color:var(--green-dark);font-size:1rem;font-weight:700}.raikas .r-kurssit{background:var(--surface);box-shadow:var(--shadow-md);border-radius:20px;margin:0 0 24px;padding:6px 26px;list-style:none}.raikas .r-kurssit li{border-top:1px solid var(--border);align-items:center;gap:16px;padding:18px 0;display:flex}.raikas .r-kurssit li:first-child{border-top:none}.raikas .r-kurssit h3{min-width:0;color:var(--text-strong);flex:auto;margin:0;font-size:1.15rem;font-weight:400;line-height:1.35}.raikas .r-kurssit h3 a{color:inherit;text-decoration:none}.raikas .r-kurssit h3 a:hover{text-decoration:underline}.raikas .r-kurssit li.valmis .r-merkki{background:var(--green);color:#fff}.raikas .r-kurssit li.vuorossa .r-merkki{background:var(--surface);color:var(--green-dark);border:2px solid var(--green)}.raikas .r-kurssit li.vuorossa h3{font-weight:700}.raikas .r-toiminto{flex:none;align-items:center;gap:14px;display:flex}.raikas a.r-nappi{background:var(--green);color:#fff;border:2px solid var(--green);box-shadow:var(--r-hehku);transition:background .2s var(--ease-out);border-radius:999px;flex:none;padding:8px 20px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-block}.raikas a.r-nappi:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.raikas a.r-nappi.toissijainen{background:var(--surface);color:var(--green-dark);box-shadow:none}.raikas a.r-nappi.toissijainen:hover{background:var(--r-vihrea);border-color:var(--green)}.raikas .r-kesto{color:var(--muted);white-space:nowrap;flex:none;font-size:.95rem}.raikas .r-kurssit .r-kesto{text-align:right;min-width:5.2em}.raikas .r-toiminto>:last-child{box-sizing:border-box;text-align:center;min-width:96px}.raikas .r-ohjelinkki{margin:0;font-size:1rem}.raikas .r-ohjelinkki a{color:var(--green-dark);font-weight:700}.kurssi.raikas :is(.kurssi-vaihe,.ss-osio)>p:not([class]){max-width:70ch;margin:0 0 20px}.kurssi.raikas :is(.kurssi-vaihe,.ss-osio)>h2:not(.kurssi-h2){letter-spacing:-.015em;margin:44px 0 14px;font-size:1.45rem}.kurssi.raikas :where(.callout,.method-grid,.dodont,.mf-lista,.tilanne,.jarjesta,.luokittelu,.itsearvio,.repliikit,.asiakkaan-aani,details.lue,.taulukko-kaari,.muistikortit,.tehtava,.reflect,.matkat,ol.vaiheet,ul.pisteet,.media-img,.media-video,.media-youtube){margin-top:32px;margin-bottom:32px}.kurssi.raikas .mod-head{align-items:center;gap:14px;margin:8px 0 12px}.kurssi.raikas .mod-num{min-width:38px;height:38px;font-size:1rem}.kurssi.raikas .mod-kicker{letter-spacing:.16em;font-size:.875rem}.kurssi.raikas .kurssi-h2{letter-spacing:-.02em;text-wrap:balance;margin:0 0 24px;font-size:clamp(1.8rem,3.6vw,2.3rem);line-height:1.15}.kurssi.raikas .goals{box-shadow:var(--shadow-md);border:none;margin:0 0 32px;padding:28px 30px}.kurssi.raikas .goals h2{margin:0 0 16px;font-size:1.4rem}.kurssi.raikas .goals-list{gap:14px}.kurssi.raikas .goals-list .gic{background:var(--green);width:30px;height:30px}.kurssi.raikas .goals-list .gic svg{color:#fff;width:16px;height:16px}.kurssi.raikas :where(.method,.dd,.mf,.tilanne,.jarjesta,.luokittelu,.itsearvio,.tehtava,.mkortti,.asiakkaan-aani,details.lue,.taulukko-kaari,.callout.example){box-shadow:var(--shadow-md);border-radius:20px}.kurssi.raikas .callout{border-radius:20px;padding:24px 26px}.kurssi.raikas .callout .clabel{margin-bottom:12px;font-size:.875rem}.kurssi.raikas .callout .clabel svg{width:18px;height:18px}.kurssi.raikas .callout.example{border:none;border-left:6px solid var(--green);border-radius:0 20px 20px 0}.kurssi.raikas .method-grid{gap:16px}.kurssi.raikas .method{border:none;padding:24px}.kurssi.raikas .method h4{font-size:1.15rem;line-height:1.3}.kurssi.raikas .method p{color:var(--text);font-size:1rem}.kurssi.raikas .method .ic{border-radius:14px;width:46px;height:46px}.kurssi.raikas .method .ic svg{width:24px;height:24px}.kurssi.raikas .banneri{border-radius:24px;margin:40px 0;padding:36px 40px}.kurssi.raikas .banneri .blab{color:#fff;font-size:.875rem}.kurssi.raikas .banneri .blab svg{width:18px;height:18px}.kurssi.raikas .banneri .bteksti{max-width:30ch;margin-bottom:12px;font-size:clamp(1.5rem,3vw,1.9rem)}.kurssi.raikas .banneri .bselite{color:#fff;font-size:1.05rem}.kurssi.raikas .dodont{gap:16px}.kurssi.raikas .dd{border:none;padding:24px 26px}.kurssi.raikas .dd.good{border-top:5px solid var(--green)}.kurssi.raikas .dd.bad{border-top:5px solid var(--yellow-hi)}.kurssi.raikas .dd .dl{margin-bottom:14px;font-size:1.1rem}.kurssi.raikas .dd .dl svg{width:22px;height:22px}.kurssi.raikas .dd ul{gap:12px}.kurssi.raikas .dd li{font-size:1rem}.kurssi.raikas .dd li svg{width:18px;height:18px;margin-top:4px}.kurssi.raikas .mf-lista{gap:14px}.kurssi.raikas .mf{border:none}.kurssi.raikas .mf-nappi{gap:14px;padding:20px 22px}.kurssi.raikas .mf-merkki{padding:5px 12px;font-size:.875rem}.kurssi.raikas .mf-vaite{font-size:1.1rem}.kurssi.raikas .mf-avaa{font-size:.95rem}.kurssi.raikas .mf-fakta{padding:0 22px 22px}.kurssi.raikas .mf-fakta .flab{font-size:.875rem}.kurssi.raikas .mf-fakta p{font-size:1.05rem}.kurssi.raikas :is(.tilanne,.jarjesta,.luokittelu,.itsearvio,.tehtava){border:none;padding:26px 28px}.kurssi.raikas :is(.tilanne-label,.jarjesta-label,.luokittelu .clabel,.itsearvio .clabel,.tehtava .clabel){margin-bottom:12px;font-size:.875rem}.kurssi.raikas :is(.tilanne-label,.jarjesta-label,.luokittelu .clabel,.itsearvio .clabel,.tehtava .clabel) svg{width:18px;height:18px}.kurssi.raikas :is(.tilanne-teksti,.tilanne-kysymys){font-size:1.1rem}.kurssi.raikas .tilanne-optio{background:var(--surface);border-width:2px;margin-top:10px;padding:16px 18px;font-size:1.05rem}.kurssi.raikas .tilanne-optio .mark{width:26px;height:26px}.kurssi.raikas .tilanne-palaute{margin-left:38px;padding:14px 18px;font-size:1rem}.kurssi.raikas :is(.jarjesta-ohje,.luokittelu .ohje,.itsearvio .ohje,.tehtava .ohje){color:var(--text);font-size:1.05rem}.kurssi.raikas :is(.jarjesta-pala,.pala,.ia-nappi){padding:11px 18px;font-size:1rem}.kurssi.raikas .jarjesta-tulos li{font-size:1.02rem}.kurssi.raikas .kori{border-radius:18px}.kurssi.raikas .kori h4{font-size:1.1rem}.kurssi.raikas .kori .kori-selite{color:var(--text);font-size:.95rem}.kurssi.raikas :is(.lstatus,.jarjesta-status){font-size:1rem}.kurssi.raikas :is(.lvalmis,.ia-koonti,.tehtava-loppu){padding:16px 18px;font-size:1.02rem}.kurssi.raikas .repliikit,.kurssi.raikas .repl{gap:16px}.kurssi.raikas .repl-puoli{border-radius:20px;padding:20px 22px}.kurssi.raikas .repl-puoli .rl{font-size:.875rem}.kurssi.raikas .repl-puoli .rl svg{width:18px;height:18px}.kurssi.raikas .repl-puoli .rteksti{font-size:1.1rem}.kurssi.raikas .repl-puoli .rselite{color:var(--text);font-size:.95rem}.kurssi.raikas .repl-tilanne{margin-top:16px;font-size:1.1rem}.kurssi.raikas .asiakkaan-aani{border:none;border-left:6px solid var(--green-compliment);border-radius:0 20px 20px 0;padding:26px 28px}.kurssi.raikas .asiakkaan-aani .alab{font-size:.875rem}.kurssi.raikas .asiakkaan-aani blockquote{font-size:1.25rem;line-height:1.5}.kurssi.raikas .asiakkaan-aani .lahde{font-size:.95rem}.kurssi.raikas details.lue{border:none}.kurssi.raikas details.lue>summary{padding:18px 22px;font-size:1.05rem}.kurssi.raikas details.lue>summary svg{width:18px;height:18px}.kurssi.raikas details.lue .lue-sisalto{padding:4px 22px 22px}.kurssi.raikas details.lue .lue-sisalto>:is(p,ul){font-size:1.02rem}.kurssi.raikas .taulukko-kaari{border:none}.kurssi.raikas table.vastuut{font-size:1rem}.kurssi.raikas table.vastuut :is(th,td){padding:14px 16px}.kurssi.raikas table.vastuut thead th{background:var(--r-vihrea);font-size:.875rem}.kurssi.raikas .taulukko-vihje{font-size:.9rem}.kurssi.raikas .muistikortit{gap:16px}.kurssi.raikas .mkortti{padding:20px 22px}.kurssi.raikas .mkortti:not(.auki){border-color:#0000}.kurssi.raikas .mkortti .mk-etu{font-size:1.1rem}.kurssi.raikas .mkortti .mk-kaanna{font-size:.875rem}.kurssi.raikas .mkortti .mk-taka,.kurssi.raikas .reflect .reveal-btn{font-size:1rem}.kurssi.raikas .reflect .reveal-answer{font-size:1.02rem}.kurssi.raikas ol.vaiheet>li:before{width:32px;height:32px;font-size:.95rem}.kurssi.raikas .matkat .mlab,.kurssi.raikas .tauko .yla{font-size:.875rem}.kurssi.raikas :is(.matka-selite,.matka-huom){font-size:.95rem}.kurssi.raikas .tauko .tauko-vinkki{font-size:1rem}.kurssi.raikas .pieni{font-size:.9rem}.kurssi.raikas :is(.pr-otsikko,.vk-yla,.vk-otsikko,.ht-loppuotsikko){font-size:.875rem}.kurssi.raikas .av-laatikko-otsikko{font-size:.875rem!important}.kurssi.raikas :is(.kt-nappaimet,.kt-tunniste,.av-tieto,.ps-selite,.yt-huom,.vaihekaista li){font-size:.95rem}.kurssi.raikas .vk-aikajana li,.kurssi.raikas :is(.kt-nro,.vk-nro,.ht-askel){font-size:.9rem}.kurssi.raikas .vk-otsikko svg{width:18px;height:18px}.kurssi.raikas .kurssi-quiz{box-shadow:var(--shadow-lg);border:none;border-radius:24px;margin:44px 0 8px;padding:30px 32px}.kurssi.raikas .kurssi-quiz .qlabel{background:var(--r-vihrea);border-radius:999px;margin-bottom:16px;padding:7px 14px;font-size:.875rem;display:inline-flex}.kurssi.raikas .kurssi-quiz .q-otsikko{margin-bottom:18px;font-size:1.3rem;line-height:1.35}.kurssi.raikas .kurssi-quiz .q-options{gap:12px}.kurssi.raikas .vaihtoehto{background:var(--surface);border:2px solid var(--border);margin:0;padding:16px 18px;font-size:1.05rem}.kurssi.raikas .vaihtoehto .mark{width:26px;height:26px}.kurssi.raikas .kurssi-quiz .palaute{padding:16px 18px;font-size:1.02rem}.kurssi.raikas .yht-palkki{background:var(--gradient-brand);box-shadow:var(--shadow-md);border-radius:24px;padding:32px 34px}.kurssi.raikas .yht-palkki .yht-merkki{width:60px;height:60px}.kurssi.raikas .yht-palkki .yht-kurssi{font-size:.875rem}.kurssi.raikas .yht-palkki .yht-otsikko{font-size:clamp(1.9rem,4vw,2.5rem)}.kurssi.raikas .yht-palkki .yht-sirut span{background:#ffffff29;border:1px solid #ffffff4d;padding:7px 15px;font-size:.95rem}.kurssi.raikas .yht-johdanto{color:var(--text);margin:36px 0 16px;font-size:1.1rem}.kurssi.raikas .yht-opit{gap:16px}.kurssi.raikas .yht-kortti{box-shadow:var(--shadow-md);border:none;border-radius:18px;padding:20px 22px}.kurssi.raikas .yht-kortti .yht-kortti-merkki{width:34px;height:34px}.kurssi.raikas .yht-kortti .yht-kortti-otsikko{font-size:1.1rem}.kurssi.raikas .yht-kortti .yht-kortti-teksti{font-size:1rem}.kurssi.raikas .yht-seuraava{border-radius:24px;margin-top:40px;padding:28px 30px}.kurssi.raikas .yht-seuraava .yht-seuraava-yla{font-size:.875rem}.kurssi.raikas .yht-seuraava .yht-seuraava-nimi{font-size:1.4rem}.kurssi.raikas .yht-seuraava .yht-edistyminen-teksti{font-size:.95rem}.kurssi.raikas .yht-seuraava a.nappi{box-shadow:var(--r-hehku)}.sisaltosivu.raikas .kurssi-hero .lede:last-child{margin-bottom:0}.sisaltosivu.raikas .ss-osio{margin:48px 0}.sisaltosivu.raikas .score-card{box-shadow:var(--shadow-md);border:none;border-radius:24px;margin-top:48px;padding:30px 32px}.sisaltosivu.raikas .score-card .kurssi-h2{margin-bottom:12px}.sisaltosivu.raikas .score-card .muted{color:var(--text);margin:0;font-size:1.05rem}.sisaltosivu.raikas .key-takeaways{gap:12px}.sisaltosivu.raikas .key-takeaways .kt{background:var(--r-vihrea);border-radius:16px;padding:16px 18px;font-size:1.05rem}.sisaltosivu.raikas .ss-napit{margin:40px 0 8px}.sisaltosivu.raikas .ss-napit a.nappi:not(.toissijainen){box-shadow:var(--r-hehku)}.stepnav.raikas{margin-top:48px;padding-top:24px}.stepnav.raikas .step-indicator{font-size:.875rem}.stepnav.raikas .nav-next{box-shadow:var(--r-hehku);padding:14px 30px;font-size:1.1rem}.stepnav.raikas .nav-next:disabled,.stepnav.raikas .nav-next.lukittu{box-shadow:none}.stepnav.raikas .nav-prev{font-size:1.05rem}@media (max-width:560px){.raikas :is(.r-hero,.kurssi-hero){border-radius:22px;margin-bottom:28px}.raikas .r-vaiheet ol{grid-template-columns:1fr}.raikas .r-kurssit{padding:4px 18px}.raikas .r-kurssit li{flex-wrap:wrap;gap:10px 14px}.raikas .r-kurssit h3{flex-basis:calc(100% - 52px)}.raikas .r-kurssit li>:last-child:not(h3){margin-left:50px}.raikas .r-kurssit .r-kesto{min-width:0}.kurssi.raikas :is(.tilanne,.jarjesta,.luokittelu,.itsearvio,.tehtava,.kurssi-quiz,.goals,.callout,.dd,.score-card){padding:20px 18px}.kurssi.raikas .banneri{padding:26px 22px}.kurssi.raikas .tilanne-palaute{margin-left:0}.kurssi.raikas .vaihekaista ol{grid-template-columns:1fr}.kurssi.raikas .vaihekaista li{text-align:left;flex-direction:row;justify-content:flex-start;padding:10px 14px;font-size:.95rem}.kurssi.raikas .vk-nro{width:28px;height:28px;font-size:.9rem}.kurssi.raikas .pr-pala{font-size:.95rem}}.raikas.etusivu .r-hero .lede{margin-bottom:22px}.raikas .tunnistaudu{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.raikas .tunnistaudu-tapa{color:#fff;margin:0;font-size:.95rem}.raikas .tunnistaudu-tila{border-radius:var(--radius-sm);color:#fff;background:#ffffff29;border:1px solid #ffffff4d;max-width:52ch;margin:0;padding:10px 16px;font-size:1rem}.raikas .etusivu-tarpeet{margin:0 0 32px}.raikas .etusivu-kortit{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.raikas .etusivu-kortti{background:var(--surface);box-shadow:var(--shadow-md);border-radius:20px;padding:24px 26px}.raikas .etusivu-kortti h3{color:var(--text-strong);margin:0 0 12px;font-size:1.15rem}.raikas .etusivu-kortti>p{margin:0 0 12px;font-size:1rem}.raikas .etusivu-kortti ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.raikas .etusivu-kortti li{grid-template-columns:22px 1fr;align-items:start;gap:10px;font-size:1rem;display:grid}.raikas .etusivu-kortti li svg{width:20px;height:20px;color:var(--green);margin-top:3px}.raikas .etusivu-kirjaudu{margin:0;font-size:1rem}.raikas .etusivu-kirjaudu a{color:var(--green-dark);font-weight:700}@media (max-width:860px){.raikas .etusivu-polku ol{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.raikas .etusivu-kortit{grid-template-columns:1fr}}@media (max-width:560px){.raikas .etusivu-polku ol{grid-template-columns:1fr}.raikas .etusivu-kortti{padding:20px 18px}}
