/* Precision-first timetable layer. Remove this file link to roll back this visual pass. */
:root {
  --time-line: rgba(130, 160, 184, .19);
  --time-line-strong: rgba(150, 186, 212, .32);
  --time-surface: #0e151d;
  --time-surface-raised: #121c26;
  --time-text-soft: #c4d0db;
  --time-text-dim: #9aaaba;
}

.time-shell { width: min(1380px, 100%); }
.time-heading { align-items: center; gap: clamp(16px, 3vw, 36px); margin-bottom: 18px; }
.time-heading > div:first-child { min-width: 0; }
.time-heading h1 { letter-spacing: -.025em; }
.time-heading .intro { max-width: 52em; line-height: 1.55; }
.schedule-status { gap: 9px; color: var(--time-text-soft); }
.schedule-status time { color: #f1f6fa; }
.schedule-tabs { margin-bottom: 16px; }

.rotation-panel {
  --hud-blue: #78cfff;
  margin-bottom: 14px;
  padding: clamp(14px, 1.7vw, 21px);
  border-color: rgba(104, 139, 165, .34);
  border-radius: 15px;
  background:
    radial-gradient(ellipse at 10% 0%, rgba(74, 153, 195, .075), transparent 43%),
    linear-gradient(150deg, #111a23, #0c1219 75%);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .18), inset 0 1px 0 rgba(231, 244, 253, .035);
}
.rotation-heading { gap: 18px; }
.rotation-heading-copy .eyebrow { color: #9bdfff; font-size: 11px; letter-spacing: .11em; }
.rotation-heading-copy h2 { font-size: 20px; letter-spacing: -.015em; }
.rotation-help { max-width: 74ch; color: #c0cfda; font-size: 13px; line-height: 1.55; }
.rotation-controls { gap: 7px; }
.rotation-zoom { gap: 2px; padding: 3px; border-color: var(--time-line); border-radius: 10px; background: rgba(4, 9, 14, .58); }
.rotation-zoom button,
.timeline-now-button,
.timeline-collapse,
.timeline-action-button,
.timeline-inspector-close {
  min-height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .14s ease;
}
.rotation-zoom button[aria-pressed="true"] {
  border-color: rgba(120, 207, 255, .5);
  color: #f0f8fd;
  background: rgba(71, 148, 188, .19);
  box-shadow: inset 0 -2px 0 rgba(120, 207, 255, .75);
}
.timeline-now-button { border-color: rgba(120, 207, 255, .35); color: #d8f1ff; background: rgba(63, 149, 196, .1); }
.timeline-now-button:hover { background: rgba(63, 149, 196, .18); }
.timeline-collapse { border-color: var(--time-line); }
.rotation-zoom button:active,
.timeline-now-button:active,
.timeline-collapse:active,
.timeline-action-button:active,
.timeline-inspector-close:active { transform: translateY(1px); }

.timeline-readout { min-height: 34px; gap: 9px; margin: 9px 1px 7px; color: #b7c5d0; font-size: 12px; }
.timeline-cursor-label { gap: 8px; color: #d8eaf5; }
.timeline-cursor-label i { width: 8px; height: 8px; box-shadow: 0 0 7px rgba(120, 207, 255, .34); }
.timeline-cursor-label.is-browsing { color: #ffd89a; }
.timeline-cursor-label.is-browsing i { box-shadow: 0 0 6px rgba(255, 195, 110, .28); }
#timeline-cursor-time,
#timeline-cursor-time.is-precision { color: #f2f8fc; font-size: 15px; font-weight: 800; text-shadow: none; }
#timeline-range-label { color: #c0ccd6; font-size: 12px; }

.timeline-tools-row { gap: 14px; margin: 4px 1px 9px; }
.timeline-date-jump { grid-template-columns: max-content minmax(180px, 250px); }
.timeline-date-jump > label { color: #e0eaf1; font-size: 13px; }
.timeline-date-control input { font-size: 12px; }
.timeline-date-control input,
.timeline-date-submit,
.timeline-keyboard-help summary { min-height: 42px; border-radius: 8px; }
.timeline-date-control input { border-color: rgba(128, 160, 184, .27); background: rgba(5, 10, 15, .62); }
.timeline-date-help { color: #b8c6d1; font-size: 12px; }
.timeline-date-submit { min-width: 62px; border-color: rgba(127, 157, 180, .28); }
.timeline-keyboard-help summary { padding-inline: 13px; font-size: 12px; }
.timeline-keyboard-shortcuts { border-color: rgba(118, 156, 184, .4); background: #101922; }
.timeline-keyboard-shortcuts p { min-height: 30px; color: #d4dee6; font-size: 12px; }
.timeline-keyboard-shortcuts kbd { min-height: 24px; font-size: 11px; }

.timeline-stage {
  height: 130px;
  border-color: rgba(122, 157, 183, .38);
  border-radius: 11px;
  background:
    linear-gradient(180deg, rgba(8, 14, 20, .91), rgba(9, 15, 21, .98)),
    repeating-linear-gradient(90deg, rgba(129, 165, 190, .025) 0 1px, transparent 1px 48px);
  box-shadow: inset 0 1px 0 rgba(232, 245, 253, .05), 0 4px 12px rgba(0, 0, 0, .13);
  cursor: grab;
  touch-action: pan-y pinch-zoom;
}
.timeline-stage::before { border-color: rgba(220, 241, 255, .025); box-shadow: none; }
.timeline-stage:focus-visible { outline-color: rgba(120, 207, 255, .82); }
.timeline-stage.is-dragging { border-color: rgba(120, 207, 255, .62); box-shadow: inset 0 0 0 1px rgba(120, 207, 255, .12); }
.timeline-track { inset: 10px 0 8px; transition: none; }
.timeline-stage:not(.is-dragging):not(.is-following) .timeline-track { transition: transform .18s ease-out; }
.timeline-scale { height: 46px; overflow: hidden; border-bottom-color: rgba(164, 194, 215, .36); }
.timeline-scale-mark { width: 1px; height: 7px; background: rgba(162, 188, 207, .25); }
.timeline-scale-mark.is-minute { height: 3px; background: rgba(162, 188, 207, .15); }
.timeline-scale-mark.is-five { height: 6px; background: rgba(162, 188, 207, .29); }
.timeline-scale-mark.is-quarter { height: 9px; background: rgba(173, 201, 220, .5); }
.timeline-scale-mark.is-half { height: 13px; background: rgba(190, 218, 236, .68); }
.timeline-scale-mark.is-hour { height: 20px; background: rgba(208, 230, 244, .84); box-shadow: none; }
.timeline-scale-mark.is-major { width: 2px; height: 24px; background: #a0e0ff; box-shadow: 0 0 5px rgba(90, 180, 228, .28); }
.timeline-scale-mark.is-day { width: 2px; background: #a5e2ff; box-shadow: 0 0 5px rgba(92, 185, 236, .22); }
.timeline-scale-label { top: 22px; padding: 3px 6px; border-color: rgba(153, 192, 218, .56); border-radius: 5px; color: #f1f8fc; background: #080f16; box-shadow: 0 2px 6px rgba(0, 0, 0, .3); font: 800 14px/1 ui-monospace, Consolas, monospace; font-variant-numeric: tabular-nums; letter-spacing: .015em; }
.timeline-scale-date { top: 1px; padding: 2px 5px; border-color: rgba(145, 185, 211, .46); color: #e0f0f8; background: #080f16; font-size: 12px; line-height: 1; }
.timeline-lane {
  top: 51px;
  box-sizing: border-box;
  height: 59px;
  overflow: hidden;
  border: 1px solid rgba(134, 167, 190, .22);
  border-radius: 7px;
  background:
    linear-gradient(180deg, rgba(22, 32, 42, .62), rgba(11, 17, 24, .9)),
    repeating-linear-gradient(90deg, transparent 0 calc(2.0833% - 1px), rgba(150, 183, 204, .11) calc(2.0833% - 1px) 2.0833%);
}
.timeline-event-placeholder { height: 59px; border: 0; border-right: 1px solid rgba(148, 170, 187, .2); border-radius: 0; background: rgba(155, 171, 185, .035); }
.timeline-event-placeholder.is-current { border-bottom: 2px solid rgba(120, 207, 255, .58); background: rgba(91, 145, 175, .07); }
.timeline-event {
  --grade-border-fade: 78%;
  --grade-fill-top-fade: 94%;
  --grade-fill-bottom-fade: 98%;
  --grade-inset-fade: 76%;
  --grade-glow: 0px;
  --grade-glow-fade: 100%;
  --grade-up-glow-fade: 100%;
  --grade-up-glow-opacity: 0;
  --grade-up-glow-blur: 0px;
  --grade-up-shadow: 0 0 0 0 transparent;
  top: 0;
  bottom: 0;
  height: auto;
  padding: 0 2px;
  overflow: visible;
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--event-color), transparent var(--grade-border-fade));
  border-right: 1px solid rgba(154, 179, 198, .24);
  border-radius: 0;
  color: #e4edf4;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--event-color), transparent var(--grade-fill-top-fade)),
    color-mix(in srgb, var(--event-color), transparent var(--grade-fill-bottom-fade)));
  box-shadow:
    inset 0 2px 0 color-mix(in srgb, var(--event-color), transparent var(--grade-inset-fade)),
    inset 0 -2px 0 color-mix(in srgb, var(--event-color), transparent calc(var(--grade-inset-fade) + 12%)),
    var(--grade-up-shadow),
    0 0 var(--grade-glow) color-mix(in srgb, var(--event-color), transparent var(--grade-glow-fade));
  font: 700 12px/1.1 "Microsoft YaHei", sans-serif;
  transition: color .14s ease, background-color .14s ease, box-shadow .14s ease, filter .14s ease;
}
.timeline-event:first-child { border-radius: 0; }
.timeline-event:last-child { border-right-color: rgba(154, 179, 198, .24); border-radius: 0; }
.timeline-event-label { position: relative; z-index: 2; max-width: 100%; overflow: hidden; color: #edf4f8; font-weight: 700; text-shadow: 0 1px 1px rgba(0, 0, 0, .74); -webkit-text-stroke: 0; }
.timeline-event-glint { display: none; }
.timeline-event::before {
  position: absolute;
  z-index: 1;
  top: -7px;
  right: 7%;
  left: 7%;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 100%, color-mix(in srgb, var(--event-color), transparent var(--grade-up-glow-fade)), transparent 76%);
  filter: blur(var(--grade-up-glow-blur));
  opacity: var(--grade-up-glow-opacity);
  content: "";
  pointer-events: none;
}
.timeline-event:hover,
.timeline-event:focus-visible,
.timeline-event.is-previewed {
  z-index: 4;
  border-color: rgba(230, 244, 252, .34);
  border-right-color: rgba(230, 244, 252, .34);
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--event-color), transparent calc(var(--grade-fill-top-fade) - 12%)),
    color-mix(in srgb, var(--event-color), transparent calc(var(--grade-fill-bottom-fade) - 6%)));
  box-shadow:
    inset 0 2px 0 color-mix(in srgb, var(--event-color), white 8%),
    inset 0 -3px 0 var(--event-color),
    var(--grade-up-shadow),
    0 0 var(--grade-glow) color-mix(in srgb, var(--event-color), transparent var(--grade-glow-fade)),
    0 0 0 1px rgba(220, 239, 250, .09);
  filter: none;
  outline: none;
  transform: none;
}
.timeline-event.is-current {
  box-shadow:
    inset 0 -3px 0 #b3e8ff,
    var(--grade-up-shadow),
    0 0 var(--grade-glow) color-mix(in srgb, var(--event-color), transparent var(--grade-glow-fade));
}
.timeline-event.is-subscribed::after { top: 4px; right: 4px; width: 6px; height: 6px; border: 0; background: #63e6b4; box-shadow: 0 0 4px rgba(64, 237, 173, .42); }
.timeline-event.is-compact { padding-inline: 1px; }
.timeline-event.is-compact .timeline-event-label { width: 100%; max-width: 100%; font-size: 10px; font-weight: 700; line-height: 1; }
.timeline-event.is-narrow .timeline-event-label,
.timeline-event.is-micro .timeline-event-label {
  display: block;
  width: max-content;
  max-width: 100%;
  overflow: hidden;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.06em;
  white-space: nowrap;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  overflow-wrap: normal;
  word-break: keep-all;
  transform: scaleX(.78);
}
.timeline-event.is-narrow .timeline-event-label { transform: scaleX(.88); }
.timeline-event.is-micro .timeline-event-label {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
  transform: none;
}
.timeline-event.grade-s {
  --event-color: #32eff4;
  --grade-border-fade: 6%; --grade-fill-top-fade: 66%; --grade-fill-bottom-fade: 86%; --grade-inset-fade: 12%;
  --grade-glow: 14px; --grade-glow-fade: 38%; --grade-up-glow-fade: 18%; --grade-up-glow-opacity: 1; --grade-up-glow-blur: 4px;
  --grade-up-shadow: 0 -8px 19px -5px color-mix(in srgb, var(--event-color), transparent 18%);
  color: #d8ffff;
}
.timeline-event.grade-a {
  --event-color: #2cf0a7;
  --grade-border-fade: 16%; --grade-fill-top-fade: 75%; --grade-fill-bottom-fade: 90%; --grade-inset-fade: 25%;
  --grade-glow: 10px; --grade-glow-fade: 50%; --grade-up-glow-fade: 32%; --grade-up-glow-opacity: .78; --grade-up-glow-blur: 3px;
  --grade-up-shadow: 0 -6px 15px -6px color-mix(in srgb, var(--event-color), transparent 32%);
  color: #d7ffef;
}
.timeline-event.grade-b {
  --event-color: #f4df54;
  --grade-border-fade: 28%; --grade-fill-top-fade: 83%; --grade-fill-bottom-fade: 93%; --grade-inset-fade: 39%;
  --grade-glow: 7px; --grade-glow-fade: 64%; --grade-up-glow-fade: 48%; --grade-up-glow-opacity: .56; --grade-up-glow-blur: 2px;
  --grade-up-shadow: 0 -5px 11px -6px color-mix(in srgb, var(--event-color), transparent 48%);
  color: #fff9d4;
}
.timeline-event.grade-c {
  --event-color: #ff9e3d;
  --grade-border-fade: 42%; --grade-fill-top-fade: 89%; --grade-fill-bottom-fade: 96%; --grade-inset-fade: 54%;
  --grade-glow: 4px; --grade-glow-fade: 77%; --grade-up-glow-fade: 66%; --grade-up-glow-opacity: .3; --grade-up-glow-blur: 1px;
  --grade-up-shadow: 0 -3px 7px -6px color-mix(in srgb, var(--event-color), transparent 66%);
  color: #ffe0bd;
}
.timeline-event.grade-d {
  --event-color: #f47736;
  --grade-border-fade: 56%; --grade-fill-top-fade: 93%; --grade-fill-bottom-fade: 98%; --grade-inset-fade: 67%;
  --grade-glow: 2px; --grade-glow-fade: 86%; --grade-up-glow-fade: 80%; --grade-up-glow-opacity: .14; --grade-up-glow-blur: .5px;
  --grade-up-shadow: 0 -2px 5px -5px color-mix(in srgb, var(--event-color), transparent 78%);
  color: #f7d1bc;
}
.timeline-event.grade-special { --event-color: #bb83ff; --grade-glow: 0px; --grade-glow-fade: 100%; --grade-up-glow-opacity: 0; --grade-up-shadow: 0 0 0 0 transparent; --grade-border-fade: 48%; --grade-fill-top-fade: 82%; --grade-fill-bottom-fade: 90%; --grade-inset-fade: 62%; color: #e5d1ff; }
.timeline-event.grade-unrated { --event-color: #8291a1; --grade-glow: 0px; --grade-glow-fade: 100%; --grade-up-glow-opacity: 0; --grade-up-shadow: 0 0 0 0 transparent; color: #d2dbe2; }

.timeline-inspection-marker,
.timeline-actual-marker,
.timeline-selection-marker { top: 4px; bottom: 8px; width: 1px; box-shadow: none; }
.timeline-inspection-marker { z-index: 3; background: rgba(120, 207, 255, .75); box-shadow: 0 0 4px rgba(120, 207, 255, .18); }
.timeline-inspection-marker i { top: 51px; width: 8px; height: 8px; border-color: #d6f2ff; background: #173c52; box-shadow: none; }
.timeline-marker-label { top: -1px; padding: 3px 5px; border-color: rgba(120, 207, 255, .46); border-radius: 4px; color: #e1f4ff; background: #0b141c; box-shadow: none; font-size: 10px; }
.timeline-actual-marker { z-index: 2; background: rgba(105, 223, 175, .73); box-shadow: none; }
.timeline-actual-marker i { top: 51px; width: 7px; height: 7px; box-shadow: none; }
.timeline-actual-marker .timeline-marker-label { border-color: rgba(105, 223, 175, .34); color: #c9f9e3; }
.timeline-selection-marker { z-index: 1; opacity: .36; background: color-mix(in srgb, var(--selection-color, #78cfff), transparent 31%); }
.timeline-selection-marker.is-previewed { opacity: .28; }
.timeline-selection-marker i { top: 41px; width: 7px; height: 7px; box-shadow: none; }
.timeline-rim { display: none; }

.timeline-grade-legend {
  gap: 8px;
  margin-top: 9px;
  padding: 10px 11px;
  border-color: rgba(111, 150, 178, .24);
  border-radius: 10px;
  background: rgba(9, 15, 21, .62);
}
.timeline-grade-heading { align-items: center; }
.timeline-grade-heading-copy { align-items: baseline; gap: 5px 10px; }
.timeline-grade-heading h3 { color: #f0f5f8; font-size: 13px; }
#timeline-grade-status { color: #bac8d2; font-size: 12px; }
.timeline-grade-options { gap: 6px; }
.timeline-grade-show-all { min-height: 36px; padding-inline: 11px; border-color: rgba(114, 199, 255, .28); color: #c4eaff; background: rgba(54, 146, 198, .1); font-size: 12px; }
.timeline-grade-show-all:disabled { color: #8b9aa7; }
.timeline-grade-chip {
  min-height: 38px;
  padding: 6px 10px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 700;
  transition: color .14s ease, background-color .14s ease, border-color .14s ease, box-shadow .14s ease, opacity .14s ease;
}
.timeline-grade-chip i { width: 7px; height: 7px; box-shadow: none; }
.timeline-grade-chip small { min-width: 14px; font-size: 11px; }
.timeline-grade-chip.grade-s[aria-pressed="true"] { box-shadow: 0 0 8px rgba(50, 239, 244, .2); }
.timeline-grade-chip.grade-a[aria-pressed="true"] { box-shadow: 0 0 6px rgba(44, 240, 167, .15); }
.timeline-grade-chip.grade-b[aria-pressed="true"] { box-shadow: 0 0 4px rgba(244, 223, 84, .1); }
.timeline-grade-chip.grade-c[aria-pressed="true"] { box-shadow: 0 0 3px rgba(255, 158, 61, .065); }
.timeline-grade-chip.grade-d[aria-pressed="true"] { box-shadow: 0 0 2px rgba(244, 119, 54, .035); }

.timeline-inspector {
  gap: 9px 14px;
  min-height: 0;
  margin-top: 9px;
  padding: 12px;
  border-color: rgba(111, 150, 178, .28);
  border-radius: 10px;
  background: linear-gradient(115deg, rgba(15, 25, 34, .91), rgba(12, 18, 25, .91));
  box-shadow: inset 0 1px 0 rgba(240, 248, 253, .025);
}
.timeline-inspector.is-task-previewed { border-color: color-mix(in srgb, var(--inspection-accent), transparent 70%); }
.timeline-inspector-content { grid-template-columns: minmax(220px, 1.2fr) minmax(170px, .9fr) minmax(190px, 1fr); gap: 8px 18px; max-height: 180px; }
.timeline-detail-block { gap: 5px; }
.timeline-detail-label { color: #aebdca; font-size: 11px; letter-spacing: .025em; }
.timeline-task-name { color: #f0f5f8; font-size: 15px; font-weight: 700; line-height: 1.42; }
.timeline-task-meta { color: #c4d0da; font-size: 12px; }
.timeline-task-time { color: #d7e8f2; font-size: 12px; }
.timeline-grade-line { gap: 8px; font-size: 14px; font-weight: 750; }
.timeline-grade-dot { box-shadow: none; }
.timeline-efficiency-value { font-size: 15px; font-weight: 750; }
.timeline-task-meta-group small:last-child { white-space: normal; }
.timeline-inspector-actions { gap: 7px; padding-top: 9px; border-top-color: rgba(157, 184, 203, .13); }
.timeline-inspector-state { padding: 6px 9px; border-color: rgba(120, 207, 255, .2); color: #c6e9fa; background: rgba(66, 155, 204, .065); font-size: 11px; }
.timeline-action-button { border-color: rgba(113, 179, 219, .32); }
.timeline-inspector-close { border-color: rgba(132, 153, 172, .23); }
.timeline-inspector-summary { min-height: 42px; }
.timeline-inspector-summary strong { font-size: 13px; }
.timeline-inspector-summary small { color: #c3d1dc; font-size: 11px; }
.timeline-source-note { margin-top: 8px; color: #adbdc9; font-size: 11px; line-height: 1.5; }

.live-grid { gap: 14px; margin-bottom: 16px; }
.live-card {
  min-height: 222px;
  padding: 17px 19px 14px;
  border-color: rgba(105, 139, 164, .3);
  border-radius: 14px;
  background: linear-gradient(145deg, #141e28, #0e151d 78%);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .14), inset 0 1px 0 rgba(237, 246, 252, .025);
}
.live-card:hover { box-shadow: 0 11px 26px rgba(0, 0, 0, .17), inset 0 1px 0 rgba(237, 246, 252, .03); }
.live-card::before { left: 19px; width: 64px; height: 2px; box-shadow: none; }
.live-card-top { min-height: 45px; padding-bottom: 9px; border-bottom-color: rgba(182, 204, 222, .11); }
.live-state { font-size: 16px; letter-spacing: .015em; text-transform: none; }
.live-current .live-state { color: #e0f3fd; }
.live-next .live-state { color: #faebcf; }
.live-time-label { font-size: 11px; }
.live-time { min-width: 82px; min-height: 40px; border-radius: 8px; font-size: 21px; }
.live-task { min-height: 96px; margin-top: 7px; gap: 9px; }
.live-task > .task-label { font-size: clamp(18px, 1.9vw, 23px); font-weight: 700; line-height: 1.35; letter-spacing: -.01em; }
.live-task > .grade-chip { min-height: 34px; font-weight: 750; }
.live-task > .rating-edit-button { min-height: 40px; }
.live-progress { height: 3px; margin-bottom: 8px; background: rgba(135, 160, 180, .17); }
.live-progress > span { box-shadow: 0 0 5px rgba(91, 193, 245, .25); transition: transform .3s linear; }
.live-card-footer { min-height: 40px; padding-top: 8px; border-top-color: rgba(190, 212, 229, .1); }
.live-card-bottom { color: #adbac5; font-size: 12px; }
.countdown { font-size: 15px; }
.live-card-actions button { min-height: 40px; }

.future-panel { border-radius: 14px; }
.future-heading { gap: 18px; margin-bottom: 13px; }
.future-heading .eyebrow { color: #8bd5fb; }
.future-summary { color: #c8d4de; }
.filter-bar { gap: 13px; padding: 13px; border-color: rgba(100, 129, 152, .25); border-radius: 11px; background: rgba(7, 12, 17, .52); }
.filter-topline { align-items: center; }
.range-button { min-height: 40px; }
.grade-filters { gap: 6px; }
.filter-grade { min-height: 38px; padding-inline: 9px; }
.filter-fields { gap: 11px; }
.select-trigger { min-height: 44px; }
.rating-management { min-height: 52px; padding: 9px 11px; border-color: rgba(112, 157, 187, .21); background: rgba(45, 98, 129, .055); }
.rating-management p { color: #b2c0cc; font-size: 12px; }
.rating-management .rating-restore-button { min-height: 40px; }
.future-list { margin-top: 13px; }
.day-heading { margin-top: 20px; color: #d3dee7; font-size: 14px; }
.future-row { min-height: 78px; margin-bottom: 8px; padding: 12px 14px; border-color: rgba(101, 130, 153, .27); border-left-width: 2px; border-radius: 9px; background: linear-gradient(110deg, rgba(21, 30, 39, .82), rgba(14, 20, 27, .78)); box-shadow: none; }
.future-row:hover { border-color: rgba(120, 184, 218, .38); background: linear-gradient(110deg, rgba(25, 38, 49, .9), rgba(16, 24, 32, .86)); box-shadow: 0 4px 12px rgba(0, 0, 0, .13); transform: none; }
.row-time { gap: 3px; color: #aebbc6; }
.row-time strong { font-size: 16px; }
.row-task strong { font-size: 15px; font-weight: 700; }
.row-task span { color: #b9c7d2; font-size: 13px; }
.row-actions { gap: 8px; }
.subscribe-button,
.remove-subscription { min-height: 40px; }
.load-more { min-height: 44px; }
.footnote { color: #a8b8c4; line-height: 1.5; }

.notification-settings,
.subscriptions-panel { border-radius: 14px; }
.lead-setting { border-color: rgba(112, 165, 198, .25); border-radius: 11px; background: linear-gradient(110deg, rgba(55, 119, 153, .08), rgba(8, 12, 17, .38) 68%); box-shadow: none; }
.lead-setting-heading label { font-size: 14px; }
.lead-setting-heading p { color: #adbdc9; font-size: 12px; }
.lead-value { border-radius: 8px; font-size: 14px; }
.setting-row { gap: 18px; padding-block: 15px; }
.setting-row strong { font-size: 14px; }
.setting-row p { color: #adbdc9; font-size: 12px; line-height: 1.5; }
.sound-toggle-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(142px, 160px); align-items: center; }
.switch-control { width: 100%; min-height: 48px; display: grid; grid-template-columns: 40px 1fr; justify-content: center; gap: 10px; padding: 6px 12px; border-color: rgba(126, 153, 175, .34); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035); }
.switch-control:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 0 0 3px rgba(114, 199, 255, .06); }
.switch-control b { min-width: 0; font-size: 12px; }
.switch-track { width: 40px; height: 24px; }
.switch-thumb { transition: transform .18s ease, background .16s ease, box-shadow .16s ease; }
.sound-options { padding-top: 15px; }
.sound-options legend { font-size: 14px; }
.sound-options-help { margin-bottom: 13px; color: #adbdc9; font-size: 12px; }
.sound-option-grid { gap: 11px; }
.sound-option { min-height: 164px; gap: 15px; padding: 14px; border-color: rgba(104, 134, 158, .28); border-radius: 10px; background: linear-gradient(145deg, rgba(24, 35, 46, .72), rgba(10, 16, 23, .58)); }
.sound-option:has(.sound-choice input:checked) { border-color: rgba(120, 207, 255, .5); background: linear-gradient(145deg, rgba(63, 127, 159, .12), rgba(10, 16, 23, .64)); box-shadow: inset 0 0 0 1px rgba(120, 207, 255, .07); }
.sound-choice { min-height: 48px; align-items: center; gap: 9px; }
.sound-choice input { width: 18px; height: 18px; margin: 0; }
.sound-choice strong { color: #e5edf3; font-size: 13px; line-height: 1.4; }
.sound-choice small { color: #aebdc8; font-size: 11px; }
.preview-button { min-width: 68px; min-height: 42px; border-radius: 8px; font-size: 12px; }
.preview-button[aria-pressed="true"] { color: #07131b; border-color: #8bd8ff; background: #8bd8ff; }
.sound-volume { gap: 7px; color: #b6c3ce; font-size: 12px; }
.sound-volume output { color: #edf4f8; font-size: 12px; }
.sound-volume-slider { min-height: 32px; }
.sound-volume-scale { display: flex; justify-content: space-between; margin-top: -5px; color: #97a7b5; font-size: 10px; font-variant-numeric: tabular-nums; }
.sound-volume-scale i { font-style: normal; }
.primary-button { min-height: 42px; padding-inline: 14px; border-radius: 8px; font-size: 12px; }
.subscription-item { border-radius: 10px; }
.subscription-title { font-size: 13px; }
.subscription-detail { color: #b0bec9; font-size: 11px; }
.subscription-controls { gap: 10px; }
.round-toggle { min-height: 40px; font-size: 11px; }
.remove-subscription { min-width: 82px; }
.rating-management .rating-restore-button,
.timeline-grade-show-all,
.timeline-date-submit,
.preview-button,
.primary-button,
.subscribe-button,
.remove-subscription,
.rating-edit-button { transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
:where(button, input, select, summary, a):focus-visible { outline-color: #9bdcff; outline-offset: 3px; }

@media (max-width: 1100px) {
  .time-shell { width: 100%; }
  .time-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .time-heading .intro { max-width: 100%; }
  .schedule-status { width: 100%; justify-content: flex-end; }
  .timeline-stage { height: 130px; }
  .timeline-inspector-content { grid-template-columns: minmax(180px, 1.15fr) minmax(150px, .9fr) minmax(160px, .95fr); gap: 8px 12px; }
}

@media (max-width: 900px) {
  .rotation-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .rotation-controls { justify-content: flex-start; width: 100%; }
  .timeline-inspector-content { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .timeline-task-block { grid-column: 1 / -1; }
  .sound-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sound-option:last-child { grid-column: 1 / -1; }
  .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .rotation-panel { padding: 13px; }
  .rotation-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: stretch; gap: 6px; }
  .rotation-zoom { justify-content: space-between; min-width: 0; }
  .rotation-zoom button { min-width: 0; min-height: 42px; flex: 1 1 0; padding-inline: 7px; }
  .timeline-now-button,.timeline-collapse { min-height: 42px; padding-inline: 10px; }
  .timeline-readout { flex-wrap: wrap; min-height: 32px; }
  #timeline-range-label { flex: 1 0 100%; margin: 0; text-align: left; }
  .timeline-tools-row { align-items: center; }
  .timeline-date-jump { grid-template-columns: max-content minmax(0, 1fr); flex: 1 1 auto; }
  .timeline-keyboard-help summary { min-width: 44px; }
  .timeline-stage { height: 122px; }
  .timeline-track { inset-block: 10px 8px; }
  .timeline-scale { height: 38px; }
  .timeline-scale-label { top: 20px; padding: 1px 5px; font-size: 12px; }
  .timeline-scale-date { top: 1px; padding-block: 2px; font-size: 11px; }
  .timeline-lane { top: 43px; height: 59px; }
  .timeline-event-placeholder { height: 59px; }
  .timeline-inspection-marker i, .timeline-actual-marker i { top: 43px; }
  .timeline-event { font-size: 11px; }
  .timeline-event.is-compact .timeline-event-label { font-size: 10px; }
  .timeline-event.is-narrow .timeline-event-label,
  .timeline-event.is-micro .timeline-event-label { font-size: 9px; }
  .timeline-inspector { gap: 8px; padding: 10px; }
  .timeline-inspector-content { gap: 9px 12px; max-height: 250px; }
  .timeline-task-block .timeline-task-name { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
  .timeline-detail-block:not(.timeline-task-block) .timeline-task-meta { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
  .timeline-inspector-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; }
  .timeline-inspector-state { margin-right: auto; }
  .timeline-inspector-actions button { min-height: 42px; padding-inline: 10px; }
  .timeline-inspector-summary { grid-template-columns: max-content minmax(0, 1fr); gap: 4px 9px; }
  .timeline-inspector-summary small { grid-column: 2; text-align: left; }
  .live-grid { grid-template-columns: 1fr; gap: 10px; }
  .live-card { min-height: 212px; }
  .live-task { min-height: 92px; }
  .future-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .future-summary { text-align: left; }
  .rating-management { align-items: center; }
}

@media (max-width: 560px) {
  .time-heading { gap: 10px; }
  .schedule-status { flex-wrap: wrap; width: 100%; justify-content: flex-start; white-space: normal; }
  .schedule-status time { padding-left: 8px; }
  .schedule-tabs { width: 100%; }
  .rotation-heading-copy h2 { font-size: 18px; }
  .rotation-help { font-size: 12px; }
  .rotation-controls { grid-template-columns: minmax(0, 1fr) auto; }
  .rotation-zoom { grid-column: 1 / -1; }
  .timeline-readout { align-items: baseline; }
  .timeline-tools-row { align-items: flex-start; }
  .timeline-date-jump { grid-template-columns: 1fr; gap: 6px; }
  .timeline-date-help { grid-column: 1; }
  .timeline-keyboard-help { align-self: flex-end; }
  .timeline-keyboard-shortcuts { left: auto; right: 0; width: min(360px, calc(100vw - 52px)); }
  .timeline-keyboard-shortcuts p { grid-template-columns: max-content max-content minmax(0, 1fr); }
  .timeline-stage { height: 112px; }
  .timeline-track { inset-block: 8px 5px; }
  .timeline-scale { height: 34px; }
  .timeline-scale-mark.is-hour { height: 16px; }
  .timeline-scale-mark.is-major { height: 20px; }
  .timeline-scale-label { top: 18px; padding: 1px 4px; font-size: 12px; }
  .timeline-scale-date { top: 1px; padding-block: 2px; font-size: 11px; }
  .timeline-lane { top: 39px; height: 58px; }
  .timeline-event-placeholder { height: 58px; }
  .timeline-inspection-marker, .timeline-actual-marker, .timeline-selection-marker { bottom: 5px; }
  .timeline-inspection-marker i, .timeline-actual-marker i { top: 38px; }
  .timeline-selection-marker i { top: 38px; }
  .timeline-event { padding-inline: 0; }
  .timeline-readout { font-size: 12px; }
  .timeline-date-jump > label { font-size: 12px; }
  .timeline-date-help { font-size: 11px; }
  .timeline-keyboard-shortcuts p { font-size: 11px; }
  .timeline-keyboard-shortcuts kbd { font-size: 10px; }
  .timeline-grade-heading { align-items: flex-start; }
  .timeline-grade-heading-copy { display: grid; gap: 3px; }
  .timeline-grade-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
  .timeline-grade-chip { min-height: 44px; justify-content: flex-start; gap: 5px; padding-inline: 7px; font-size: 11px; }
  .timeline-grade-heading h3 { font-size: 12px; }
  #timeline-grade-status { font-size: 11px; }
  .timeline-grade-show-all { min-height: 40px; }
  .timeline-grade-chip small { margin-left: auto; font-size: 10px; }
  .timeline-inspector-content { grid-template-columns: minmax(0, 1fr); }
  .timeline-task-block { grid-column: 1; }
  .timeline-detail-block:not(.timeline-task-block) { padding-top: 7px; border-top: 1px solid rgba(157, 184, 203, .11); }
  .timeline-inspector-actions { gap: 6px; }
  .timeline-inspector-state { width: 100%; margin: 0 0 1px; }
  .live-card { min-height: 205px; padding: 15px; }
  .live-card::before { left: 15px; width: 58px; }
  .live-card-top { gap: 8px; }
  .live-time-label { font-size: 10px; }
  .live-time { min-width: 74px; min-height: 38px; font-size: 19px; }
  .live-task { min-height: 90px; }
  .live-task > .task-label { font-size: 18px; }
  .filter-fields { grid-template-columns: 1fr; }
  .grade-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-grade { min-height: 40px; padding-inline: 5px; font-size: 11px; }
  .future-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; min-height: 0; padding: 11px 9px; }
  .row-time { grid-column: 1; display: flex; align-items: baseline; gap: 9px; }
  .row-task { grid-column: 1; }
  .row-actions { grid-column: 2; grid-row: 1 / span 2; align-self: center; gap: 6px; }
  .row-actions .grade-chip { min-width: 48px; }
  .rating-management { align-items: stretch; flex-direction: column; }
  .rating-management .rating-restore-button { width: 100%; }
  .sound-option-grid { grid-template-columns: 1fr; }
  .sound-option:last-child { grid-column: auto; }
  .sound-option { min-height: 0; grid-template-rows: auto auto; }
  .sound-toggle-row { grid-template-columns: minmax(0, 1fr) 142px; gap: 10px; }
  .sound-toggle-row > div { min-width: 0; }
  .subscription-item { grid-template-columns: 1fr; gap: 9px; }
  .subscription-controls { justify-content: space-between; }
}

@media (max-width: 380px) {
  .rotation-zoom button { padding-inline: 5px; font-size: 11px; }
  .timeline-grade-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .timeline-grade-chip { min-height: 44px; font-size: 10px; }
  .timeline-scale-label { font-size: 11px; }
  .timeline-grade-heading h3 { font-size: 12px; }
  #timeline-grade-status { font-size: 11px; }
  .timeline-date-control { grid-template-columns: minmax(0, 1fr) 54px; }
  .timeline-date-control input { padding-inline: 7px; font-size: 11px; }
  .timeline-keyboard-help summary { padding-inline: 9px; }
  .timeline-keyboard-shortcuts p { grid-template-columns: max-content max-content minmax(0, 1fr); gap: 3px; font-size: 10px; }
  .timeline-keyboard-shortcuts p span { margin-left: 3px; }
  .timeline-inspector-actions button { min-height: 40px; padding-inline: 8px; font-size: 11px; }
  .live-state { font-size: 14px; }
  .live-time-label { font-size: 9px; }
  .live-time { min-width: 67px; min-height: 35px; padding-inline: 7px; font-size: 18px; }
  .sound-toggle-row { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .sound-toggle-row .switch-control { width: 146px; }
  .sound-volume-scale { font-size: 9px; }
}

@media (max-height: 480px) and (min-width: 600px) {
  .rotation-panel { padding-block: 9px; }
  .rotation-help { display: block; max-width: none; font-size: 10px; line-height: 1.35; }
  .timeline-stage { height: 96px; }
  .timeline-track { inset-block: 6px 5px; }
  .timeline-scale { height: 32px; }
  .timeline-scale-label { top: 14px; padding-block: 1px; font-size: 12px; }
  .timeline-scale-date { font-size: 11px; }
  .timeline-lane { top: 37px; height: 46px; }
  .timeline-event-placeholder { height: 46px; }
  .timeline-inspection-marker, .timeline-actual-marker, .timeline-selection-marker { bottom: 5px; }
  .timeline-inspection-marker i, .timeline-actual-marker i { top: 30px; }
  .timeline-selection-marker i { top: 30px; }
  .timeline-marker-label { font-size: 10px; }
  .timeline-readout { font-size: 11px; }
  .timeline-date-jump > label, .timeline-date-help { font-size: 11px; }
  .timeline-keyboard-shortcuts p { font-size: 11px; }
  .timeline-keyboard-shortcuts kbd { font-size: 11px; }
  .timeline-grade-heading h3 { font-size: 12px; }
  #timeline-grade-status { font-size: 11px; }
  .timeline-inspector { padding-block: 8px; }
  .timeline-inspector-content { max-height: 120px; }
  .live-card { min-height: 182px; padding-block: 12px; }
  .live-task { min-height: 75px; }
}

@media (hover: none) {
  .timeline-event:hover,
  .future-row:hover,
  .live-card:hover { box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .timeline-stage .timeline-track,
  .timeline-event,
  .live-card,
  .live-task > .rating-edit-button,
  .timeline-inspector-content { transition: none !important; }
  .timeline-event-glint,.timeline-rim span { display: none !important; }
  .live-current .live-pulse { animation: none !important; }
}

.topbar .brand { position: relative; z-index: 1001; }
.topbar .brand img { animation: time-brand-logo-glow 6.4s ease-in-out infinite; }
.topbar .brand > span { animation: time-brand-text-glow 6.4s ease-in-out infinite; }
.topbar .brand::after {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  z-index: 1010;
  max-width: calc(100vw - 28px);
  padding: 8px 11px;
  border: 1px solid rgba(114, 199, 255, .28);
  border-radius: 8px;
  color: #e3f4ff;
  background: rgba(10, 17, 24, .97);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .32), 0 0 16px rgba(76, 174, 223, .09);
  content: attr(data-tooltip);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-2px);
  transition: opacity .1s ease, transform .1s ease, visibility 0s linear .1s;
}
.topbar .brand:hover::after,
.topbar .brand:focus-visible::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}
@keyframes time-brand-logo-glow {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(114, 199, 255, 0)); }
  50% { filter: drop-shadow(0 0 4px rgba(114, 199, 255, .27)) drop-shadow(0 0 8px rgba(114, 199, 255, .1)); }
}
@keyframes time-brand-text-glow {
  0%, 100% { text-shadow: 0 0 0 rgba(114, 199, 255, 0); }
  50% { text-shadow: 0 0 7px rgba(114, 199, 255, .22); }
}

.task-action-group {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.live-task > .task-action-group { grid-area: edit; justify-self: start; }
.task-action-group .rating-edit-button { min-width: 82px; min-height: 40px; padding-inline: 10px; font-size: 12px; }
.map-view-button {
  min-width: 82px;
  min-height: 40px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 7px 10px;
  border: 1px solid rgba(126, 153, 175, .32);
  border-radius: 7px;
  color: #c1d2df;
  background: rgba(12, 19, 27, .58);
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.map-view-button:hover:not(:disabled) {
  border-color: rgba(114, 199, 255, .5);
  color: #e7f5fd;
  background: rgba(64, 130, 165, .14);
  box-shadow: 0 0 0 3px rgba(114, 199, 255, .045);
}
.map-view-button:active:not(:disabled) { transform: scale(.97); }
.map-view-button:focus-visible { outline: 2px solid #9bdcff; outline-offset: 2px; }
.map-view-button:disabled { opacity: .58; cursor: wait; }

.live-task { row-gap: 12px; }
.live-progress {
  height: 8px;
  margin: 5px 0 12px;
  border: 1px solid rgba(114, 199, 255, .21);
  background:
    repeating-linear-gradient(90deg, rgba(121, 159, 184, .055) 0 15px, rgba(121, 159, 184, .13) 15px 16px),
    rgba(5, 11, 17, .85);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, .48), 0 0 9px rgba(72, 163, 207, .045);
}
.live-progress > span {
  overflow: hidden;
  background: linear-gradient(180deg, #8ee3ff 0%, #54b9ea 45%, #3189bd 100%);
  box-shadow: 0 0 7px rgba(83, 194, 243, .3), inset 0 1px 0 rgba(231, 249, 255, .42);
}
.live-progress > span::before,
.live-progress > span::after { position: absolute; inset: 0; content: ""; pointer-events: none; }
.live-progress > span::before { background: linear-gradient(180deg, rgba(240, 251, 255, .22), transparent 62%); }
.live-progress > span::after {
  left: 0;
  width: 22%;
  background: linear-gradient(90deg, transparent, rgba(227, 249, 255, .52), rgba(255, 255, 255, .24), transparent);
  opacity: .7;
  transform: translateX(-125%);
  animation: current-charge-sweep 2.8s ease-in-out infinite;
}
.live-progress[aria-valuenow="100"] > span { background: linear-gradient(180deg, #9af2d0 0%, #54c69e 48%, #289473 100%); }
.live-progress[aria-valuenow="100"] > span::after { opacity: .42; }
@keyframes current-charge-sweep {
  0%, 17% { transform: translateX(-125%); }
  78%, 100% { transform: translateX(500%); }
}

.map-availability-toast {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 4000;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 14px 20px;
  border: 1px solid rgba(114, 199, 255, .32);
  border-radius: 11px;
  color: #eaf5fc;
  background: rgba(11, 18, 26, .97);
  box-shadow: 0 16px 44px rgba(0, 0, 0, .48), 0 0 24px rgba(76, 174, 223, .12);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, calc(-50% + 8px));
  transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}
.map-availability-toast[hidden] { display: none; }
.map-availability-toast.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%);
  transition-delay: 0s;
}

@media (max-width: 640px) {
  .row-actions { grid-column: 1 / -1; grid-row: auto; width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .subscription-controls { justify-content: flex-start; flex-wrap: wrap; gap: 8px; }
  .map-availability-toast { padding: 12px 15px; font-size: 13px; }
}
@media (max-width: 380px) {
  .task-action-group { gap: 6px; }
  .task-action-group .rating-edit-button,
  .task-action-group .map-view-button { min-width: 78px; padding-inline: 7px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .topbar .brand img,
  .topbar .brand > span { animation: none !important; filter: none; text-shadow: none; }
  .live-progress > span::after { display: none; animation: none !important; }
  .map-availability-toast { transition: none; transform: translate(-50%, -50%); }
}
