/* Schedule */
.schedule-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;border:1px solid var(--border);background:var(--bg-secondary);}
.schedule{min-width:800px;}
.schedule-header{display:grid;grid-template-columns:56px repeat(7,1fr);background:var(--bg-card);border-bottom:2px solid var(--border);position:sticky;top:0;z-index:20;}
.corner-cell,.day-header{padding:.8rem .35rem;text-align:center;font-weight:700;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);border-right:1px solid var(--border);}
.corner-cell{text-align:left;padding-left:.5rem;font-size:.65rem;color:var(--text-muted);}.day-header:last-child{border-right:none;}
.schedule-body{display:grid;grid-template-columns:56px repeat(7,1fr);position:relative;}
.time-axis{position:relative;background:var(--bg-card);border-right:1px solid var(--border);}
.hour-label{position:absolute;left:0;right:0;transform:translateY(-50%);font-family:'Space Mono',monospace;font-size:.6rem;font-weight:700;color:var(--text-muted);text-align:center;pointer-events:none;}
.day-column{position:relative;border-right:1px solid var(--border);}.day-column:last-of-type{border-right:none;}
.hour-line{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--border);pointer-events:none;z-index:0;}

/* Events */
.event{position:absolute;left:3px;right:3px;z-index:5;border-radius:6px;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.event-travel{background:var(--travel-bg);border:1px dashed var(--travel-border);display:flex;align-items:center;justify-content:center;z-index:4;}
.travel-label{font-size:.58rem;font-weight:600;color:var(--travel-color);text-align:center;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.travel-dot{font-size:.5rem;color:var(--travel-color);opacity:.7;}
.event-activity{background:linear-gradient(135deg,rgba(0,212,255,.12),rgba(255,107,157,.12));border:1px solid rgba(0,212,255,.3);cursor:pointer;padding:6px 8px;}
.event-activity::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--accent-primary);transition:width .25s;z-index:1;}
.event-activity:hover{transform:scale(1.02);box-shadow:0 5px 18px rgba(0,212,255,.2);border-color:var(--accent-primary);z-index:10;}
.event-activity:hover::before{width:100%;opacity:.07;}
.event-header{position:relative;z-index:2;}
.event-title{font-weight:700;font-size:.78rem;color:var(--text-primary);line-height:1.2;}
.event-subtitle{font-size:.62rem;color:var(--text-secondary);margin-top:1px;}
.event-time{font-family:'Space Mono',monospace;font-size:.58rem;font-weight:700;color:var(--accent-primary);margin-top:2px;}
/* (nested events removed — shown only in modal on click) */
.event-diagonal{background:var(--bg-card);border:1px solid rgba(0,212,255,.3);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;padding:8px;transition:transform .2s,box-shadow .2s,border-color .2s;}
.event-diagonal:hover{transform:scale(1.03);box-shadow:0 6px 20px rgba(0,212,255,.25);border-color:var(--accent-primary);z-index:10;}
.diagonal-top{font-weight:700;font-size:.72rem;color:var(--accent-primary);display:flex;flex-direction:column;gap:1px;}
.diagonal-bottom{font-weight:700;font-size:.72rem;color:var(--accent-secondary);text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px;}
.diagonal-sub{display:block;font-size:.52rem;font-weight:500;opacity:.7;}
.diagonal-line{width:140%;height:1px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transform:rotate(-25deg);transform-origin:center;align-self:center;opacity:.5;margin:4px 0;}

/* Spanning */
.span-overlay{position:absolute;top:0;left:56px;right:0;pointer-events:none;z-index:8;}
.span-event{position:absolute;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;transition:transform .2s;padding:6px 8px;}
.span-event:hover{transform:scale(1.01);z-index:12;}
.span-title{font-weight:700;font-size:.78rem;color:var(--text-primary);text-align:center;text-shadow:0 1px 4px rgba(0,0,0,.5);}
.span-subtitle{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--text-secondary);margin-top:2px;text-shadow:0 1px 4px rgba(0,0,0,.5);}
.span-morning{background:linear-gradient(135deg,rgba(255,179,71,.18),rgba(255,107,157,.12));border:1px solid rgba(255,179,71,.35);}.span-morning .span-title{color:var(--accent-warning);}
.span-work{background:repeating-linear-gradient(135deg,rgba(43,52,74,.5),rgba(43,52,74,.5) 8px,rgba(35,44,65,.5) 8px,rgba(35,44,65,.5) 16px);border:1px solid rgba(100,115,150,.25);}
.span-work .span-title{font-family:'Space Mono',monospace;font-size:1.1rem;color:var(--text-muted);letter-spacing:.15em;opacity:.7;}.span-work .span-subtitle{color:var(--text-muted);opacity:.5;}
.span-evening{background:linear-gradient(135deg,rgba(100,80,180,.18),rgba(0,212,255,.1));border:1px solid rgba(100,80,180,.35);}.span-evening .span-title{color:#b8a0e8;}
.now-line{position:absolute;left:0;right:0;height:2px;background:var(--accent-secondary);z-index:15;pointer-events:none;box-shadow:0 0 8px rgba(255,107,157,.5);}
.now-line::before{content:'';position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent-secondary);}

/* Mobile schedule controls */
.schedule-mobile-controls{display:none;gap:.35rem;margin-bottom:.6rem;}
.sched-view-btn{padding:.45rem .75rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:.75rem;font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;}
.sched-view-btn.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.schedule-day-nav{display:none;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.5rem;}
.schedule-day-nav.visible{display:flex;}
.day-nav-arrow{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:1rem;padding:.35rem .65rem;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.day-nav-arrow:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.day-nav-label{font-family:'Space Mono',monospace;font-weight:700;font-size:.95rem;color:var(--accent-primary);min-width:110px;text-align:center;}
.schedule-header.day-mode{grid-template-columns:44px 1fr;}
.day-header-single{font-size:.85rem !important;}

@media(max-width:768px){
    .schedule-mobile-controls{display:flex;}
    /* Day mode: bigger text since more space */
    .day-active .event-title{font-size:.88rem !important;}
    .day-active .event-time{font-size:.7rem !important;}
    .day-active .event-subtitle{display:block !important;font-size:.72rem !important;}
    .day-active .event-activity{padding:8px 10px !important;}
    .day-active .span-title{font-size:.88rem !important;}
    .day-active .span-subtitle{font-size:.68rem !important;}
    .day-active .travel-label{font-size:.7rem !important;}
    .day-active .diagonal-top,.day-active .diagonal-bottom{font-size:.85rem !important;}
    .day-active .diagonal-sub{font-size:.62rem !important;}
    .day-active .hour-label{font-size:.65rem !important;}
}

@media(max-width:1024px){
    .schedule-header,.schedule-body{grid-template-columns:44px repeat(7,1fr);}.span-overlay{left:44px;}
    .corner-cell,.day-header{padding:.55rem .15rem;font-size:.6rem;}.hour-label{font-size:.52rem;}
    .event-activity{padding:3px 4px;}.event-title{font-size:.62rem;}.event-time{font-size:.48rem;}.event-subtitle{display:none;}
    .travel-label{font-size:.48rem;}
    .span-title{font-size:.62rem;}.span-subtitle{font-size:.48rem;}.span-work .span-title{font-size:.82rem;}
    .diagonal-top,.diagonal-bottom{font-size:.58rem;}.diagonal-sub{font-size:.42rem;}
    .span-event{padding:3px 4px;}
}
