:root{--brand:#006845;--brand-dark:#005437;--brand-tint:#e8f1ed;--brand-text:var(--brand-dark);--light-red:#b3261e;--light-yellow:#b8860b;--light-green:#2e7d32;--ink:#1a1a1a;--ink-muted:#5b5b5b;--line:#d9ddda;--surface:#fff;--bg:#f5f7f6;--radius:8px;--gap:12px;--space-2xs:2px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}input,textarea,select{background:var(--surface);color:var(--ink)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--brand:#1a8058;--brand-dark:#146648;--brand-tint:#17281f;--brand-text:#45b884;--light-red:#e5837c;--light-yellow:#e8b84b;--light-green:#6fbf73;--ink:#e7eeea;--ink-muted:#9fb0a7;--line:#3a4f42;--surface:#16261f;--bg:#0f1e18;--tint-neutral:#1c2820;--tint-red:#3a1614;--tint-yellow:#332615;--report-source:#8ca79a;--fact-field-key:#7e9089;--tint-purple:#241c36;--tint-blue:#1e2836;--question-text:#9d84c9;--question-lahde:#9585b8}}:root[data-theme=dark]{--brand:#1a8058;--brand-dark:#146648;--brand-tint:#17281f;--brand-text:#45b884;--light-red:#e5837c;--light-yellow:#e8b84b;--light-green:#6fbf73;--ink:#e7eeea;--ink-muted:#9fb0a7;--line:#3a4f42;--surface:#16261f;--bg:#0f1e18;--tint-neutral:#1c2820;--tint-red:#3a1614;--tint-yellow:#332615;--report-source:#8ca79a;--fact-field-key:#7e9089;--tint-purple:#241c36;--tint-blue:#1e2836;--question-text:#9d84c9;--question-lahde:#9585b8}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0;line-height:1.45}h1{margin:0;font-size:1.35rem}h2{margin:20px 16px 8px;font-size:1.1rem}h3{margin:0 0 6px;font-size:1rem}button{font:inherit;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);cursor:pointer;padding:8px 14px}button:hover:not(:disabled){background:var(--brand-dark)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{color:var(--brand);background:0 0}button.secondary:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.centered{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.card{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:24px}button.card:hover:not(:disabled){background:var(--brand-tint)}.login{flex-direction:column;gap:6px;max-width:420px;display:flex}.login-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.login h2{margin:12px 0 8px}.login label{color:var(--ink-muted);font-size:.9rem}.login input{font:inherit;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;padding:8px 10px}.login button{margin-top:8px}.error{color:var(--light-red);border-radius:var(--radius);background:#fdecea;margin:4px 0;padding:8px 10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .error{background:var(--tint-red)}}:root[data-theme=dark] .error{background:var(--tint-red)}.topbar{gap:var(--gap);background:var(--brand);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.topbar button{background:0 0;border-color:#fff}.topbar button.secondary{color:#fff}.topbar button.secondary:hover:not(:disabled){background:var(--brand-dark);color:#fff}.topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.signed-in{font-size:.9rem}.lang-toggle{gap:4px;display:flex}.lang-toggle button{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:0 0;padding:4px 8px;font-size:.85rem}.lang-toggle button.lang-active{background:var(--brand);color:#fff;border-color:var(--brand)}.topbar .lang-toggle button.lang-active{color:var(--brand-text);background:#fff}.lang-toggle button{color:var(--brand)}.topbar .lang-toggle button{color:#fff;font-size:inherit;border-color:#ffffff8c;padding:8px 12px}.topbar .lang-toggle button.lang-active{border-color:#fff}.topbar-actions>button:last-child{margin-left:8px}.topbar{border-bottom:4px solid #0000}.topbar-staff{border-bottom-color:#fff}.topbar-patient{border-bottom-color:var(--brand-tint)}.role-badge{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:600;line-height:1}.role-badge-staff{color:var(--brand-text);background:#fff}.role-badge-patient{background:var(--brand-tint);color:var(--brand-text)}.loading,.empty-state{margin:16px}.empty-state{width:auto;max-width:520px}.empty-state h2{margin:0 0 6px;font-size:1rem}.patient-list{margin:0;padding:0 16px 24px;list-style:none}.patient-row{align-items:stretch;gap:var(--gap);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px;display:flex}.row-open{gap:var(--gap);text-align:left;color:inherit;background:0 0;border:none;flex:1;align-items:flex-start;padding:4px;display:flex}.row-open:hover:not(:disabled){background:var(--brand-tint)}.light{background:var(--line);border-radius:50%;flex:none;width:14px;height:14px;margin-top:4px}.light.light-red{background:var(--light-red)}.light.light-yellow{background:var(--light-yellow)}.light.light-green{background:var(--light-green)}.row-main{flex-direction:column;flex:1;gap:4px;display:flex}.row-top{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.name{font-weight:600}.light-label,.recovery-day,.last-entry{color:var(--ink-muted);font-size:.85rem}.signals{flex-wrap:wrap;gap:6px;margin:2px 0;padding:0;list-style:none;display:flex}.signals.empty{color:var(--ink-muted);font-size:.85rem}.signal{border:1px solid var(--line);background:#fafafa;border-radius:999px;padding:2px 8px;font-size:.85rem}.signal.level-red{border-color:var(--light-red);color:var(--ink);background:#fdf1f0}.signal.level-yellow{border-color:var(--light-yellow);color:var(--ink);background:#fdf6e4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .signal{background:var(--tint-neutral)}:root:not([data-theme=light]) .signal.level-red{background:var(--tint-red)}:root:not([data-theme=light]) .signal.level-yellow{background:var(--tint-yellow)}}:root[data-theme=dark] .signal{background:var(--tint-neutral)}:root[data-theme=dark] .signal.level-red{background:var(--tint-red)}:root[data-theme=dark] .signal.level-yellow{background:var(--tint-yellow)}.signal.level-info{color:var(--ink-muted);border-style:dashed}.signal-icon{margin-right:4px}.signal.more{color:var(--ink-muted)}.row-report{flex:none;align-self:center}.patient-view{flex-direction:column;gap:16px;padding:16px;display:flex}.patient-header{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.patient-summary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.patient-summary h2{margin:0;font-size:1.2rem}.legend-label{color:var(--ink-muted)}.goal-legend{color:var(--ink-muted);flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.goal-legend li{align-items:center;gap:6px;display:flex}.goal-swatch{border-radius:2px;flex:none;width:12px;height:12px}.goal-swatch-line{border-top-style:dashed;border-top-width:2px;border-radius:0;height:0}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.chart-card h2{margin:0 0 8px;font-size:1.05rem}.chart-card h3{color:var(--ink-muted);margin:0 0 6px;font-size:.95rem}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.chart-head select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:4px 6px}.chart-empty{color:var(--ink-muted);margin:8px 0;font-size:.9rem}.entry-rows{margin:8px 0 0;padding:0;list-style:none}.entry-row{--entry-day-w:2.5rem;--entry-gap:8px;gap:var(--entry-gap);border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;padding:4px 0 10px;display:flex}.entry-row:first-child{border-top:0}.entry-day{color:var(--ink-muted);min-width:var(--entry-day-w);font-size:.85rem}.entry-main,.latest-kind{font-weight:600}.entry-detail{color:var(--ink-muted)}.entry-note{margin-left:calc(var(--entry-day-w) + var(--entry-gap));color:var(--ink-muted);flex-basis:100%;font-size:.9rem}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.timeline-tooltip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:280px;padding:8px 10px;font-size:.85rem;box-shadow:0 2px 8px #0000001f}.timeline-tooltip p{margin:0 0 2px}.tt-stamp{color:var(--ink-muted)}.tt-group{margin-top:6px}.tt-heading{font-weight:600}.tt-item{color:var(--ink);padding-left:8px}.tt-item-active{color:var(--brand);font-weight:600}.tt-mark{vertical-align:-2px;border:1.5px solid;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;margin-right:5px;font-family:Georgia,serif;font-size:.7rem;font-weight:700;display:inline-flex}.photos{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.photo-strip{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.photo-add{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--line)}.photo-add h4{margin:0 0 var(--space-sm)}.photo-add-row{gap:var(--space-xs);margin-bottom:var(--space-sm);flex-direction:column;display:flex}.photo-add-row label{align-items:center;min-height:24px;display:flex}.photo-add-row input{font:inherit;padding:var(--space-sm);box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;min-height:32px;color:var(--ink);border-radius:6px}.photo-add-row input[type=file]{padding:var(--space-xs) 0;background:0 0;border:0}.photo{flex:none;width:10rem;max-width:100%}.photo button{width:100%;height:10.5rem;color:inherit;border:1px solid var(--line);text-align:left;background:0 0;flex-direction:column;align-items:stretch;gap:2px;padding:8px 10px;display:flex;overflow:hidden}.photo button:hover:not(:disabled){background:var(--brand-tint)}.photo-thumb{object-fit:cover;border:1px solid var(--line);border-radius:4px;width:100%;height:4.5rem;margin-bottom:4px;display:block}.photo.viewed button{border-color:var(--brand)}.photo-date,.photo-caption,.photo-state{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.photo-date{font-size:.9rem;font-weight:600}.photo-caption,.photo-state{color:var(--ink-muted);font-size:.8rem}.photo.viewed .photo-state{color:var(--brand)}.photo-open{flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px;display:flex}.photo-open .photo-zoom{max-width:100%}.photo-zoom{border-radius:var(--radius);border:1px solid var(--line);touch-action:pan-y;background:var(--bg);overflow:hidden}.photo-zoom img{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;max-height:55vh;display:block}.photo-zoom.zoomable{touch-action:none;cursor:grab}.photo-zoom.dragging{cursor:grabbing}.zoom-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.zoom-hint,.zoom-note{color:var(--ink-muted);margin:4px 0 0;font-size:.8rem}.zoom-level{font-size:.85rem;font-weight:600}.photos-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.compare-hint{color:var(--ink-muted);margin:4px 0 8px;font-size:.85rem}.photo.picked button{border-color:var(--brand);background:var(--brand-tint)}.photo-compare{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.photo-compare figure{flex:280px;min-width:0;margin:0}.photo-compare figcaption{align-items:baseline;gap:6px;margin-bottom:4px;font-size:.9rem;font-weight:600;display:flex}.photo-compare figcaption .zoom-level{color:var(--ink-muted);font-weight:400}.compare-ack{margin-top:8px}.photo-notes{max-width:640px;margin-top:14px}.photo-notes h4{margin:0 0 6px;font-size:.95rem}.photo-notes ul{flex-direction:column;gap:8px;margin:0 0 10px;padding:0;list-style:none;display:flex}.photo-notes li{border-left:3px solid var(--brand-tint);padding-left:10px}.note-body{white-space:pre-wrap;margin:0}.note-meta{color:var(--ink-muted);margin:2px 0 0;font-size:.8rem}.note-form{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.note-form textarea{font:inherit;border:1px solid var(--line);border-radius:var(--radius);resize:vertical;width:100%;padding:8px 10px}.page{flex-direction:column;gap:16px;padding:16px;display:flex}.page>h2{margin:0}.page>button{align-self:flex-start}.patient-home{flex-direction:column;gap:16px;padding:16px;display:flex}.patient-home .topbar{margin:-16px -16px 0}.questions-card{flex-direction:column;gap:8px;display:flex}.questions-card h2,.questions-card h3{margin:0}.questions-date,.questions-progress{color:var(--ink-muted);margin:0;font-size:.85rem}.questions-readonly{color:var(--ink-muted);margin:0;font-size:.85rem;font-style:italic}.question-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.question-head{color:var(--brand-text);border-bottom:1px solid var(--line);margin-top:10px;padding-bottom:2px;font-size:.9rem;font-weight:600}.question-list>.question-head:first-child{margin-top:0}.question label{cursor:pointer;align-items:flex-start;gap:8px;padding:4px 0;display:flex}.question label:has(input[disabled]){cursor:default}.question input{width:18px;height:18px;accent-color:var(--brand);flex:none;margin-top:4px}.question-text{display:inline}.question-n{margin-right:4px}.question-star{color:var(--light-yellow);vertical-align:-1px;margin-right:4px}.question.done .question-text{color:var(--ink-muted)}.question-source{color:var(--ink-muted);margin-left:26px;font-size:.75rem;display:block}.question-note{white-space:pre-wrap;margin:0}.note-label{margin:8px 0 0;font-size:.9rem;font-weight:600;display:block}.questions-card textarea{font:inherit;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:8px}.note-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.saved-flash{color:var(--brand);font-size:.85rem}.save-error{color:var(--light-red);margin:0 16px}.group-actions,.group-confirm{justify-content:flex-end}.topic-add{gap:8px}.hidden-visits>button{align-self:flex-start}.hidden-visit-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hidden-visit-list li{justify-content:space-between;align-items:center;gap:12px;display:flex}.question-actions,.question-answer-field,.question-answer{margin-left:26px}.question-actions{flex-wrap:wrap;align-items:center;gap:10px;padding:2px 0;display:flex}.question-confirm{color:var(--ink-muted);font-size:.85rem}.link-button{font:inherit;color:var(--brand-text);cursor:pointer;background:0 0;border:none;align-items:center;min-height:24px;padding:0;font-size:.85rem;text-decoration:underline;display:inline-flex}.link-button:hover{color:var(--brand)}.danger{background:var(--light-red);border-color:var(--light-red);color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .danger{background:#cc4438;border-color:#cc4438}}:root[data-theme=dark] .danger{background:#cc4438;border-color:#cc4438}.question-editor{flex-direction:column;gap:6px;padding:6px 0;display:flex}.question-star-toggle{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.question-star-toggle input{width:18px;height:18px;accent-color:var(--brand);flex:none}.question-answer-field{flex-direction:column;gap:4px;padding:2px 0 6px;display:flex}.question-answer-field .note-label{margin:4px 0 0}.question-answer{margin:2px 0 6px 26px;font-size:.9rem}.question-answer-label{color:var(--ink-muted);display:block}.question-answer-text{white-space:pre-wrap}.question-staff-field{flex-direction:column;gap:4px;margin-left:26px;padding:2px 0 6px;display:flex}.question-staff-field .note-label{margin:4px 0 0}.question-staff-note{margin:2px 0 6px 26px;font-size:.9rem}.question-staff-text{white-space:pre-wrap}.question-staff-by{color:var(--ink-muted);font-size:.85rem}.facts-view{flex-direction:column;gap:12px;display:flex}.facts-view>h2{margin:0}.fact-filter{font-size:.9rem}.fact-filter select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:4px 6px}.fact-group{flex-direction:column;gap:8px;display:flex}.fact-group h3{margin:0}.fact-conflict{border-radius:var(--radius);background:#fdf6e3;align-items:flex-start;gap:6px;margin:0;padding:6px 10px;font-size:.9rem;display:flex}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fact-conflict{background:var(--tint-yellow)}}:root[data-theme=dark] .fact-conflict{background:var(--tint-yellow)}.fact-conflict .warn-ico{color:var(--light-yellow);flex:none;margin-top:2px}.fact-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.fact{border:1px solid var(--line);border-radius:var(--radius);padding:10px}.fact.review-vahvistettu{border-color:var(--brand)}.fact.review-hylatty{opacity:.65}.fact-main{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fact-field{color:var(--ink-muted);font-size:.8rem}.fact-field-key{color:#7a7a7a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fact-field-key{color:var(--fact-field-key)}}:root[data-theme=dark] .fact-field-key{color:var(--fact-field-key)}.fact-value{font-weight:600}.fact-review{color:var(--ink-muted);margin-left:auto;font-size:.8rem}.fact-review.review-vahvistettu{color:var(--brand)}.fact-quote{margin:6px 0 0;font-size:.9rem}.fact-quote-label{color:var(--ink-muted)}.fact-edited-from,.fact-meta{color:var(--ink-muted);margin:4px 0 0;font-size:.8rem}.fact-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.fact-actions input[type=text]{font:inherit;border:1px solid var(--line);border-radius:6px;flex:180px;padding:6px 8px}.fact-edit-label{color:var(--ink-muted);font-size:.85rem}.report-route{max-width:820px;padding:var(--gap);margin:0 auto}.report-actions{margin-bottom:var(--gap);flex-wrap:wrap;gap:8px;display:flex}.report{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.report-head .report-title{margin:0 0 4px;font-size:1.4rem}.report-patient{margin:0 0 2px;font-weight:600}.report-meta{color:var(--ink-muted);margin:0 0 6px;font-size:.9rem}.report-ai-note{color:var(--ink-muted);margin:0 0 6px;font-size:.85rem}.report-disclaimer{color:var(--ink-muted);border-left:3px solid var(--line);margin:0 0 12px;padding-left:8px;font-size:.85rem}.light-disclaimer{color:var(--ink-muted);border-left:3px solid var(--line);margin:8px 0 0;padding-left:8px;font-size:.85rem}.ai-mark{color:var(--brand);align-items:center;gap:4px;margin-left:8px;font-size:.8rem;font-weight:400;display:inline-flex}.report-section{margin-top:18px}.report-section h2{border-bottom:1px solid var(--line);margin:0 0 6px;padding-bottom:4px;font-size:1.05rem}.report-empty{color:var(--ink-muted);margin:0;font-size:.9rem}.report-rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.report-rows li{break-inside:avoid;flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.report-text{flex:100%}.report-confidence{color:var(--ink);border:1px solid var(--light-yellow);background:#fdf6e4;border-radius:999px;padding:0 6px;font-size:.78rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .report-confidence{background:var(--tint-yellow)}}:root[data-theme=dark] .report-confidence{background:var(--tint-yellow)}.report-source{color:#6b6b6b;font-size:.78rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .report-source{color:var(--report-source)}}:root[data-theme=dark] .report-source{color:var(--report-source)}.report-source-ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dialog-scrim{z-index:50;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);color:var(--ink);border-radius:var(--radius);width:100%;max-width:420px;max-height:100%;padding:20px;overflow-y:auto}.dialog h3{margin-top:0}.dialog:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.dialog-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.share-url{overflow-wrap:anywhere;margin-bottom:12px;display:block}.grant-form label{align-items:center;gap:var(--space-sm);min-height:24px;padding:var(--space-xs) 0;cursor:pointer;display:flex}:is(.grant-form label:has(input[type=text]),.grant-form label:has(input[type=password])){align-items:stretch;gap:var(--space-xs);cursor:default;flex-direction:column}.grant-form input[type=text],.grant-form input[type=password]{font:inherit;padding:var(--space-sm);box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;min-height:32px;color:var(--ink);border-radius:6px}.grant-form input[type=checkbox],.grant-form input[type=radio]{width:18px;height:18px;accent-color:var(--brand);flex:none}.grant-form fieldset{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-md);margin:0 0 var(--space-lg)}.grant-form legend{padding:0 var(--space-xs);font-weight:600}.access-meta,.access-scope,.access-openings{color:var(--ink-muted);margin:0 0 6px;font-size:.9rem}.access-note{margin:var(--space-sm) 0 0;color:var(--ink-muted);font-size:.9rem}.grant-kinds{margin:var(--space-lg) 0;padding:0;list-style:none}.grant-facts{margin:var(--space-lg) 0;padding-left:var(--space-lg)}.preview-overlay{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;display:flex}.preview-overlay>p{margin:0}@media print{@page{size:A4;margin:14mm}.no-print{display:none!important}body{background:#fff}.report-route{max-width:none;margin:0;padding:0}.report{color:#111;border:0;border-radius:0;padding:0;font-size:10.5pt}.report-head .report-title{font-size:15pt}.report-section{break-inside:avoid-page;margin-top:10pt}.report-section h2{border-bottom:1px solid #999;font-size:11.5pt}.report-rows{gap:4pt}.report-source,.report-confidence{color:#555;font-size:8pt}.report-disclaimer{font-size:8.5pt}}.physio-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.physio-section h2{margin:0 0 8px;font-size:1.05rem}.physio-section h3{color:var(--ink-muted);margin:12px 0 6px;font-size:.95rem}.physio-section h4{margin:10px 0 4px;font-size:.9rem}.physio-section .empty{color:var(--ink-muted);margin:8px 0;font-size:.9rem}.physio-summary{color:var(--ink-muted);margin:0;font-size:.9rem}.physio-grid{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.physio-cell{background:color-mix(in srgb, var(--brand) calc(var(--fill,0) * 55%), var(--surface));border:1px solid var(--line);min-width:62px;font:inherit;color:var(--ink);cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;display:flex}.physio-cell.open{outline:2px solid var(--brand)}.physio-cell.nolog{background:var(--surface);color:var(--ink-muted);border-style:dashed}.physio-cell.attention{border-color:var(--light-red)}.physio-cell-date{color:var(--ink-muted);font-size:.75rem}.physio-cell-count{font-size:.9rem;font-weight:600}.physio-attention{color:var(--light-red);font-size:.7rem;font-weight:600}.physio-detail ul,.physio-exercises,.physio-rules,.physio-history{margin:4px 0;padding-left:18px;font-size:.9rem}.physio-detail li,.physio-exercises li,.physio-rules li{margin-bottom:4px}.physio-stop,.physio-exercises li.warn{color:var(--light-red)}.physio-exercise-note{color:var(--ink-muted);font-size:.85rem}.physio-source{color:var(--ink-muted);margin:0;font-size:.85rem}.physio-note{margin:4px 0;font-size:.85rem;font-style:italic}.physio-history li.active{font-weight:600}.physio-stopsigns{border-collapse:collapse;width:100%;font-size:.85rem}.physio-stopsigns th{text-align:left;color:var(--ink-muted);padding:2px 6px 2px 0}.physio-stopsigns td{vertical-align:top;padding:2px 6px 2px 0}.ftkaynti-table-wrap{overflow-x:auto}.ftkaynti-table{border-collapse:collapse;font-size:.85rem}.ftkaynti-table th,.ftkaynti-table td{text-align:right;white-space:nowrap;padding:3px 8px 3px 0}.ftkaynti-table thead th,.ftkaynti-table tbody th{text-align:left;color:var(--ink-muted);font-weight:500}.ftkaynti-table tbody tr{border-top:1px solid var(--line)}.ftkaynti-legend{flex-wrap:wrap;gap:4px 14px;margin:6px 0;padding:0;font-size:.85rem;list-style:none;display:flex}.ftkaynti-legend li{align-items:center;gap:6px;display:flex}.ftkaynti-swatch{border-top-width:3px;border-top-color:currentColor;width:18px;height:0;display:inline-block}.ftkaynti-note{color:var(--ink-muted);margin:4px 0 0;font-size:.8rem}.ftkaynti-notes{margin:6px 0 0;padding-left:18px;font-size:.85rem}.share-page{flex-direction:column;gap:16px;max-width:900px;margin:0 auto;padding:16px;display:flex}.share-page h1{margin:0 0 8px;font-size:1.25rem}.share-intro h2{color:var(--ink-muted);margin:16px 0 4px;font-size:.95rem}.share-facts{flex-wrap:wrap;gap:4px 14px;margin:0;font-size:.95rem;display:flex}.share-scope{flex-wrap:wrap;gap:6px;margin:4px 0;padding:0;list-style:none;display:flex}.share-scope li{border:1px solid var(--line);color:var(--ink-muted);border-radius:999px;padding:2px 10px;font-size:.85rem}.share-range,.share-nameless{color:var(--ink-muted);margin:4px 0 0;font-size:.9rem}.share-disclaimer{border-top:1px solid var(--line);color:var(--ink-muted);margin:16px 0 0;padding-top:12px;font-size:.9rem}.share-signals-note{color:var(--ink-muted);margin:12px 0 0;font-size:.9rem}.share-data-heading{margin:0;font-size:1rem}.share-notice{max-width:520px}.share-notice p{margin:8px 0 0}.share-notice button{margin-top:16px}.view-switcher{gap:var(--space-xs);padding:var(--space-sm) 0;border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.view-switcher-item{color:var(--ink);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000}.view-switcher-item:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.view-switcher-item.is-current,.view-switcher-item:disabled{color:var(--brand-text);text-underline-offset:4px;cursor:default;opacity:1;background:0 0;font-weight:700;text-decoration:underline;text-decoration-thickness:3px}.vaihe-nimi{margin:0 0 var(--space-sm);color:var(--ink);font-weight:600}.vaihe-rivit{margin:0;padding:0;list-style:none}.vaihe-rivi{gap:var(--space-sm);padding:var(--space-sm) 0;border-top:1px solid var(--line);color:var(--ink);flex-wrap:wrap;align-items:baseline;display:flex}.vaihe-rivi:first-child{border-top:0}.vaihe-avain{min-width:8.5rem;color:var(--ink-muted)}.vaihe-arvo{flex:12rem}.vaihe-valta-otsikko{margin:var(--space-lg) 0 0;color:var(--light-red);font-weight:600}.vaihe-lahteet{gap:var(--space-xs);flex:none;display:inline-flex}.vaihe-lahde{padding:0 var(--space-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);white-space:nowrap;border-radius:999px;font-size:.75rem;line-height:1.6}.vaihe-lahde-kirurgi{background:var(--brand-tint);color:var(--brand-text);border-color:var(--brand)}.vaihe-lahde-kirjallisuus{background:var(--bg);color:var(--ink-muted);border-color:var(--line);border-style:dashed}.kuorma-paivat{margin:0 0 var(--space-md);padding:0;list-style:none}.kuorma-paiva{gap:var(--space-sm);padding:var(--space-xs) 0;border-top:1px solid var(--line);color:var(--ink);flex-wrap:wrap;display:flex}.kuorma-paiva:first-child{border-top:0}.kuorma-pvm{min-width:4rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.kuorma-arvot{flex:10rem}.kuorma-paiva-tyhja .kuorma-arvot{color:var(--ink-muted);font-style:italic}.kuorma-vajaa{color:var(--light-yellow);font-size:.8rem}.kuorma-yhteenveto{color:var(--ink);margin:0}.kuorma-askeleet{margin:var(--space-xs) 0 0;color:var(--ink-muted);font-size:.9rem}.jumppa-kerrat{margin:0 0 var(--space-sm);color:var(--ink)}.jumppa-valiin{margin:0;padding:0;list-style:none}.jumppa-valiin-rivi{gap:var(--space-sm);padding:var(--space-xs) 0;border-top:1px solid var(--line);color:var(--ink);flex-wrap:wrap;justify-content:space-between;display:flex}.jumppa-valiin-rivi:first-child{border-top:0}.jumppa-liike{flex:10rem}.jumppa-osuus{color:var(--ink-muted);font-variant-numeric:tabular-nums}.documents-view{gap:var(--space-md);flex-direction:column;display:flex}.documents-view>h2{margin:0}.doc-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.doc-card{gap:var(--space-xs);text-align:left;background:var(--surface);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-md);font:inherit;cursor:pointer;flex-direction:column;display:flex}.doc-card:hover:not(:disabled){background:var(--brand-tint)}.doc-kind{font-weight:600}.doc-meta{color:var(--ink-muted);margin:0;font-size:.85rem}.doc-note{font-size:.9rem}.doc-back{align-self:flex-start}.doc-page{border:1px solid var(--line);border-radius:var(--radius);background:#fff;max-width:100%}.doc-facts{border-top:1px solid var(--line);padding-top:var(--space-md)}.doc-facts summary{cursor:pointer;min-height:24px;font-weight:600}.toipuja-header{gap:var(--space-sm);flex-direction:column;display:flex}.toipuja-nimi{color:var(--ink-muted);margin:0;font-size:.9rem}.toipuja-paiva{color:var(--brand-text);margin:0;font-size:1.8rem;font-weight:700}.toipuja-vaihe{margin:0;font-weight:600}.toipuja-diagnoosi{margin:0}.toipuja-laakitys{gap:var(--space-xs);flex-direction:column;display:flex}.toipuja-laakitys h3{margin:var(--space-xs) 0 0}.toipuja-laakitys ul{gap:var(--space-xs);flex-direction:column;margin:0;padding-left:18px;display:flex}.toipuja-laakitys-lahde{color:var(--ink-muted);margin:0;font-size:.85rem}.toipuja-perustiedot{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin:0}.fact-scope-note{color:var(--ink-muted);margin:0;font-size:.9rem}.video-calendar-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.video-calendar-month{text-align:center;flex:1;margin:0}.video-calendar-grid{flex-direction:column;gap:4px;margin-top:12px;display:flex}.video-calendar-row{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.video-calendar-weekday{text-align:center;color:var(--ink-muted);font-size:.8rem}.video-calendar-empty{min-height:40px}.video-day{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:40px;color:var(--ink);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;display:flex}.video-day.has-videos{background:var(--brand-tint);color:var(--ink);border-color:var(--brand)}.video-day.valittu,.video-day.has-videos.valittu{background:var(--brand);color:#fff;border-color:var(--ink)}.video-day-number{font-size:.95rem}.video-day-count{font-size:.75rem;font-weight:600}.video-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.video-row{align-items:flex-start;gap:12px;display:flex}.video-poster{border-radius:var(--radius);flex-shrink:0;width:96px;max-width:30%}.video-meta{flex:1;min-width:0}.video-title{margin:0;font-weight:600}.video-kommentit{margin-top:var(--space-md)}.video-kommenttilista{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.video-kommentti{border-left:3px solid var(--brand);padding-left:var(--space-sm)}.video-kommentti-teksti{white-space:pre-wrap;margin:0}.video-kommentti-tekija{color:var(--ink-muted);margin:2px 0 0;font-size:.85rem}.video-kommentti-kirjoitus{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--line);gap:var(--space-xs);flex-direction:column;align-items:flex-start;display:flex}.video-kommentti-kirjoitus label{color:var(--ink-muted);font-size:.9rem}.video-kommentti-kirjoitus textarea{font:inherit;box-sizing:border-box;width:100%;padding:var(--space-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);resize:vertical;border-radius:6px}.video-time,.video-exercise,.video-duration,.video-status{color:var(--ink-muted);margin:2px 0 0;font-size:.85rem}.video-description{margin:8px 0 0}.video-trimmed{color:var(--ink-muted);margin:2px 0 0;font-size:.85rem}.video-exercise-hint{color:var(--ink-muted);margin:2px 0 0;font-size:.85rem;font-style:italic}.video-role{white-space:nowrap;background:var(--brand-tint);color:var(--brand-text);border-radius:999px;margin:4px 0 0;padding:4px 8px;font-size:.75rem;font-weight:600;line-height:1;display:inline-block}.video-not-playable{color:var(--ink-muted);margin:8px 0 0;font-size:.85rem}.video-player{margin-top:12px}.video-player video{object-fit:contain;border-radius:var(--radius);width:100%;max-width:100%;max-height:55vh;display:block}button.video-delete-trigger{color:var(--light-red);border-color:#e6c4bc}button.video-delete-trigger:hover:not(:disabled){color:var(--light-red);background:#fbf3f1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) button.video-delete-trigger{border-color:var(--light-red)}:root:not([data-theme=light]) button.video-delete-trigger:hover:not(:disabled){background:var(--tint-red);color:var(--light-red)}}:root[data-theme=dark] button.video-delete-trigger{border-color:var(--light-red)}:root[data-theme=dark] button.video-delete-trigger:hover:not(:disabled){background:var(--tint-red);color:var(--light-red)}.video-dev-laatu{color:var(--ink-muted);align-items:center;gap:6px;margin-top:8px;font-size:.8rem;display:flex}.feedback-list{gap:var(--gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.muted{color:var(--ink-muted);font-size:.9em}.feedback-row{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.feedback-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feedback-text{white-space:pre-wrap;margin:6px 0 0}.feedback-kuva{border:1px solid var(--line);border-radius:var(--radius);max-width:100%;max-height:220px;margin:8px 0 0;display:block}.feedback-kuva-puuttuu{color:var(--ink-muted);margin:6px 0 0;font-size:.9em}.feedback-delivered{color:var(--brand-text);margin:6px 0 0;font-size:.9rem}.feedback-by{margin:6px 0 0;font-size:.85rem}.feedback-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.feedback-actions input{width:8ch}.feedback-tila{border:1px solid var(--line);color:var(--ink);background:#fafafa;border-radius:999px;padding:2px 8px;font-size:.85rem}.feedback-tila.tila-toimitettu{border-color:var(--light-green);background:var(--brand-tint);color:var(--ink)}.feedback-tila.tila-tyon-alla{border-color:var(--light-yellow);color:var(--ink);background:#fdf6e4}.feedback-tila.tila-ei-toteuteta{color:var(--ink-muted);background:#fafafa;border-style:dashed}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .feedback-tila{background:var(--tint-neutral)}:root:not([data-theme=light]) .feedback-tila.tila-tyon-alla{background:var(--tint-yellow)}:root:not([data-theme=light]) .feedback-tila.tila-ei-toteuteta{background:var(--tint-neutral)}}:root[data-theme=dark] .feedback-tila{background:var(--tint-neutral)}:root[data-theme=dark] .feedback-tila.tila-tyon-alla{background:var(--tint-yellow)}:root[data-theme=dark] .feedback-tila.tila-ei-toteuteta{background:var(--tint-neutral)}.feedback-tila.tila-luokittelematon{color:var(--ink-muted)}.report-stale{border:1px solid var(--light-yellow);border-radius:var(--radius);color:var(--ink);background:#fdf6e4;border-left-width:4px;margin:8px 0 0;padding:6px 10px;font-size:.95rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .report-stale{background:var(--tint-yellow)}}:root[data-theme=dark] .report-stale{background:var(--tint-yellow)}.kehitys{max-width:1400px;margin:0 auto;padding:16px}.kehitys-ylapalkki{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.kehitys-ylapalkki h1{color:var(--brand-text);margin:0;font-size:1.25rem}.kehitys-tunnus{color:var(--ink-muted);margin:0;font-size:.85rem}.kehitys-pinnanvaihto{border:1px solid var(--line);background:var(--surface);color:var(--brand-text);cursor:pointer;border-radius:4px;margin-left:auto;padding:4px 12px;font-size:.8rem}.kehitys-pinnanvaihto:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}.kehitys-paluu{z-index:50;border:1px solid var(--line);background:var(--surface);color:var(--brand-text);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:.8rem;position:fixed;bottom:12px;right:12px;box-shadow:0 1px 4px #00000026}.kehitys-paluu:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}.kehitys-ristiriita{color:#7a3e00;background:#fff4e5;border:2px solid #b35c00;border-radius:4px;margin:12px 0;padding:10px 12px;font-weight:600}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-ristiriita{background:var(--tint-yellow);border-color:var(--light-yellow);color:var(--light-yellow)}}:root[data-theme=dark] .kehitys-ristiriita{background:var(--tint-yellow);border-color:var(--light-yellow);color:var(--light-yellow)}.kehitys-virhe{color:var(--light-red);margin:8px 0}.kehitys-uusi{flex-wrap:wrap;gap:8px;margin:12px 0 16px;display:flex}.kehitys-uusi input{border:1px solid var(--line);border-radius:4px;flex:200px;padding:6px 8px}.kehitys-uusi select{border:1px solid var(--line);border-radius:4px;padding:6px 8px}.kehitys-uusi button{background:var(--brand);color:#fff;border:0;border-radius:4px;padding:6px 14px}.kehitys-uusi button:disabled{background:#9bb5aa}.kehitys-uusi button:hover:not(:disabled){background:var(--brand-dark);color:#fff}.kehitys-taulu{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.kehitys-sarake{background:var(--brand-tint);border-radius:4px;min-width:0;padding:10px}.kehitys-sarake h2{color:var(--brand-text);justify-content:space-between;align-items:center;margin:0 0 8px;font-size:.9rem;display:flex}.kehitys-luku{background:var(--brand);color:#fff;border-radius:10px;padding:1px 8px;font-size:.75rem}.kehitys-tyhja{color:var(--ink-muted);margin:4px 0;font-size:.85rem}.kehitys-kortti{background:var(--surface);border-radius:4px;margin-bottom:8px;padding:8px}.kehitys-kortti-otsikko{text-align:left;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;width:100%;padding:0}.kehitys-koodi{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.kehitys-sija{color:var(--brand-text);font-variant-numeric:tabular-nums;font-weight:700}.kehitys-meta{color:var(--ink-muted);flex-wrap:wrap;gap:4px;margin:4px 0 0;font-size:.75rem;display:flex}.kehitys-lippu{background:var(--brand-tint);border-radius:3px;padding:0 5px}.kehitys-prioriteetti-erotin{border:none;border-top:1px solid var(--line);margin:4px 0 8px}.kehitys-vuoro{color:#6b4e00;background:#fdf3d8;border:1px solid #ecd9a0;border-radius:3px;padding:0 5px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-vuoro{background:var(--tint-yellow);color:var(--light-yellow);border-color:var(--light-yellow)}}:root[data-theme=dark] .kehitys-vuoro{background:var(--tint-yellow);color:var(--light-yellow);border-color:var(--light-yellow)}.kehitys-kysymys-rasti{color:#4a2d78;background:#f3ecfb;border:1px solid #d9c8f0;border-radius:3px;padding:0 5px;font-weight:600}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys-rasti{background:var(--tint-purple);color:var(--question-text);border-color:var(--question-text)}}:root[data-theme=dark] .kehitys-kysymys-rasti{background:var(--tint-purple);color:var(--question-text);border-color:var(--question-text)}.kehitys-siirto{gap:4px;margin:6px 0 0;display:flex}.kehitys-siirto button{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--brand-text);border-radius:3px;flex:1;padding:2px 0}.kehitys-siirto button:disabled{color:var(--ink-muted);cursor:default}.kehitys-kortti-otsikko:hover:not(:disabled){color:var(--brand-text);background:0 0}.kehitys-siirto button:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}.kehitys-avattu{border-top:1px solid var(--brand-tint);margin-top:8px;padding-top:8px}.kehitys-avattu h3{color:var(--ink-muted);margin:8px 0 4px;font-size:.8rem}.kehitys-kuvaus{white-space:pre-wrap;margin:0 0 6px;font-size:.85rem}.kehitys-loki{color:var(--ink-muted);margin:0;padding-left:16px;font-size:.75rem}.kehitys-loki li{margin-bottom:2px}.kehitys-loki time{color:var(--ink-muted);font-variant-numeric:tabular-nums}.kehitys-muokkaus{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.kehitys-kentta{flex-direction:column;gap:2px;display:flex}.kehitys-kentta>span{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.kehitys-kentta input,.kehitys-kentta textarea,.kehitys-kentta select{border:1px solid var(--line);font:inherit;box-sizing:border-box;border-radius:4px;width:100%;padding:5px 7px;font-size:.85rem}.kehitys-kentta textarea{resize:vertical}.kehitys-kentta-ryhma{flex-direction:column;gap:2px;display:flex}.kehitys-ohje{color:var(--ink-muted);margin:0;font-size:.72rem;line-height:1.35}.kehitys-valinta{align-items:center;gap:7px;display:flex}.kehitys-valinta>span{color:var(--ink);font-size:.8rem}.kehitys-valinta input{margin:0}.kehitys-valinta input:disabled{cursor:not-allowed}.kehitys-valinta:has(input:disabled)>span{color:var(--ink-muted)}.kehitys-este{color:var(--ink);background:var(--brand-tint);border-left:3px solid var(--brand-text);border-radius:0 4px 4px 0;margin:2px 0 4px;padding:6px 9px;font-size:.78rem;line-height:1.4}.kehitys-alkupera{letter-spacing:.02em;vertical-align:1px;border:1px solid #0000;border-radius:9px;padding:1px 6px;font-size:.66rem;display:inline-block}.kehitys-alkupera-ihminen{color:#0a5c3f;background:#e7f2ec;border-color:#b9d9c9}.kehitys-alkupera-agentti{color:#3d4c66;background:#eef1f6;border-color:#ccd5e3}.kehitys-alkupera-tuntematon{background:var(--tint-neutral);color:var(--ink-muted);border-color:var(--line)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-alkupera-ihminen{background:var(--brand-tint);color:var(--light-green);border-color:var(--light-green)}:root:not([data-theme=light]) .kehitys-alkupera-agentti{background:var(--tint-blue);color:var(--ink);border-color:#9aa9c4}}:root[data-theme=dark] .kehitys-alkupera-ihminen{background:var(--brand-tint);color:var(--light-green);border-color:var(--light-green)}:root[data-theme=dark] .kehitys-alkupera-agentti{background:var(--tint-blue);color:var(--ink);border-color:#9aa9c4}.kehitys-kysymys{background:#faf7fe;border:1px solid #d9c8f0;border-left:4px solid #7a53b8;border-radius:0 5px 5px 0;margin:0 0 12px;padding:10px 12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys{background:var(--tint-purple);border-color:var(--question-text);border-left-color:var(--question-text)}}:root[data-theme=dark] .kehitys-kysymys{background:var(--tint-purple);border-color:var(--question-text);border-left-color:var(--question-text)}.kehitys-kysymys h4{color:#4a2d78;letter-spacing:.02em;margin:0 0 5px;font-size:.8rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys h4{color:var(--question-text)}}:root[data-theme=dark] .kehitys-kysymys h4{color:var(--question-text)}.kehitys-kysymys-teksti{color:var(--ink);white-space:pre-wrap;margin:0 0 6px;font-size:.86rem;line-height:1.45}.kehitys-kysymys-suositus{color:var(--ink);background:var(--surface);white-space:pre-wrap;border:1px solid #e2d5f4;border-radius:4px;margin:0 0 8px;padding:6px 9px;font-size:.8rem;line-height:1.45}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys-suositus{border-color:var(--question-text)}}:root[data-theme=dark] .kehitys-kysymys-suositus{border-color:var(--question-text)}.kehitys-kysymys-suositus b{color:#4a2d78}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys-suositus b{color:var(--question-text)}}:root[data-theme=dark] .kehitys-kysymys-suositus b{color:var(--question-text)}.kehitys-kysymys-lahde{color:#6b5a86;margin:0 0 8px;font-size:.72rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys-lahde{color:var(--question-lahde)}}:root[data-theme=dark] .kehitys-kysymys-lahde{color:var(--question-lahde)}.kehitys-kysymys textarea{box-sizing:border-box;width:100%;font:inherit;border:1px solid #cbb8e6;border-radius:4px;padding:5px 7px;font-size:.8rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-kysymys textarea{border-color:var(--question-text)}}:root[data-theme=dark] .kehitys-kysymys textarea{border-color:var(--question-text)}.kehitys-vastaa{color:#fff;cursor:pointer;background:#7a53b8;border:1px solid #7a53b8;border-radius:4px;margin-top:6px;padding:4px 11px;font-size:.8rem}.kehitys-vastaa:disabled{cursor:default;background:#cbb8e6;border-color:#cbb8e6}.kehitys-vastaa:hover:not(:disabled){background:#63409b;border-color:#63409b}.kehitys-hylkays,.kehitys-kommentti,.kehitys-vuorolohko{margin:10px 0 0}.kehitys-hylkays h3,.kehitys-kommentti h3{margin:0 0 4px;font-size:.82rem}.kehitys-hylkays textarea,.kehitys-kommentti textarea{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--line);border-radius:4px;padding:5px 7px;font-size:.8rem}.kehitys-hylkays button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:4px;margin-top:4px;padding:5px 12px;font-size:.8rem}.kehitys-hylkays button:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.kehitys-kommentti button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:4px;margin-top:4px;padding:5px 12px;font-size:.8rem}.kehitys-kommentti button:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.kehitys-hylkays button.kehitys-hylkaa{color:#7a2b2b;border-color:#d8b9b9}.kehitys-hylkays button.kehitys-hylkaa:hover:not(:disabled){color:#7a2b2b;background:#fbf3f3}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-hylkays button.kehitys-hylkaa{border-color:var(--light-red);color:var(--light-red)}:root:not([data-theme=light]) .kehitys-hylkays button.kehitys-hylkaa:hover:not(:disabled){background:var(--tint-red);color:var(--light-red)}}:root[data-theme=dark] .kehitys-hylkays button.kehitys-hylkaa{border-color:var(--light-red);color:var(--light-red)}:root[data-theme=dark] .kehitys-hylkays button.kehitys-hylkaa:hover:not(:disabled){background:var(--tint-red);color:var(--light-red)}.kehitys-toiminnot{flex-wrap:wrap;gap:6px;margin:6px 0 0;display:flex}.kehitys-toiminnot button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:4px;padding:5px 12px;font-size:.8rem}.kehitys-toiminnot button[type=submit]{background:var(--brand);border-color:var(--brand);color:#fff}.kehitys-toiminnot button:disabled{opacity:.5;cursor:default}.kehitys-toiminnot button:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.kehitys-toiminnot button[type=submit]:hover:not(:disabled){background:var(--brand-dark);color:#fff}.kehitys-poista{color:var(--light-red)!important;border-color:#e6c4bc!important}.kehitys-poista-vahvista{background:var(--light-red)!important;border-color:var(--light-red)!important;color:#fff!important}.kehitys-poista:hover:not(:disabled){color:var(--light-red)!important;background:#fbf3f1!important}.kehitys-poista-vahvista:hover:not(:disabled){color:#fff!important;background:#8b2a1d!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kehitys-poista{border-color:var(--light-red)!important}:root:not([data-theme=light]) .kehitys-poista-vahvista{background:#cc4438!important;border-color:#cc4438!important}:root:not([data-theme=light]) .kehitys-poista:hover:not(:disabled){background:var(--tint-red)!important}:root:not([data-theme=light]) .kehitys-poista-vahvista:hover:not(:disabled){background:#b23a2c!important}}:root[data-theme=dark] .kehitys-poista{border-color:var(--light-red)!important}:root[data-theme=dark] .kehitys-poista-vahvista{background:#cc4438!important;border-color:#cc4438!important}:root[data-theme=dark] .kehitys-poista:hover:not(:disabled){background:var(--tint-red)!important}:root[data-theme=dark] .kehitys-poista-vahvista:hover:not(:disabled){background:#b23a2c!important}.kehitys-poisto-selite{color:var(--ink-muted);margin:6px 0 0;font-size:.75rem}.kehitys-poistetut{margin-top:16px;font-size:.85rem}.kehitys-poistetut summary{cursor:pointer;color:var(--ink-muted)}.kehitys-poistetut-lista{margin:8px 0 0;padding:0;list-style:none}.kehitys-poistetut-lista li{background:var(--brand-tint);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;padding:6px 8px;display:flex}.kehitys-poistetut-lista button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:4px;margin-left:auto;padding:3px 10px;font-size:.8rem}.kehitys-poistetut-lista button:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.kehitys-saanto{background:var(--brand-tint);border-left:3px solid var(--brand-text);color:var(--ink-muted);margin-top:20px;padding:10px 12px;font-size:.85rem}.toipuja-ylarivi{align-items:flex-start;gap:var(--space-md);display:flex}.toipuja-tunniste{gap:var(--space-sm);flex-direction:column;flex:auto;display:flex}.tila-indikaattori{flex:none;position:relative}.tila-indikaattori-nappi{color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex}.tila-indikaattori-nappi:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.tila-piste{border-radius:50%;width:12px;height:12px;display:block}.tila-ok .tila-piste{background:var(--light-green)}.tila-poikkeama .tila-piste{background:var(--light-yellow)}.tila-tuntematon .tila-piste{background:var(--ink-muted)}.tila-indikaattori-selite{z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:220px;max-width:90vw;padding:var(--space-sm) var(--space-md);font-size:.85rem;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 2px 8px #0000001f}.tila-indikaattori-selite p{margin:0 0 var(--space-xs)}.tila-indikaattori-selite p:last-child{margin-bottom:0}.tila-indikaattori-syy{color:var(--ink-muted)}.toipumisvaiheet{gap:var(--space-md);flex-direction:column;display:flex}.vaihe-tabs{gap:var(--space-xs);display:flex}.vaihe-tab{align-items:center;gap:var(--space-xs);background:var(--bg);min-width:0;color:var(--ink-muted);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm) var(--space-sm);text-align:left;flex:1 1 0;min-height:40px;font-size:.85rem;display:flex}.vaihe-tab:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.vaihe-tab[aria-selected=true]{background:var(--surface);color:var(--ink);border-color:var(--brand);font-weight:600}.vaihe-tab[aria-selected=true]:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.vaihe-numero{background:var(--line);width:22px;height:22px;color:var(--ink-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.vaihe-tab.vaihe-nykyinen .vaihe-numero{background:var(--brand);color:#fff}.vaihe-nimi{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;min-width:0}.vaihe-paneeli h2{margin:0;font-size:1.05rem}.vaihe-tila{margin:var(--space-xs) 0 0;color:var(--ink-muted);font-size:.85rem}.vaihe-placeholder{margin:var(--space-sm) 0 0;color:var(--ink-muted)}.vaiheet-virhe{color:var(--ink-muted);font-size:.9rem}.laakitys-yhteenveto{margin-top:var(--space-sm)}.laakitys-rivi{justify-content:space-between;align-items:center;gap:var(--space-sm);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);background:0 0;min-height:40px;font-size:.9rem;display:flex}.laakitys-rivi:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.laakitys-nuoli{color:var(--ink-muted)}.laakitys-yhteenveto .toipuja-laakitys{margin-top:var(--space-sm)}.fysio-vaihe{gap:var(--space-sm);flex-direction:column;display:flex}.fysio-otsikko{margin:var(--space-md) 0 0;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-size:.78rem;font-weight:700}.fysio-tyhja{color:var(--ink-muted);margin:0;font-size:.9rem}.fysio-liikelista{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fysio-liike,.fysio-kaynti-rivi{align-items:center;gap:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.fysio-liike-nimi{overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600}.fysio-adherenssi,.fysio-kaynti-pvm{color:var(--ink-muted);font-size:.82rem}.fysio-ohje,.fysio-ristiviite{color:var(--brand);padding:var(--space-xs) var(--space-sm);background:0 0;border:none;align-items:center;min-height:24px;font-size:.85rem;font-weight:600;display:inline-flex}.fysio-ohje:hover:not(:disabled),.fysio-ristiviite:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}.fysio-ristiviite{align-self:flex-start}.fysio-seloste{margin:var(--space-xs) 0 0;padding:0 var(--space-md);color:var(--ink-muted);font-size:.9rem}.fysio-mittausruudukko{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.fysio-mittaus{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);flex-direction:column;gap:2px;display:flex}.fysio-mittaus-nimi{color:var(--ink-muted);font-size:.8rem}.fysio-mittaus-arvo{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.fysio-mittaus-pvm{color:var(--ink-muted);font-size:.75rem}.fysio-videopaiva-otsikko{margin:0 0 var(--space-xs);color:var(--ink-muted);font-size:.82rem}.fysio-videorivi{gap:var(--space-sm);padding-bottom:var(--space-xs);display:flex;overflow-x:auto}.fysio-videokortti{border:1px solid var(--line);border-radius:var(--radius);text-align:left;width:132px;font:inherit;background:var(--surface);color:var(--ink);cursor:pointer;flex:none;padding:0;display:block;overflow:hidden}.fysio-videokortti:hover:not(:disabled){background:var(--brand-tint)}.fysio-videokuva{object-fit:cover;width:100%;height:76px;display:block}.fysio-videokuva-tyhja{background:var(--brand-tint);color:var(--brand);justify-content:center;align-items:center;display:flex}.fysio-video-otsikko{margin:var(--space-xs) var(--space-sm) 0;overflow-wrap:anywhere;font-size:.8rem;font-weight:600;display:block}.fysio-video-kesto{margin:0 var(--space-sm) var(--space-xs);color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:.72rem;display:block}.fysio-liikeryhma{gap:var(--space-xs);flex-direction:column;display:flex}.fysio-ryhma-otsikko{color:var(--ink);padding:var(--space-xs) 0;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;min-height:24px;font-size:.85rem;font-weight:700;display:inline-flex}.fysio-ryhma-otsikko:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}.fysio-ryhma-otsikko:after{content:"▸";font-size:.7em;transition:transform .15s}.fysio-ryhma-otsikko[aria-expanded=true]:after{transform:rotate(90deg)}.fysio-liike-ohje{color:var(--ink-muted);flex-basis:100%;margin:0;font-size:.85rem}.fysio-liike-lahde{color:var(--brand);overflow-wrap:anywhere;flex-basis:100%;font-size:.82rem}.lisaa-liike{gap:var(--space-sm);flex-direction:column;display:flex}.lisaa-liike-lomake{border:1px dashed var(--line);border-radius:var(--radius);padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.lisaa-liike-rivi{gap:var(--space-md);flex-wrap:wrap;align-items:flex-end;display:flex}.lisaa-liike-kentta{gap:var(--space-xs);color:var(--ink-muted);flex-direction:column;flex:200px;min-height:24px;font-size:.85rem;display:flex}.lisaa-liike-kentta input[type=text],.lisaa-liike-kentta input[type=number],.lisaa-liike-kentta textarea{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm);font:inherit;color:var(--ink);background:var(--surface);min-height:40px}.lisaa-liike-kentta textarea{resize:vertical;min-height:56px}.lisaa-liike-kentta-virhe{color:var(--light-red);font-size:.78rem}.lisaa-liike-toiminnot{align-items:center;gap:var(--space-md);display:flex}.lisaa-liike-kuittaus{color:var(--light-green);font-size:.85rem}.lisaa-liike-virhe{color:var(--light-red);font-size:.85rem}.lisaa-liike-myohemmin{color:var(--ink-muted);margin:0;font-size:.78rem}.lisaa-liike-merkki{letter-spacing:.03em;background:var(--brand-tint);color:var(--brand-text);border-radius:6px;padding:1px 6px;font-size:.68rem;font-weight:700}.lisaa-liike-ajoitus{gap:var(--space-xs);border:none;flex-direction:column;margin:0;padding:0;font-size:.85rem;display:flex}.lisaa-liike-ajoitus legend{color:var(--ink-muted);margin-bottom:2px;padding:0}.lisaa-liike-ajoitus-valinta{align-items:center;gap:var(--space-xs);min-height:24px;display:flex}.lisaa-liike-viikko{width:72px;min-height:32px;padding:4px var(--space-xs)}.lisaa-liike-aktivointi{color:var(--ink-muted);margin:0;font-size:.8rem}.fysio-liike-toiminnot{gap:var(--space-sm);flex-basis:100%;margin-top:2px;display:flex}.fysio-liike-virhe-teksti{color:var(--light-red);flex-basis:100%;font-size:.82rem}.fysio-liike-lopetus{border:1px dashed var(--line);border-radius:var(--radius);padding:var(--space-sm);margin-top:var(--space-xs);gap:var(--space-sm);flex-direction:column;flex-basis:100%;display:flex}.fysio-liike-muokkaus{align-items:flex-start}.fysio-liike-muokkaus>.lisaa-liike{flex:100%;min-width:0}.tanaan{gap:var(--space-sm);flex-direction:column;display:flex}.tanaan-otsikkorivi{align-items:baseline;gap:var(--space-md);display:flex}.tanaan-otsikkorivi h2{margin:0;font-size:1.05rem}.tanaan-laskuri{color:var(--ink-muted);font-size:.85rem}.tanaan-lista{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tanaan-rivi{width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);text-align:left;background:0 0;flex-direction:column;align-items:flex-start;gap:2px;min-height:40px;display:flex}.tanaan-rivi:hover:not(:disabled){background:var(--brand-tint);color:var(--ink)}.tanaan-mita{font-size:.9rem;font-weight:600}.tanaan-kysymys{color:var(--ink-muted);overflow-wrap:anywhere;min-width:0;font-size:.82rem}.jalkikirjaus-avaa{border:1px dashed var(--line);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);background:var(--surface);color:var(--ink);min-height:40px}.jalkikirjaus-head{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.jalkikirjaus-head h3{margin:0}.jalkikirjaus-lomake{border:1px dashed var(--line);border-radius:var(--radius);padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.jalkikirjaus-kentta{gap:var(--space-xs);color:var(--ink-muted);flex-direction:column;min-height:24px;font-size:.85rem;display:flex}.jalkikirjaus-kentta input[type=text],.jalkikirjaus-kentta input[type=number],.jalkikirjaus-kentta input[type=date],.jalkikirjaus-kentta input[type=time],.jalkikirjaus-kentta select{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-sm);font:inherit;color:var(--ink);background:var(--surface);min-height:40px}.jalkikirjaus-toiminnot{align-items:center;gap:var(--space-md);display:flex}.jalkikirjaus-kuittaus{color:var(--light-green);font-size:.85rem}.jalkikirjaus-virhe{color:var(--light-red);font-size:.85rem}.jalkikirjaus-varoitus{color:var(--light-yellow);font-size:.85rem}.liikekirjasto{margin-top:var(--space-md)}.liikekirjasto .chart-head h3{margin:0}.liikekirjasto-tyhja{color:var(--ink-muted);margin:var(--space-xs) 0;font-size:.9rem}.liikekirjasto-nyt-otsikko{margin:var(--space-sm) 0 var(--space-xs);font-size:.85rem;font-weight:700}.liikekirjasto-lista{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.liikekirjasto-rivi{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-xs) var(--space-sm)}.liikekirjasto-rivi-paa{align-items:baseline;gap:var(--space-sm);display:flex}.liikekirjasto-rivi-teksti{flex:auto;min-width:0}.liikekirjasto-videot{background:var(--brand-tint);color:var(--brand-text);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:.8rem}.liikekirjasto-nimi{overflow-wrap:anywhere;font-weight:600}.liikekirjasto-toistot{color:var(--ink-muted);margin-left:var(--space-xs);font-size:.82rem}.liikekirjasto-ohje{color:var(--ink-muted);margin:2px 0 0;font-size:.85rem}.liikekirjasto-lahde{color:var(--brand);overflow-wrap:anywhere;font-size:.82rem;display:block}.liikekirjasto-lokinappi{flex:none;min-height:24px;font-size:.8rem}.liikekirjasto-ryhma{margin-top:var(--space-sm)}.liikekirjasto-ryhma-otsikko{color:var(--ink);padding:var(--space-xs) 0;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;min-height:24px;font-size:.85rem;font-weight:700;display:inline-flex}.liikekirjasto-ryhma-otsikko:hover:not(:disabled){background:var(--brand-tint);color:var(--brand-text)}.liikekirjasto-ryhma-otsikko:after{content:"▸";font-size:.7em;transition:transform .15s}.liikekirjasto-ryhma-otsikko[aria-expanded=true]:after{transform:rotate(90deg)}.liikekirjasto-loki{border-collapse:collapse;width:100%;margin-top:var(--space-xs);font-size:.8rem}.liikekirjasto-loki th{text-align:left;color:var(--ink-muted);padding:2px 6px 2px 0;font-weight:600}.liikekirjasto-loki td{vertical-align:top;overflow-wrap:anywhere;padding:2px 6px 2px 0}.liikekirjasto-loki-syy{color:var(--ink-muted);font-style:italic;display:block}.liikekirjasto-loki-tila{color:var(--ink-muted);margin:var(--space-xs) 0 0;font-size:.8rem}.video-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.video-rename,.video-kytke,.video-delete-confirm,.video-trim{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;margin:0;display:flex}.video-rename label,.video-kytke label{font-size:.9rem}.video-rename input{flex:160px;min-width:0}.video-kytke select{flex:160px;min-width:0;max-width:100%}.video-delete-confirm,.video-trim{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:8px 10px}.video-delete-confirm>p,.video-trim>p{flex-basis:100%;margin:0}.video-delete-confirm>.warning{color:var(--light-red);font-weight:600}.video-trim-hint{color:var(--ink-muted);font-size:.9rem}.video-rooli{align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.video-rooli select{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:32px;color:var(--ink);padding:2px 6px}.video-rooli select:disabled{opacity:.5;cursor:not-allowed}
