/* StarCura 1.2 · Tilannerivi (Reitit ja Siirrot), paneeli, pikaesikatselu ja aikajanan korostus. */
:root{--rjsb-w:420px;--rjsb-ink:#18343c;--rjsb-muted:#5c716f;--rjsb-line:#cbdad6;--rjsb-bg:#fff;--rjsb-tile:#f3f8f6;--rjsb-tile-line:#b8cacb;--rjsb-accent:#12675d;--rjsb-warn-bg:#fff0cf;--rjsb-warn-line:#ca921e;--rjsb-warn-ink:#6d4a0c;--rjsb-crit-bg:#fde4df;--rjsb-crit-line:#c94a35;--rjsb-crit-ink:#7d1c10;--rjsb-hl:#cc8b2b}
.rjsb-row{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;max-width:100%}
.rjsb-tile{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-size:13px;line-height:1.3;border:1px solid var(--rjsb-tile-line);border-radius:16px;background:var(--rjsb-tile);color:var(--rjsb-ink);font-variant-numeric:tabular-nums;max-width:100%;min-width:0;text-align:left}
.rjsb-tile .rjsb-tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rjsb-tile:hover{background:#e8f4f1}
.rjsb-tile.rjsb-on{border-color:var(--rjsb-accent);box-shadow:inset 0 0 0 1px var(--rjsb-accent);background:#e2f2ee}
.rjsb-tile.rjsb-warn{background:var(--rjsb-warn-bg);border-color:var(--rjsb-warn-line);color:var(--rjsb-warn-ink)}
.rjsb-tile.rjsb-crit{background:var(--rjsb-crit-bg);border-color:var(--rjsb-crit-line);color:var(--rjsb-crit-ink);font-weight:600}
.rjsb-tile.rjsb-off{color:var(--rjsb-muted)}
.rjsb-tile.rjsb-on.rjsb-warn,.rjsb-tile.rjsb-on.rjsb-crit{box-shadow:inset 0 0 0 1px currentColor}

/* Paneeli: oikea reuna otsikon alla, vieritys sisällä. Leveällä näytöllä sisältö väistää, jotta aikajana näkyy vieressä. */
.rjsb-drawer{position:fixed;right:0;top:0;bottom:0;width:var(--rjsb-w);max-width:100vw;z-index:35;background:var(--rjsb-bg);color:var(--rjsb-ink);border-left:1px solid var(--rjsb-line);box-shadow:-10px 0 30px rgba(18,52,60,.14);display:flex;flex-direction:column;min-height:0}
.rjsb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 14px 6px;border-bottom:1px solid #e1e9e6}
.rjsb-head h2{margin:2px 0;font-size:16px;line-height:1.3;min-width:0;overflow-wrap:anywhere}
.rjsb-headbtns{display:flex;gap:6px;flex-shrink:0}
.rjsb-x{font-size:18px;line-height:1;padding:4px 10px}
.rjsb-tabs{display:flex;gap:6px;padding:8px 14px;border-bottom:1px solid #e1e9e6}
.rjsb-tabs kbd{font:inherit;font-size:11px;border:1px solid currentColor;border-radius:3px;padding:0 4px;opacity:.75;margin-left:2px}
.rjsb-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:10px 14px 18px}
.rjsb-body:focus{outline:none}
.rjsb-sum{margin:2px 0 4px;font-size:14px}.rjsb-bad{color:var(--rjsb-crit-ink);font-weight:600}
.rjsb-routes{display:grid;gap:8px;margin:8px 0}
.rjsb-route-bad{border-color:var(--rjsb-warn-line)}
.rjsb-stop-bad{background:var(--rjsb-warn-bg);border-radius:4px;padding:1px 4px}
.rjsb-person{font-weight:700}.rjsb-person-on{background:#fff3d9;border-radius:3px;padding:0 3px}
.rjsb-h3{font-size:15px;margin:14px 0 6px}
.rjsb-people{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rjsb-person-li{border:1px solid #e1e9e6;border-radius:8px;padding:6px 9px;font-size:14px;overflow-wrap:anywhere}
.rjsb-person-li.rjsb-over{border-color:var(--rjsb-crit-line);background:#fff8f6}
.rjsb-tasks{margin:4px 0 0;padding-left:16px;display:grid;gap:3px;font-size:13px}
.rjsb-table table{min-width:0}.rjsb-table td,.rjsb-table th{font-size:13px;padding:6px}
tr.rjsb-over td{color:var(--rjsb-crit-ink);font-weight:600}
@media(min-width:1001px){body.rjsb-open main,body.rjsb-open #units,body.rjsb-open .notice{padding-right:calc(var(--rjsb-w) + 16px)}body.rjsb-open .fe1-tray{right:var(--rjsb-w)}}
@media(max-width:700px){
 .rjsb-drawer{top:auto!important;left:0;right:0;bottom:0;width:auto;max-height:72vh;height:72vh;border-left:0;border-top:1px solid var(--rjsb-line);border-radius:14px 14px 0 0;box-shadow:0 -10px 30px rgba(18,52,60,.18)}
 .rjsb-head{padding:10px 12px 6px}.rjsb-tabs,.rjsb-body{padding-left:12px;padding-right:12px}
 .rjsb-pin{font-size:12px}
 .rjsb-row{display:flex;width:100%}
 .rjsb-tile{flex:1 1 100%}
}

/* Pikaesikatselu */
.rjsb-pop{position:fixed;z-index:45;background:#fff;color:var(--rjsb-ink);border:1px solid var(--rjsb-line);border-radius:10px;box-shadow:0 14px 40px rgba(18,52,60,.22);padding:10px 12px;font-size:13px;max-height:70vh;overflow:auto}
.rjsb-pop h3{margin:0 0 6px;font-size:14px}.rjsb-pop p{margin:6px 0 0}
.rjsb-pop td,.rjsb-pop th{font-size:13px;padding:4px 6px}
.rjsb-popwarn{color:var(--rjsb-crit-ink);font-weight:600}

/* Aikajanan korostus */
.bar.rjsb-pulse,.fe5-visit.rjsb-pulse,.fe5-item.rjsb-pulse,.fe5-ghost.rjsb-pulse{z-index:6;animation:rjsb-pulse .8s ease-in-out 3;box-shadow:0 0 0 3px var(--rjsb-hl),0 0 0 6px rgba(204,139,43,.35)}
@keyframes rjsb-pulse{0%,100%{box-shadow:0 0 0 3px var(--rjsb-hl),0 0 0 6px rgba(204,139,43,.35)}50%{box-shadow:0 0 0 3px var(--rjsb-hl),0 0 0 12px rgba(204,139,43,0)}}
.fe5-srow.rjsb-rowhl{box-shadow:inset 4px 0 0 var(--rjsb-hl);background:#fff8ea}
.fe5-srow.rjsb-rowhl .fe5-name{background:#fff3d9}
@media(prefers-reduced-motion:reduce){.bar.rjsb-pulse,.fe5-visit.rjsb-pulse,.fe5-item.rjsb-pulse,.fe5-ghost.rjsb-pulse{animation:none}}
