:root{font-family:system-ui,sans-serif;color:#18343c;background:#f3f6f5}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;background:#123e45;color:white}h1{font-size:24px;margin:6px 0}small{letter-spacing:.12em}h2{font-size:20px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #b8cacb;border-radius:7px;background:white;color:#18343c;padding:9px 12px}button:hover{background:#e8f4f1}button:disabled{opacity:.5;cursor:default}.primary,button[aria-pressed=true]{background:#12675d;color:white}.notice{background:#fff4d9;padding:10px 32px;font-size:13px}nav{display:flex;gap:6px;overflow:auto;padding:16px 32px 0}main{padding:20px 32px}.toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}label{display:grid;gap:5px;font-size:13px}input,select{padding:9px;border:1px solid #adbfbd;border-radius:6px;background:white}#message{min-height:36px;padding:9px 0;color:#155b51}#content{background:white;border:1px solid #d7e2df;border-radius:10px;padding:16px}.scroll{overflow:auto;max-height:600px}.board{min-width:1320px}.row{height:43px;display:flex;border-bottom:1px solid #e6eded}.row .name{width:160px;flex-shrink:0;padding:10px;background:#f8faf9;position:sticky;left:0;z-index:3;font-size:13px}.track{position:relative;flex:1;background:repeating-linear-gradient(to right,transparent 0,transparent 119px,#e5eeeb 119px,#e5eeeb 120px)}.bar{position:absolute;height:33px;top:5px;padding:3px 7px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;border:1px solid #81a9bd;background:#dfedf4;color:#18343c}.bar.selected{outline:2px solid #142e38}.missing{background:#fff0cf;border-color:#ca921e}.received{background:#d8efe4;border-color:#39815d}.active{background:#d9e4ff;border-color:#587cce}.done{background:#e9eeec;color:#586561;border-color:#aebbb7}.cancelled,.removed,.replaced{background:#f1e4e6;color:#84545a;text-decoration:line-through}.help{background:#ffe2db;border-color:#c94a35}.now{position:absolute;width:2px;background:#d34631;height:100%;z-index:2;pointer-events:none}.ticks{height:30px}.tick{position:absolute;font-size:12px;color:#526b6b}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.card{border:1px solid #d5e0dc;border-radius:9px;padding:16px}.card h3{margin:4px 0 12px}.tag{display:inline-block;background:#eef3f1;padding:4px 8px;border-radius:5px;font-size:12px}.muted{color:#5c716f;font-size:13px}#detail:not(:empty){margin-top:16px;background:white;padding:20px;border-radius:10px;border:1px solid #cbdad6}table{width:100%;border-collapse:collapse}td,th{text-align:left;border-bottom:1px solid #e1e9e6;padding:10px;font-size:14px}dialog{border:0;border-radius:12px;box-shadow:0 10px 70px #0004;width:450px;max-width:95vw}dialog::backdrop{background:#123e4580}#fields{display:grid;gap:12px}#formError{color:#a33226}#connection{font-size:13px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #cc8b2b;outline-offset:2px}@media(max-width:600px){header{padding:18px;display:block}.notice,main{padding:12px}nav{padding:12px}.toolbar{gap:8px}h1{font-size:20px}.cards{grid-template-columns:1fr}}

[hidden]{display:none!important}#overview{display:flex;gap:8px;overflow:auto;margin:0 0 14px}#overview button{min-width:145px;text-align:left;padding:12px}#overview strong{display:block;font-size:23px}.warning{background:#fff3d9;padding:12px;border-radius:6px}.danger-text{color:#a4312e;font-weight:600}.badge{font-size:12px;display:inline-block;padding:3px 6px;border-radius:5px;background:#e4edf0}.badge.isolation{background:#f0e3fa;color:#67417e}.bed{margin:8px 0;padding:10px;background:#f4f7f6;border-radius:7px}.bed.closed,.bed.cleaning{background:#fff0db}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}.checks{display:flex;gap:8px;flex-wrap:wrap}.checks label{display:flex;align-items:center;padding:7px;background:#f0f5f3;border-radius:5px}.checks input{width:auto}.wide-table{overflow:auto}.wide-table table{min-width:760px}.period-select{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}#content h2:first-child{margin-top:0}.ledger{font-variant-numeric:tabular-nums}.summary-text{margin:12px 0}.room-flag{color:#67417e;font-weight:600}.muted a{color:#12675d}.small-button{padding:5px 9px;font-size:13px}dialog{max-height:90vh;overflow:auto;width:550px}.form-help{font-size:13px;color:#526b6b}#detail .crew-warning{color:#a4312e}
/* 1.0: tilannekuvan lataus- ja virhetila, pitkät nimet */
.rj-state{margin:24px 0;padding:28px 24px;border:1px solid #d8e3e0;border-radius:10px;background:#f8faf9;max-width:640px}
.rj-state h2{margin:6px 0 4px;font-size:20px}
.rj-state.rj-error{border-color:#e2b4ad;background:#fdf4f2}
.rj-spinner{display:inline-block;width:22px;height:22px;border:3px solid #cfe0dc;border-top-color:#12675d;border-radius:50%;animation:rj-spin 1s linear infinite}
@keyframes rj-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.rj-spinner{animation:none}}
.row .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#units button{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.fe1-bar-title,.fe1-bar-status{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fe5-crew li{min-width:0;max-width:150px}
.fe5-crew .fe5-cn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fe4-langs{min-width:0}
.fe4-langs summary{cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;padding:6px 0}
.fe4-langs .checks{display:flex;flex-wrap:wrap;gap:4px 10px;padding:4px 0}
.fe4-langs .checks label{display:inline-flex;gap:4px;align-items:center;font-size:13px;margin:0}
.fe4-langs .checks input{width:auto;margin:0}
/* 1.6 kielivalitsin (web/i18n.js: [data-i18n-switcher]) */
.dv-head-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dv-lang{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.dv-lang-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dv-lang-select{padding:6px 8px;font-size:14px;min-height:36px;max-width:9.5em;border-radius:6px}
header .dv-lang-select{background:#fff;color:#18343c;border-color:#fff}
header .dv-head-tools button{margin-left:0}
@media(max-width:600px){.dv-head-tools{margin-top:10px}}

/* 1.8 Ohje-linkki otsikkorivillä */
.help-link{display:inline-block;padding:6px 12px;border:1px solid currentColor;border-radius:6px;color:inherit;text-decoration:none;font-size:14px;line-height:1.3}.help-link:hover,.help-link:focus-visible{text-decoration:underline}
