:root{--color-bg-app: #f4f8f6;--color-surface: #ffffff;--color-surface-soft: #eef5f1;--color-surface-soft-2: #dfe9e4;--color-border: #c8d7cf;--color-border-strong: #a8bdb3;--color-text: #193530;--color-text-muted: #4e6b61;--color-brand: #153b37;--color-brand-strong: #0f2f2b;--color-brand-soft: #e6f0ec;--color-accent: #f07b3a;--color-accent-soft: #fde9de;--color-focus-ring: #2f8f7f;--color-focus-ring-shadow: rgba(21, 59, 55, .26)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;box-shadow:0 0 0 3px var(--color-focus-ring-shadow)}.app{max-width:1400px;margin:auto;padding:20px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--color-bg-app);color:var(--color-text)}.asetukset-lv-paneeli{margin-bottom:12px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-soft);font-size:14px}.asetukset-lv-paneeli--esikatselu{background:#fff8e6;border-color:#f0c14b}.asetukset-lv-paneeli__otsikko{margin:0 0 10px;font-size:15px;font-weight:700;color:var(--color-text)}.asetukset-lv-rivi{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px}.asetukset-lv-rivi:first-of-type{margin-top:0}.asetukset-lv-rivi__label{font-weight:600;font-size:13px;color:var(--color-text-muted)}.asetukset-lv-rivi input,.asetukset-lv-rivi select{width:100%;max-width:22rem;padding:6px 8px;font-size:14px;border-radius:6px;border:1px solid var(--color-border)}.asetukset-lv-rivi button{margin-top:2px}.asetukset-lv-luonti{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.asetukset-lv-luonti__label{font-weight:600;font-size:13px;color:var(--color-text-muted)}.asetukset-lv-luonti__syote{flex:1 1 14rem;min-width:10rem;max-width:22rem;padding:6px 8px;font-size:14px;border-radius:6px;border:1px solid var(--color-border)}@media (max-width: 600px){.asetukset-lv-luonti{flex-direction:column;align-items:stretch}.asetukset-lv-luonti__syote{max-width:none}.asetukset-lv-luonti button{min-height:44px}}.asetukset-lv-taulu-wrap{overflow-x:auto;margin:0 0 12px;-webkit-overflow-scrolling:touch;border-radius:8px;border:1px solid var(--color-border-strong);background:var(--color-surface)}.asetukset-lv-taulu{width:max-content;max-width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px;border:none}.asetukset-lv-taulu__col-nimi{width:10.5rem}.asetukset-lv-taulu__col-valinta{width:4.75rem}.asetukset-lv-taulu__col-toiminnot{width:5.5rem}.asetukset-lv-taulu th,.asetukset-lv-taulu td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.asetukset-lv-taulu thead th{font-size:12px;font-weight:700;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-strong);background:var(--color-surface-soft)}.asetukset-lv-taulu__valinta-otsikko{text-align:center;white-space:normal;line-height:1.25;-webkit-hyphens:auto;hyphens:auto}.asetukset-lv-taulu__nimi{white-space:nowrap;overflow:hidden}.asetukset-lv-taulu__valinta{text-align:center;padding-left:6px;padding-right:6px}.asetukset-lv-taulu__valinta input{width:18px;height:18px;cursor:pointer}.asetukset-lv-taulu__valinta input:disabled{cursor:not-allowed}.asetukset-lv-taulu__rivi--oletus{background:var(--color-brand-soft, #eef5ff)}.asetukset-lv-taulu__nimi-sisalto{display:inline-flex;align-items:center;gap:6px;max-width:100%}.asetukset-lv-taulu__nimi .asetukset-lv-nimet__nimi{overflow:hidden;text-overflow:ellipsis}.asetukset-lv-taulu__nimi .asetukset-lv-nimet__muokkaa{flex-shrink:0}.asetukset-lv-taulu__toiminnot,.asetukset-lv-taulu__toiminnot-otsikko{text-align:right;white-space:nowrap}.asetukset-lv-taulu__tila{margin-right:8px;font-size:12px;color:var(--color-text-muted)}.asetukset-lv-taulu tbody tr:last-child td{border-bottom:none}.asetukset-lv-selite{margin:10px 0 0;padding:0;list-style:none;font-size:12.5px;line-height:1.45;color:var(--color-text-muted)}.asetukset-lv-selite li{margin:0 0 6px;padding-left:.65rem;border-left:3px solid var(--color-border-strong)}.asetukset-lv-selite li:last-child{margin-bottom:0}@media (max-width: 600px){.asetukset-lv-taulu th,.asetukset-lv-taulu td{padding:8px 6px}.asetukset-lv-taulu__valinta input{width:22px;height:22px}}.asetukset-lv-tila{margin:10px 0 0;padding:0;font-size:13px;line-height:1.45;color:var(--color-text-muted)}.asetukset-lv-viesti{margin:8px 0 0;font-size:13px;color:var(--color-text)}.asetukset-aktivointi-paneeli{margin-bottom:16px}.asetukset-aktivointi-koulu{margin:0 0 10px;font-size:14px;color:var(--color-text)}.asetukset-aktivointi-tila{color:var(--color-text-muted);font-weight:400}.asetukset-aktivointi-nykyinen{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);max-width:720px}.asetukset-aktivointi-koodi{font-size:1.15em;letter-spacing:.06em}.asetukset-aktivointi-napit{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.asetukset-kayttajat-paneeli{margin-top:12px}.asetukset-kayttaja-tuonti{margin:12px 0 16px;padding:10px 14px;border:1px dashed var(--color-border);border-radius:8px;background:var(--color-surface-soft);max-width:720px}.asetukset-kayttaja-tuonti__summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--color-text)}.asetukset-kayttaja-tuonti[open]{padding-bottom:14px}.asetukset-kayttajat-kutsu-rivi{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.asetukset-kayttaja-tuonti__rivi{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0}.asetukset-kayttaja-tuonti__tiedosto{font-size:13px;color:var(--color-text-muted)}.asetukset-kayttaja-tuonti__checkbox{display:block;margin:6px 0;font-size:14px;cursor:pointer}.asetukset-kayttaja-tuonti__yhteenveto{margin-top:12px}.asetukset-kayttaja-tuonti__virheet ul{margin:8px 0 0;padding-left:1.2rem;font-size:13px}.asetukset-kayttaja-lisaa{margin:0 0 16px;padding:10px 14px;border:1px dashed var(--color-border);border-radius:8px;background:var(--color-surface-soft);max-width:720px}.asetukset-kayttaja-lisaa__summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--color-text)}.asetukset-kayttaja-lisaa[open]{padding-bottom:14px}.asetukset-kayttaja-lisaa__lomake{margin-top:4px}.asetukset-kayttaja-lisaa__kentat{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;margin:10px 0}.asetukset-kayttaja-lisaa__kentta{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--color-text)}.asetukset-kayttaja-lisaa__kentta input,.asetukset-kayttaja-lisaa__kentta select{font-weight:400;padding:6px 8px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;max-width:100%}.asetukset-kayttaja-lisaa__checkbox{display:block;margin:6px 0 10px;font-size:14px;cursor:pointer}.asetukset-kayttaja-lisaa__napit{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.asetukset-kk-intro{max-width:720px;line-height:1.5;color:var(--color-text-muted);font-size:14px;margin:0 0 12px}.asetukset-kayttajat-wrap{width:100%;max-width:100%;margin-top:10px;overflow-x:auto;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface)}.asetukset-kayttajat-taulu{width:100%;min-width:560px;border-collapse:collapse;table-layout:fixed;font-size:14px;border:none}.asetukset-kayttajat-taulu--roolit{min-width:1020px;table-layout:auto}.asetukset-kayttajat-taulu--roolit thead th:nth-child(1),.asetukset-kayttajat-taulu--roolit tbody td:nth-child(1){min-width:7.5rem;width:11%}.asetukset-kayttajat-taulu--roolit thead th:nth-child(2),.asetukset-kayttajat-taulu--roolit tbody td:nth-child(2){min-width:14rem;width:28%}.asetukset-kayttajat-taulu--roolit thead th:nth-child(3),.asetukset-kayttajat-taulu--roolit tbody td:nth-child(3){min-width:5.5rem;white-space:nowrap}.asetukset-kayttajat-taulu--roolit thead th:nth-child(4),.asetukset-kayttajat-taulu--roolit tbody td:nth-child(4){min-width:9.5rem}.asetukset-kayttajat-taulu--roolit thead th:nth-child(5),.asetukset-kayttajat-taulu--roolit tbody td:nth-child(5){min-width:10.5rem;width:12rem}.asetukset-kayttajat-opetunnus-rivi{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}.asetukset-kayttajat-opetunnus-input,.asetukset-kayttajat-kentta-input{width:100%;max-width:none;min-width:0;box-sizing:border-box;padding:6px 8px;font-size:13px;font-family:inherit;border:1px solid var(--color-border);border-radius:4px}.asetukset-kayttajat-opetunnus-tallenna{align-self:flex-start}.asetukset-kayttajat-poista-nappi{border-color:#c62828!important;color:#b71c1c!important}.asetukset-kayttajat-poista-nappi:hover:not(:disabled){background:#ffebee!important}.asetukset-kayttajat-opetunnus-tallenna{padding:5px 10px;font-size:12px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface-soft);cursor:pointer}.asetukset-kayttajat-opetunnus-tallenna:hover:not(:disabled){background:var(--color-border)}.asetukset-kayttajat-opetunnus-tallenna:disabled{opacity:.45;cursor:not-allowed}.asetukset-kayttajat-taulu thead th{text-align:left;padding:10px 12px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);background:var(--color-surface-soft);border-bottom:1px solid var(--color-border);vertical-align:bottom}.asetukset-kayttajat-taulu thead th:nth-child(1){width:22%}.asetukset-kayttajat-taulu thead th:nth-child(2){width:36%}.asetukset-kayttajat-taulu thead th:nth-child(3){width:18%}.asetukset-kayttajat-taulu thead th:nth-child(4){width:24%}.asetukset-kayttajat-taulu--5cols{min-width:680px}.asetukset-kayttajat-taulu--5cols thead th:nth-child(1){width:18%}.asetukset-kayttajat-taulu--5cols thead th:nth-child(2){width:28%}.asetukset-kayttajat-taulu--5cols thead th:nth-child(3){width:16%}.asetukset-kayttajat-taulu--5cols thead th:nth-child(4){width:14%}.asetukset-kayttajat-taulu--5cols thead th:nth-child(5){width:24%}.asetukset-kayttajat-taulu--6cols{min-width:760px}.asetukset-kayttajat-taulu--6cols thead th:nth-child(1){width:16%}.asetukset-kayttajat-taulu--6cols thead th:nth-child(2){width:26%}.asetukset-kayttajat-taulu--6cols thead th:nth-child(3){width:10%}.asetukset-kayttajat-taulu--6cols thead th:nth-child(4){width:14%}.asetukset-kayttajat-taulu--6cols thead th:nth-child(5){width:12%}.asetukset-kayttajat-taulu--6cols thead th:nth-child(6){width:22%}.asetukset-kayttajat-taulu .asetukset-kayttajat-meta{font-size:13px;color:var(--color-text-muted)}.asetukset-kayttajat-taulu tbody td{padding:10px 12px;vertical-align:middle;border-bottom:1px solid var(--color-border);word-wrap:break-word;overflow-wrap:anywhere;color:var(--color-text);line-height:1.4}.asetukset-kayttajat-taulu tbody tr:last-child td{border-bottom:none}.asetukset-kayttajat-taulu tbody tr:nth-child(2n) td{background:#eef5f173}.asetukset-kayttajat-taulu tbody tr:hover td{background:var(--color-brand-soft)}.asetukset-kayttajat-taulu .asetukset-kayttajat-nimi{font-weight:600}.asetukset-kayttajat-taulu .asetukset-kayttajat-sina{font-weight:500;color:var(--color-text-muted);white-space:nowrap}.asetukset-kayttajat-taulu .asetukset-kayttajat-email{font-size:13px;color:var(--color-text-muted);word-break:break-all;overflow-wrap:anywhere;line-height:1.35}.asetukset-kayttajat-taulu .asetukset-kayttajat-rooli{font-size:13px}.asetukset-kayttajat-taulu .asetukset-kayttajat-toiminnot{vertical-align:top}.asetukset-kayttajat-toiminnot-pino{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:9.5rem}.asetukset-kayttajat-toiminnot-pino button{width:100%;box-sizing:border-box;padding:6px 10px;font-size:12px;line-height:1.25;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-weight:500;white-space:normal;text-align:center}.asetukset-kayttajat-toiminnot-pino button:hover:not(:disabled){background:var(--color-brand-soft);border-color:var(--color-border-strong)}.asetukset-kayttajat-toiminnot-pino button:disabled{opacity:.55;cursor:not-allowed}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tabs-ylarivi{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.tabs-ylarivi .tabs{margin-bottom:0}.split-toggle-button{display:inline-flex;align-items:center;gap:8px}.split-toggle-button:before{content:"";width:20px;height:20px;flex:0 0 20px;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e293b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3C/svg%3E")}.split-toggle-button.active:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3C/svg%3E")}.split-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px}.split-pane{min-width:0;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 1px 3px #0f172a0f;overflow:hidden}.split-pane-tyokalut{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--color-border);background:var(--color-surface-soft)}.split-pane-tyokalut label{font-size:.88rem;color:var(--color-text-muted);font-weight:600}.split-pane-tyokalut select{min-width:180px;max-width:100%}.split-pane-vaihda{margin-left:auto;padding:4px 10px;min-height:32px;font-size:1rem;line-height:1}.split-pane-sisalto{padding:12px}.split-pane .split-compact-view .panel{max-width:none;padding:12px;gap:12px}.split-pane .split-compact-view .tyomaara-ylapaneeli{flex-direction:column;align-items:stretch;gap:10px}.split-pane .split-compact-view .tyomaara-ylapaneeli>*{width:100%;max-width:none}.split-pane .split-compact-view .kurssi-lisasuodatin-rivi{gap:10px 12px}.split-pane .split-compact-view .kurssi-valittu-aine-select{min-width:0;width:100%}.split-pane .split-compact-view .kurssi-tyhjenna-rajaukset{margin-left:0}.split-pane .split-compact-view h2{margin-top:14px}.tab{padding:8px 14px;border:1px solid var(--color-border);background:var(--color-surface-soft);cursor:pointer;border-radius:6px;font-size:14px;color:var(--color-text);font-weight:500;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.tab:hover{background:var(--color-brand-soft);border-color:#9ec5ff}.tab.active{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}.tab.tab-admin{background:#f6ede6;border-color:#dfc7b2;color:#7a4a28}.tab.tab-admin:hover{background:#f3e1d2;border-color:#d3ae90}.tab.active.tab-admin{background:#c66b33;border-color:#c66b33;color:#fff}.panel{border:1px solid var(--color-border);max-width:800px;padding:20px;border-radius:8px;display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;background:var(--color-surface);box-shadow:0 2px 8px #0f172a0a}.kurssi-haku-panel{max-width:960px}.kurssi-haku-osio{margin-bottom:0}.kurssi-haku-otsikko-rivi{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.kurssi-haku-otsikko{margin-bottom:0}.kurssi-taulukot-otsikko-rivi{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}.kurssi-lukitus-huomio{margin:0 0 12px;padding:10px 12px;border-radius:8px;border:1px solid #d1a731;background:#fff7df;color:#6b4f00}.kurssi-suodattimet-toggle{font-size:14px;font-weight:600;color:var(--color-brand-strong);border-color:#9ec5ff;background:var(--color-brand-soft)}.kurssi-suodattimet-toggle:hover{border-color:var(--color-brand);background:#c4ddfd}@media (min-width: 769px){.kurssi-suodattimet-toggle{display:none}.kurssi-haku-panel-wrap .kurssi-haku-panel{display:flex!important}}@media (max-width: 768px){.kurssi-haku-otsikko-rivi{margin-bottom:10px}.kurssi-haku-otsikko{margin-top:0;font-size:1.2rem;line-height:1.3}.kurssi-haku-panel-wrap:not(.kurssi-haku-panel-wrap--open) .kurssi-haku-panel{display:none!important}h2.kurssi-taulukot-otsikko{margin-top:14px;margin-bottom:8px}}.kurssi-lisasuodattimet{flex-basis:100%;display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid var(--color-border);margin-top:4px}.kurssi-lisasuodatin-rivi{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.kurssi-lisasuodatin-rivi--aine{gap:12px}.kurssi-lisasuodatin-otsikko{font-weight:600;color:var(--color-text)}.kurssi-lisasuodatin-vihje{font-weight:400;color:var(--color-text-muted);font-size:.92em}.kurssi-lisasuodatin-label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.kurssi-lisasuodatin-aine-label{font-weight:600;color:var(--color-text)}.kurssi-valittu-aine-select{min-width:220px;max-width:100%;padding:6px 10px;border-radius:6px;border:1px solid var(--color-border-strong);font-size:14px;background:var(--color-surface)}.kurssi-tyhjenna-rajaukset{margin-left:auto}.kurssi-lisasuodatin-rivi--aine-toinen{padding-left:4px}.card{border:1px solid var(--color-border);padding:20px;border-radius:8px;background:var(--color-surface)}button{padding:6px 12px;border-radius:6px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}button:hover{background:var(--color-surface-soft);border-color:var(--color-border-strong)}button.primary{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}h1{margin-bottom:10px}h2{margin-top:30px}h3{color:var(--color-text)}.schedule-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-bottom:1.25rem;border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0f172a0f}.schedule-table-scroll .schedule-table{min-width:640px}.schedule-table{width:100%;border-collapse:collapse;table-layout:fixed}.schedule-table th{background:var(--color-brand);color:#fff;padding:8px;font-weight:600;text-align:center}.schedule-table td{border:1px solid var(--color-border);padding:6px 8px}.schedule-col-palkki{width:55px}.schedule-col-ryhma{width:160px}.schedule-col-opettaja{width:210px}.schedule-col-period{width:64px;min-width:64px;text-align:center}.schedule-col-actions{width:90px;min-width:90px}.schedule-table tr:nth-child(2n){background:var(--color-surface-soft)}.schedule-table tr:hover{background:var(--color-brand-soft)}.schedule-table tbody tr:first-child td{border-top:2px solid var(--color-brand)}.schedule-table thead th{position:sticky;top:0;background:var(--color-brand);color:#fff;z-index:2;border-bottom:3px solid var(--color-brand-strong)}.palkki-cell{background:#e5eee9;font-weight:700;font-size:18px;text-align:center;vertical-align:middle;border-right:3px solid var(--color-brand)}.palkki-even td{background:#fff}.palkki-odd td{background:#f1f6f3}.palkki-even .palkki-cell{background:#e5eee9}.palkki-odd .palkki-cell{background:#d8e5de}.palkki-faded{color:#999;font-size:14px;font-weight:500}.period{text-align:center;font-weight:600}.period.active{color:var(--color-text);font-weight:600;border-radius:4px;border:1px solid transparent;box-shadow:inset 0 0 0 1px #ffffff73}.period.active.period-tunnit-1{background:#fff6f0;border-color:#f6dac8}.period.active.period-tunnit-2{background:#feeedf;border-color:#f1ccb2}.period.active.period-tunnit-3{background:#fde5cf;border-color:#ebbd9e}.period.active.period-tunnit-4{background:#fcddbf;border-color:#e5ae89}.period.active.period-tunnit-5{background:#fbd4af;border-color:#df9f74}.period.active.period-tunnit-6{background:#f9cc9f;border-color:#d89061}.period.active.period-tunnit-7{background:#f7c490;border-color:#d2814f}.period.active.period-tunnit-8{background:#f5bc81;border-color:#cc733e}.period.active.period-tunnit-other{background:var(--color-accent-soft);border-color:var(--color-accent)}.teacher-cell{overflow:hidden}.teacher-names{margin-bottom:4px}.teacher-controls{display:flex;flex-direction:column;gap:4px}.teacher-buttons{display:flex;gap:6px}.teacher-buttons button{padding:3px 8px;font-size:13px}.teacher-input{width:120px;padding:4px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-surface);color:var(--color-text)}.teacher-label{display:inline-flex;align-items:center;gap:6px;background:#eef2f6;border:1px solid #d0d7de;border-radius:14px;padding:2px 8px;font-size:13px;font-weight:600}.teacher-cell button{margin-left:3px}.teacher-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.teacher-list--ryppaat{align-items:flex-start}.teacher-bundle{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 4px;padding:4px 8px;border-radius:8px;border:1px solid #c8d4e0;background:#f4f7fb;font-size:13px;font-weight:600;cursor:pointer;margin:0 4px 4px 0;vertical-align:middle}.teacher-bundle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.teacher-bundle--valittu{border-color:var(--color-brand);background:var(--color-brand-soft);box-shadow:inset 0 0 0 1px #153b3726}.teacher-bundle--vain-nakyma{cursor:default}.teacher-bundle__jasen{display:inline-flex;align-items:center;gap:2px}.teacher-bundle__koodi{letter-spacing:.02em}.teacher-bundle__poista{border:none;background:transparent;cursor:pointer;font-size:14px;line-height:1;color:#7a8794;padding:0 1px;margin-left:1px}.teacher-bundle__poista:hover{color:#c62828}.opettaja-ryppaat-kentta{min-width:0}.opettaja-ryppaat-readonly{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.35;word-break:break-word}.remove-teacher{border:none;background:none;cursor:pointer;font-size:14px;line-height:1;color:#777;padding:0}.remove-teacher:hover{color:#d11a2a}.app-topbar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 16px;padding:12px 18px;margin:-20px -20px 18px;background:linear-gradient(180deg,#1f8f6c,#153b37 58%);border-bottom:1px solid rgba(0,0,0,.12);box-shadow:0 3px 14px #0f2f2b2e;position:sticky;top:0;z-index:40}.app-topbar__brand{flex:0 0 auto;display:flex;align-items:center;padding-top:4px}.app-topbar__logo{height:38px;width:auto;display:block}.app-topbar__middle{flex:1 1 280px;min-width:0}.app-topbar__tabs-row.tabs-ylarivi{margin-bottom:0;align-items:center}.app-topbar .tabs{margin-bottom:0}.app-topbar__right{flex:0 1 auto;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end;gap:10px 14px;margin-left:auto;max-width:100%}.app-topbar__superadmin-koulu{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#e6f0ecf2}.app-topbar__superadmin-label{font-weight:600;white-space:nowrap}.app-topbar__superadmin-koulu select{min-width:140px;max-width:min(240px,100%);padding:5px 8px;font-size:13px;border-radius:6px;border:1px solid rgba(255,255,255,.38);background:#ffffff1f;color:#f4fffb}.app-topbar__superadmin-koulu select option{color:#153b37;background:#fff}.app-topbar__meta{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 22px;font-size:13px;line-height:1.35}.app-topbar__meta-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.app-topbar__meta-stack--user{max-width:min(260px,44vw)}.app-topbar__meta-stack--koulu{max-width:min(280px,46vw)}.app-topbar__meta-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-left:auto}.app-topbar__meta-strong{font-weight:700;color:#fff}.app-topbar__meta-dim{color:#e6f0eceb;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar__meta-dim--strong{font-weight:600;color:#fffffff5}.app-topbar__rooli{padding:2px 10px;border-radius:999px;background:#00000038;color:#e8fff8;font-weight:600;font-size:12px;white-space:nowrap}.app-topbar__logout{padding:6px 12px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid rgba(255,255,255,.45);background:#ffffff24;color:#fff}.app-topbar__logout:hover{background:#ffffff3d}.app-topbar .tab{border-color:#ffffff52;background:#ffffff1a;color:#f0fdf9}.app-topbar .tab:hover{background:#ffffff2e;border-color:#ffffff73}.app-topbar .tab.active{background:#fff;color:var(--color-brand);border-color:#fff}.app-topbar .tab.tab-admin{background:#f6ede62e;border-color:#ffc8a073;color:#ffe8d9}.app-topbar .tab.tab-admin:hover{background:#f6ede647}.app-topbar .tab.active.tab-admin{background:#c66b33;border-color:#c66b33;color:#fff}.app-topbar .split-toggle-button:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e6f0ec' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3C/svg%3E")}.app-topbar .split-toggle-button.active:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3C/svg%3E")}@media (max-width: 900px){.app-topbar__right{margin-left:0;width:100%;justify-content:flex-start}.app-topbar__meta-actions{margin-left:0;flex-direction:row;flex-wrap:wrap;align-items:center}.app-topbar__meta-stack--user,.app-topbar__meta-stack--koulu{max-width:100%}}.header--minimal{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.header{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.header-otsikko{margin:0;flex:1;min-width:min(100%,12rem);font-size:clamp(1.05rem,2.4vw,1.65rem);line-height:1.25;word-break:break-word}.header-otsikko-wrap{flex:1;min-width:min(100%,12rem)}.header-koulu-nimi{margin-top:4px;color:var(--color-text-muted);font-size:.95rem;font-weight:600}.luo-lukuvuosi-paneeli>summary{-webkit-user-select:none;user-select:none}.luo-lukuvuosi-paneeli[open]>summary{border-bottom:1px solid #e8e8e8}.header-aktivointi{margin-left:auto;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 10px;background:var(--color-brand-soft);border:1px solid #b7d4c8;border-radius:6px;font-size:13px}.header-aktivointi__label{color:var(--color-brand-strong);font-weight:600}.header-aktivointi__code{font-size:1.05rem;font-weight:700;letter-spacing:.06em;color:var(--color-brand-strong)}.logo{height:40px}.koulu-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.koulu-modal{background:#fff;border-radius:10px;padding:20px 24px;max-width:420px;width:100%;box-shadow:0 8px 32px #00000026}.koulu-modal input{display:block;width:100%;margin-top:6px;padding:8px 10px;font-size:1rem}.oma-profiili-modal{max-width:440px;max-height:min(90vh,720px);overflow-y:auto}.oma-profiili-modal__yla{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.oma-profiili-modal__yla h2{margin:0;font-size:1.25rem}.oma-profiili-modal__sulje{border:none;background:transparent;font-size:1.75rem;line-height:1;cursor:pointer;color:var(--color-text-muted);padding:0 4px}.oma-profiili-kentta{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.oma-profiili-kentta:first-of-type{border-top:none;padding-top:0;margin-top:8px}.oma-profiili-kentta label{display:block;font-weight:600;font-size:13px;margin-bottom:4px}.oma-profiili-kentta__ohje{margin:0 0 6px;font-size:13px;color:var(--color-text-muted);line-height:1.4}.oma-profiili-kentta__otsikko{margin:0 0 8px;font-size:1rem}.oma-profiili-kentta__nappi{margin-top:10px;width:100%}.oma-profiili-nollaus{display:block;margin-top:12px;font-size:14px}.app-topbar__profiili-nappi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:none;background:transparent;padding:4px 8px;margin:-4px -8px;border-radius:6px;cursor:pointer;text-align:left;font:inherit;color:inherit}.app-topbar__profiili-nappi:hover{background:var(--color-brand-soft)}.app-topbar__profiili-linkki{font-size:12px;color:var(--color-brand, #2d6a4f);font-weight:600;text-decoration:underline;text-underline-offset:2px}@media (max-width: 768px){.schedule-table-scroll .teacher-controls{width:100%;min-width:0}.schedule-table-scroll .teacher-input{width:100%;max-width:100%;box-sizing:border-box;font-size:15px}}.tyomaara-ylapaneeli{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;margin-bottom:16px}.tyomaara-ylapaneeli>*{flex:1 1 280px;min-width:0;max-width:100%}@media (max-width: 768px){.tyomaara-ylapaneeli{flex-direction:column;gap:14px}.tyomaara-ylapaneeli>*{flex:0 0 auto;width:100%;max-width:100%}}.tehtava-form-kortti,.tyomaara-filter-kortti{border:1px solid var(--color-border);padding:16px 18px;border-radius:8px;background:var(--color-surface);box-shadow:0 2px 8px #0f172a0a;width:100%;max-width:400px;box-sizing:border-box}.tehtava-form-kortti--taitettu{border:none;box-shadow:none;padding:0;max-width:none}.tyomaara-tehtava-lomake-details{margin:0;border:1px solid var(--color-border);border-radius:8px;padding:0 12px 12px;background:var(--color-surface-soft);width:100%;max-width:400px;box-sizing:border-box}.tyomaara-tehtava-lomake-summary{cursor:pointer;font-weight:600;font-size:1rem;padding:12px 4px;color:var(--color-brand-strong)}.tyomaara-tehtava-lomake-sisalto{padding:0 4px 4px}@media (min-width: 769px){.tehtava-form-kortti,.tyomaara-filter-kortti{width:auto}}.tehtava-form-otsikko,.tyomaara-filter-otsikko{margin:0 0 12px;font-size:1.1rem;color:var(--color-text)}.tehtava-form{display:flex;flex-direction:column;gap:8px}.tehtava-form-rivi{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}.tehtava-form-label{flex:0 0 120px;min-width:80px;font-weight:600;font-size:14px;color:var(--color-text)}.tehtava-form-input{flex:1 1 120px;min-width:0;padding:6px 10px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-surface);color:var(--color-text);font-size:15px;box-sizing:border-box}@media (max-width: 768px){.tehtava-form-rivi{flex-direction:column;align-items:stretch}.tehtava-form-label{flex:none;width:100%}.tehtava-form-input{flex:none;width:100%;min-height:0}}.tehtava-form-submit-wrap{text-align:center;margin-top:6px}.tyomaara-filter-vihje{margin:0 0 10px;font-size:14px;color:var(--color-text-muted)}.tyomaara-filter-input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:6px;font-size:15px;background:var(--color-surface);color:var(--color-text)}.tyomaara-ohje-panel{margin:12px 0 20px;border:1px solid var(--color-border);border-radius:8px;padding:12px 12px 14px;background:var(--color-surface-soft)}.tyomaara-ohje-panel--ensin{margin-top:0;margin-bottom:16px}.tyomaara-ohje-otsikko{margin:0 0 10px;font-size:1rem;font-weight:600;color:var(--color-brand-strong);line-height:1.3}.tyomaara-ohje-sisalto{padding:0 4px 4px;font-size:15px;line-height:1.45;color:var(--color-text)}.tyomaara-ohje-sisalto p{margin:0 0 10px}.tyomaara-ohje-sisalto p:last-child{margin-bottom:0}.tyomaara-opettajat-otsikko{margin-top:12px}.tyomaara-taulukko-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-bottom:1.25rem;border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0f172a0f}.tyomaara-taulukko-wrap .tyomaara-taulukko{min-width:520px}.tyomaara-taulukko{width:100%;table-layout:fixed;border-collapse:collapse;background:var(--color-surface)}.tyomaara-taulukko th,.tyomaara-taulukko td{border:1px solid var(--color-border);padding:8px 10px;text-align:left;vertical-align:top}.tyomaara-th--opettaja,.tyomaara-solu--opettaja{width:11%;min-width:5.5rem;max-width:12rem}.tyomaara-th--tehtava,.tyomaara-solu--tehtava{min-width:0;overflow-wrap:anywhere;word-break:break-word}.tyomaara-th--maara,.tyomaara-solu--maara{width:8.5rem;white-space:nowrap;text-align:right}.tyomaara-solu--maara-yhteensa{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.tyomaara-th--toiminnot,.tyomaara-solu--toiminnot{width:12.5rem;min-width:10rem}.tyomaara-taulukko>thead>tr>th{position:sticky;top:0;z-index:1;background:var(--color-brand);color:#fff;font-weight:600;text-align:center;border-bottom:3px solid var(--color-brand-strong)}.tyomaara-taulukko tbody tr:nth-child(2n){background:var(--color-surface-soft)}.tyomaara-taulukko tbody tr:hover{background:var(--color-brand-soft)}.tyomaara-toiminnot{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}@media (max-width: 768px){.tyomaara-toiminnot{flex-direction:column;align-items:stretch;gap:6px}}.tyomaara-toiminnot button{font-size:13px}.tyomaara-purku-toggle{display:inline;margin:0;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.tyomaara-purku-toggle:hover{color:var(--color-brand-strong, #1d4ed8)}.tyomaara-purku-toggle:focus-visible{outline:2px solid var(--color-brand, #2563eb);outline-offset:2px}.tyomaara-purku-solu{padding:6px 10px 12px;background:var(--color-surface-soft);vertical-align:top}.tyomaara-purku-tyhja{margin:0;font-size:.9rem;font-style:italic;color:var(--color-muted, #64748b)}.tyomaara-purku-taulu{width:100%;border-collapse:collapse;font-size:.875rem;table-layout:fixed}.tyomaara-purku-taulu th,.tyomaara-purku-taulu td{border:1px solid var(--color-border);padding:6px 8px;text-align:left}.tyomaara-purku-taulu thead th{background:var(--color-surface-soft);color:var(--color-text);font-weight:600}.tyomaara-purku-col-ryhma{width:52%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.tyomaara-purku-col-opettajat{width:8%;max-width:5rem;min-width:0;overflow-wrap:anywhere}.tyomaara-purku-col-vvt{width:20%;min-width:5.5rem;padding-left:6px!important;padding-right:6px!important;font-size:.8125rem;font-variant-numeric:tabular-nums}.tyomaara-purku-taulu thead th.tyomaara-purku-col-vvt{text-align:right;white-space:normal;line-height:1.25;-webkit-hyphens:manual;hyphens:manual}.tyomaara-purku-taulu tbody .tyomaara-purku-num{text-align:right;white-space:nowrap}.tyomaara-purku-taulu tbody.tyomaara-purku-slot tr:first-child td{border-top-width:2px;border-top-color:var(--color-border-strong)}.tyomaara-purku-taulu tbody.tyomaara-purku-slot tr:last-child td{border-bottom-width:2px;border-bottom-color:var(--color-border-strong)}.tyomaara-purku-taulu tbody.tyomaara-purku-slot tr td:first-child{border-left-width:2px;border-left-color:var(--color-border-strong)}.tyomaara-purku-taulu tbody.tyomaara-purku-slot tr td:last-child{border-right-width:2px;border-right-color:var(--color-border-strong)}.tyomaara-purku-vvt-input{box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0;padding:2px 4px;border:1px solid var(--color-border-strong);border-radius:4px;font:inherit;font-size:.8125rem;font-variant-numeric:tabular-nums;text-align:right;background:var(--color-surface);color:var(--color-text)}.tyomaara-purku-vvt-input:focus{outline:2px solid var(--color-focus-ring);outline-offset:1px;border-color:var(--color-brand)}.tyomaara-kommentit-solu{background:var(--color-surface-soft)}.tyomaara-kommentit{display:flex;flex-direction:column;gap:8px}.tyomaara-kommentit-otsikko{font-weight:700}.tyomaara-kommentit-tyhja{margin:0;font-style:italic;color:var(--color-text-muted)}.tyomaara-kommentit-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tyomaara-kommentti-item{border:1px solid var(--color-border);border-radius:6px;padding:8px 10px;background:var(--color-surface);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.tyomaara-kommentti-meta{font-size:.8rem;color:var(--color-text-muted)}.tyomaara-kommentti-teksti{white-space:pre-wrap;flex:1 1 20rem;min-width:12rem}.tyomaara-kommentti-poista{margin-top:2px;font-size:.85rem}.tyomaara-kommentti-form,.tyomaara-kommentti-muokkaus{display:flex;flex-wrap:wrap;gap:8px}.tyomaara-kommentti-toiminnot{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.tyomaara-kommentti-date{min-width:10rem}.tyomaara-kommentti-input{flex:1 1 18rem;min-width:12rem;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-surface);color:var(--color-text)}.tyomaara-nappi-teksti--lyhyt{display:none}@media (max-width: 768px){.tyomaara-nappi-teksti--pitka{display:none!important}.tyomaara-nappi-teksti--lyhyt{display:inline!important}}.suunnittelu-aste-rivi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px}.suunnittelu-filtteri-label{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:var(--color-surface-soft);cursor:pointer;min-height:40px;box-sizing:border-box;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease}.suunnittelu-filtteri-label:hover{border-color:var(--color-border)}.suunnittelu-filtteri-label--valittu{background:var(--color-brand-soft);border-color:#9ec5ff}@media (max-width: 768px){.suunnittelu-aste-rivi{grid-template-columns:minmax(0,1fr);gap:10px}.suunnittelu-filtteri-label{min-height:44px;padding:10px 12px;gap:10px;touch-action:manipulation}}.opettaja-yhteenveto-tyokalut,.luokka-yhteenveto-tyokalut,.aine-yhteenveto-tyokalut{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-bottom:8px}.opettaja-yhteenveto-haku-ryhma,.luokka-yhteenveto-haku-ryhma,.aine-yhteenveto-haku-ryhma{flex:1 1 220px;display:flex;flex-direction:column;gap:6px}.opettaja-yhteenveto-haku-ryhma label,.luokka-yhteenveto-haku-ryhma label,.aine-yhteenveto-haku-ryhma label{font-size:.88rem;font-weight:600;color:var(--color-text)}.opettaja-yhteenveto-haku-kentta,.luokka-yhteenveto-haku-kentta,.aine-yhteenveto-haku-kentta{width:100%;max-width:400px;padding:8px 10px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:1rem;box-sizing:border-box}.opettaja-yhteenveto-haku-kentta::placeholder,.luokka-yhteenveto-haku-kentta::placeholder,.aine-yhteenveto-haku-kentta::placeholder{color:var(--color-text-muted)}.opettaja-yhteenveto-napit,.luokka-yhteenveto-napit,.aine-yhteenveto-napit{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.opettaja-yhteenveto-tilanne,.luokka-yhteenveto-tilanne,.aine-yhteenveto-tilanne{font-size:.9rem;color:var(--color-text-muted);margin:0 0 10px;line-height:1.45}.opettaja-yhteenveto-valitut,.luokka-yhteenveto-valitut,.aine-yhteenveto-valitut{margin:0 0 12px;padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface-soft)}.opettaja-yhteenveto-valitut-otsikko,.luokka-yhteenveto-valitut-otsikko,.aine-yhteenveto-valitut-otsikko{font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:8px}.opettaja-yhteenveto-valitut-sirut,.luokka-yhteenveto-valitut-sirut,.aine-yhteenveto-valitut-sirut{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.opettaja-yhteenveto-siru,.luokka-yhteenveto-siru,.aine-yhteenveto-siru{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px 6px 4px 10px;border-radius:999px;background:var(--color-brand-soft);border:1px solid #9ec5ff;font-size:.88rem;color:var(--color-text);box-sizing:border-box}.opettaja-yhteenveto-siru__nimi,.luokka-yhteenveto-siru__nimi,.aine-yhteenveto-siru__nimi{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(280px,70vw)}.opettaja-yhteenveto-siru__poista,.luokka-yhteenveto-siru__poista,.aine-yhteenveto-siru__poista{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-text-muted);font-size:1.15rem;line-height:1;cursor:pointer;flex-shrink:0;transition:background-color .15s ease,color .15s ease}.opettaja-yhteenveto-siru__poista:hover,.luokka-yhteenveto-siru__poista:hover,.aine-yhteenveto-siru__poista:hover{background:#2563eb1f;color:var(--color-text)}@media (max-width: 768px){.opettaja-yhteenveto-siru__poista,.luokka-yhteenveto-siru__poista,.aine-yhteenveto-siru__poista{width:36px;height:36px;min-width:36px;min-height:36px;touch-action:manipulation}}.opettaja-yhteenveto-filtterit-scroll,.luokka-yhteenveto-filtterit-scroll,.aine-yhteenveto-filtterit-scroll{border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0f172a0f;overflow-y:auto;max-height:min(50vh,440px);margin-bottom:1rem;-webkit-overflow-scrolling:touch;background:var(--color-surface)}.opettaja-yhteenveto-filtterit-scroll .opettaja-yhteenveto-filtterit,.luokka-yhteenveto-filtterit-scroll .luokka-yhteenveto-filtterit,.aine-yhteenveto-filtterit-scroll .aine-yhteenveto-filtterit{margin-bottom:0;padding:10px}.opettaja-yhteenveto-filtterit,.luokka-yhteenveto-filtterit,.aine-yhteenveto-filtterit{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.aine-yhteenveto-filtterit{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.suunnittelu-filtteri-label{align-items:flex-start;line-height:1.3}.suunnittelu-filtteri-label input[type=checkbox]{margin-top:2px;flex-shrink:0}@media (max-width: 768px){.opettaja-yhteenveto-haku-kentta,.luokka-yhteenveto-haku-kentta,.aine-yhteenveto-haku-kentta{max-width:none;min-height:44px;font-size:16px}.opettaja-yhteenveto-filtterit,.luokka-yhteenveto-filtterit,.aine-yhteenveto-filtterit{grid-template-columns:minmax(0,1fr);gap:10px}.opettaja-yhteenveto-napit button,.luokka-yhteenveto-napit button,.aine-yhteenveto-napit button{min-height:44px;padding:10px 14px;touch-action:manipulation}}.opettaja-yhteenveto-tyhja,.luokka-yhteenveto-tyhja,.aine-yhteenveto-tyhja{padding:1rem 1.1rem;margin:0 0 1.25rem;border-radius:8px;border:1px dashed var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-text-muted);font-size:.95rem;line-height:1.5}.opettaja-yhteenveto-ei-tuloksia,.luokka-yhteenveto-ei-tuloksia,.aine-yhteenveto-ei-tuloksia{margin:0 0 1rem;font-size:.92rem;color:var(--color-text-muted)}.opettaja-yhteenveto-ei-dataa,.luokka-yhteenveto-ei-dataa,.aine-yhteenveto-ei-dataa{margin:0 0 1rem;padding:.85rem 1rem;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:.92rem}.opettaja-kortti-osio,.luokka-kortti-osio{margin-bottom:40px}.opettaja-kortti-osio h2,.luokka-kortti-osio h2{margin-top:0;margin-bottom:.65rem;font-size:1.35rem}.opettaja-kortti-vvt{margin-top:10px;font-weight:700;color:var(--color-text)}.opettaja-verkko-laatikko{margin-top:1rem;border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0f172a0f;padding:12px 14px 14px;background:var(--color-surface)}.opettaja-verkko-otsikko{margin:0 0 10px;font-size:1rem;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:6px}.opettaja-verkko-otsikko:before{content:"";display:inline-block;width:1.1rem;height:1.1rem;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");flex-shrink:0}.opettaja-verkko-kortit{display:flex;flex-wrap:wrap;gap:10px}.opettaja-verkko-siru{background:#eef2ff;padding:8px 14px;border-radius:8px;font-weight:500;overflow-wrap:anywhere;word-break:break-word}.opettaja-verkko-vvt{margin-top:10px;font-weight:700;color:var(--color-text)}.yhteenveto-periodi-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-bottom:1rem;border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0f172a0f;padding-bottom:2px}.yhteenveto-periodi-taulu{width:100%;min-width:820px;table-layout:fixed;border-collapse:collapse}.yhteenveto-periodi-taulu col.yhteenveto-periodi-col{width:calc(100% / var(--period-columns, 5))}.yhteenveto-periodi-th,.yhteenveto-periodi-yhteensa td{width:calc(100% / var(--period-columns, 5));min-width:164px;box-sizing:border-box}.yhteenveto-periodi-th{padding:8px;border-bottom:2px solid var(--color-text);text-align:left;vertical-align:bottom}.yhteenveto-periodi-solu{width:calc(100% / var(--period-columns, 5));min-width:164px;box-sizing:border-box;vertical-align:top;padding:8px}.yhteenveto-kortti{border-radius:8px;padding:8px;margin-bottom:8px;overflow-wrap:anywhere;word-break:break-word}.yhteenveto-kortti--lukio{box-shadow:0 1px 3px #0000001a}.yhteenveto-kortti--opettaja{background:var(--color-surface-soft-2)}.yhteenveto-kortti--luokka-ryhma{background:var(--color-surface-soft-2);padding:8px 8px 8px 14px;margin-bottom:8px;position:relative}.luokka-kortti-rivi{margin-bottom:6px;padding-bottom:6px;padding-left:10px;border-bottom:2px solid #e5e7eb}.luokka-kortti-rivi:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.yhteenveto-kortti__palkki-nimi{font-size:.95rem;color:#222}.yhteenveto-kortti__opettaja{font-weight:700;font-size:1.05rem;margin-top:4px}.yhteenveto-kortti__tunnit{font-size:.8rem;color:#666;margin-top:2px}.yhteenveto-kortti__luokat{font-size:.75rem;color:#666;margin-bottom:4px}.yhteenveto-kortti__kurssi-nimi{font-size:.95rem;color:#222}.yhteenveto-kortti__opettaja-ylak{font-weight:700;font-size:1.15rem;margin-top:4px}.yhteenveto-kortti__tunnit-ylak{font-size:.75rem;color:#888;margin-top:2px}.yhteenveto-periodi-yhteensa td{font-weight:600;border-top:2px solid #e5e7eb;padding:10px 8px;text-align:center;color:#374151;font-size:.95rem;background:#f9fafb}@media (max-width: 768px){.yhteenveto-periodi-th,.yhteenveto-periodi-solu{padding:5px 6px}.yhteenveto-kortti{padding:6px;margin-bottom:6px}.yhteenveto-kortti__palkki-nimi,.yhteenveto-kortti__kurssi-nimi{font-size:.86rem}.yhteenveto-kortti__opettaja{font-size:.92rem}.yhteenveto-kortti__opettaja-ylak{font-size:.98rem}.yhteenveto-kortti__tunnit{font-size:.72rem}.yhteenveto-kortti__tunnit-ylak{font-size:.7rem}.yhteenveto-kortti__luokat{font-size:.68rem;margin-bottom:3px}.yhteenveto-periodi-yhteensa td{font-size:.85rem;padding:8px 6px}}.app-topbar__lv-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}.app-topbar__lv-select{min-width:120px;max-width:min(200px,100%);padding:4px 8px;font-size:13px;border-radius:6px;border:1px solid rgba(255,255,255,.38);background:#ffffff1f;color:#f4fffb}.app-topbar__lv-select option{color:#153b37;background:#fff}.app-topbar__lv-teksti{color:#e6f0eceb;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(200px,100%)}.asetukset-lv-arkistoi{margin-top:14px;padding-top:12px;border-top:1px solid #e5e7eb}.asetukset-lv-arkistoi__otsikko{margin:0 0 8px;font-size:13px;font-weight:600;color:#374151}.asetukset-lv-arkistoi__lista{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.asetukset-lv-arkistoi__rivi{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.asetukset-lv-arkistoi__nimi{font-weight:600;min-width:100px}.asetukset-lv-arkistoi__vihje{margin:10px 0 0;font-size:12px;color:#64748b;line-height:1.45}.asetukset-lv-arkistoi__vihje--ylä{margin:0 0 12px}.asetukset-lv-nimet__lista{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.asetukset-lv-nimet__rivi{display:block;width:fit-content;max-width:100%;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa}.asetukset-lv-nimet__rivi--valittu{border-color:#93c5fd;background:#f8fafc}.asetukset-lv-nimet__rivi--esikatselu{border-color:#f0c14b;background:#fffbeb}.asetukset-lv-nimet__sisalto,.asetukset-lv-nimet__muokkaus{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.asetukset-lv-nimet__valittu-merkki{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#dbeafe;color:#1e40af}.asetukset-lv-nimet__rivi--esikatselu .asetukset-lv-nimet__valittu-merkki{background:#fef3c7;color:#92400e}.asetukset-lv-nimet__nimi{font-size:15px;font-weight:600;color:#1e293b}.asetukset-lv-nimet__muokkaa{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#475569;cursor:pointer}.asetukset-lv-nimet__muokkaa:hover{color:#1d4ed8;border-color:#93c5fd;background:#eff6ff}.asetukset-lv-nimet__muokkaa-ikoni{display:block}.asetukset-lv-nimet__sisalto button{font-size:13px;padding:4px 10px}.asetukset-lv-nimet__julkaise{font-weight:600}.asetukset-lv-nimet__syote{flex:1 1 180px;min-width:140px;max-width:280px;padding:6px 8px;font-size:14px;border:1px solid #d1d5db;border-radius:6px}.asetukset-lv-nimet__tila{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.asetukset-lv-nimet__tila--julkaistu{background:#dcfce7;color:#166534}.asetukset-lv-nimet__tila--arkisto{background:#fef3c7;color:#92400e}.asetukset-lv-nimet__poista{color:#9a3412;border-color:#fdba74}.asetukset-lv-nimet__tila--luonnos{background:#e0e7ff;color:#3730a3}.lukuvuosi-arkisto-banner{margin:0 0 12px;padding:10px 12px;border-radius:8px;border:1px solid #fcd34d;background:#fffbeb;color:#92400e;font-size:14px;line-height:1.45}.lukuvuosi-arkisto-banner--global{margin:12px 16px 0}.ryhmat-hallinta-vihje{margin:0 0 8px;font-size:13px;color:#64748b}.palkki-cell--klikattava{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.palkki-cell--klikattava:hover,.palkki-cell--klikattava:focus-visible{background:#e0f2fe!important;outline:2px solid #38bdf8;outline-offset:-2px}.palkki-cell--aktiivinen{background:#dbeafe!important;box-shadow:inset 0 0 0 2px #2563eb;font-weight:600}.palkki-rivi--muokataan,.palkki-rivi--muokataan td{background:#f8fafc}.palkki-periodi-solu{padding:4px!important;background:#fff}.palkki-periodi-syote{width:100%;min-width:40px;max-width:56px;padding:6px 4px;font-size:14px;text-align:center;border:1px solid #93c5fd;border-radius:6px;background:#fff;box-sizing:border-box}.palkki-periodi-syote:focus{outline:2px solid #2563eb;border-color:#2563eb}.palkki-periodi-solu--peilaa{color:#64748b;font-style:italic}.palkki-inline-tyokalu-rivi td{padding:10px 12px!important;background:#eff6ff!important;border-top:2px solid #2563eb}.palkki-inline-tyokalu{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}.palkki-inline-tyokalu__info{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;font-size:14px}.palkki-inline-tyokalu__lkm{color:#64748b;font-size:13px}.palkki-inline-tyokalu__ohje{color:#64748b;font-size:13px;flex-basis:100%}.palkki-inline-tyokalu__napit{display:flex;flex-wrap:wrap;gap:8px}.palkki-inline-tyokalu__napit button{padding:7px 12px;font-size:13px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;cursor:pointer}.palkki-inline-tyokalu__tallenna{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important}.palkki-inline-tyokalu__napit button:disabled{opacity:.55;cursor:not-allowed}.palkki-inline-tyokalu__virhe{flex-basis:100%;margin:0;color:#b91c1c;font-size:13px}.ryhma-cell--klikattava{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.ryhma-cell--klikattava:hover,.ryhma-cell--klikattava:focus-visible{background:#f0fdf4;outline:2px solid #4ade80;outline-offset:-2px}.ryhma-cell--aktiivinen{background:#dcfce7!important;box-shadow:inset 0 0 0 2px #16a34a;font-weight:600}.ryhma-rivi--muokataan{background:#f0fdf4}.ryhma-meta-solu{font-size:13px;min-width:100px;vertical-align:top}.ryhma-meta-rivi{display:flex;gap:6px;margin-bottom:4px}.ryhma-meta-rivi:last-child{margin-bottom:0}.ryhma-meta-label{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;min-width:42px}.ryhma-meta-solu--muokkaus{background:#f0fdf4;padding:8px!important;overflow:visible;min-width:300px;width:300px}.ryhma-meta-kentta{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;font-size:12px}.ryhma-meta-kentta input,.ryhma-meta-palkki-select,.ryhma-meta-palkki-syote{padding:5px 8px;font-size:13px;border:1px solid #86efac;border-radius:6px;width:100%;box-sizing:border-box}.palkki-valitsin{position:relative}.palkki-valitsin-uusi-vihje{display:block;margin-top:2px;font-size:11px;color:#15803d}.palkki-valitsin-lista{margin:0;padding:4px 0;list-style:none;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #86efac;border-radius:6px;box-shadow:0 4px 12px #0f172a1f}.palkki-valitsin-lista--portaali{position:fixed;z-index:1000}.palkki-valitsin-vaihtoehto{padding:6px 12px;font-size:13px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;cursor:pointer;white-space:nowrap}.palkki-valitsin-vaihtoehto:hover,.palkki-valitsin-vaihtoehto--korostettu{background:#f0fdf4}.palkki-valitsin-vaihtoehto--valittu{font-weight:600;color:#15803d}.palkki-valitsin-ei-osumia,.palkki-valitsin-lisaa-vihje{padding:6px 10px;font-size:11px;color:#64748b;cursor:default}.ryhma-meta-toiminnot{display:flex;gap:6px}.ryhma-meta-toiminnot button{flex:1;padding:6px 8px;font-size:12px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;cursor:pointer}.ryhma-meta-tallenna{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important}.ryhma-meta-virhe{margin:0 0 6px;color:#b91c1c;font-size:12px}.schedule-col-meta{width:140px;min-width:140px}.schedule-table--ryhma-muokkaus .schedule-col-meta{width:300px;min-width:300px}.schedule-table--ryhma-muokkaus,.schedule-table-scroll--ryhma-muokkaus{overflow:visible}.ryhma-muokkaus-modal,.palkki-hallinta-modal{max-width:520px;max-height:min(90vh,720px);overflow-y:auto}.ryhma-muokkaus-modal__yla{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.ryhma-muokkaus-modal__yla h2{margin:0;font-size:1.15rem}.ryhma-muokkaus-modal__kurssi{margin:4px 0 0;font-size:14px;color:#64748b}.ryhma-muokkaus-modal__sulje{flex-shrink:0;border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:#64748b;padding:0 4px}.ryhma-muokkaus-lomake,.palkki-hallinta-lomake{display:flex;flex-direction:column;gap:14px}.ryhma-muokkaus-kentta{display:flex;flex-direction:column;gap:4px;font-size:14px}.ryhma-muokkaus-kentta input,.ryhma-muokkaus-kentta select,.opetusjako-taulu input,.opetusjako-taulu select{width:100%;padding:8px 10px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px}.opetusjako-kentta{border:1px solid #e2e8f0;border-radius:8px;padding:12px;margin:0}.opetusjako-kentta legend{font-weight:600;padding:0 4px}.opetusjako-ohje,.palkki-hallinta-ohje{margin:0 0 10px;font-size:13px;color:#64748b;line-height:1.4}.opetusjako-taulu{width:100%;border-collapse:collapse;font-size:13px}.opetusjako-taulu th,.opetusjako-taulu td{padding:6px 4px;text-align:left;vertical-align:middle}.opetusjako-taulu th{font-weight:600;color:#475569}.opetusjako-tunnit{max-width:72px}.opetusjako-poista{border:none;background:#fee2e2;color:#b91c1c;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:1.1rem;line-height:1}.opetusjako-lisaa{margin-top:8px;align-self:flex-start;padding:6px 12px;font-size:13px;border:1px dashed #94a3b8;border-radius:6px;background:#f8fafc;cursor:pointer}.opetusjako-palkki-valitse{display:block;margin-top:4px;padding:0;border:none;background:none;color:#2563eb;font-size:12px;cursor:pointer;text-decoration:underline}.ryhma-muokkaus-virhe{margin:0;color:#b91c1c;font-size:13px}.ryhma-muokkaus-toiminnot{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.ryhma-muokkaus-toiminnot button{padding:8px 14px;border-radius:6px;font-size:14px;cursor:pointer}.ryhma-muokkaus-toiminnot button[type=submit]{background:#2563eb;color:#fff;border:none}.ryhma-muokkaus-toiminnot button[type=button]{background:#fff;border:1px solid #cbd5e1}.palkki-hallinta-ryhmat h3{margin:0 0 8px;font-size:14px;font-weight:600}.palkki-hallinta-taulu{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:4px}.palkki-hallinta-taulu th,.palkki-hallinta-taulu td{padding:6px 8px;border-bottom:1px solid #e2e8f0;text-align:left}.palkki-hallinta-taulu th{color:#475569;font-weight:600}.palkki-hallinta-osio{border:1px solid #e2e8f0;border-radius:8px;padding:12px;margin:0 0 12px}.palkki-hallinta-osio legend,.palkki-hallinta-osio-otsikko{font-weight:600;font-size:14px;padding:0 4px}.palkki-hallinta-osio-otsikko{margin:0 0 8px}.palkki-hallinta-toiminto{margin-top:8px;padding:8px 14px;font-size:14px;border-radius:6px;border:1px solid #cbd5e1;background:#f8fafc;cursor:pointer}.palkki-hallinta-toiminto--hajauta{background:#2563eb;color:#fff;border-color:#2563eb}.palkki-hallinta-toiminto:disabled{opacity:.55;cursor:not-allowed}.palkki-hajautus-periodit{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0}.palkki-hajautus-periodi{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}.palkki-hajautus-esikatselu{margin:8px 0 0;font-size:13px;color:#475569}.palkki-hallinta-hajautus{margin-bottom:12px}.palkki-hallinta-taulu td:last-child,.palkki-hallinta-taulu th:last-child{width:48px;text-align:center}.login-form-outer{max-width:520px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #d8dee9);border-radius:12px;padding:20px;box-shadow:0 2px 8px #0f172a0a}.login-form-outer .intro{margin-bottom:16px;line-height:1.45;color:var(--color-text-muted, #64748b)}.login-sso-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:48px;margin-bottom:20px}.login-sso-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 12px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;color:#fff;min-height:48px;line-height:1.2;text-align:center}.login-sso-btn__main{display:block}.login-sso-btn__hint{display:block;font-size:11px;font-weight:500;opacity:.92}.login-sso-btn--microsoft{background:#334155}.login-sso-btn--microsoft:hover{background:#1e293b}.login-sso-btn--placeholder{background:#64748b;opacity:.65;cursor:not-allowed}.login-sso-btn--placeholder:hover{opacity:.65}.login-field{margin-bottom:14px}.login-field label{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--color-text-muted, #64748b);margin-bottom:4px;text-transform:uppercase}.login-field input[type=text],.login-field input[type=email],.login-field input[type=password]{width:100%;max-width:400px;padding:10px 12px;border:1px solid var(--color-border-strong, #b7c3d4);border-radius:6px;font-size:15px;box-sizing:border-box;background:var(--color-surface, #fff);color:var(--color-text, #1e293b)}.login-field-hint{font-size:12px;color:var(--color-text-muted, #64748b);margin-top:4px}.login-checkboxes{margin:16px 0;font-size:14px;line-height:1.5}.login-checkboxes label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;text-transform:none;font-weight:400;font-size:14px;color:var(--color-text, #1e293b)}.login-checkboxes input[type=checkbox]{margin-top:3px}.login-submit{padding:10px 20px;font-size:15px;border-radius:6px;border:none;background:var(--color-brand, #2563eb);color:#fff;cursor:pointer;font-weight:600}.login-submit:hover{background:var(--color-brand-strong, #1d4ed8)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-section-title{margin:24px 0 12px;font-size:1.1rem}.login-section-title--first{margin-top:8px}.login-register-block{margin-top:28px;padding-top:20px;border-top:1px solid var(--color-border, #d8dee9)}.login-path-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.login-path-btn{padding:10px 16px;border:2px solid #93c5fd;border-radius:8px;background:var(--color-surface, #fff);font-size:14px;font-weight:600;cursor:pointer;color:var(--color-brand-strong, #1d4ed8)}.login-path-btn:hover{background:var(--color-brand-soft, #dbeafe)}.login-path-btn--active{background:var(--color-brand, #2563eb);border-color:var(--color-brand, #2563eb);color:#fff}.login-path-hint{font-size:13px;color:var(--color-text-muted, #64748b);line-height:1.45;margin:0 0 14px}.login-inline-error{color:#c62828;font-size:14px;margin:0 0 12px;padding:8px 10px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px}.login-inline-hint{color:#166534;font-size:14px;margin:0 0 12px;padding:8px 10px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px}.login-link-btn{background:none;border:none;padding:0;font:inherit;color:var(--color-brand-strong, #1d4ed8);text-decoration:underline;cursor:pointer}.login-link-btn:hover{color:var(--color-brand, #2563eb)}.login-forgot-block{margin-bottom:20px;padding:12px 0 4px;max-width:400px}.landing-c{max-width:1080px;margin:18px auto 24px;padding:22px;border-radius:24px;background:radial-gradient(circle at 88% 8%,rgba(240,126,64,.24),transparent 28%),radial-gradient(circle at 8% 0%,#18584ae6,#0f4a42 62%);color:#f4f6f1;border:1px solid #2a6b5f}.landing-c__hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;align-items:start}.landing-c__logo-wrap{border-radius:18px;background:linear-gradient(160deg,#093832d1,#0f4a42eb);border:1px solid rgba(151,200,181,.35);padding:18px 14px;display:grid;place-items:center;align-items:center;isolation:isolate}.landing-c__lockup{width:min(100%,420px);border-radius:14px;box-shadow:0 10px 26px #04151359}.landing-c h2{margin:0 0 10px;font-size:clamp(34px,4vw,54px);line-height:1.04;color:#f3fff8}.landing-c__headline-part{display:inline}.landing-c__lead{margin:0 0 10px;color:#d7ece2;max-width:62ch}.landing-c__pallukat{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.landing-c__pallukat span{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#dff6eb;letter-spacing:.01em}.landing-c__pallukat span:before{content:"";width:7px;height:7px;border-radius:999px;background:#f07e40}.landing-c__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.landing-c__primary,.landing-c__secondary{border-radius:999px;padding:11px 16px;font-weight:700;cursor:pointer}.landing-c__primary{border:0;background:#f07e40;color:#fff}.landing-c__secondary{border:1px solid #92c7b0;color:#f4f6f1;background:#ffffff0f}.landing-c__footer{margin-top:20px;padding-top:16px;border-top:1px solid rgba(156,203,186,.22);text-align:center}.landing-c__returning{margin:0;font-size:14px;line-height:1.5;color:#a8d4c4}.landing-c__returning-hint{color:#c5e8da}.landing-c__text-link{margin:0;padding:0;border:0;background:none;font:inherit;font-weight:600;color:#e8faf3;text-decoration:underline;text-decoration-color:#f07e40a6;text-underline-offset:3px;cursor:pointer}.landing-c__text-link:hover{color:#fff;text-decoration-color:#f07e40}.landing-c__thanks{margin-top:10px;color:#cef2e1}.landing-c__bios{margin-top:12px;padding:12px;border-radius:12px;border:1px solid rgba(156,203,186,.45);background:#092a2573;color:#e9faf3}.landing-c__bios p{margin:0 0 10px;line-height:1.45}.landing-c__bios p:last-child{margin-bottom:0}.landing-c__form{margin-top:14px;margin-inline:auto;max-width:min(100%,28rem);border:1px solid #3b7d70;background:#092a259e;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}.landing-c__form>.landing-c__primary{align-self:flex-start}.landing-c__grid{display:flex;flex-direction:column;gap:12px}.landing-c input,.landing-c textarea{box-sizing:border-box;width:100%;border:1px solid #8bc0aa;border-radius:9px;padding:10px;background:#f2f8f4;color:#0f4a42;font-family:inherit}.landing-c__form textarea{margin:0;min-height:5.5rem;resize:vertical}@media (max-width: 920px){.landing-c__hero{grid-template-columns:1fr}.landing-c__headline-part{display:block}.landing-c__pallukat span{font-size:14px}}table{table-layout:fixed;width:auto;max-width:800px;border-collapse:collapse}th,td{border:3px solid rgb(12,30,25);padding:8px;text-align:left}th:first-child,td:first-child{width:50px}th:nth-child(2),td:nth-child(2){width:100px}.message{color:green;background:#d3d3d3;font-size:20px;border-style:solid;border-radius:5px;padding:10px;margin-bottom:10px}.errorMessage{color:red;background:#d3d3d3;font-size:20px;border-style:solid;border-radius:5px;padding:10px;margin-bottom:10px}
