/* Schedule Explore mode (public/ui2/schedule-explore.js). CSP-safe: no inline styles. */
html.ui2 .s2-view-toggle{align-items:center}
html.ui2 .s2-view-toggle .s2x-btn{position:relative;overflow:hidden;isolation:isolate;min-height:44px;margin-left:auto;padding:8px 20px;border:0;border-radius:999px;background:linear-gradient(120deg,#0B4FBF,#6a3fd6 55%,#0B4FBF);background-size:200% 100%;color:#fff;font:inherit;font-weight:750;letter-spacing:.01em;cursor:pointer;box-shadow:0 4px 14px #0b4fbf44;animation:s2x-flow 6s linear infinite}
html.ui2 .s2-view-toggle .s2x-btn::after{content:"";position:absolute;inset:0 auto 0 -60%;width:45%;background:linear-gradient(100deg,transparent,#ffffff77,transparent);transform:skewX(-20deg);animation:s2x-sheen 3.2s ease-in-out infinite;pointer-events:none}
html.ui2 .s2-view-toggle .s2x-btn.is-on{background:var(--ink);box-shadow:none;animation:none}
html.ui2 .s2-view-toggle .s2x-btn.is-on::after{display:none}
html.ui2 .s2-view-toggle .s2x-btn:focus-visible,html.ui2 .s2x-sbtn:focus-visible,.s2x-go:focus-visible{outline:3px solid #004AB5;outline-offset:2px}
@keyframes s2x-sheen{0%{left:-60%}55%,100%{left:130%}}
@keyframes s2x-flow{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){html.ui2 .s2-view-toggle .s2x-btn,html.ui2 .s2-view-toggle .s2x-btn::after{animation:none}html.ui2 .s2-view-toggle .s2x-btn::after{display:none}.s2x-go{transition:none}}
/* modal */
.s2x-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(12,34,51,.55)}
.s2x-modal{width:min(480px,100%);padding:24px;border-radius:16px;background:var(--surface,#fff);color:var(--ink,#0c2233);box-shadow:0 24px 60px #0c223360;outline:none}
.s2x-modal h2{margin:0 0 10px;font-size:22px}
.s2x-modal p{margin:0 0 12px;line-height:1.45}
.s2x-go{min-height:44px;min-width:160px;padding:8px 22px;border:0;border-radius:999px;background:#0B4FBF;color:#fff;font:inherit;font-weight:750;cursor:pointer;opacity:0;transition:opacity .5s ease}
.s2x-go.is-ready{opacity:1}
.s2x-go[disabled]{cursor:default;pointer-events:none}
/* banner, selection, handles */
html.ui2 .s2x-banner{position:sticky;top:64px;z-index:6;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 10px;padding:10px 14px;border-radius:10px;background:#5a2fc2;color:#fff;font-size:14px;box-shadow:0 6px 18px #5a2fc233}
html.ui2 .s2x-banner strong{font-size:15px}
html.ui2 .s2x-hint{font-size:12.5px;opacity:.9;flex:1 1 220px}
html.ui2 .s2x-status{font-size:12.5px;opacity:.9}html.ui2 .s2x-status:empty{display:none}
html.ui2 .s2x-sbtn{min-height:44px;padding:4px 16px;border:1px solid #ffffffaa;border-radius:999px;background:transparent;color:#fff;font:inherit;font-size:13.5px;font-weight:650;cursor:pointer}
html.ui2 .s2x-sbtn:disabled{opacity:.45;cursor:default}
html.ui2 .s2x-on .dd-lines{touch-action:none}
html.ui2 .s2x-on .s2-shift.is-editable{cursor:grab}
html.ui2 .s2x-on .s2-shift.is-selected .dd-line{stroke-width:12px;opacity:1}
html.ui2 .s2x-handle{fill:#fff;stroke:#0c2233;stroke-width:2px;vector-effect:non-scaling-stroke;opacity:0;cursor:ns-resize;pointer-events:all;rx:2}
html.ui2 .s2x-on .s2-shift.is-selected .s2x-handle,html.ui2 .s2x-on .s2-shift.is-editable:focus-visible .s2x-handle{opacity:1}
@media (hover:hover){html.ui2 .s2x-on .s2-shift.is-editable:hover .s2x-handle{opacity:.9}}
/* coverage table */
html.ui2 .s2x-covwrap{overflow-x:auto}
html.ui2 .s2x-cov table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-size:13px}
html.ui2 .s2x-cov th:first-child{width:22%}
html.ui2 .s2x-cov th,html.ui2 .s2x-cov td{padding:3px 8px;border-top:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}
html.ui2 .s2x-cov th:first-child{text-align:left;font-weight:600}
html.ui2 .s2x-cov tr.is-changed{background:#efe9fc}
html.ui2 .s2x-cov .s2x-was{color:var(--muted);text-decoration:line-through}
