/* Official Maryland palette; neutrals are used for readable secondary text. */
:root{--red:#e21833;--gold:#ffd200;--black:#000;--white:#fff;--line:#e6e6e6;--muted:#454545}
*{box-sizing:border-box}body{margin:0;background:#f0f0f0;color:var(--black);font:16px/1.5 Arial,Helvetica,sans-serif;border-top:5px solid var(--red)}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}header,main,footer{max-width:1000px;margin:auto;padding-left:32px;padding-right:32px}header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{font-size:25px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand span{color:var(--red)}.campus{font-size:10px;letter-spacing:1px;font-weight:700}.intro{padding:42px 0 26px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.5px;margin:0 0 10px;border-left:4px solid var(--gold);padding-left:10px}h1{font-size:clamp(30px,4vw,42px);line-height:1.15;letter-spacing:-1.4px;margin:0 0 12px}.intro>p:last-child{margin:0;color:var(--muted)}.toolbar{border-bottom:1px solid var(--black)}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--line)}.tabs a{padding:12px 0;font-size:14px;font-weight:bold;border-bottom:3px solid transparent}.tabs .active{border-color:var(--red)}.filters{display:flex;flex-wrap:wrap;gap:10px;padding:20px 0}.search{flex:1;min-width:180px}input[type=search]{width:100%;padding:11px 12px;border:1px solid #aaa;border-radius:3px;font:inherit;font-size:14px;background:white}button,.button{border:0;border-radius:3px;background:var(--red);color:white;padding:11px 22px;font:700 14px/1.5 Arial;cursor:pointer}button:hover,.button:hover{background:black}.check{width:100%;font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center}.check input{accent-color:var(--red);width:15px;height:15px;margin-left:0}.feed-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:21px 0 14px}.feed-heading h2{margin:0;font-size:15px}.feed-heading>span{font-size:11px;color:var(--muted)}.grid{display:grid;gap:14px}.card{display:grid;grid-template-columns:65px minmax(0,1fr);gap:24px;border:1px solid var(--line);border-radius:4px;padding:24px;background:white}.date-block{position:relative;background:#f5f5f5;border:1px solid #dedede;border-top:0;border-radius:0;text-align:center;align-self:start;padding:8px 0 4px}.date-block::before{content:"";position:absolute;top:0;left:-1px;right:-1px;height:4px;background:var(--red)}.date-block span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1px}.date-block strong{display:block;font-size:34px;line-height:1.1;letter-spacing:-1px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.time{font-size:12px;font-weight:700;margin:0}.tag{font-size:10px;background:var(--gold);padding:3px 7px;font-weight:bold;white-space:nowrap}.tag.muted{background:white;border:1px solid #aaa;font-weight:normal}.card h3{font-size:21px;line-height:1.25;letter-spacing:-.4px;margin:10px 0 12px}.location{display:flex;align-items:flex-start;gap:8px;font-size:14px;font-weight:700}.location svg{width:17px;height:19px;flex-shrink:0;margin-top:1px}.location a{text-decoration:underline;text-decoration-color:#ccc;text-underline-offset:3px;overflow-wrap:anywhere}.location a:hover{text-decoration-color:var(--red)}.evidence{color:var(--muted);font-size:13px;margin:12px 0 18px;max-width:650px;overflow-wrap:anywhere}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:12px;font-size:11px}.card-bottom>span{color:var(--muted)}.card-bottom>a{font-weight:700;white-space:nowrap}.fine{font-size:12px;color:var(--muted);margin:22px 0 45px;max-width:700px}footer{display:flex;justify-content:space-between;gap:15px;border-top:3px solid black;padding-top:20px;padding-bottom:30px;font-size:11px}footer>span{color:var(--muted)}.empty{padding:40px 15px;text-align:center;background:#fafafa}.empty h2{font-size:22px}.empty p{color:var(--muted)}.empty a,.back{font-weight:bold;text-decoration:underline;text-underline-offset:4px}.back{display:inline-block;margin:30px 0;font-size:13px}.detail{max-width:800px;margin-bottom:55px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.facts span{font-size:11px;letter-spacing:1px;font-weight:bold}.facts p{margin-top:6px}.notice{border-left:4px solid var(--gold);background:#fafafa;padding:15px 18px;font-size:14px}.notice strong{display:block}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin:25px 0 30px}.secondary{font-weight:bold;text-decoration:underline}.description{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}.detail h2{font-size:21px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:focus-visible{outline:3px solid black;outline-offset:4px}@media(max-width:620px){header,main,footer{padding-left:18px;padding-right:18px}header{height:70px}.campus{display:none}.intro{padding-top:28px}.card{padding:17px 14px;grid-template-columns:43px minmax(0,1fr);gap:14px}.date-block strong{font-size:28px}.card-top{align-items:flex-start;flex-direction:column;gap:6px}.card h3{font-size:19px}.location{font-size:13px}.card-bottom{align-items:flex-start;flex-direction:column;gap:10px}.feed-heading>span{font-size:10px}.facts{grid-template-columns:1fr}.brand{font-size:23px}footer{flex-direction:column}.tabs{gap:24px}}

.attendance{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.attendance-label{font-size:11px;line-height:1.4;padding:4px 8px;border:1px solid #d5d5d5;border-radius:3px;color:#454545;background:#f7f7f7}.attendance-label.specified{border-color:#000;color:#000;background:#fff;border-left:3px solid #ffd200}.attendance-note{font-size:12px;color:#454545}
.date-note{font-size:12px;color:#454545;margin:15px 0 0}.legal{line-height:1.7}.legal h2{margin-top:28px}.legal p{max-width:720px}footer nav a{text-decoration:underline;text-underline-offset:3px}
.sync-warning{font-size:13px;padding:10px 12px;border-left:3px solid #ffd200;background:#fff;margin:0 0 16px}

/* Equal-width status and menu labels; long menus wrap without truncation. */
.food-summary{display:flex;flex-direction:column;align-items:stretch;text-align:center;width:140px;max-width:100%;flex-shrink:0;gap:5px}
.food-summary .tag,.food-names{width:100%;min-height:24px;padding:4px 7px;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1.4;white-space:normal;border-radius:3px;overflow-wrap:anywhere}
.food-summary .tag{border:1px solid transparent}
.food-summary .tag.muted{border-color:#aaa}
.food-names{border:1px solid var(--red);color:#454545;background:#fff}

/* Two shared rows: time/status, then title/menu. */
.card-heading{display:grid;grid-template-columns:minmax(0,1fr) fit-content(42%);gap:7px 20px;align-items:start;margin-bottom:12px}
.card-heading .time{grid-column:1;grid-row:1;min-height:24px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.card-heading>.tag{grid-column:2;grid-row:1}
.card-heading h3{grid-column:1;grid-row:2;margin:0;min-width:0;overflow-wrap:anywhere}
.card-heading>.food-names{grid-column:2;grid-row:2}
.card-heading>.tag,.card-heading>.food-names{width:100%;min-height:24px;padding:4px 7px;font-size:11px;line-height:1.4;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;border-radius:3px}
@media(max-width:620px){.card-heading{grid-template-columns:minmax(0,1fr) fit-content(42%);column-gap:10px}.card-heading>.tag,.card-heading>.food-names{font-size:10px;padding:4px}.card-heading h3{font-size:18px}}
@media(max-width:380px){.card-heading{grid-template-columns:minmax(0,1fr) fit-content(42%);column-gap:8px}}

/* Softer cards against the existing light-gray page. */
.card{border:1px solid #e2e2e2;border-radius:10px;background:#fff;box-shadow:none}

.footer-shell{color:var(--red)}

.filters button:hover{background:#cc162e}
.filters button:active{background:#bb142a}

.food-filters{padding:18px 0 12px;border-bottom:1px solid var(--line)}
.food-filter-heading{display:flex;align-items:center;gap:14px;margin-bottom:12px;font-size:14px}
.food-filter-row{display:flex;align-items:baseline;gap:14px;margin:10px 0}
.food-filter-label{font-size:11px;color:var(--muted);flex:0 0 100px}
.food-filter-options{display:flex;flex-wrap:wrap;gap:7px}
.food-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid #d4d4d4;border-radius:6px;background:#fff;font-size:12px;line-height:1.5}
.food-chip span{color:var(--muted);font-variant-numeric:tabular-nums}
.food-chip:hover{border-color:var(--red);text-decoration:none;background:#fff5f6}
.food-chip.selected{border-color:var(--red);color:#b51229;background:#fff5f6;font-weight:700}
.food-filter-note{font-size:11px;color:var(--muted);margin:12px 0 0}
@media(max-width:620px){.food-filter-row{flex-direction:column;gap:6px}.food-filter-label{flex:auto}}

.month-view{margin:24px 0}.month-heading{display:flex;align-items:center;justify-content:space-between}.month-heading h2{font-size:22px}.month-heading>a{padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:white}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line);border-radius:8px;overflow:hidden}.weekday{padding:8px;background:#f0f0f0;font-size:12px;text-align:center}.month-day{min-height:105px;background:white;padding:7px}.month-day.outside{background:#f5f5f5}.month-day.chosen{box-shadow:inset 0 0 0 2px var(--red)}.day-number{display:block;font-size:13px;font-weight:bold;color:var(--red)}.day-count{font-size:10px;color:var(--muted)}.day-previews a{display:block;font-size:10px;line-height:1.4;margin-top:6px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:620px){.month-day{min-height:45px;padding:5px}.day-previews{display:none}.tabs{gap:18px}.weekday{font-size:10px}.day-number{font-size:12px}}

.day-previews .calendar-event{display:block;border-left:2px solid var(--red);padding-left:5px;text-decoration:none}.calendar-event span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-location{font-weight:700}.calendar-food{color:var(--muted);margin-top:2px}.calendar-event:hover .calendar-location{text-decoration:underline}

.live-badge{display:inline-block;background:#fff1f3;color:#b51229;border:1px solid #e21833;padding:2px 6px;font-size:10px;line-height:1.4;border-radius:3px}.card-heading>.food-names{overflow-wrap:anywhere}

.filter-checks{flex:0 0 100%;display:flex;flex-wrap:wrap;gap:10px 22px}.filter-checks .check{width:auto;margin:0}

.ended-badge{background:#f2f2f2;color:#555;border-color:#aaa}
/* Preview: selected header and search updates only. */
body{border-top:0}header{height:76px;border-bottom:1px solid #dedede}.brand{font-size:29px;color:#000}.brand span{color:#e21833}.campus{color:#555}
.intro{padding:30px 0 26px;margin:0}.intro h1{font-size:36px;letter-spacing:-1.2px;margin-bottom:9px}.intro>p:last-child{font-size:15px;color:#555}
.toolbar{display:flex;flex-direction:column;align-items:stretch;gap:17px;border-bottom:1px solid #dedede;padding-bottom:18px}
.tabs{display:inline-flex;align-self:flex-start;align-items:center;gap:4px;padding:4px;margin:0;border:1px solid #e0e0e0;border-radius:999px;background:#eaeaea}
.tabs a{display:block;padding:9px 19px;border:0;border-radius:999px;background:transparent;color:#5a5a5a;font-size:13px;line-height:1.5;text-decoration:none;transition:background-color .15s ease,box-shadow .15s ease}
.tabs a:hover{background:#f7f7f7;color:#5a5a5a;text-decoration:none}.tabs a.active,.tabs a.active:hover{background:#fff;color:#c81936;border:0;border-radius:999px;box-shadow:0 1px 3px #00000012}
.toolbar .filters{display:flex;flex-wrap:wrap;gap:8px;width:100%;min-width:0;margin:0;padding:0}.toolbar .search{min-width:0;flex:1}.toolbar input[type=search]{border:1px solid #d8ceca;border-radius:999px;padding:11px 18px}.toolbar input[type=search]:focus{outline:none;border-color:#e21833;box-shadow:0 0 0 2px rgba(226,24,51,.12)}
.toolbar .filters button{border-radius:999px;padding:10px 24px;background:#e21833;transition:background-color .15s ease}.toolbar .filters button:hover{background:#cc162e}.toolbar .filters button:active{background:#b91429}.filter-checks{margin-top:3px}
@media(max-width:760px){header{height:63px}.intro{padding:25px 0 22px}.intro h1{font-size:30px}.intro>p:last-child{font-size:13px}.toolbar{gap:16px}.tabs{align-self:stretch;justify-content:space-between;gap:2px}.tabs a{flex:1;text-align:center;padding:9px 8px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.tabs a,.toolbar .filters button{transition:none}}
/* Restore the full-width UMD-red top bar. */
body{border-top:5px solid #e21833}

/* Full-width event cards. */
.grid{grid-template-columns:minmax(0,1fr);gap:22px}
.card.sketch-card{display:flex;flex-direction:column;gap:0;padding:0;border:1px solid #d5d5d5;border-top:4px solid var(--red);border-radius:3px;overflow:hidden;background:#fff}
.sketch-date{display:flex;justify-content:space-between;align-items:center;padding:9px 26px;border-bottom:1px solid #ddd;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.7px;color:#666}
.sketch-date>span:first-child{color:var(--red)}.sketch-date strong{font-size:22px;margin-left:5px;letter-spacing:0}
.sketch-body{padding:20px 26px 24px;display:flex;flex-direction:column;gap:16px;min-height:0}
.sketch-info .time{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#555;font-size:13px}
.sketch-card h3{font-size:24px;margin:12px 0 10px;line-height:1.3;letter-spacing:-.5px}
.sketch-card .location{font-size:14px;font-weight:500;color:#555}
.sketch-card .attendance{margin-top:14px;margin-bottom:0}
.sketch-food{margin-top:auto}.sketch-labels{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.sketch-labels .tag,.sketch-labels .food-names{width:auto;min-height:0;display:inline-block;font-size:12px;line-height:1.4;padding:5px 10px;border-radius:3px}
.sketch-labels .tag{background:#fff5ce;border:1px solid #d5ad27;color:#715b0b}
.sketch-labels .tag.muted{background:#f6f6f6;border-color:#aaa;color:#555}
.sketch-labels .food-names{background:#f1f7f0;border:1px solid #82a47a;color:#355d30}
.sketch-card .evidence{border-left:3px solid var(--red);padding-left:13px;margin:14px 0 0;color:#555;font-size:14px;max-width:760px}
.sketch-card .card-bottom{padding:17px 26px;border-top:1px solid #ddd;font-size:12px;gap:16px}
@media(max-width:620px){.sketch-date{padding:8px 17px}.sketch-body{padding:17px;gap:16px;min-height:0}.sketch-card h3{font-size:20px}.sketch-card .card-bottom{padding:15px 17px;align-items:flex-start}.sketch-card .card-bottom>span{min-width:0}.sketch-card .card-bottom>a{flex-shrink:0}.sketch-labels .food-names{max-width:100%}}

.sketch-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:12px 0 10px}.sketch-title-row h3{margin:0;min-width:0;flex:1}.sketch-rsvp{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:0 0 auto;max-width:35%;padding-top:3px}.sketch-rsvp .attendance-label{font-size:11px;text-align:right;white-space:normal}@media(max-width:620px){.sketch-title-row{gap:12px}.sketch-rsvp{max-width:38%}.sketch-rsvp .attendance-label{font-size:10px}}

.sketch-title-location{flex:1;min-width:0}.sketch-title-location .location{margin-top:10px}.sketch-title-location h3{margin:0}

/* Time status badges in preview cards. */
.sketch-info .time .live-badge{color:#e21833;border-color:#e21833;background:#fff1f3;white-space:nowrap}
.sketch-info .time .ended-badge{color:#555;border-color:#aaa;background:#f2f2f2}

/* Keep stacked RSVP labels equal-width, with room to wrap on mobile. */
.sketch-rsvp{align-items:stretch}.sketch-rsvp .attendance-label{width:100%;box-sizing:border-box;text-align:center;overflow-wrap:anywhere}

.sketch-rsvp{display:grid;grid-auto-rows:1fr}.sketch-rsvp .attendance-label{display:flex;align-items:center;justify-content:center;height:100%}
