/* Daily Timeline ported from the student-facing Daily Alignment app. */
.daily-timeline-detail-placeholder{min-height:9rem;border-radius:6px;background:linear-gradient(90deg,transparent,rgba(var(--theme-main-rgb),.08),transparent),rgba(255,255,255,.018);background-size:180% 100%,auto;animation:daily-timeline-loading 1.1s ease-in-out infinite}
@keyframes daily-timeline-loading{from{background-position:100% 0,0 0}to{background-position:-80% 0,0 0}}
.timeline-modal-overview{display:grid;gap:14px;padding:4px 2px 2px}
.timeline-modal-overview-section h3{margin:0 0 7px;color:var(--theme-accent);font:700 .64rem/1.25 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.timeline-modal-overview-section ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.timeline-modal-overview-section li{position:relative;padding-left:15px;color:rgba(255,255,255,.94);font-size:.84rem;line-height:1.45}
.timeline-modal-overview-section li::before{content:'\2022';position:absolute;left:1px;top:0;color:var(--theme-accent)}
.timeline-feedback{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(var(--theme-main-rgb),.2)}
.timeline-feedback-label{margin:0;color:rgba(255,255,255,.78);font:600 .68rem/1.35 var(--sans);letter-spacing:.04em}
.timeline-feedback-actions{display:flex;flex-wrap:wrap;gap:7px}
.timeline-feedback-button{appearance:none;min-height:32px;padding:0 12px;border:1px solid rgba(var(--theme-main-rgb),.32);border-radius:999px;background:rgba(var(--theme-ink-rgb),.58);color:rgba(255,255,255,.9);font:700 .58rem/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}
.timeline-feedback-button:hover,.timeline-feedback-button:focus-visible,.timeline-feedback-button.is-selected{border-color:var(--theme-accent);background:rgba(var(--theme-main-rgb),.2);outline:none}
.timeline-feedback-status{min-height:1em;color:rgba(255,255,255,.62);font-size:.66rem;line-height:1.35}
.modal-keyrows.is-deeper-open>.timeline-modal-overview{display:none}
.timeline-modal-deeper{margin:8px 2px 1px;padding-top:10px;border-top:1px solid rgba(var(--theme-main-rgb),.2)}
.timeline-modal-deeper summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:0 58px 0 2px;color:var(--theme-accent);font:700 .64rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}
.timeline-modal-deeper summary::-webkit-details-marker{display:none}
.timeline-modal-deeper summary::after{content:'';flex:0 0 auto;width:8px;height:8px;margin-right:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}
.timeline-modal-deeper[open] summary::after{transform:rotate(225deg) translate(-2px,-1px)}
.timeline-modal-deeper-content{display:flex;flex-direction:column;gap:8px;padding-top:8px}
.modal-keyrow .timing-reason-list{margin:0;padding-left:16px;color:#ddd5ca;font-size:.78rem;line-height:1.55}
.modal-keyrow .timing-reason-list li{margin:0 0 4px}
.modal-keyrow .timing-reason-list li:last-child{margin-bottom:0}
.hora-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
.hora-date-input{appearance:none;border:1px solid rgba(var(--theme-main-rgb),.28);border-radius:999px;background:linear-gradient(135deg,rgba(var(--theme-main-rgb),.12),rgba(255,255,255,.028));color:var(--text);font:inherit;font-size:.72rem;letter-spacing:.04em;padding:8px 12px;color-scheme:dark}
.hora-day-summary{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0 52px 12px 0;padding:0;background:transparent;flex-wrap:wrap}
.hora-day-summary .energy-stamp{margin-bottom:0}
.hora-stamp{font-size:.78rem;line-height:1.35}
.hora-timezone{color:rgba(246,239,228,.62);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}
.hora-location-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(var(--theme-main-rgb),.2);border-radius:12px;background:rgba(var(--theme-ink-rgb),.38)}
.hora-location-copy{min-width:0;color:rgba(246,239,228,.78);font-size:.82rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hora-location-button{flex:0 0 auto;appearance:none;min-height:30px;padding:0 10px;border:1px solid rgba(var(--theme-main-rgb),.38);border-radius:999px;background:rgba(var(--theme-main-rgb),.12);color:rgba(255,255,255,.92);font:700 .58rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}
.hora-location-button:disabled{opacity:.58;cursor:wait}
.hora-sun-track{min-width:0}
.hora-sun-label{display:none}
.hora-sun-meta{display:none;align-items:center;justify-content:space-between;gap:10px;color:rgba(246,239,228,.76);font-size:.68rem;line-height:1.25;margin-bottom:7px}
.hora-sun-meta strong{color:var(--gold);font-weight:600;letter-spacing:.04em}
.hora-sun-bar{position:relative;height:11px;border-radius:999px;background:rgba(255,255,255,.075);overflow:hidden;border:1px solid rgba(255,255,255,.07)}
.hora-sun-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(var(--theme-soft-rgb),.82),rgba(var(--theme-main-rgb),.72));box-shadow:0 0 14px rgba(var(--theme-main-rgb),.16)}
.hora-sun-now{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:rgba(246,239,228,.94);border:1px solid rgba(0,0,0,.35);box-shadow:0 0 12px rgba(246,239,228,.25);transform:translate(-50%,-50%)}
.hora-sun-marker{position:absolute;top:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(8,8,10,.88);border:1px solid rgba(var(--theme-main-rgb),.28);box-shadow:0 0 12px rgba(0,0,0,.24);font-size:.72rem;line-height:1;transform:translate(-50%,-50%);z-index:2}
.hora-calendar{position:relative;border:1px solid rgba(var(--theme-main-rgb),.18);border-radius:16px;background:rgba(0,0,0,.16);overflow:hidden;max-height:min(62dvh,640px);padding:10px}
.hora-timeline-rail{display:none}
.daily-timeline-card{position:relative;overflow:hidden;margin:0 0 16px;padding:18px 20px 20px;border:1px solid rgba(var(--theme-main-rgb),.24);border-radius:24px;background:radial-gradient(circle at 12% 8%,rgba(var(--theme-main-rgb),.17),transparent 58%),linear-gradient(145deg,rgba(var(--theme-deep-rgb),.2),rgba(7,6,10,.82));box-shadow:0 22px 60px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.11)}
.daily-timeline-card::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,rgba(255,255,255,.055),transparent 24%)}
.daily-timeline-card>*{position:relative;z-index:1}
.daily-timeline-head{display:block}
.daily-timeline-heading{display:flex;min-width:0;flex-direction:column;gap:4px}
.daily-timeline-title-row,.daily-timeline-date-row{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:10px}
.daily-timeline-date-row{justify-content:flex-start;margin-top:clamp(-13px,-2vw,-4px)}
.daily-timeline-controls{display:flex;align-items:center;gap:7px}
.daily-timeline-day-controls{display:flex;flex:0 0 auto;align-items:center;gap:5px}
.daily-timeline-zoom-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(var(--theme-main-rgb),.34);border-radius:50%;background:rgba(var(--theme-ink-rgb),.68);color:rgba(255,255,255,.9);font:700 1rem/1 var(--sans);cursor:pointer;touch-action:manipulation;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.daily-timeline-zoom-btn:hover,.daily-timeline-zoom-btn:focus-visible{border-color:rgba(var(--theme-main-rgb),.68);background:rgba(var(--theme-main-rgb),.18);outline:none}
.daily-timeline-zoom-btn:disabled{opacity:.32;cursor:default}
.daily-timeline-day-btn{width:30px;height:30px;font-size:1.08rem}
.daily-timeline-today-btn{width:auto;min-width:0;padding:0 11px;border-radius:999px;font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}
.daily-timeline-title{color:var(--theme-accent)!important;font-family:var(--sans)!important;font-size:clamp(.72rem,.92vw,.86rem)!important;font-weight:700!important;letter-spacing:.12em!important;line-height:1.25!important;text-transform:uppercase!important;text-shadow:none!important}
.daily-timeline-date{appearance:none;display:block;min-width:0;max-width:100%;padding:0;border:0;background:transparent;color:var(--theme-accent);font:inherit;font-size:clamp(.88rem,1.15vw,1rem);line-height:1.35;text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}
.daily-timeline-date:hover,.daily-timeline-date:focus-visible{color:rgba(255,255,255,.96);outline:none}
.daily-timeline-detail{display:none;margin-top:8px;padding-top:8px;border-top:1px solid rgba(var(--theme-main-rgb),.15)}
.daily-timeline-card.is-expanded .daily-timeline-detail{display:block}
.daily-timeline-chart{--timeline-plot-height:clamp(190px,24vw,360px);display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:10px;width:100%}
.daily-timeline-ylabels{position:relative;grid-column:1;grid-row:1;height:var(--timeline-plot-height);color:rgba(246,239,228,.66);font-size:clamp(.62rem,.92vw,.76rem);font-weight:600;line-height:1;white-space:nowrap}
.daily-timeline-ylabels span{position:absolute;left:0;width:max-content;max-width:100%;padding:4px 6px;border-left:2px solid transparent;border-radius:0 6px 6px 0;transform:translateY(-50%)}
.daily-timeline-ylabels span.is-current{color:rgba(255,255,255,.96);font-size:1.12em;font-weight:700;border-left-color:var(--theme-accent);background:rgba(var(--theme-main-rgb),.2);box-shadow:0 0 14px rgba(var(--theme-main-rgb),.18);text-shadow:0 1px 2px rgba(0,0,0,.72)}
.daily-timeline-viewport{grid-column:2;grid-row:1;min-width:0;max-width:100%;padding-bottom:5px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:none;scrollbar-width:none;cursor:grab}
.daily-timeline-viewport.is-dragging{cursor:grabbing;user-select:none}
.daily-timeline-viewport.is-zooming{cursor:ns-resize;user-select:none}
.daily-timeline-viewport::-webkit-scrollbar{display:none}
.daily-timeline-track{display:grid;grid-template-rows:var(--timeline-plot-height) auto auto;width:calc(100% * var(--timeline-zoom,1));min-width:100%}
.daily-timeline-svg-wrap{position:relative;grid-column:1;grid-row:1;min-width:0;min-height:190px}
.daily-timeline-svg{display:block;width:100%;height:100%;overflow:visible}
.daily-timeline-graph-events{position:absolute;inset:0;z-index:3;pointer-events:none}
.daily-timeline-graph-event{position:absolute;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;min-height:18px;padding:0;border:1px solid rgba(var(--theme-soft-rgb),.68);border-radius:50%;background:rgba(var(--theme-ink-rgb),.82);color:var(--theme-accent);font:700 .58rem/1 var(--sans);white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.68);box-shadow:0 2px 7px rgba(0,0,0,.5),0 0 7px rgba(var(--theme-main-rgb),.2);transform:translate(-50%,calc(-50% + var(--event-shift-y,0px)));cursor:pointer;pointer-events:auto;touch-action:manipulation}
.daily-timeline-graph-event:hover,.daily-timeline-graph-event:focus-visible{z-index:4;border-color:var(--theme-accent);background:rgb(var(--theme-deep-rgb));color:rgba(255,255,255,.96);box-shadow:0 3px 10px rgba(0,0,0,.62),0 0 12px rgba(var(--theme-main-rgb),.38);outline:none}
.daily-timeline-graph-event.is-edge-start{transform:translate(0,calc(-50% + var(--event-shift-y,0px)))}
.daily-timeline-graph-event.is-edge-end{transform:translate(-100%,calc(-50% + var(--event-shift-y,0px)))}
.daily-timeline-gridline{stroke:rgba(246,239,228,.12);stroke-width:1;vector-effect:non-scaling-stroke}
.daily-timeline-neutral{stroke:rgba(246,239,228,.36);stroke-width:1.2;vector-effect:non-scaling-stroke}
.daily-timeline-area{fill:url(#daily-timeline-fill)}
.daily-timeline-line{fill:none;stroke:var(--theme-accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.daily-timeline-point{fill:#07060a;stroke:var(--theme-accent);stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer;touch-action:manipulation}
.daily-timeline-point-hit{fill:transparent;cursor:pointer;touch-action:manipulation}
.daily-timeline-point,.daily-timeline-point-hit,.daily-timeline-now-dot,.daily-timeline-now-hit{transform-box:fill-box;transform-origin:center;transform:scaleX(var(--timeline-point-scale-x,1))}
.daily-timeline-track.is-overview .daily-timeline-marker:not(.is-overview){display:none}
.daily-timeline-track.is-overview .daily-timeline-marker.is-day-extreme .daily-timeline-point{transform:scaleX(var(--timeline-point-scale-x,1)) scale(1.34)}
.daily-timeline-now-line{stroke:rgba(246,239,228,.62);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.daily-timeline-now-dot{fill:rgba(246,239,228,.98);stroke:#07060a;stroke-width:2;vector-effect:non-scaling-stroke}
.daily-timeline-now-hit{fill:transparent;cursor:pointer;touch-action:manipulation}
.daily-timeline-past{fill:rgba(0,0,0,.18);pointer-events:none}
.daily-timeline-hourline{stroke:rgba(246,239,228,.075);stroke-width:1;vector-effect:non-scaling-stroke}
.daily-timeline-hourline.is-major{stroke:rgba(246,239,228,.14)}
.daily-timeline-xlabels{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));min-height:30px;border-top:1px solid rgba(246,239,228,.28);color:rgba(246,239,228,.72);font-size:var(--timeline-hour-font,clamp(.56rem,.9vw,.82rem));font-weight:600;line-height:1}
.daily-timeline-xlabels>span{position:relative;display:block;min-width:0;min-height:30px;border-left:1px solid rgba(246,239,228,.16);transition:border-color .16s,box-shadow .16s}
.daily-timeline-xlabels span:last-child{border-right:1px solid rgba(246,239,228,.16)}
.daily-timeline-xlabels span.is-current{position:relative;z-index:2;color:rgba(255,255,255,.98);border-radius:4px;background:rgba(var(--theme-main-rgb),.16);box-shadow:inset 0 0 0 1px rgba(var(--theme-main-rgb),.56),0 0 12px rgba(var(--theme-main-rgb),.18)}
.daily-timeline-hour-number{position:absolute;top:11px;left:0;z-index:1;display:block;width:max-content;transform:translateX(-50%);font-size:1em;line-height:1;text-align:center;white-space:nowrap}
.daily-timeline-xlabels>span:first-child .daily-timeline-hour-number{left:3px;transform:none}
.daily-timeline-minute-tick{position:absolute;top:0;width:1px;height:6px;background:rgba(246,239,228,.38);transform:translateX(-50%);pointer-events:none}
.daily-timeline-minute-tick.is-15{left:25%}
.daily-timeline-minute-tick.is-30{left:50%;height:11px;background:rgba(246,239,228,.56)}
.daily-timeline-minute-tick.is-45{left:75%}
.daily-timeline-track.is-overview .daily-timeline-minute-tick{display:none}
.daily-timeline-xlabels span.is-current .daily-timeline-hour-number{font-size:1.28em;line-height:.9}
.daily-timeline-horas{position:relative;grid-column:1;grid-row:3;min-height:30px;border-top:1px solid rgba(246,239,228,.14);border-bottom:1px solid rgba(246,239,228,.1);overflow:hidden}
.daily-timeline-hora-block{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;min-width:1px;overflow:hidden;border-left:1px solid rgba(var(--hora-rgb),.52);border-right:1px solid rgba(0,0,0,.22);background:linear-gradient(180deg,rgba(var(--hora-rgb),.28),rgba(var(--hora-rgb),.12));color:rgb(var(--hora-rgb));font-size:calc(var(--timeline-hour-font,clamp(.56rem,.9vw,.82rem)) * .96);font-weight:700;letter-spacing:.02em;line-height:1;white-space:nowrap}
.daily-timeline-hora-block.is-current{z-index:1;color:rgba(255,255,255,.98);background:linear-gradient(180deg,rgba(var(--hora-rgb),.48),rgba(var(--hora-rgb),.22));box-shadow:inset 0 0 0 1px rgba(var(--hora-rgb),.88),0 0 14px rgba(var(--hora-rgb),.22)}
.daily-timeline-empty{padding:12px 0 2px;color:rgba(246,239,228,.7);font-size:clamp(.88rem,1.4vw,1.02rem);line-height:1.5}
@media(max-width:640px){
  .hora-location-row{align-items:flex-start;flex-direction:column;gap:8px}
  .hora-location-copy{padding-right:34px;overflow:visible;text-overflow:clip;white-space:normal}
  .hora-location-button{width:auto;align-self:flex-start}
  .daily-timeline-card{padding:15px 14px 17px;border-radius:20px}
  .daily-timeline-chart{--timeline-plot-height:190px;column-gap:7px}
  .daily-timeline-ylabels{font-size:.58rem}
  .daily-timeline-graph-event{width:16px;height:16px;min-width:16px;min-height:16px;font-size:.52rem}
  .daily-timeline-xlabels{font-size:var(--timeline-hour-font,.52rem)}
  .daily-timeline-xlabels,.daily-timeline-xlabels>span{min-height:30px}
  .daily-timeline-horas{min-height:30px}
  .daily-timeline-controls{gap:5px}
  .daily-timeline-zoom-btn{width:36px;height:36px;font-size:1.04rem}
  .daily-timeline-day-btn{width:30px;height:30px;font-size:1.08rem}
  .daily-timeline-today-btn{width:auto;padding:0 9px;font-size:.62rem}
  .timeline-modal-deeper summary{padding-right:62px}
