/* Week timeline · zoomable (day, week, month). White card, hairline grid, pastel chips with a hue bar, quiet motion. */
.cw{margin:0 0 14px;padding:14px 16px 12px;background:#fff;border:1px solid #D9D9D9;border-radius:6px}
.cw-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 12px}
.cw-seg{display:inline-flex;border:1px solid #D9D9D9;border-radius:6px;overflow:hidden;background:#F4F3EF}
.cw-seg button{min-height:36px;padding:6px 14px;border:0;border-right:1px solid #E4E1DA;background:transparent;color:#5C544E;font:600 13px system-ui,-apple-system,sans-serif;cursor:pointer;transition:background .2s,color .2s}
.cw-seg button:last-child{border-right:0}
.cw-seg button[aria-pressed=true]{background:#800000;color:#FFF8EF}
.cw-seg button:focus-visible{outline:2px solid #800000;outline-offset:-2px}
.cw-title{flex:1;min-width:160px;margin:0;display:flex;flex-wrap:wrap;gap:2px 12px;align-items:baseline}
.cw-title strong{font:600 16px/1.3 system-ui,-apple-system,sans-serif;color:#302B29}
.cw-week{font-size:13px;color:#5C544E}
.cw-nav{display:inline-flex;gap:6px}
.cw-nav button{min-width:36px;min-height:36px;padding:0 12px;border:1px solid #D9D9D9;border-radius:4px;background:#fff;color:#800000;font:600 14px system-ui,-apple-system,sans-serif;cursor:pointer}
.cw-nav button:hover{border-color:#A4343A;background:#FAF4F4}
.cw-grid{display:grid;grid-template-columns:96px repeat(var(--cols,7),minmax(0,1fr));gap:1px;background:#EFEDE8;border:1px solid #EFEDE8;border-radius:6px;overflow:hidden}
.cw-grid>*{background:#fff;min-width:0}
.cw-corner{background:#FAF9F6}
.cw-head{padding:8px 6px 6px;text-align:center;display:flex;flex-direction:column;gap:2px;align-items:center}
.cw-head-dow{font:600 11px system-ui,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#737373}
.cw-head-num{font:600 15px/1.2 system-ui,-apple-system,sans-serif;color:#302B29}
.cw-head.is-today .cw-head-num{background:#800000;color:#FFF8EF;border-radius:999px;padding:1px 9px;min-width:26px}
.cw-lane{padding:8px;font:600 11px/1.3 system-ui,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#5C544E;background:#FAF9F6;display:flex;align-items:flex-start}
.cw-cell{padding:6px;display:flex;flex-direction:column;gap:4px;min-height:44px;position:relative}
.cw-cell.is-today{background:#FBF5F5}
.cw-empty{font-size:12px;color:#A6A6A6}
.cw-chip{--wash:#F4F3EF;--ink:#302B29;--bar:#737373;display:block;width:100%;text-align:left;padding:5px 8px 5px 10px;border:1px solid transparent;border-left:3px solid var(--bar);border-radius:4px;background:var(--wash);color:var(--ink);font:500 12px/1.3 system-ui,-apple-system,sans-serif;cursor:pointer;position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s,border-color .15s}
.cw-chip:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(48,43,41,.12)}
.cw-chip:focus-visible{outline:2px solid #800000;outline-offset:1px}
.cw-chip-title{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-chip-meta{display:block;font-size:11px;color:#5C544E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.cw-chip.is-hot{border-color:#800000}
.cw-chip.is-ghost{background:#fff;border-style:dashed;border-color:#C9C4BB;border-left-style:solid;border-left-color:var(--bar);color:#5C544E}
.cw-chip.is-done{opacity:.55;text-decoration:line-through}
.cw-chip.is-public .cw-chip-title::after{content:" ↗";font-weight:400;color:#737373}
[data-type=chat]{--wash:#F4E8E9;--ink:#4B1020;--bar:#800000}
[data-type=thanks]{--wash:#FAEAD6;--ink:#A9431E;--bar:#DE7C00}
[data-type=series],[data-type=task]{--wash:#FBF0D1;--ink:#5C4300;--bar:#EAAA00}
[data-type=info_session],[data-type=recruiting]{--wash:#E6DCE8;--ink:#41273B;--bar:#59315F}
[data-type=case_workshop]{--wash:#FBF0D1;--ink:#5C4300;--bar:#A9431E}
[data-type=application_deadline],[data-type=club_deadline]{--wash:#F3E3E4;--ink:#643335;--bar:#A4343A}
[data-type=academic]{--wash:#D6E9EE;--ink:#002A3A;--bar:#007396}
[data-type=social]{--wash:#FAEAD6;--ink:#A9431E;--bar:#DE7C00}
[data-type=community]{--wash:#E7EDDE;--ink:#284734;--bar:#789D4A}
.cw-more{align-self:flex-start;min-height:24px;padding:2px 8px;border:1px solid #D9D9D9;border-radius:999px;background:#fff;color:#800000;font:600 11px system-ui,-apple-system,sans-serif;cursor:pointer}
.cw-more:hover{border-color:#A4343A;background:#FAF4F4}
.cw-status{display:block;font-size:12px;color:#5C544E;margin:2px 0 0}
.cw-status:empty{display:none}
/* Day zoom: one wide column, chips read as rows with the time first. */
.cw[data-zoom=day] .cw-grid{grid-template-columns:96px 1fr}
.cw[data-zoom=day] .cw-head{align-items:flex-start;text-align:left;padding-left:10px}
.cw[data-zoom=day] .cw-cell{padding:8px 10px}
.cw[data-zoom=day] .cw-chip{display:grid;grid-template-columns:1fr auto;gap:0 12px;align-items:baseline;padding:8px 12px 8px 12px;font-size:14px}
.cw[data-zoom=day] .cw-chip-meta{grid-column:1/3;white-space:normal}
/* Month zoom: a calendar of dots; tapping a day zooms in. */
.cw-grid.cw-month{grid-template-columns:repeat(7,minmax(0,1fr))}
.cw-dow{padding:6px 4px;text-align:center;font:600 11px system-ui,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#737373;background:#FAF9F6}
.cw-day{min-height:72px;padding:6px 7px;border:0;text-align:left;display:flex;flex-direction:column;gap:3px;font:inherit;color:#302B29;cursor:pointer;transition:background .15s}
.cw-day:hover{background:#FAF4F4}
.cw-day:focus-visible{outline:2px solid #800000;outline-offset:-2px}
.cw-day.is-outside{color:#A6A6A6;background:#FCFBF9}
.cw-day.is-today{background:#FBF5F5}
.cw-day-num{font:600 13px system-ui,-apple-system,sans-serif}
.cw-day.is-today .cw-day-num{display:inline-block;background:#800000;color:#FFF8EF;border-radius:999px;padding:0 7px;align-self:flex-start}
.cw-dots{display:flex;flex-wrap:wrap;gap:3px;align-items:center;min-height:10px}
.cw-dots i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--bar,#737373)}
.cw-dots i.is-hot{box-shadow:0 0 0 2px #fff,0 0 0 3px #800000}
.cw-dots b{font:600 10px system-ui,-apple-system,sans-serif;color:#5C544E}
.cw-day-first{font-size:11px;line-height:1.3;color:#5C544E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cw-none{margin:10px 0 0;font-size:13px;color:#5C544E}
.cw-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;font-size:12px;color:#5C544E}
.cw-legend span{display:inline-flex;align-items:center;gap:6px}
.cw-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--bar,#737373)}
/* Motion: chips settle in with a small stagger; pertinent items pulse twice, then rest. */
@keyframes cw-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes cw-pulse{0%{box-shadow:0 0 0 0 rgba(128,0,0,.35)}100%{box-shadow:0 0 0 7px rgba(128,0,0,0)}}
.cw-chip,.cw-day{animation:cw-in .26s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0)*16ms)}
.cw-chip.is-hot{animation:cw-in .26s cubic-bezier(.2,.7,.2,1) calc(var(--i,0)*16ms) both,cw-pulse 1.3s ease-out .5s 2}
@media(max-width:900px){.cw-grid{grid-template-columns:72px repeat(var(--cols,7),minmax(0,1fr))}.cw-lane{padding:8px 5px;font-size:10px}}
@media(max-width:600px){.cw{padding:12px 12px 10px}.cw-bar{gap:8px 10px}.cw-title{order:3;flex-basis:100%}.cw-grid{grid-template-columns:repeat(var(--cols,7),minmax(0,1fr))}.cw-corner,.cw-lane{display:none}.cw-cell{padding:4px 3px}.cw-chip{padding:4px 4px 4px 6px;font-size:10px;border-left-width:2px}.cw-chip-meta{display:none}.cw[data-zoom=day] .cw-grid{grid-template-columns:1fr}.cw[data-zoom=day] .cw-lane{display:flex;padding:6px 10px 2px}.cw[data-zoom=day] .cw-chip{font-size:14px;padding:10px 12px}.cw[data-zoom=day] .cw-chip-meta{display:block}.cw-day{min-height:58px;padding:4px}.cw-day-first{display:none}.cw-nav button,.cw-seg button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.cw-chip,.cw-day,.cw-chip.is-hot{animation:none}.cw-chip,.cw-seg button,.cw-day{transition:none}}
