:root{
  color-scheme:dark;
  --bg:#020b14;--panel:rgba(4,21,34,.94);--panel2:rgba(7,29,45,.96);--line:rgba(91,195,226,.24);--line2:rgba(91,195,226,.14);
  --text:#eefaff;--muted:#8eb1c3;--cyan:#31d7ff;--green:#31e6a0;--amber:#ffbf3f;
  --orange:#ff843c;--red:#ff4d72;--violet:#a99cff;--blue:#4ea5ff;
  --shadow:0 16px 42px rgba(0,0,0,.34);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--text)}
body{overflow:hidden}button,select{font:inherit}button,a,select{outline:0}.hidden{display:none!important}
body #umayLauncher,body #umayPanel,body #umayOverlay{display:none!important}
.ot-zone-mode .ot-timeline-item{padding-inline:5px;box-shadow:none}.ot-zone-mode .ot-segment{height:17px}.ot-zone-mode .ot-session{height:16px}.ot-zone-mode .ot-timeline-item strong{font-size:6.5px}.ot-zone-mode .ot-timeline-item small{font-size:5.5px}
button:focus-visible,a:focus-visible,select:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--cyan)}
.ot-shell{--timeline-h:300px;height:100%;display:grid;grid-template-rows:66px minmax(220px,1fr) var(--timeline-h);gap:8px;padding:8px;background:radial-gradient(circle at 50% -15%,rgba(18,79,108,.35),transparent 40%),var(--bg)}
.ot-toolbar,.ot-map-stage,.ot-timeline-panel{border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.ot-toolbar{z-index:10;display:grid;grid-template-columns:minmax(230px,1.15fr) auto minmax(180px,.7fr) auto auto;align-items:center;gap:10px;padding:7px 10px}
.ot-brand{display:flex;align-items:center;gap:10px;min-width:0;color:inherit;text-decoration:none}.ot-brand>span{width:46px;height:46px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,var(--cyan),#1593bb);color:#01141c;font-size:19px;font-weight:1000;letter-spacing:-1px}.ot-brand div{min-width:0}.ot-brand strong,.ot-brand small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-brand strong{font-size:14px;letter-spacing:.09em}.ot-brand small{margin-top:3px;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.ot-view-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:#061522}.ot-view-switch button{height:38px;min-width:76px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;font-weight:1000;letter-spacing:.05em}.ot-view-switch button.active{background:#0a2234;color:var(--cyan);box-shadow:inset 0 0 0 1px var(--line)}.ot-view-switch svg{width:15px}
.ot-entity-select{min-width:0}.ot-entity-select>span{display:block;margin:0 0 3px 3px;color:var(--muted);font-size:7px;font-weight:1000;letter-spacing:.12em}.ot-entity-select select{width:100%;height:38px;border:1px solid var(--line);border-radius:8px;background:#091d2c;color:var(--text);padding:0 28px 0 10px;font-size:10px;font-weight:900}
.ot-week-nav{display:flex;gap:4px}.ot-week-nav button,.ot-nav a,.ot-nav button{height:40px;border:1px solid var(--line);border-radius:8px;background:#091d2c;color:var(--muted);cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center}.ot-week-nav>button:not(.ot-week-label){width:38px}.ot-week-nav svg{width:16px}.ot-week-label{width:150px!important;flex-direction:column}.ot-week-label small{font-size:7px;font-weight:1000;letter-spacing:.12em;color:var(--cyan)}.ot-week-label strong{margin-top:2px;font-size:9px;color:var(--text)}
.ot-nav{display:flex;gap:4px}.ot-nav a,.ot-nav button{min-width:56px;padding:0 8px;gap:5px;font-size:8px;font-weight:1000;letter-spacing:.04em}.ot-nav a:hover,.ot-nav button:hover,.ot-week-nav button:hover{border-color:#2b8aa7;color:var(--cyan)}.ot-nav svg{width:14px}
.ot-map-stage{position:relative;min-height:0;overflow:hidden}.ot-map-stage:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(49,215,255,.08)}#operationsMap{position:absolute;inset:0;background:#061522}.leaflet-container{background:#061522;font:inherit}.leaflet-control-zoom a{background:#061522!important;color:var(--text)!important;border-color:var(--line)!important}.leaflet-control-attribution{font-size:7px!important;background:rgba(2,11,20,.78)!important;color:var(--muted)!important}.leaflet-control-attribution a{color:var(--cyan)!important}
.ot-map-summary{position:absolute;z-index:500;left:12px;top:12px;display:flex;gap:5px;padding:5px;border:1px solid rgba(53,216,255,.24);border-radius:11px;background:rgba(3,18,27,.88);backdrop-filter:blur(8px)}.ot-map-summary>span{min-width:75px;height:43px;padding:5px 8px;border-right:1px solid var(--line2);display:grid;grid-template-columns:16px 1fr;grid-template-rows:20px 11px;align-items:center}.ot-map-summary>span:last-child{border:0}.ot-map-summary svg{width:14px;color:var(--cyan);grid-row:1/3}.ot-map-summary b{font:1000 16px ui-monospace,monospace}.ot-map-summary small{color:var(--muted);font-size:7px;font-weight:1000;letter-spacing:.08em}
.ot-map-tools{position:absolute;z-index:500;right:12px;top:12px;display:flex;gap:5px}.ot-map-tools button{height:34px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:rgba(3,18,27,.9);color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:5px;font-size:8px;font-weight:1000}.ot-map-tools button:hover{color:var(--cyan);border-color:#2a8eaa}.ot-map-tools svg{width:14px}
.ot-map-legend{position:absolute;z-index:500;left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:12px;padding:7px 11px;border:1px solid rgba(53,216,255,.2);border-radius:9px;background:rgba(3,18,27,.85);backdrop-filter:blur(7px)}.ot-map-legend span{display:flex;align-items:center;gap:5px;color:#a8c3ce;font-size:7px;font-weight:1000}.ot-map-legend i{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px currentColor}.ot-map-legend .anchor{background:var(--amber)}.ot-map-legend .berth{background:var(--violet)}.ot-map-legend .move{background:var(--green)}.ot-map-legend .exit{background:var(--orange)}
.ot-time-card{position:absolute;z-index:560;left:12px;bottom:12px;min-width:260px;max-width:38vw;min-height:48px;padding:7px 34px 7px 9px;border:1px solid var(--cyan);border-radius:9px;background:rgba(4,21,34,.94);box-shadow:0 10px 28px rgba(0,0,0,.38);display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;align-items:center}.ot-time-card>svg{width:18px;color:var(--cyan)}.ot-time-card span small,.ot-time-card span strong,.ot-time-card span em{display:block}.ot-time-card span small{color:var(--cyan);font-size:6px;font-weight:1000;letter-spacing:.12em}.ot-time-card span strong{margin-top:2px;font-size:10px}.ot-time-card span em{margin-top:2px;color:var(--muted);font-size:7px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-time-card>button{position:absolute;right:6px;top:6px;width:24px;height:24px;border:1px solid var(--line);border-radius:6px;background:#0a2234;color:var(--muted);cursor:pointer;display:grid;place-items:center}.ot-time-card>button svg{width:12px}
.ot-detail-card{position:absolute;z-index:550;right:12px;bottom:12px;width:min(340px,42vw);min-height:90px;padding:11px 38px 11px 12px;border:1px solid var(--detail-color,var(--line));border-radius:11px;background:rgba(3,18,27,.93);backdrop-filter:blur(9px);box-shadow:var(--shadow)}.ot-detail-card.idle{display:none}.ot-detail-card>button{position:absolute;right:8px;top:8px;width:25px;height:25px;border:1px solid var(--line);border-radius:7px;background:#071d29;color:var(--muted);cursor:pointer;display:grid;place-items:center}.ot-detail-card>button svg{width:14px}.ot-detail-card small,.ot-detail-card strong,.ot-detail-card>span{display:block}.ot-detail-card>small{color:var(--detail-color,var(--cyan));font-size:7px;font-weight:1000;letter-spacing:.13em}.ot-detail-card>strong{margin-top:3px;font-size:13px}.ot-detail-card>span{margin-top:3px;color:var(--muted);font-size:8px}.ot-detail-metrics{margin-top:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.ot-detail-metrics span{padding:5px;border:1px solid var(--line2);border-radius:6px}.ot-detail-metrics small,.ot-detail-metrics b{display:block}.ot-detail-metrics small{color:var(--muted);font-size:6px}.ot-detail-metrics b{margin-top:2px;font:900 8px ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ot-op-marker{background:transparent;border:0}.ot-op-dot{--marker:#35d8ff;position:relative;width:14px;height:14px;border:1px solid #e9fbff;border-radius:50%;background:var(--marker);box-shadow:0 0 5px color-mix(in srgb,var(--marker) 58%,transparent);display:grid;place-items:center;color:#03121b}.ot-op-dot svg{width:8px;height:8px;stroke-width:3}.ot-op-dot.selected{width:22px;height:22px;border-width:2px;box-shadow:0 0 0 5px color-mix(in srgb,var(--marker) 35%,transparent),0 0 22px var(--marker)}.ot-op-dot.selected svg{width:11px;height:11px}.ot-vessel-marker{background:transparent;border:0}.ot-vessel-arrow{width:28px;height:28px;display:grid;place-items:center;color:var(--vessel,#35d8ff);filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 7px var(--vessel,#35d8ff));transform:rotate(var(--heading,0deg))}.ot-vessel-arrow svg{width:27px;height:27px;fill:color-mix(in srgb,var(--vessel,#35d8ff) 55%,transparent);stroke-width:2.6}.ot-vessel-arrow.compact{width:18px;height:18px;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 3px var(--vessel,#35d8ff))}.ot-vessel-arrow.compact svg{width:17px;height:17px;stroke-width:2.2}
.ot-zone-tooltip,.ot-route-tooltip{border:1px solid var(--line)!important;border-radius:6px!important;background:rgba(3,18,27,.92)!important;color:var(--text)!important;box-shadow:none!important;font-size:8px!important;font-weight:900!important;padding:4px 6px!important}.ot-zone-tooltip:before,.ot-route-tooltip:before{display:none!important}
.ot-timeline-panel{min-height:0;display:grid;grid-template-rows:54px minmax(0,1fr) 26px;overflow:hidden;background:var(--panel)}.ot-timeline-head{min-width:0;padding:8px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;background:#071a28}.ot-timeline-head>div:first-child{min-width:0}.ot-timeline-head small,.ot-timeline-head strong,.ot-timeline-head span{display:block}.ot-timeline-head>div:first-child>small{color:var(--cyan);font-size:7px;font-weight:1000;letter-spacing:.13em}.ot-timeline-head>div:first-child>strong{margin-top:2px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-timeline-head>div:first-child>span{margin-top:2px;color:var(--muted);font-size:8px}
.ot-lane-filters{display:flex;gap:3px;align-items:center}.ot-lane-filters button{height:28px;padding:0 7px;border:1px solid var(--line);border-radius:6px;background:#091d2c;color:#607f8c;cursor:pointer;display:flex;align-items:center;gap:4px;font-size:7px;font-weight:1000}.ot-lane-filters button svg{width:12px}.ot-lane-filters button.active{border-color:rgba(49,215,255,.48);background:#0a2b3b;color:var(--cyan)}.ot-lane-filters button.export{margin-left:3px;border-color:rgba(49,230,160,.35);color:var(--green)}.ot-lane-filters button:hover{filter:brightness(1.18)}
.ot-timeline-view-switch{height:28px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#061923;display:flex;align-items:center;gap:2px}.ot-timeline-view-switch button{height:22px;padding:0 7px;border:0;border-radius:5px;background:transparent;color:#6f91a0;cursor:pointer;display:flex;align-items:center;gap:4px;font-size:7px;font-weight:1000}.ot-timeline-view-switch button svg{width:12px}.ot-timeline-view-switch button.active{background:#0c3b4d;color:var(--cyan);box-shadow:inset 0 0 0 1px rgba(49,215,255,.34)}
.ot-height-control{height:28px;margin-left:3px;padding:2px;border:1px solid var(--line);border-radius:6px;background:#061923;display:flex;align-items:center}.ot-height-control button{width:23px;height:22px!important;padding:0!important;border:0!important;background:transparent!important;justify-content:center}.ot-height-control output{min-width:31px;color:var(--muted);font:900 7px ui-monospace,monospace;text-align:center}.ot-height-control button:disabled{opacity:.28;cursor:not-allowed}.ot-height-control button:hover:not(:disabled){color:var(--cyan)}
.ot-timeline-status{display:flex;gap:5px}.ot-timeline-status>span{min-width:84px;height:37px;padding:5px 7px;border:1px solid var(--line2);border-radius:8px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:16px 10px;align-items:center;gap:0 5px}.ot-timeline-status .live-dot,.ot-timeline-status .gap-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);grid-row:1/3}.ot-timeline-status .gap-dot{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.ot-timeline-status #gapStatus.attention{border-color:rgba(255,191,63,.45)}.ot-timeline-status #gapStatus.attention .gap-dot{background:var(--amber);box-shadow:0 0 8px var(--amber)}.ot-timeline-status #gapStatus.critical{border-color:rgba(255,77,114,.55)}.ot-timeline-status #gapStatus.critical .gap-dot{background:var(--red);box-shadow:0 0 8px var(--red)}.ot-timeline-status b{font:1000 12px ui-monospace,monospace}.ot-timeline-status small{color:var(--muted);font-size:6px;font-weight:900}
.ot-timeline-grid{min-height:0;display:grid;grid-template-columns:150px minmax(0,1fr);align-items:start;overflow:auto;scrollbar-color:#1b7188 #06131d;scrollbar-width:thin}.ot-lane-labels{position:sticky;z-index:8;left:0;background:#071a28;border-right:1px solid var(--line);display:grid;grid-template-rows:32px repeat(4,1fr)}.ot-lane-labels>span{padding:0 10px;border-bottom:1px solid var(--line2);display:flex;align-items:center;gap:6px;color:var(--muted);font-size:7px;font-weight:1000;letter-spacing:.07em}.ot-lane-labels>span:last-child{border:0}.ot-lane-labels .axis-label{position:sticky;z-index:9;top:0;color:#587f8f;background:#071a28;font:900 7px ui-monospace,monospace}.ot-lane-labels svg{width:13px;color:var(--cyan)}
.ot-timeline-canvas{position:relative;min-width:0;min-height:0;overflow:visible;background:#04101a}.ot-timeline-axis{position:sticky;z-index:40;top:0;height:32px;display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);box-shadow:0 5px 12px rgba(0,0,0,.38)}.ot-day-cell{min-width:0;padding:5px 7px;border-right:1px solid var(--line);background:#05131f}.ot-day-cell:last-child{border-right:0}.ot-day-cell strong,.ot-day-cell span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-day-cell strong{font-size:8px;letter-spacing:.04em}.ot-day-cell span{margin-top:1px;color:var(--muted);font-size:7px}.ot-timeline-axis.daily .ot-day-cell{padding-inline:4px}.ot-day-lines{position:absolute;z-index:0;inset:32px 0 0;background-image:linear-gradient(to right,transparent calc(100% - 1px),rgba(49,215,255,.16) calc(100% - 1px));background-size:calc(100% / 7) 100%;pointer-events:none}.ot-day-lines:after{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,transparent calc(100% - 1px),rgba(91,195,226,.07) calc(100% - 1px));background-size:calc(100% / 28) 100%}
.ot-timeline-table{min-height:0;overflow:auto;background:#04101a;scrollbar-color:#1b7188 #06131d;scrollbar-width:thin}.ot-timeline-table table{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:8px}.ot-timeline-table thead{position:sticky;z-index:45;top:0}.ot-timeline-table th{height:32px;padding:0 9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#05131f;color:#82a6b5;text-align:left;font-size:7px;letter-spacing:.06em;white-space:nowrap;box-shadow:0 5px 12px rgba(0,0,0,.32)}.ot-timeline-table td{height:28px;padding:4px 9px;border-right:1px solid rgba(34,91,111,.28);border-bottom:1px solid rgba(34,91,111,.28);color:#9ebac5;white-space:nowrap}.ot-timeline-table tbody tr{cursor:pointer}.ot-timeline-table tbody tr:hover,.ot-timeline-table tbody tr:focus{outline:0;background:rgba(49,215,255,.08)}.ot-timeline-table td strong{color:var(--text);font-size:8px}.ot-type-cell,.ot-op-cell{display:inline-flex!important;align-items:center;gap:5px;color:var(--type-color,var(--text));font-weight:1000}.ot-op-cell{color:var(--op-color,var(--text))}.ot-type-cell:before,.ot-op-cell:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor}.ot-table-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:9px;font-weight:900}.ot-timeline-panel.table-mode{grid-template-rows:54px minmax(0,1fr) 26px}
.ot-lanes{position:absolute;z-index:2;top:32px;left:0;right:0;display:grid;grid-template-rows:repeat(4,1fr)}.ot-lane{position:relative;min-height:0;border-bottom:1px solid var(--line2);overflow:visible;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--track-h,26px) - 1px),rgba(73,150,178,.07) calc(var(--track-h,26px) - 1px),rgba(73,150,178,.07) var(--track-h,26px))}.ot-lane:last-child{border-bottom:0}.ot-timeline-item{--item:#35d8ff;position:absolute;top:50%;height:23px;transform:translateY(-50%);min-width:1px;border:1px solid var(--item);border-radius:5px;background:color-mix(in srgb,var(--item) 25%,#071d29);color:var(--text);cursor:pointer;box-shadow:0 0 9px color-mix(in srgb,var(--item) 15%,transparent);overflow:hidden;display:flex;align-items:center;gap:5px;padding:0 7px;white-space:nowrap}.ot-timeline-item:hover,.ot-timeline-item.active{z-index:7;filter:brightness(1.2);box-shadow:0 0 0 2px #061923,0 0 0 3px var(--item),0 0 14px var(--item)}.ot-timeline-item strong{font-size:7px;overflow:hidden;text-overflow:ellipsis}.ot-timeline-item small{font-size:6px;color:#b2cbd4}.ot-timeline-item.point{z-index:5;width:12px!important;min-width:12px;height:12px;padding:0;border:2px solid #eafcff;border-radius:50%;background:var(--item);overflow:visible}.ot-timeline-item.point:after{content:attr(data-label);position:absolute;left:14px;top:-4px;max-width:130px;padding:2px 4px;border-radius:4px;background:#061923;color:var(--item);font-size:6px;font-weight:1000;opacity:0;pointer-events:none}.ot-timeline-item.point:hover:after,.ot-timeline-item.point.active:after{opacity:1}.ot-session{z-index:1;height:4px!important;transform:translateY(7px);border-style:solid;opacity:.62;padding:0;box-shadow:none}.ot-segment{z-index:3;height:20px}
.ot-now-line{position:absolute;z-index:6;top:0;bottom:0;width:1px;background:var(--red);box-shadow:0 0 8px var(--red);pointer-events:none}.ot-now-line span{position:absolute;top:3px;left:4px;padding:2px 4px;border-radius:4px;background:var(--red);color:white;font-size:6px;font-weight:1000}.ot-empty{position:absolute;z-index:8;inset:32px 0 0;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);background:rgba(6,25,35,.78)}.ot-empty svg{width:18px}.ot-empty strong{font-size:9px}
.ot-timeline-item:empty{padding:0;border-radius:2px;box-shadow:none}.ot-timeline-item.point:empty{border-radius:50%;box-shadow:0 0 9px color-mix(in srgb,var(--item) 35%,transparent)}
.ot-time-cursor{position:absolute;z-index:9;top:0;bottom:0;width:1px;background:var(--cyan);box-shadow:0 0 8px rgba(49,215,255,.8);pointer-events:none}.ot-time-cursor:after{content:"";position:absolute;top:28px;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--cyan)}.ot-time-cursor span{position:absolute;top:3px;left:5px;padding:2px 4px;border:1px solid var(--cyan);border-radius:4px;background:#042134;color:var(--cyan);font:900 6px ui-monospace,monospace;white-space:nowrap}.ot-lane.filtered-off{opacity:.16}
.ot-timeline-foot{padding:0 10px;border-top:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;gap:12px;color:#628796;font-size:7px;font-weight:800}.ot-timeline-foot span{display:flex;align-items:center;gap:5px}.ot-timeline-foot svg{width:12px;color:var(--cyan)}
.ot-loading{position:fixed;inset:0;z-index:2000;background:rgba(2,12,18,.8);backdrop-filter:blur(4px);display:grid;place-content:center;justify-items:center}.ot-loading>i{width:34px;height:34px;border:3px solid #16485a;border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}.ot-loading strong{margin-top:12px}.ot-loading span{margin-top:5px;color:var(--muted);font-size:9px}.ot-notice{position:fixed;z-index:2100;left:50%;bottom:18px;transform:translateX(-50%);max-width:min(600px,90vw);padding:10px 14px;border:1px solid #9b6828;border-radius:9px;background:#2c1d09;color:#ffdda0;font-size:9px;font-weight:900;box-shadow:var(--shadow)}
.ot-zone-panel{position:fixed;z-index:1800;top:82px;right:16px;width:min(390px,calc(100vw - 32px));max-height:calc(100vh - 100px);border:1px solid var(--line-strong,#31d7ff);border-radius:14px;background:rgba(4,21,34,.98);box-shadow:0 24px 70px rgba(0,0,0,.55);backdrop-filter:blur(12px);display:grid;grid-template-rows:auto auto auto minmax(100px,1fr) auto auto;overflow:hidden}.ot-zone-panel>header{height:61px;padding:11px 13px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#071a28}.ot-zone-panel>header small,.ot-zone-panel>header strong{display:block}.ot-zone-panel>header small{color:var(--cyan);font-size:7px;font-weight:1000;letter-spacing:.14em}.ot-zone-panel>header strong{margin-top:3px;font-size:15px}.ot-zone-panel>header button{width:31px;height:31px;border:1px solid var(--line);border-radius:8px;background:#0a2234;color:var(--muted);cursor:pointer;display:grid;place-items:center}.ot-zone-panel>header svg{width:16px}
.ot-zone-panel-tools{padding:9px 11px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.ot-zone-panel-tools button,.ot-zone-panel-tools a,.ot-zone-panel>footer button{height:35px;border:1px solid var(--line);border-radius:8px;background:#091d2c;color:var(--muted);text-decoration:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-size:8px;font-weight:1000;letter-spacing:.04em}.ot-zone-panel-tools svg,.ot-zone-panel>footer svg{width:14px}.ot-zone-panel-tools button:hover,.ot-zone-panel-tools a:hover,.ot-zone-panel>footer button:hover{border-color:var(--cyan);color:var(--cyan)}.ot-zone-help{margin:9px 11px 7px;color:var(--muted);font-size:8px;line-height:1.45}
.ot-zone-settings-list{min-height:92px;max-height:180px;overflow:auto;padding:0 10px 7px}.ot-zone-row{--zone:#35d8ff;width:100%;min-height:48px;margin:4px 0;padding:7px 9px;border:1px solid var(--line2);border-left:3px solid var(--zone);border-radius:8px;background:#061923;color:var(--text);cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;text-align:left}.ot-zone-row:hover,.ot-zone-row.active{border-color:var(--zone);background:color-mix(in srgb,var(--zone) 8%,#061923)}.ot-zone-row strong,.ot-zone-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-zone-row strong{font-size:10px}.ot-zone-row small{margin-top:4px;color:var(--muted);font-size:7px}.ot-zone-row b{align-self:center;padding:3px 5px;border:1px solid color-mix(in srgb,var(--zone) 50%,var(--line));border-radius:5px;color:var(--zone);font-size:6px;letter-spacing:.06em}
.ot-zone-settings-detail{margin:0 10px 9px;padding:10px;border:1px solid var(--line2);border-radius:10px;background:#041721;overflow:auto}.ot-zone-detail-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ot-zone-detail-head strong{font-size:12px}.ot-zone-detail-head span{padding:3px 6px;border-radius:5px;font-size:7px;font-weight:1000}.ot-zone-detail-head span.active{background:rgba(49,230,160,.12);color:var(--green)}.ot-zone-detail-head span.paused{background:rgba(255,191,63,.12);color:var(--amber)}.ot-zone-description{margin:7px 0 0;color:#8caebb;font-size:8px;line-height:1.45}.ot-zone-facts{margin:9px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:5px}.ot-zone-facts>div{padding:6px;border:1px solid var(--line2);border-radius:7px}.ot-zone-facts dt,.ot-zone-facts dd{margin:0}.ot-zone-facts dt{color:var(--muted);font-size:6px;font-weight:900;letter-spacing:.07em}.ot-zone-facts dd{margin-top:3px;color:var(--text);font:900 8px ui-monospace,monospace}.ot-zone-empty{height:100%;min-height:80px;display:grid;place-content:center;justify-items:center;color:var(--muted);font-size:8px}.ot-zone-empty svg{width:20px;margin-bottom:6px;color:#376d80}
.ot-zone-panel>footer{padding:9px 10px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr;gap:6px}.ot-zone-panel>footer button.primary{border-color:#2387a3;background:#0d3a4a;color:var(--cyan)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1250px){.ot-toolbar{grid-template-columns:minmax(210px,1fr) auto minmax(160px,.8fr) auto}.ot-nav{display:none}.ot-map-summary>span{min-width:65px}.ot-map-legend{left:auto;right:12px;transform:none}.ot-detail-card{left:12px;right:auto}.ot-shell{grid-template-rows:66px minmax(220px,1fr) var(--timeline-h)}.ot-lane-filters>button span{display:none}.ot-lane-filters>button{width:28px;padding:0;justify-content:center}.ot-timeline-status>span{min-width:74px}}
@media(max-width:850px){body{overflow:auto}.ot-shell{height:auto;min-height:100%;grid-template-rows:auto 420px 310px}.ot-toolbar{grid-template-columns:1fr auto;gap:7px}.ot-brand{grid-column:1/-1}.ot-entity-select{grid-column:1/2}.ot-week-nav{grid-column:1/-1}.ot-week-label{flex:1}.ot-map-summary{transform:scale(.84);transform-origin:left top}.ot-map-legend{display:none}.ot-map-tools{top:auto;bottom:10px}.ot-detail-card{width:calc(100% - 24px);max-width:360px}.ot-timeline-grid{grid-template-columns:90px minmax(700px,1fr);overflow-x:auto}.ot-timeline-panel{overflow:auto}.ot-timeline-head{min-width:790px}.ot-timeline-foot{min-width:790px}.ot-timeline-status{display:none}}

/* v10 history, reporting and timeline-density controls */
.ot-shell{grid-template-rows:66px 42px minmax(220px,1fr) var(--timeline-h)}
.ot-filterbar{z-index:9;min-width:0;display:grid;grid-template-columns:145px 145px 115px auto auto auto minmax(150px,1fr);gap:6px;align-items:center;padding:5px 8px;border:1px solid var(--line);border-radius:11px;background:#071a28;box-shadow:var(--shadow)}
.ot-filterbar label{min-width:0}.ot-filterbar label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ot-filterbar select{width:100%;height:30px;padding:0 23px 0 8px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--text);font-size:7px;font-weight:1000;letter-spacing:.04em}
.ot-filterbar>button{height:30px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px}.ot-filterbar>button:hover{border-color:var(--cyan);color:var(--cyan)}.ot-filterbar>button svg{width:14px}.ot-filterbar>button span small,.ot-filterbar>button span strong{display:block;text-align:left}.ot-filterbar>button span small{font-size:5.5px;letter-spacing:.09em}.ot-filterbar>button span strong{margin-top:1px;color:var(--text);font-size:7px}.ot-filterbar>button.health.ok{border-color:rgba(49,230,160,.45)}.ot-filterbar>button.health.ok svg,.ot-filterbar>button.health.ok strong{color:var(--green)}.ot-filterbar>button.health.warn{border-color:rgba(255,191,63,.55)}.ot-filterbar>button.health.warn svg,.ot-filterbar>button.health.warn strong{color:var(--amber)}.ot-filterbar>button.health.error{border-color:rgba(255,77,114,.6)}.ot-filterbar>button.health.error svg,.ot-filterbar>button.health.error strong{color:var(--red)}
.ot-filter-summary{min-width:0;padding-left:8px;border-left:1px solid var(--line2)}.ot-filter-summary b,.ot-filter-summary span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-filter-summary b{color:var(--cyan);font-size:7px;letter-spacing:.08em}.ot-filter-summary span{margin-top:2px;color:var(--muted);font-size:6px}
.ot-lane-labels.dynamic{grid-template-rows:32px repeat(var(--lane-count,4),1fr)}.ot-lanes.dynamic{grid-template-rows:repeat(var(--lane-count,4),1fr)}.ot-lane-labels .zone-lane{align-items:flex-start;justify-content:center;flex-direction:column;gap:2px}.ot-lane-labels .zone-lane b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:8px}.ot-lane-labels .zone-lane small{color:var(--muted);font-size:5.5px;line-height:1.35}
.density-compact .ot-timeline-item{height:14px;padding-inline:4px}.density-compact .ot-timeline-item strong{font-size:5.5px}.density-compact .ot-timeline-item small{display:none}.density-compact .ot-segment{height:13px}.density-large .ot-timeline-item{height:29px;padding-inline:9px;border-width:2px}.density-large .ot-timeline-item strong{font-size:8px}.density-large .ot-timeline-item small{font-size:7px}.density-large .ot-segment{height:27px}.density-compact .ot-session,.density-large .ot-session{height:4px!important;padding:0}
.ot-zone-grouping [data-lane-toggle]{display:none}.ot-zone-grouping .ot-lane-labels{grid-template-rows:32px repeat(var(--lane-count,4),1fr)}
.ot-range-panel,.ot-health-panel{position:fixed;z-index:1900;top:122px;right:16px;width:min(390px,calc(100vw - 32px));padding-bottom:10px;border:1px solid var(--line-strong,#31d7ff);border-radius:14px;background:rgba(4,21,34,.98);box-shadow:0 24px 70px rgba(0,0,0,.55);backdrop-filter:blur(12px);overflow:hidden}.ot-range-panel>header,.ot-health-panel>header{height:58px;padding:10px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#071a28}.ot-range-panel header small,.ot-range-panel header strong,.ot-health-panel header small,.ot-health-panel header strong{display:block}.ot-range-panel header small,.ot-health-panel header small{color:var(--cyan);font-size:6px;font-weight:1000;letter-spacing:.13em}.ot-range-panel header strong,.ot-health-panel header strong{margin-top:3px;font-size:13px}.ot-range-panel header button,.ot-health-panel header button{width:29px;height:29px;border:1px solid var(--line);border-radius:7px;background:#0a2234;color:var(--muted);cursor:pointer}.ot-range-panel header svg,.ot-health-panel header svg{width:14px}
.ot-range-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:10px 10px 4px}.ot-range-presets button{height:32px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--muted);cursor:pointer;font-size:8px;font-weight:1000}.ot-range-presets button:hover,.ot-range-presets button.active{border-color:var(--cyan);color:var(--cyan);background:#0a2b3b}.ot-range-panel>label{display:grid;grid-template-columns:65px 1fr;align-items:center;gap:7px;margin:7px 10px}.ot-range-panel>label span{color:var(--muted);font-size:7px;font-weight:1000}.ot-range-panel input{height:35px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--text);font:900 9px ui-monospace,monospace;color-scheme:dark}.ot-range-panel>p,.ot-health-panel>p{margin:9px 10px;color:var(--muted);font-size:7px;line-height:1.45}.ot-range-panel>footer,.ot-health-panel>footer{display:flex;justify-content:flex-end;padding:0 10px}.ot-range-panel footer button,.ot-health-panel footer button{height:34px;padding:0 12px;border:1px solid var(--cyan);border-radius:7px;background:#08283a;color:var(--cyan);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:7px;font-weight:1000}.ot-range-panel footer svg,.ot-health-panel footer svg{width:13px}
.ot-health-cards{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px}.ot-health-card{min-height:54px;padding:8px;border:1px solid var(--line2);border-radius:8px;background:#061923}.ot-health-card small,.ot-health-card strong,.ot-health-card span{display:block}.ot-health-card small{color:var(--muted);font-size:6px;font-weight:1000;letter-spacing:.08em}.ot-health-card strong{margin-top:4px;font:1000 13px ui-monospace,monospace}.ot-health-card span{margin-top:3px;color:#7799a6;font-size:6px}.ot-health-card.ok strong{color:var(--green)}.ot-health-card.warn strong{color:var(--amber)}.ot-health-card.error strong{color:var(--red)}
.ot-report-panel{position:fixed;z-index:2300;inset:14px;border:1px solid var(--cyan);border-radius:15px;background:#eef7f9;color:#08202a;box-shadow:0 30px 90px rgba(0,0,0,.7);overflow:auto}.ot-report-panel>header{position:sticky;z-index:2;top:0;min-height:72px;padding:13px 17px;border-bottom:2px solid #0f7994;background:#e7f4f7;display:flex;align-items:center;justify-content:space-between;gap:15px}.ot-report-panel header small,.ot-report-panel header strong,.ot-report-panel header span{display:block}.ot-report-panel header small{color:#0b7896;font-size:7px;font-weight:1000;letter-spacing:.14em}.ot-report-panel header strong{margin-top:3px;font-size:19px}.ot-report-panel header span{margin-top:3px;color:#4c6974;font-size:8px}.ot-report-panel header>div:last-child{display:flex;gap:6px}.ot-report-panel header button{height:34px;padding:0 10px;border:1px solid #0d7792;border-radius:7px;background:#fff;color:#0a6178;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:7px;font-weight:1000}.ot-report-panel header svg{width:14px}.ot-report-body{padding:16px;display:grid;gap:13px}.ot-report-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.ot-report-kpi{padding:10px;border:1px solid #b4d1d9;border-radius:9px;background:#fff}.ot-report-kpi small,.ot-report-kpi strong,.ot-report-kpi span{display:block}.ot-report-kpi small{color:#66818b;font-size:7px;font-weight:900}.ot-report-kpi strong{margin-top:4px;color:#0c6d87;font:1000 19px ui-monospace,monospace}.ot-report-kpi span{margin-top:3px;color:#6c858e;font-size:6px}.ot-report-section{border:1px solid #b4d1d9;border-radius:9px;background:#fff;overflow:hidden}.ot-report-section h2{margin:0;padding:9px 11px;border-bottom:1px solid #cbdde2;background:#edf6f8;color:#0c6177;font-size:10px;letter-spacing:.05em}.ot-report-table{width:100%;border-collapse:collapse;font-size:8px}.ot-report-table th,.ot-report-table td{padding:7px 9px;border-bottom:1px solid #dce9ec;text-align:left}.ot-report-table th{color:#58727c;background:#f7fbfc;font-size:6px;letter-spacing:.07em}.ot-report-table tr:last-child td{border-bottom:0}.ot-report-bar{height:6px;border-radius:3px;background:#d9e8ec;overflow:hidden}.ot-report-bar i{display:block;height:100%;background:#16a6ca}.ot-report-note{padding:10px;border-left:4px solid #e8a526;background:#fff9e9;color:#6e5a23;font-size:8px;line-height:1.5}
@media(max-width:1250px){.ot-shell{grid-template-rows:66px 42px minmax(220px,1fr) var(--timeline-h)}.ot-filterbar{grid-template-columns:125px 125px 100px auto auto auto 1fr}}
@media(max-width:850px){.ot-shell{grid-template-rows:auto auto 420px 310px}.ot-filterbar{grid-template-columns:1fr 1fr 1fr}.ot-filterbar>button{justify-content:center}.ot-filter-summary{grid-column:1/-1}.ot-report-kpis{grid-template-columns:repeat(2,1fr)}}
@media print{body{overflow:visible!important;background:#fff!important}.ot-shell,.ot-zone-panel,.ot-range-panel,.ot-health-panel,.ot-loading,.ot-notice{display:none!important}.ot-report-panel{position:static!important;display:block!important;inset:auto!important;border:0!important;box-shadow:none!important;overflow:visible!important}.ot-report-panel>header{position:static!important}.ot-report-panel header>div:last-child{display:none!important}.ot-report-body{padding:8px}.ot-report-section,.ot-report-kpi{break-inside:avoid}.ot-report-table{font-size:7px}}

/* v12 compact operations layout, readable timeline and explicit Istanbul time */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ot-shell{grid-template-rows:52px 36px minmax(240px,1fr) var(--timeline-h);gap:6px;padding:6px}
.ot-toolbar{grid-template-columns:minmax(150px,190px) auto minmax(240px,1fr) auto auto;gap:6px;padding:4px 7px;border-radius:11px}
.ot-brand{gap:8px}.ot-brand>span{width:36px;height:36px;border-radius:8px;font-size:16px}.ot-brand strong{font-size:13px;letter-spacing:.07em}.ot-brand small{display:none}
.ot-view-switch{padding:2px;border-radius:8px}.ot-view-switch button{height:32px;min-width:61px;border-radius:6px;font-size:9px;gap:5px}.ot-view-switch svg{width:14px}
.ot-entity-select>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ot-entity-select select{height:34px;border-radius:7px;padding-left:9px;font-size:11px}
.ot-week-nav{gap:3px}.ot-week-nav button,.ot-nav a,.ot-nav button{height:34px;border-radius:7px}.ot-week-nav>button:not(.ot-week-label){width:33px}.ot-week-label{width:136px!important}.ot-week-label small{display:none}.ot-week-label strong{margin:0;font-size:10px}
.ot-nav{gap:3px}.ot-nav a,.ot-nav button{min-width:34px;width:34px;padding:0}.ot-nav span{display:none}.ot-nav svg{width:15px}
.ot-filterbar{grid-template-columns:minmax(130px,1.2fr) minmax(120px,1fr) 100px auto auto auto;gap:4px;padding:3px 6px;border-radius:9px}
.ot-filterbar select{height:28px;font-size:9.5px}.ot-filterbar>button{height:28px;padding:0 8px;gap:5px}.ot-filterbar>button span small{display:none}.ot-filterbar>button span strong{margin:0;font-size:9px;white-space:nowrap}.ot-filter-summary{display:none}
.ot-map-summary{left:48px;top:9px;gap:2px;padding:3px;border-radius:8px}.ot-map-summary>span{min-width:67px;height:37px;padding:3px 6px;grid-template-columns:15px 1fr;grid-template-rows:17px 11px}.ot-map-summary svg{width:13px}.ot-map-summary b{font-size:14px}.ot-map-summary small{font-size:8px;letter-spacing:.04em}
.ot-map-tools{right:9px;top:9px}.ot-map-tools button{height:31px;font-size:9px}.ot-map-legend{bottom:7px;padding:5px 9px;gap:10px}.ot-map-legend span{font-size:8px}
.ot-timeline-panel{grid-template-rows:46px minmax(0,1fr) 22px;border-radius:11px}.ot-timeline-head{padding:5px 8px;gap:8px}.ot-timeline-head>div:first-child{max-width:190px}.ot-timeline-head>div:first-child>small{font-size:7px}.ot-timeline-head>div:first-child>strong{margin-top:1px;font-size:13px}.ot-timeline-head>div:first-child>span{display:none}
.ot-lane-filters{gap:2px}.ot-lane-filters button{height:26px;padding:0 6px;font-size:8px}.ot-lane-filters button svg{width:12px}.ot-height-control{height:26px}.ot-height-control button{height:20px!important}.ot-timeline-status{gap:3px}.ot-timeline-status>span{min-width:76px;height:33px;padding:3px 6px;grid-template-rows:15px 9px}.ot-timeline-status b{font-size:12px}.ot-timeline-status small{font-size:6.5px}
.ot-timeline-grid{grid-template-columns:150px minmax(0,1fr)}.ot-lane-labels>span{padding:0 8px;font-size:9px}.ot-lane-labels .axis-label{font-size:9px;color:#86adbd}.ot-lane-labels .zone-lane b{font-size:9px}.ot-lane-labels .zone-lane small{font-size:7px}.ot-day-cell strong{font-size:9px}.ot-day-cell span{font-size:8px}.ot-timeline-item strong{font-size:9px}.ot-timeline-item small{font-size:7.5px}.ot-timeline-item.point:after{font-size:8px}
.ot-timeline-foot{padding:0 8px;font-size:8px}.ot-timeline-foot span:first-child{color:#759aaa}.ot-timeline-foot #historyAccuracy{margin-left:auto;color:#8eb1c3;letter-spacing:.02em;text-align:right}
.ot-range-panel,.ot-health-panel{top:101px}

@media(max-width:1200px){
  .ot-toolbar{grid-template-columns:42px auto minmax(190px,1fr) auto auto}.ot-brand strong{display:none}.ot-nav a,.ot-nav button{display:none}.ot-nav a:last-child{display:flex}.ot-filterbar{grid-template-columns:minmax(120px,1fr) minmax(115px,1fr) 90px auto auto auto}.ot-lane-filters>button span{display:none}.ot-lane-filters>button{width:26px;padding:0;justify-content:center}.ot-timeline-status>span{min-width:70px}
}
@media(max-width:850px){
  body{overflow:auto}.ot-shell{height:auto;min-height:100%;grid-template-rows:auto auto 420px 310px}.ot-toolbar{grid-template-columns:42px auto minmax(160px,1fr);padding:6px}.ot-brand{grid-row:1}.ot-view-switch{grid-row:1}.ot-entity-select{grid-column:1/-1}.ot-week-nav{grid-column:1/-1}.ot-week-label{flex:1}.ot-nav{display:none}.ot-filterbar{grid-template-columns:1fr 1fr 1fr}.ot-filterbar>button{justify-content:center}.ot-timeline-head{min-width:760px}.ot-timeline-grid{grid-template-columns:118px minmax(680px,1fr)}.ot-timeline-foot{min-width:760px}.ot-timeline-status{display:none}
}

/* v13 zone-first information architecture, exact AIS placement and print-ready reporting */
.ot-shell{--timeline-h:340px;grid-template-rows:48px minmax(250px,1fr) var(--timeline-h);gap:6px;padding:6px}
.ot-toolbar{grid-template-columns:minmax(170px,1fr) auto auto auto;gap:6px;padding:4px 7px}
.ot-filter-toggle{height:34px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:8px;font-weight:1000}.ot-filter-toggle:hover{border-color:var(--cyan);color:var(--cyan)}.ot-filter-toggle svg{width:15px}
.ot-filterbar{position:absolute;z-index:720;left:10px;top:10px;width:232px;max-height:calc(100% - 20px);padding:8px;display:flex;flex-direction:column;align-items:stretch;gap:7px;border:1px solid rgba(49,215,255,.42);border-radius:12px;background:rgba(3,18,29,.96);box-shadow:0 18px 45px rgba(0,0,0,.48);backdrop-filter:blur(12px);transition:width .18s ease,padding .18s ease}
.ot-filterbar>header{min-height:34px;padding-bottom:7px;border-bottom:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;gap:8px}.ot-filterbar>header small,.ot-filterbar>header strong{display:block}.ot-filterbar>header small{color:var(--cyan);font-size:6px;font-weight:1000;letter-spacing:.12em}.ot-filterbar>header strong{margin-top:2px;font-size:11px}.ot-filterbar>header button{width:29px;height:29px;border:1px solid var(--line);border-radius:7px;background:#082334;color:var(--muted);cursor:pointer;display:grid;place-items:center}.ot-filterbar>header button:hover{color:var(--cyan)}.ot-filterbar>header svg{width:14px}
.ot-filterbar .ot-view-switch{width:100%}.ot-filterbar .ot-view-switch button{flex:1;height:31px}.ot-filterbar .ot-entity-select>span,.ot-filterbar>label>span{position:static;width:auto;height:auto;margin:0 0 4px 2px;clip:auto;overflow:visible;display:block;color:#789eae;font-size:6px;font-weight:1000;letter-spacing:.1em}.ot-filterbar .ot-entity-select select,.ot-filterbar>label select{height:34px;font-size:9px}
.ot-filterbar.collapsed{width:42px;height:42px;padding:5px;overflow:hidden}.ot-filterbar.collapsed>header{min-height:30px;padding:0;border:0}.ot-filterbar.collapsed>header>div,.ot-filterbar.collapsed>:not(header){display:none}.ot-filterbar.collapsed>header button{width:30px;height:30px}.filters-collapsed .ot-map-summary{left:60px}
.ot-multiselect{position:relative}.ot-multiselect>button{width:100%;height:36px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--muted);cursor:pointer;display:grid;grid-template-columns:17px minmax(0,1fr) 14px;align-items:center;gap:5px;text-align:left}.ot-multiselect>button.filtered{border-color:rgba(255,191,63,.6)}.ot-multiselect>button>svg{width:14px}.ot-multiselect>button span small,.ot-multiselect>button span strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-multiselect>button span small{font-size:5.5px;letter-spacing:.1em}.ot-multiselect>button span strong{margin-top:2px;color:var(--text);font-size:8px}.ot-multiselect>button .chevron{width:12px}
.ot-type-menu{position:absolute;z-index:1100;left:calc(100% + 9px);top:-45px;width:236px;max-height:min(390px,70vh);overflow:auto;padding:7px;border:1px solid var(--cyan);border-radius:10px;background:#051b29;box-shadow:0 20px 55px rgba(0,0,0,.6)}.ot-type-menu-head{padding:2px 2px 7px;border-bottom:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;gap:8px}.ot-type-menu-head>strong{font-size:7px;letter-spacing:.07em}.ot-type-menu-head span{display:flex;gap:3px}.ot-type-menu-head button{height:23px;padding:0 6px;border:1px solid var(--line);border-radius:5px;background:#092436;color:var(--cyan);cursor:pointer;font-size:6px;font-weight:1000}.ot-type-menu label{min-height:31px;padding:5px 4px;border-bottom:1px solid rgba(91,195,226,.09);display:grid;grid-template-columns:15px minmax(0,1fr);align-items:center;gap:7px;color:#b7d0da;cursor:pointer;font-size:8px;font-weight:900}.ot-type-menu label:hover{background:#092638}.ot-type-menu input{position:absolute;opacity:0}.ot-type-menu label i{width:14px;height:14px;border:1px solid #37768c;border-radius:4px;background:#061522}.ot-type-menu input:checked+i{border-color:var(--cyan);background:var(--cyan);box-shadow:inset 0 0 0 3px #061522,0 0 7px rgba(49,215,255,.5)}
.ot-filter-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.ot-filter-actions>button{min-width:0;height:36px;padding:3px;border:1px solid var(--line);border-radius:7px;background:#091d2c;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:3px;text-align:center}.ot-filter-actions>button:hover{border-color:var(--cyan)}.ot-filter-actions>button svg{width:13px;flex:0 0 auto}.ot-filter-actions>button small{display:none}.ot-filter-actions>button strong{display:block;max-width:50px;color:var(--text);font-size:6px;line-height:1.15;white-space:normal}.ot-filter-actions>button.health.ok{border-color:rgba(49,230,160,.45)}.ot-filter-actions>button.health.warn{border-color:rgba(255,191,63,.55)}.ot-filter-actions>button.health.error{border-color:rgba(255,77,114,.65)}
.ot-map-summary{left:252px;transition:left .18s ease}.ot-map-stage .leaflet-control-zoom{margin-left:10px!important;margin-top:66px!important}
.ot-vessel-marker{width:56px!important;height:42px!important;background:transparent!important;border:0!important;overflow:visible!important}.ot-live-vessel-symbol{position:absolute;left:0;top:0;width:56px;height:42px;transform:scale(1);transform-origin:50% 50%;transition:opacity .15s ease,transform .15s ease}.ot-live-vessel-symbol.compact{transform:scale(.78)}.ot-live-vessel-sprite{position:absolute;left:0;top:5.5px;width:56px;height:31px;background-image:url("https://smc-platforms.com/smc/portal/live_track/assets/ais-vessels-top-view.png");background-repeat:no-repeat;background-size:279.6px 209.7px;filter:drop-shadow(0 1px 1px rgba(2,6,23,.78));transform:rotate(calc(var(--ais-heading) - 90deg));transform-origin:50% 50%;transition:filter .14s ease,transform .22s linear}.ot-vessel-marker:hover .ot-live-vessel-sprite{filter:brightness(1.12) contrast(1.04) drop-shadow(0 1px 1px rgba(2,6,23,.78))}.ot-live-vessel-sprite.ais-sprite-cargo{background-position:0 -13.5px}.ot-live-vessel-sprite.ais-sprite-tanker{background-position:-223.6px -13.5px}.ot-live-vessel-sprite.ais-sprite-passenger{background-position:-55.8px -45.4px}.ot-live-vessel-sprite.ais-sprite-service{background-position:-55.8px -80.1px}.ot-live-vessel-sprite.ais-sprite-fishing{background-position:0 -80.1px}.ot-live-vessel-sprite.ais-sprite-pleasure{background-position:-55.8px -115.9px}.ot-live-vessel-sprite.ais-sprite-other{background-position:-111.8px -45.4px}.ot-live-vessel-sprite.ais-sprite-unknown{background-position:-167.8px -151.6px}.ot-ais-status{position:absolute;right:0;bottom:2px;display:grid;min-width:13px;height:12px;padding:0 2px;place-items:center;border:1px solid #94a3b8;border-radius:3px;background:#071923;color:#f8fafc;box-shadow:0 1px 2px rgba(2,6,23,.72);font:900 7px/1 Arial,sans-serif}.ot-ais-status.anchor{width:14px;min-width:14px;height:14px;padding:0;border-color:#eab308;border-radius:50%;color:#fde68a;font-size:8px}.ot-ais-status.moored{border-color:#3b82f6;color:#bfdbfe}.ot-ais-status.distress{border-color:#ef4444;background:#991b1b;color:#fff}.ot-vessel-marker.true-scale .ot-live-vessel-symbol.has-reported-size{opacity:.44}.ot-vessel-footprint{filter:drop-shadow(0 0 4px currentColor)}.ot-ais-reference{filter:drop-shadow(0 0 3px #fff)}
.ot-route-tooltip strong{color:var(--cyan);font-size:9px}
.ot-timeline-panel{grid-template-rows:48px minmax(0,1fr) 22px}.ot-timeline-head>div:first-child{min-width:140px;max-width:220px}.ot-timeline-grid{grid-template-columns:220px minmax(0,1fr)}.ot-lane-labels .axis-label{display:flex;align-items:center;justify-content:space-between;flex-direction:row}.ot-lane-labels .axis-label b{color:var(--cyan);font-size:7px}.ot-lane-labels .axis-label small{color:#789eae;font-size:7px}.ot-lane-labels .zone-lane{padding:4px 9px;align-items:flex-start;justify-content:center;gap:1px}.ot-lane-labels .zone-lane>small{max-width:100%;color:var(--cyan);font-size:6px;font-weight:1000;letter-spacing:.09em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-lane-labels .zone-lane>b{max-width:100%;color:var(--text);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-lane-labels .zone-lane>em{max-width:100%;color:#789eae;font-size:6px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-zone-mode .ot-timeline-item strong{font-size:8px}.ot-zone-mode .ot-timeline-item small{font-size:7px}.ot-zone-mode .ot-segment{height:20px}.ot-zone-mode .ot-session{height:5px}.ot-timeline-item{border-radius:4px}.ot-timeline-item.point:hover:after,.ot-timeline-item.point.active:after{max-width:190px;font-size:7px}
.ot-report-cover{padding:18px 20px;border-radius:10px;background:#073044;color:#fff}.ot-report-cover small{color:#55ddff;font-size:7px;font-weight:1000;letter-spacing:.14em}.ot-report-cover h1{margin:5px 0 0;font-size:25px}.ot-report-cover p{margin:5px 0 0;color:#b9d9e3;font-size:9px}.ot-report-intro{margin:0;padding:7px 10px;border-bottom:1px solid #d5e5e9;color:#59747e;font-size:7px}.ot-report-table td b.open{color:#bd7100}.ot-report-warning{padding:10px;border-left:4px solid #e04f62;background:#fff0f2;color:#7a2431;font-size:8px}.ot-report-table tbody tr:nth-child(even){background:#f7fbfc}.ot-report-table tbody tr:hover{background:#e7f6f9}
@page{size:A4 landscape;margin:9mm}
@media print{
  html,body{background:#eef7f9!important}.ot-report-panel{min-height:100vh!important;background:#eef7f9!important}.ot-report-panel>header{min-height:48px;padding:7px 10px}.ot-report-panel header strong{font-size:14px}.ot-report-panel header small,.ot-report-panel header span{font-size:6px}.ot-report-body{padding:0;gap:7px}.ot-report-cover{padding:11px 14px}.ot-report-cover h1{font-size:18px}.ot-report-kpis{gap:4px}.ot-report-kpi{padding:6px;border-radius:5px}.ot-report-kpi strong{font-size:14px}.ot-report-section{border-radius:5px;break-inside:auto}.ot-report-section h2{padding:6px 8px;font-size:8px}.ot-report-table{font-size:6px}.ot-report-table thead{display:table-header-group}.ot-report-table tr{break-inside:avoid}.ot-report-table th,.ot-report-table td{padding:4px 5px}.report-break{break-before:auto}.ot-report-note,.ot-report-warning{font-size:6px;padding:7px}
}
@media(max-width:1100px){.ot-toolbar{grid-template-columns:150px auto auto}.ot-nav{display:none}.ot-timeline-status>span:nth-child(3){display:none}.ot-lane-filters>button span{display:none}.ot-lane-filters>button{width:26px;padding:0;justify-content:center}.ot-timeline-grid{grid-template-columns:190px minmax(760px,1fr)}}
@media(max-width:760px){body{overflow:auto}.ot-shell{height:auto;min-height:100%;grid-template-rows:auto 480px 360px}.ot-toolbar{grid-template-columns:1fr auto}.ot-week-nav{grid-column:1/-1}.ot-filter-toggle span{display:none}.ot-filterbar{width:min(230px,calc(100vw - 26px))}.ot-type-menu{left:0;top:42px;width:100%}.ot-map-summary{left:auto;right:8px;transform:scale(.82);transform-origin:right top}.ot-map-legend{display:none}.ot-timeline-head{min-width:850px}.ot-timeline-panel{overflow:auto}.ot-timeline-grid{grid-template-columns:180px minmax(760px,1fr)}.ot-timeline-foot{min-width:850px}}

/* v14 all-zone performance reporting and portal-safe filter labels */
.ot-filterbar .ot-type-menu label>span{position:static!important;width:auto!important;height:auto!important;margin:0!important;clip:auto!important;clip-path:none!important;overflow:visible!important;white-space:nowrap!important;color:#b7d0da!important;font-size:8px!important;line-height:1.2!important;font-weight:900!important}
.ot-report-panel{--report-navy:#14233e;--report-blue:#4fa6d9;--report-line:#d9e2eb;--report-muted:#65748a}
.ot-report-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;background:linear-gradient(120deg,#14233e,#18385a)}
.ot-report-cover>div:last-child{text-align:right}.ot-report-cover em{display:block;color:#8edcff;font-size:8px;font-style:normal;font-weight:900}.ot-report-cover b{display:block;margin-top:3px;color:#fff;font:1000 17px ui-monospace,monospace}
.ot-report-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.ot-report-kpi{border-top:3px solid var(--report-blue)}.ot-report-kpi strong{color:var(--report-navy)}
.ot-report-stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;background:#f6f9fc}.ot-report-stage{padding:10px;border:1px solid var(--report-line);border-radius:8px;background:#fff}.ot-report-stage small,.ot-report-stage strong,.ot-report-stage span{display:block}.ot-report-stage small{color:#344b78;font-size:7px;font-weight:1000;letter-spacing:.08em}.ot-report-stage strong{margin-top:5px;color:var(--report-navy);font:1000 18px ui-monospace,monospace}.ot-report-stage span{margin-top:4px;color:var(--report-muted);font-size:7px;line-height:1.35}.ot-report-stage progress{width:100%;height:8px;margin-top:7px;accent-color:var(--report-blue)}
.ot-report-callouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ot-report-callout{padding:11px;border:1px solid var(--report-line);border-radius:9px;background:#fff}.ot-report-callout small,.ot-report-callout strong,.ot-report-callout span{display:block}.ot-report-callout small{color:var(--report-muted);font-size:6px;font-weight:1000;letter-spacing:.08em}.ot-report-callout strong{margin-top:4px;color:var(--report-navy);font-size:12px}.ot-report-callout span{margin-top:4px;color:var(--report-muted);font-size:7px;line-height:1.4}.ot-report-callout.review{border-left:4px solid #e59d26}.ot-report-callout.good{border-left:4px solid #29a97d}.ot-report-callout.info{border-left:4px solid var(--report-blue)}
.ot-report-table th{white-space:nowrap}.ot-report-table td{vertical-align:top}.ot-report-table td.number{text-align:right;font-family:ui-monospace,monospace}.ot-report-table tr.zone-best td:first-child{border-left:4px solid #29a97d}.ot-report-table tr.zone-review td:first-child{border-left:4px solid #e59d26}.ot-report-source{display:inline-flex;padding:2px 5px;border-radius:999px;background:#eaf3f7;color:#41606d;font-size:6px;font-weight:900}.ot-report-source.inferred{background:#fff3dc;color:#8b6113}.ot-report-confidence{font-weight:900}.ot-report-confidence.good{color:#17835f}.ot-report-confidence.review{color:#b56d00}
@media(max-width:980px){.ot-report-kpis{grid-template-columns:repeat(3,1fr)}.ot-report-stage-grid{grid-template-columns:repeat(2,1fr)}.ot-report-callouts{grid-template-columns:1fr}}
@media print{.ot-report-cover{grid-template-columns:1fr auto!important}.ot-report-stage-grid{grid-template-columns:repeat(4,1fr)!important;gap:4px;padding:5px}.ot-report-stage{padding:6px}.ot-report-stage strong{font-size:13px}.ot-report-callouts{grid-template-columns:repeat(3,1fr)!important;gap:4px}.ot-report-callout{padding:6px}.ot-report-kpis{grid-template-columns:repeat(6,1fr)!important}.ot-report-stage progress{height:5px}.ot-report-table th,.ot-report-table td{padding:3px 4px}}

/* v15 collision-safe operations layout */
.ot-shell{grid-template-rows:50px minmax(270px,1fr) var(--timeline-h)}
.ot-toolbar{min-width:0;grid-template-columns:minmax(155px,.75fr) minmax(300px,1.25fr) auto 84px;overflow:hidden}
.ot-toolbar>*{min-width:0}.ot-brand{overflow:hidden}.ot-brand div{min-width:0}.ot-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ot-week-nav{min-width:0}.ot-week-label{min-width:150px}.ot-nav{min-width:0;justify-content:flex-end}.ot-nav a,.ot-nav button{min-width:34px;padding:0 8px}.ot-nav span{white-space:nowrap}
.ot-filterbar{width:244px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#1b7188 #06131d}
.ot-filterbar .ot-multiselect{position:relative}
.ot-type-menu{position:static;left:auto;right:auto;top:auto;width:100%;max-height:min(230px,36vh);margin-top:5px;padding:6px;background:#061d2c}
.ot-filterbar .ot-type-menu label{display:grid!important;grid-template-columns:15px minmax(0,1fr)!important;visibility:visible!important;opacity:1!important}
.ot-filterbar .ot-type-menu label>span{display:block!important;position:static!important;width:auto!important;min-width:0!important;height:auto!important;margin:0!important;visibility:visible!important;opacity:1!important;transform:none!important;clip:auto!important;clip-path:none!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#d8edf5!important;font-size:9px!important;line-height:1.3!important;font-weight:900!important}
.ot-type-menu-head>strong{font-size:8px}.ot-type-menu-head button{font-size:7px}
.ot-map-summary{left:auto;right:10px;top:10px;max-width:calc(100% - 276px);flex-wrap:wrap;justify-content:flex-end}
.filters-collapsed .ot-map-summary{left:auto;right:10px;max-width:calc(100% - 70px)}
.ot-map-stage .leaflet-top.leaflet-left{left:auto;right:10px;top:62px}.ot-map-stage .leaflet-control-zoom{margin:0!important}
.ot-map-tools{right:10px;top:112px}
@media(max-width:1500px){
  .ot-toolbar{grid-template-columns:155px minmax(280px,1fr) auto 40px}.ot-filter-toggle span{display:none}.ot-nav a,.ot-nav button{width:34px;padding:0;justify-content:center}.ot-nav span{display:none}
  .ot-map-summary>span{min-width:62px}.ot-map-summary{transform:scale(.94);transform-origin:right top}
}
@media(max-width:1050px){
  .ot-toolbar{grid-template-columns:145px minmax(250px,1fr) auto 38px}.ot-nav a:nth-last-child(n+3),.ot-nav button{display:none}
  .ot-filterbar{width:228px}.ot-map-summary{max-width:calc(100% - 250px)}
}

/* v16 viewport-fit: keep the complete application inside the browser window */
html,body{width:100%;height:100%;min-height:0;overflow:hidden}
.ot-shell{
  width:100%;height:100dvh;max-height:100dvh;min-height:0;overflow:hidden;
  grid-template-rows:50px minmax(240px,1fr) minmax(180px,min(var(--timeline-h),calc(100dvh - 314px)))
}
.ot-toolbar,.ot-map-stage,.ot-timeline-panel{min-width:0;min-height:0}
.ot-map-stage{overflow:clip}
.ot-filterbar>header{position:sticky;z-index:3;top:0;background:#03121d}
.ot-timeline-panel{height:100%;max-height:100%;overflow:hidden}
.ot-timeline-grid{min-width:0;max-width:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.ot-timeline-canvas{min-width:0;max-width:100%;overflow:visible}
.ot-now-line span{right:4px;left:auto;transform:none}
@media(max-height:650px) and (min-width:761px){
  .ot-shell{grid-template-rows:46px minmax(210px,1fr) minmax(170px,min(var(--timeline-h),calc(100dvh - 286px)));gap:5px;padding:5px}
  .ot-toolbar{padding-block:2px}.ot-filterbar{top:7px;max-height:calc(100% - 14px);gap:5px;padding:6px}.ot-filterbar>header{min-height:29px;padding-bottom:4px}
  .ot-timeline-panel{grid-template-rows:42px minmax(0,1fr) 20px}.ot-timeline-head{padding-block:3px}
}
@media(max-width:760px){
  html,body{height:auto;min-height:100%;overflow:auto}.ot-shell{height:auto;max-height:none;min-height:100%;overflow:visible;grid-template-rows:auto 480px 360px}
  .ot-timeline-panel{height:360px}.ot-timeline-grid{overflow:auto}.ot-timeline-canvas{min-width:760px;overflow:visible}
}

/* v17 dual-encoded Gantt and print-ready report timeline */
.ot-timeline-item{border-color:var(--item);background:color-mix(in srgb,var(--vessel-type,#9caec5) 68%,#071d29);box-shadow:0 0 10px color-mix(in srgb,var(--item) 28%,transparent)}
.ot-timeline-item:not(.point):before{content:"";position:absolute;z-index:2;inset:0 auto 0 0;width:3px;background:var(--item);box-shadow:0 0 8px var(--item)}
.ot-timeline-item strong,.ot-timeline-item small{position:relative;z-index:3;text-shadow:0 1px 2px #020a10}
.ot-timeline-item.point{border-color:var(--vessel-type,#eafcff);background:var(--item);box-shadow:0 0 0 2px #061923,0 0 10px var(--item)}
.ot-session{background:var(--vessel-type,#9caec5);border-color:var(--item);opacity:.82}
.ot-timeline-color-legend{min-width:0;display:flex;align-items:center;gap:7px;overflow:hidden;white-space:nowrap}
.ot-timeline-color-legend>b{color:#8eb1c3;font-size:6px;letter-spacing:.08em}
.ot-timeline-color-legend>span{min-width:0;color:#9fc0cc;font-size:6px;gap:3px!important}
.ot-timeline-color-legend i{width:7px;height:7px;border-radius:2px;background:var(--key);box-shadow:0 0 5px var(--key)}
.ot-timeline-color-legend .operation-key i{border-radius:50%}

.ot-report-scope{display:grid;grid-template-columns:1fr 1fr 2.4fr;gap:8px;padding:10px;border:1px solid #b8d0da;border-radius:9px;background:#fff}
.ot-report-scope>div{min-width:0;padding:3px 9px;border-left:3px solid #4fa6d9}.ot-report-scope small,.ot-report-scope strong,.ot-report-scope>div>span{display:block}.ot-report-scope small{color:#65748a;font-size:6px;font-weight:1000;letter-spacing:.08em}.ot-report-scope strong{margin-top:4px;color:#14233e;font-size:9px}.ot-report-scope>div>span{margin-top:3px;color:#65748a;font-size:7px}
.ot-report-scope .types>div{margin-top:5px;display:flex;flex-wrap:wrap;gap:4px}.ot-report-scope .types span{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid color-mix(in srgb,var(--chip) 55%,#c9d7df);border-radius:999px;background:color-mix(in srgb,var(--chip) 12%,#fff);color:#24384b;font-size:6px;font-weight:900}.ot-report-scope .types i{width:7px;height:7px;border-radius:2px;background:var(--chip);box-shadow:0 0 5px color-mix(in srgb,var(--chip) 50%,transparent)}.ot-report-scope em{color:#a22b44;font-size:7px;font-weight:900}
.ot-report-scope .zones>div{margin-top:5px;display:flex;flex-wrap:wrap;gap:4px}.ot-report-scope .zones>div span{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid #8fc7d9;border-radius:999px;background:#eaf7fb;color:#174e63;font-size:6px;font-weight:900}.ot-report-scope .zones>div i{width:7px;height:7px;border-radius:50%;background:#20bfe8;box-shadow:0 0 5px rgba(32,191,232,.5)}
.ot-report-gantt{overflow:visible}.ot-report-gantt-legends{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid #d5e5e9;background:#f7fbfc}.ot-report-gantt-legends>div{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.ot-report-gantt-legends b{margin-right:4px;color:#486474;font-size:6px;letter-spacing:.06em}.ot-report-gantt-legends span{display:inline-flex;align-items:center;gap:3px;color:#4d6472;font-size:6px;font-weight:800}.ot-report-gantt-legends i{display:inline-block;width:9px;height:7px}.ot-report-gantt-legends .type{border-radius:2px;background:var(--key)}.ot-report-gantt-legends .operation{height:3px;border-radius:2px;background:var(--key);box-shadow:0 0 4px var(--key)}
.ot-report-gantt-zone{break-inside:auto;border-bottom:1px solid #cfdde3}.ot-report-gantt-zone>h3{margin:0;padding:7px 9px;display:flex;justify-content:space-between;align-items:center;background:#e9f3f7;color:#18384a;font-size:8px}.ot-report-gantt-zone>h3 b{color:#4d6d7c;font-size:6px}.ot-report-gantt-axis,.ot-report-gantt-row{display:grid;grid-template-columns:176px minmax(0,1fr)}.ot-report-gantt-axis{height:23px;border-top:1px solid #dce7ec;border-bottom:1px solid #cbdbe2;background:#f8fbfc}.ot-report-gantt-axis>strong{padding:7px 8px;color:#657a87;font-size:6px}.ot-report-gantt-axis>div,.ot-report-gantt-row>div{position:relative;border-left:1px solid #cadbe2;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(12.5% - 1px),rgba(76,119,139,.16) calc(12.5% - 1px),rgba(76,119,139,.16) 12.5%)}.ot-report-gantt-axis span{position:absolute;top:6px;transform:translateX(-50%);color:#5b7180;font-size:5.5px;font-weight:900;white-space:nowrap}.ot-report-gantt-axis span:first-child{transform:none}.ot-report-gantt-axis span:last-child{transform:translateX(-100%)}
.ot-report-gantt-row{min-height:26px;border-bottom:1px solid #e4edf0;background:#fff;break-inside:avoid}.ot-report-gantt-row:nth-child(even){background:#f9fcfd}.ot-report-gantt-row>label{min-width:0;padding:4px 7px;border-left:4px solid var(--vessel);display:flex;flex-direction:column;justify-content:center}.ot-report-gantt-row label b,.ot-report-gantt-row label span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-report-gantt-row label b{color:#14233e;font-size:7px}.ot-report-gantt-row label span{margin-top:2px;color:#6a7e8a;font-size:5.5px}.ot-report-gantt-row>div{min-height:26px}.ot-report-gantt-row i{position:absolute;display:block;top:7px;height:12px;min-width:2px;border:2px solid var(--op);border-radius:4px;background:color-mix(in srgb,var(--vessel) 72%,#153245);box-shadow:0 0 5px color-mix(in srgb,var(--op) 55%,transparent)}.ot-report-gantt-row i.point{z-index:4;top:7px;width:12px!important;min-width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:var(--op);box-shadow:0 0 0 2px var(--vessel),0 0 7px var(--op);transform:translateX(-50%)}.ot-report-gantt-empty{padding:18px;color:#65748a;text-align:center;font-size:8px}
@media(max-width:900px){.ot-timeline-color-legend .vessel-key:nth-of-type(n+5),.ot-timeline-color-legend .operation-key:nth-of-type(n+11){display:none}.ot-report-scope{grid-template-columns:1fr}.ot-report-gantt-axis,.ot-report-gantt-row{grid-template-columns:145px minmax(0,1fr)}}
@media print{.ot-report-scope{grid-template-columns:1fr 1fr 2.4fr!important;padding:5px;gap:4px}.ot-report-scope>div{padding:2px 5px}.ot-report-gantt{break-before:auto}.ot-report-gantt+.ot-report-section{break-before:page}.ot-report-gantt-legends{grid-template-columns:1fr 1fr!important;padding:5px}.ot-report-gantt-zone{break-inside:auto}.ot-report-gantt-zone>h3{padding:4px 6px}.ot-report-gantt-axis,.ot-report-gantt-row{grid-template-columns:145px minmax(0,1fr)}.ot-report-gantt-row{min-height:20px}.ot-report-gantt-row>div{min-height:20px}.ot-report-gantt-row i{top:5px;height:10px}.ot-report-gantt-row i.point{top:5px;width:10px!important;min-width:10px;height:10px}.ot-report-gantt-row>label{padding:2px 5px}.ot-report-gantt-row label b{font-size:6px}.ot-report-gantt-row label span{font-size:5px}}

/* v18: the complete module follows the canonical SMC portal theme */
:root{
  --ot-bg:var(--bg-primary,#020b14);--ot-card:var(--bg-card,#071d2d);--ot-card-hover:var(--bg-card-hover,#0a2b3b);
  --ot-input:var(--bg-input,#091d2c);--ot-modal:var(--bg-modal,#071a28);--ot-border:var(--border,rgba(91,195,226,.24));
  --ot-border-active:var(--border-active,rgba(91,195,226,.42));--ot-text:var(--text-primary,#eefaff);--ot-muted:var(--text-secondary,#8eb1c3);
  --ot-dim:var(--text-dim,#587f8f);--ot-accent:var(--accent,#31d7ff);--ot-glass:color-mix(in srgb,var(--ot-card) 91%,transparent);
  --ot-grid:color-mix(in srgb,var(--ot-accent) 13%,transparent);--ot-shadow:var(--shadow,0 16px 42px rgba(0,0,0,.34));
  --bg:var(--ot-bg);--panel:color-mix(in srgb,var(--ot-card) 96%,transparent);--panel2:var(--ot-modal);
  --line:color-mix(in srgb,var(--ot-border-active) 78%,transparent);--line2:color-mix(in srgb,var(--ot-border) 62%,transparent);
  --text:var(--ot-text);--muted:var(--ot-muted);--cyan:var(--ot-accent);
  color-scheme:dark
}
:root[data-theme="paper"],:root[data-theme="frost"],:root[data-theme="harbor-light"]{color-scheme:light;--ot-glass:color-mix(in srgb,var(--ot-card) 94%,transparent);--ot-grid:color-mix(in srgb,var(--ot-accent) 16%,transparent)}
html,body,.ot-shell{background-color:var(--ot-bg);color:var(--ot-text)}
.ot-shell{background-image:radial-gradient(circle at 50% -15%,color-mix(in srgb,var(--ot-accent) 13%,transparent),transparent 42%)}
.ot-toolbar,.ot-map-stage,.ot-timeline-panel{border-color:var(--line);background:var(--ot-glass);box-shadow:var(--ot-shadow)}
.ot-view-switch,.ot-week-nav button,.ot-nav a,.ot-nav button,.ot-filter-toggle,.ot-filterbar select,
.ot-multiselect>button,.ot-filter-actions>button,.ot-lane-filters button,.ot-height-control,.ot-zone-panel-tools button,
.ot-zone-panel-tools a,.ot-zone-panel>footer button,.ot-range-panel footer button,.ot-health-panel footer button,
.ot-zone-panel>header button,.ot-filterbar>header button,.ot-type-menu-head button,.ot-time-card>button,
.ot-range-panel header button,.ot-health-panel header button,.ot-range-presets button,.ot-range-panel input{
  background:var(--ot-input);border-color:var(--line);color:var(--ot-muted)
}
.ot-range-panel input{color:var(--ot-text);color-scheme:inherit}
.ot-filterbar>label select,.ot-filterbar .ot-entity-select select{background:var(--ot-input);border-color:var(--line);color:var(--ot-text)}
.ot-view-switch button.active,.ot-lane-filters button.active,.ot-zone-panel>footer button.primary{
  background:color-mix(in srgb,var(--ot-accent) 14%,var(--ot-card));border-color:color-mix(in srgb,var(--ot-accent) 55%,var(--ot-border));color:var(--ot-accent)
}
.ot-range-presets button:hover,.ot-range-presets button.active{background:color-mix(in srgb,var(--ot-accent) 14%,var(--ot-card));border-color:var(--ot-accent);color:var(--ot-accent)}
.ot-filterbar,.ot-map-summary,.ot-map-tools button,.ot-map-legend,.ot-detail-card,.ot-time-card,.ot-zone-tooltip,.ot-route-tooltip{
  background:var(--ot-glass)!important;border-color:var(--line)!important;color:var(--ot-text)!important;box-shadow:var(--ot-shadow)
}
.ot-filterbar>header,.ot-zone-panel>header,.ot-timeline-head,.ot-lane-labels,.ot-lane-labels .axis-label{
  background:var(--ot-card);border-color:var(--line)
}
.ot-type-menu,.ot-zone-panel,.ot-range-panel,.ot-health-panel{background:var(--ot-modal);border-color:var(--ot-border-active);color:var(--ot-text);box-shadow:var(--ot-shadow)}
.ot-type-menu label,.ot-filterbar .ot-type-menu label>span{color:var(--ot-text)!important;border-color:var(--line2)}
.ot-type-menu label:hover,.ot-zone-row:hover{background:var(--ot-card-hover)}
.ot-type-menu label i{background:var(--ot-input);border-color:var(--ot-border-active)}
.ot-type-menu input:checked+i{border-color:var(--ot-accent);background:var(--ot-accent);box-shadow:inset 0 0 0 3px var(--ot-input),0 0 7px color-mix(in srgb,var(--ot-accent) 55%,transparent)}
.ot-zone-row,.ot-zone-settings-detail,.ot-health-card{background:var(--ot-input);border-color:var(--line2);color:var(--ot-text)}
.ot-zone-row:hover,.ot-zone-row.active{background:color-mix(in srgb,var(--zone) 9%,var(--ot-card-hover))}
.ot-timeline-canvas{background:var(--ot-bg)}.ot-day-cell{background:var(--ot-input);border-color:var(--line)}
.ot-day-lines{background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--ot-grid) calc(100% - 1px))}
.ot-day-lines:after{background-image:linear-gradient(to right,transparent calc(100% - 1px),color-mix(in srgb,var(--ot-accent) 7%,transparent) calc(100% - 1px))}
.ot-lane{border-color:var(--line2);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--track-h,26px) - 1px),color-mix(in srgb,var(--ot-accent) 6%,transparent) calc(var(--track-h,26px) - 1px),color-mix(in srgb,var(--ot-accent) 6%,transparent) var(--track-h,26px))}
.ot-timeline-item{background:color-mix(in srgb,var(--vessel-type,#9caec5) 54%,var(--ot-card));color:var(--ot-text)}
.ot-timeline-item strong,.ot-timeline-item small{text-shadow:0 1px 2px color-mix(in srgb,var(--ot-bg) 88%,transparent)}
.ot-timeline-item small{color:color-mix(in srgb,var(--ot-text) 76%,var(--ot-muted))}.ot-timeline-item.point{box-shadow:0 0 0 2px var(--ot-card),0 0 10px var(--item)}
.ot-timeline-item.point:after,.ot-time-cursor span{background:var(--ot-card);color:var(--item)}
.ot-empty,.ot-loading{background:color-mix(in srgb,var(--ot-bg) 82%,transparent);color:var(--ot-muted)}
.ot-notice{background:color-mix(in srgb,var(--warning,#ff9f1c) 16%,var(--ot-card));border-color:var(--warning,#ff9f1c);color:var(--ot-text)}
#operationsMap,.leaflet-container{background:var(--ot-bg)}
.leaflet-control-zoom a{background:var(--ot-input)!important;color:var(--ot-text)!important;border-color:var(--line)!important}
.leaflet-control-attribution{background:var(--ot-glass)!important;color:var(--ot-muted)!important}
.ot-map-legend span,.ot-timeline-foot,.ot-timeline-color-legend>b,.ot-timeline-color-legend>span{color:var(--ot-muted)}
.ot-filterbar .ot-entity-select>span,.ot-filterbar>label>span,.ot-lane-labels .zone-lane>em,.ot-lane-labels .axis-label small,.ot-zone-description,.ot-health-card span{color:var(--ot-muted)}
.ot-report-panel{background:var(--ot-bg);color:var(--ot-text);border-color:var(--ot-accent);box-shadow:var(--ot-shadow)}
.ot-report-panel>header,.ot-report-section h2,.ot-report-gantt-zone>h3{background:var(--ot-card);border-color:var(--line);color:var(--ot-text)}
.ot-report-panel header button,.ot-report-kpi,.ot-report-section,.ot-report-stage,.ot-report-callout,.ot-report-scope,.ot-report-gantt-row{background:var(--ot-card);border-color:var(--line);color:var(--ot-text)}
.ot-report-stage-grid,.ot-report-gantt-legends,.ot-report-gantt-axis,.ot-report-table th,.ot-report-gantt-row:nth-child(even){background:var(--ot-input);border-color:var(--line)}
.ot-report-panel header strong,.ot-report-kpi strong,.ot-report-stage strong,.ot-report-callout strong,.ot-report-scope strong,.ot-report-gantt-row label b{color:var(--ot-text)}
.ot-report-panel header span,.ot-report-kpi small,.ot-report-kpi span,.ot-report-stage span,.ot-report-callout span,.ot-report-scope small,.ot-report-scope>div>span,.ot-report-gantt-legends b,.ot-report-gantt-legends span,.ot-report-gantt-axis>strong,.ot-report-gantt-axis span,.ot-report-gantt-row label span{color:var(--ot-muted)}
.ot-report-table th,.ot-report-table td,.ot-report-gantt-zone,.ot-report-gantt-axis,.ot-report-gantt-row{border-color:var(--line)}
.ot-report-table tbody tr:nth-child(even),.ot-report-table tbody tr:hover{background:color-mix(in srgb,var(--ot-accent) 6%,var(--ot-card))}
.ot-report-scope .types span{background:color-mix(in srgb,var(--chip) 12%,var(--ot-card));color:var(--ot-text)}
.ot-report-scope .zones>div span{background:color-mix(in srgb,var(--ot-accent) 10%,var(--ot-card));border-color:color-mix(in srgb,var(--ot-accent) 45%,var(--line));color:var(--ot-text)}.ot-report-scope .zones>div i{background:var(--ot-accent)}

/* v27 selected-vessel AIS track and particulars */
.ot-speed-track-legend{position:absolute;z-index:505;left:12px;bottom:10px;max-width:620px;padding:7px 9px;border:1px solid rgba(49,215,255,.34);border-radius:9px;background:rgba(3,18,27,.92);backdrop-filter:blur(8px);display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(0,0,0,.32)}
.ot-speed-track-legend strong{color:var(--cyan);font-size:7px;letter-spacing:.08em}.ot-speed-track-legend span{display:flex;align-items:center;gap:3px;color:#a8c3ce;font-size:7px;font-weight:900}.ot-speed-track-legend i{width:14px;height:4px;border-radius:2px;background:#111;border:1px solid rgba(255,255,255,.42)}.ot-speed-track-legend .slow{background:#8b451f}.ot-speed-track-legend .s3{background:#ef4444}.ot-speed-track-legend .s5{background:#ff7a2f}.ot-speed-track-legend .s8{background:#facc15}.ot-speed-track-legend .s105{background:#84cc16}.ot-speed-track-legend .s125{background:#22c55e}.ot-speed-track-legend .s14{background:#0f9f7f}
.ot-detail-card{width:min(570px,58vw);max-height:calc(100% - 24px);overflow:auto;background:rgba(3,18,27,.96)}.ot-detail-metrics .wide{grid-column:span 2}.ot-detail-metrics span{min-width:0}.ot-detail-metrics b{font-size:8px}
.ot-lane-labels>button{width:100%;padding:0 10px;border:0;border-bottom:1px solid var(--line2);background:#071a28;color:var(--text);cursor:pointer;text-align:left;font-family:inherit;display:flex}.ot-lane-labels>button:hover,.ot-lane-labels>button.active{background:rgba(49,215,255,.09);box-shadow:inset 3px 0 0 var(--cyan)}
@media(max-width:850px){.ot-speed-track-legend{display:none}.ot-detail-card{width:calc(100% - 24px);max-width:none}.ot-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{
  .ot-report-panel{--ot-bg:#eef7f9;--ot-card:#fff;--ot-input:#f7fbfc;--ot-text:#14233e;--ot-muted:#65748a;--line:#d5e5e9;--ot-accent:#0b7896;background:#eef7f9!important;color:#14233e!important}
}
