:root{color-scheme:dark;--bg:#101617;--surface:#172022;--surface2:#202b2d;--ink:#e9eee9;--muted:#9eadaa;--line:#344341;--accent:#c8edb9;--accent-ink:#132316;--radius:12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.55}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,.button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:7px;background:var(--surface2);color:var(--ink);padding:10px 16px;min-height:44px;text-decoration:none;line-height:1.3}button:hover,.button:hover{background:#2b3939;border-color:#6a8176}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}button.primary:hover{background:#d7f5cb}.quiet{background:transparent;border-color:transparent;color:var(--muted);padding:8px 12px;text-decoration:none;min-height:40px}.quiet:hover{color:var(--ink)}.square{min-width:45px;padding:10px;font-size:20px}.topbar{height:78px;padding:0 4%;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:var(--ink);font-size:18px;letter-spacing:.015em;font-weight:650}.brand-mark{border:1px solid #91a691;color:var(--accent);font-size:24px;letter-spacing:-3px;font-weight:350;width:37px;height:38px;display:grid;place-items:center;padding-right:3px}.top-actions{display:flex;align-items:center;gap:10px}.badge{font-size:12px;border:1px solid var(--line);padding:4px 9px;border-radius:4px;color:var(--accent)}.notice{padding:10px 4%;background:#252e23;border-bottom:1px solid #414c35;color:#c9d9b9;font-size:13px}.viewer-main{display:flex;gap:30px;max-width:1660px;margin:auto;padding:24px 4% 12px}.view-column{min-width:0;flex:1}.scene-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;min-height:25px}.section-label{font-size:11px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.counter{font-variant-numeric:tabular-nums;font-size:13px;color:var(--accent)}.stage{position:relative;aspect-ratio:16/9;max-height:calc(100dvh - 310px);min-height:250px;background:#121e1f;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}.slide-image{width:100%;height:100%;object-fit:contain;display:block;background:#101616}.text-scene{position:relative;width:100%;height:100%;display:flex;align-items:center;padding:6%;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 92% 15%,#405a442e,transparent 50%),linear-gradient(135deg,#1b2d2d,#152021 62%,#27342b)}.scene-copy{position:relative;z-index:1;width:75%;max-width:920px}.scene-rule{width:55px;height:3px;background:var(--accent);margin-bottom:24px}h1{font-size:clamp(30px,4.1vw,67px);font-weight:500;letter-spacing:-.045em;line-height:1.08;margin:0 0 25px}.scene-copy p{max-width:720px;font-size:clamp(15px,1.4vw,21px);line-height:1.7;color:#baccc6;white-space:pre-line;margin:0}.watermark{position:absolute;bottom:16px;right:23px;color:#698272;font-size:10px;letter-spacing:.27em}.industrial-lines{position:absolute;right:4%;top:10%;bottom:0;display:flex;align-items:flex-end;gap:16px;z-index:-1;opacity:.28;transform:skewY(-9deg)}.industrial-lines i{display:block;width:45px;border:1px solid #88a694;background:linear-gradient(90deg,transparent,#8aa79318);height:83%}.industrial-lines i:nth-child(2){height:60%}.industrial-lines i:nth-child(3){height:94%;width:22px}.industrial-lines i:nth-child(4){height:45%;width:90px}.industrial-lines i:nth-child(5){height:70%;width:20px}.transport{padding:19px 0 0}.transport-main{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.transport-main>.primary{min-width:160px}.mode-group{display:flex;align-items:center;gap:8px;flex:1}.muted{color:var(--muted);font-size:12px}.speed-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.speed-label select{min-width:85px;padding:7px}.seek-row{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}input[type=range]{padding:0;width:100%;height:16px;accent-color:var(--accent);cursor:pointer;border:0;min-height:0}.status{font-size:13px;color:var(--muted);min-height:21px;margin:13px 0}.chapters{width:245px;flex-shrink:0;border-right:1px solid var(--line);padding-right:18px;padding-top:5px;max-height:calc(100dvh - 135px);overflow-y:auto}.chapters>.section-label{margin-bottom:16px}.chapter{display:flex;width:100%;border:0;border-radius:6px;text-align:left;justify-content:flex-start;align-items:flex-start;background:transparent;padding:12px 10px;line-height:1.45;margin-bottom:4px;font-size:13px}.chapter>span:first-child{font-size:11px;font-variant-numeric:tabular-nums;opacity:.6;margin-top:2px;width:20px;flex-shrink:0}.chapter.selected{background:#2a392e;color:var(--accent)}.details{border-top:1px solid var(--line);padding:13px 0}.details summary{color:var(--muted);font-size:13px;cursor:pointer}.details h2{font-size:20px;font-weight:550}.details p{white-space:pre-wrap;max-width:85ch;color:#b7c8c2}.viewer-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);padding:10px 0}.viewer-footer>span{max-width:85ch}.presenter{position:absolute;right:18px;bottom:18px;width:24%;min-width:150px;max-width:360px;background:#101616;border:1px solid #749477;border-radius:10px;overflow:hidden;box-shadow:0 10px 40px #0006}.presenter video{width:100%;display:block;max-height:230px;object-fit:contain}.presenter-label{display:flex;justify-content:space-between;align-items:center;padding:0 10px;font-size:11px;color:var(--muted)}.presenter-label button{font-size:11px;padding:4px;min-height:30px}.completion{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#101a19ee;backdrop-filter:blur(10px);z-index:4}.completion h2{font-size:52px;font-weight:450;margin:0 0 20px}.completion p{margin:0}.presentation:fullscreen{overflow:auto;background:var(--bg)}.presentation:fullscreen .stage{max-height:calc(100dvh - 255px)}
/* Hallinta */
.admin-shell{max-width:1600px;margin:auto;padding:28px 4%}.login-card{max-width:440px;margin:8vh auto;border:1px solid var(--line);padding:32px;border-radius:12px;background:var(--surface)}.login-card h1{font-size:28px;letter-spacing:-.025em;margin-bottom:12px}.login-card p{font-size:14px;color:var(--muted)}label.field{display:flex;flex-direction:column;gap:6px;margin:0 0 15px;font-size:13px;color:var(--muted)}input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select{width:100%;border:1px solid var(--line);border-radius:6px;background:#111a1b;color:var(--ink);padding:10px 11px;min-height:43px}textarea{resize:vertical;line-height:1.6}input[type=file]{font-size:13px}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}.admin-toolbar h1{font-size:25px;margin:0;letter-spacing:-.02em}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:220px minmax(280px,1fr) minmax(280px,370px);gap:24px;align-items:start}.admin-nav{position:sticky;top:18px;max-height:88dvh;overflow:auto}.admin-nav>button{margin-top:12px;width:100%}.panel{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:18px}.panel h2{font-size:18px;font-weight:550;letter-spacing:-.01em;margin:0 0 18px}.panel h3{font-size:14px;font-weight:600;margin:22px 0 12px}.small{font-size:12px;color:var(--muted)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row>.field{flex:1;min-width:100px}.row.buttons{gap:8px;margin:14px 0}.row.buttons>button{flex:1}.danger{color:#f3b8a4}.admin-preview{width:100%;min-height:170px;aspect-ratio:16/9;background:#101819;border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;overflow:hidden}.admin-preview img{width:100%;height:100%;object-fit:contain}.admin-preview p{font-size:23px;padding:20px;text-align:center}.radio-row{display:flex;gap:18px;margin:15px 0;font-size:14px}.radio-row label{display:flex;align-items:center;gap:6px}.rec-preview{display:block;width:100%;max-height:245px;border-radius:6px;background:#0b1010}.rec-preview.audio-only{height:58px}.rec-clock{font-variant-numeric:tabular-nums;font-size:26px;color:var(--accent);margin:12px 0;letter-spacing:.06em}.recording .rec-clock{color:#ffb29e}.recording .rec-clock:before{content:'● ';font-size:16px}.record-pending{padding:14px 0;border-bottom:1px solid var(--line)}.record-pending a{color:var(--accent)}.rec-status{min-height:20px}.error{color:#ffc4b7!important}.success{color:var(--accent)!important}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.wide-details{border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin-bottom:20px}.wide-details summary{cursor:pointer;font-size:14px}.wide-details>.settings-grid{margin-top:22px}.admin-message{padding:10px 0;font-size:13px;margin:0;min-height:40px}.check{display:flex;align-items:center;gap:10px;font-size:13px;margin:12px 0}.limit{font-size:12px;color:var(--muted)}.busy{opacity:.6;pointer-events:none}.login-card code,.help code{font-size:12px;background:#0c1313;padding:3px 6px}.import-progress{font-size:13px;white-space:pre-wrap}.current-media{font-size:13px;color:var(--accent);margin:10px 0}.help{max-width:900px;margin:20px 0;font-size:13px;color:var(--muted)}.sticky-status{position:sticky;top:0;z-index:3;background:var(--bg);border-bottom:1px solid var(--line);margin-bottom:15px}.rec-warning{padding:10px;border:1px solid #695637;border-radius:5px;font-size:12px;color:#dbccb4}.draft-badge{font-size:11px;border-left:2px solid var(--accent);padding-left:8px;color:var(--muted)}
@media(min-width:1500px){.stage{max-height:760px}.viewer-main{padding-top:30px}}@media(max-width:1100px){.admin-grid{grid-template-columns:180px minmax(250px,1fr)}.rec-column{grid-column:2}.mode-group .muted{display:none}.scene-copy{width:90%}.scene-copy p{font-size:16px}}@media(max-width:800px){.topbar{height:64px;padding:0 5%}.brand{font-size:16px}.top-actions{gap:0}.top-actions .quiet{padding:7px;font-size:12px}.brand-mark{width:29px;height:31px;font-size:21px}.admin-link{display:none}.viewer-main{padding:18px 5%}.stage{max-height:none;min-height:210px}.text-scene{min-height:280px;padding:8%}.stage:has(.text-scene:not([hidden])){aspect-ratio:auto}.scene-copy{width:100%}.scene-copy h1{font-size:34px;margin-bottom:19px}.scene-copy p{font-size:15px;line-height:1.65}.watermark{font-size:8px;bottom:9px}.scene-rule{margin-bottom:20px}.industrial-lines{opacity:.13}.transport-main{gap:7px}.transport-main>.primary{min-width:150px;flex:1}.mode-group{order:4;flex-basis:100%;justify-content:space-between}.speed-label{margin-left:auto}.chapters{position:fixed;left:0;top:64px;bottom:0;width:100%;max-height:none;z-index:20;background:var(--bg);padding:24px 5%;border:0}.viewer-footer{align-items:flex-start}.viewer-footer>span{font-size:10px}.viewer-footer button{font-size:11px;flex-shrink:0}.presenter{right:8px;bottom:8px;width:29%;min-width:100px}.presenter-label{padding:0 5px}.presenter-label>span{display:none}.presenter-label button{font-size:9px;min-height:24px}.completion h2{font-size:38px}.admin-shell{padding:20px 5%}.admin-grid{grid-template-columns:1fr}.admin-nav{position:static;max-height:210px}.admin-nav nav{display:flex;gap:5px;overflow-x:auto}.admin-nav .chapter{min-width:135px;max-width:180px;margin:0}.admin-nav>button{width:auto}.rec-column{grid-column:auto}.panel{padding:18px}.settings-grid{grid-template-columns:1fr}.admin-toolbar h1{font-size:23px}.top-actions .badge{display:none}.transport{padding-top:14px}.speed-label{font-size:11px}.speed-label select{min-width:65px;padding:6px}.details p{font-size:14px}.notice{font-size:11px}.completion .primary{font-size:13px}}@media(prefers-reduced-motion:no-preference){button,.button{transition:background .15s,border-color .15s}.text-scene .scene-copy{animation:fadeIn .35s ease-out}@keyframes fadeIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}}

.script-read{font-size:17px;line-height:1.8;white-space:pre-wrap;max-height:38vh;overflow:auto;padding:16px 0;color:var(--ink)}.rec-column{position:sticky;top:18px;max-height:calc(100dvh - 36px);overflow:auto}#record-panel:fullscreen{background:var(--bg);width:100%;height:100%;overflow:auto;padding:28px max(5%,calc((100vw - 1100px)/2))}#record-panel:fullscreen .script-read{font-size:clamp(19px,2vw,27px);max-height:42vh}#record-panel:fullscreen .rec-preview{max-height:180px;width:auto;max-width:100%}@media(max-width:800px){.rec-column{position:static;max-height:none;overflow:visible}}

/* Multi-user light theme */
:root[data-theme="light"]{color-scheme:light;--bg:#f2f5f3;--surface:#ffffff;--surface2:#e8eeeb;--ink:#182321;--muted:#596964;--line:#c7d1cd;--accent:#246d57;--accent-ink:#ffffff}
[data-theme="light"] body{background:var(--bg);color:var(--ink)}
[data-theme="light"] button:hover,[data-theme="light"] .button:hover{background:#dce7e2;border-color:#78958a}
[data-theme="light"] button.primary:hover,[data-theme="light"] .button.primary:hover{background:#185944}
[data-theme="light"] input:not([type=range]):not([type=checkbox]):not([type=radio]),[data-theme="light"] textarea,[data-theme="light"] select{background:#ffffff;color:var(--ink)}
[data-theme="light"] .stage,[data-theme="light"] .slide-image,[data-theme="light"] .presenter,[data-theme="light"] .admin-preview,[data-theme="light"] .rec-preview{background:#eef2f0}
[data-theme="light"] .text-scene{background:radial-gradient(ellipse at 92% 15%,#79a68b2b,transparent 50%),linear-gradient(135deg,#f7faf8,#edf3f0 62%,#dfe9e3)}
[data-theme="light"] .scene-copy p,[data-theme="light"] .details p{color:#455b53}
[data-theme="light"] .chapter.selected{background:#dbe9e2;color:#174f3b}
[data-theme="light"] .sticky-status{background:var(--bg)}
[data-theme="light"] .completion{background:#f4f7f5ee}
.user-name{font-size:12px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-dialog{width:min(1080px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);overflow:auto;overscroll-behavior:contain}
.account-dialog::backdrop{background:#0009}
.account-dialog>.editor-heading{position:sticky;top:0;z-index:3;background:var(--surface)}
.account-form,.user-manager-body{padding:20px}
.account-form{max-width:620px}
.account-status{min-height:24px;margin:0;padding:0 20px 20px;font-size:13px}
.user-manager-body{display:grid;grid-template-columns:minmax(260px,360px) minmax(320px,1fr);gap:24px}
.user-create-form{padding:18px;border:1px solid var(--line);border-radius:8px;align-self:start;position:sticky;top:72px}
.user-create-form h3{margin-top:0}
.user-list{display:grid;gap:14px}
.user-card{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--surface2)}
.user-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.user-card h3{margin:0;font-size:17px}.user-card>a{font-size:13px;color:var(--accent)}
.user-edit-form{display:grid;grid-template-columns:1fr 160px;gap:10px;margin-top:14px}.user-edit-form>.check,.user-edit-form>button{align-self:end}.password-reset-form{display:flex;gap:8px;margin-top:10px}.password-reset-form input{flex:1}
@media(max-width:800px){.user-name{display:none}.user-manager-body{grid-template-columns:1fr}.user-create-form{position:static}.user-edit-form{grid-template-columns:1fr}.password-reset-form{flex-direction:column}.account-dialog{width:100%;height:100dvh;max-height:none;border-radius:0;border:0;margin:0}}

.presentation-picker{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:16px}.presentation-picker label{display:flex;align-items:center;gap:10px;min-width:0}.presentation-picker select{max-width:min(460px,70vw)}.account-dialog{overscroll-behavior:contain}.account-dialog .editor-heading{position:sticky;top:0;background:var(--surface);z-index:1}body:has(.account-dialog[open]),body:has(.asset-dialog[open]){overflow:hidden}

.transfer-content{padding:20px;max-width:820px}.transfer-content hr{border:0;border-top:1px solid var(--line);margin:24px 0}.transfer-content h3{font-size:17px}.transfer-content>input{max-width:100%}#transfer-status{white-space:pre-wrap;margin-top:16px;min-height:40px;font-size:14px}.transfer-content .check{margin:14px 0}
