:root { --bg:#0f1115; --fg:#e8eaed; --muted:#9aa0a6; --accent:#34a852;
        --label-w: 190px; --row-h: 30px; --line:#2a2f3a; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
       background:var(--bg); color:var(--fg); -webkit-text-size-adjust:100%; }
.container { max-width: 1400px; margin: 0 auto; padding: 1rem; }
.hero { text-align:center; padding: 4rem 1rem; }
.muted { color: var(--muted); }
a { color: var(--accent); }

/* --- Calendario --- */
.cal-head { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; justify-content:space-between; margin-bottom:.75rem; }
.cal-head h1 { font-size:1.4rem; margin:0; }
.legend { display:flex; gap:1rem; flex-wrap:wrap; font-size:.8rem; color:var(--muted); }
.legend span { display:flex; align-items:center; gap:.35rem; }
.sw { width:14px; height:14px; border-radius:3px; display:inline-block; }

.gantt { border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.gantt-row { display:flex; align-items:stretch; height:var(--row-h); border-top:1px solid var(--line); }
.gantt-row:first-child { border-top:none; }
.gantt-months { height:26px; background:#161922; position:sticky; top:0; z-index:3; }
.gantt-group { background:#1c2433; color:#cfe3ff; font-weight:600; font-size:.82rem;
               padding:.25rem .75rem; border-top:1px solid var(--line); }

.rowlabel { width:var(--label-w); min-width:var(--label-w); padding:0 .6rem;
            display:flex; align-items:center; gap:.4rem; font-size:.8rem;
            border-right:1px solid var(--line); background:#13161d; overflow:hidden; white-space:nowrap; }
.tag { font-size:.62rem; color:var(--muted); border:1px solid var(--line); border-radius:10px; padding:0 .4rem; }
.tag.vac { color:#e0a050; border-color:#5a4420; }

.track { position:relative; flex:1; }
.month { position:absolute; top:0; height:100%; display:flex; align-items:center;
         padding-left:.4rem; font-size:.72rem; color:var(--muted); border-left:1px solid var(--line); }
.track.own { background:repeating-linear-gradient(45deg,#171b22,#171b22 6px,#13161d 6px,#13161d 12px); }

.bar { position:absolute; top:3px; height:calc(var(--row-h) - 6px); border-radius:4px;
       display:flex; align-items:center; padding:0 .35rem; overflow:hidden; cursor:default;
       box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.bar span { font-size:.68rem; color:#fff; white-space:nowrap; text-shadow:0 1px 1px rgba(0,0,0,.5); }
.today { position:absolute; top:0; bottom:0; width:2px; background:#e0506080; z-index:2; }
