/* Today borrows two proven grammars: the calendar's compact rows and week strip,
   and the community desk's source identity. Loaded only by the front page. */

/* The next seven days, always visible here (the calendar hides it beside its month picker). */
.today-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:2px 0 6px;border-bottom:1px solid var(--line);position:static;background:none}
.today-strip a{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:58px;padding:7px 0 6px;border-bottom:3px solid transparent;color:var(--navy)}
.today-strip a:hover{background:#eceae2;text-decoration:none}
.today-strip span{font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.today-strip b{font:600 22px/1.05 var(--display)}
.today-strip small{font:10px var(--mono);color:var(--ink2)}
.today-strip a.is-today{border-bottom-color:var(--red)}
.today-strip a.is-today b,.today-strip a.is-today span{color:var(--red)}

/* Today's rows: the calendar row with the source tucked under the title, so it fits the column. */
.today-board .cal-day{margin-top:4px}
.today-board .cal-row{grid-template-columns:72px minmax(0,1fr) 40px;gap:6px 12px}
.today-board .cal-row>.source{grid-column:2;grid-row:2}
.today-board .cal-row>.save{grid-column:3;grid-row:1}
.today-board .cal-row .source-copy{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}
.today-board .cal-row .source-copy small{margin-top:0}
.today-board .cal-none{padding:14px 0 4px;font-size:15px}
.today-board .cal-none a{text-decoration:underline;text-underline-offset:3px}
.today-more>summary{cursor:pointer;padding:13px 0;font-weight:600;font-size:15px}
.today-more>summary:hover{text-decoration:underline;text-underline-offset:3px}
.today-board .cal-ongoing{margin:12px 0 0}
.today-ongoing-note{margin:10px 16px 0;font-size:13px;line-height:1.4;color:var(--ink2)}

/* New around town: one desk tile per source, newest item first. */
.desk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:4px}
.desk-tile{display:flex;flex-direction:column;color:var(--navy);text-decoration:none}
.desk-tile:hover{text-decoration:none;border-color:var(--desk-line)}
.desk-tile-head{display:flex;align-items:center;gap:11px;padding:13px 14px;background:var(--desk-tint);border-top:4px solid var(--desk-accent);border-bottom:1px solid var(--desk-line)}
.desk-tile .desk-mark{width:42px;height:42px;padding:5px;flex:0 0 auto;border-radius:7px;display:grid;place-items:center}
.desk-tile.desk-source-reporting .desk-mark{width:74px;height:34px}
.desk-tile .desk-mark>span{font:600 13px var(--display);color:var(--desk-ink)}
.desk-tile-head>span:last-child{min-width:0}
.desk-tile .desk-publisher{display:block;font:500 10px/1.35 var(--body);color:var(--desk-ink)}
.desk-tile-head strong{display:block;font:600 20px/1.1 var(--display);color:var(--desk-ink);margin-top:2px}
.desk-tile-body{display:block;padding:12px 14px 15px}
.desk-tile-date{display:block;font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--desk-accent);margin-bottom:4px}
.desk-tile-title{display:block;font-weight:600;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.desk-tile .desk-checked{margin-top:6px}
.desk-tile:hover .desk-tile-title{text-decoration:underline;text-underline-offset:3px;color:var(--desk-accent)}

@media(max-width:760px){
.today-board .cal-row{grid-template-columns:64px minmax(0,1fr) 44px;gap:6px 10px}
.today-board .cal-row>.save{width:44px;min-width:44px;height:44px;margin:-8px -10px 0 0}
.today-strip b{font-size:20px}
}
@media(max-width:560px){.desk-tiles{grid-template-columns:1fr;gap:10px}.desk-tile-head{padding:11px 12px}.desk-tile-body{padding:10px 12px 13px}}
@media print{.today-strip,.desk-tiles{display:none}}

/* Compact forecast in normal document flow: no inner scrolling or pinned pane. */
.compact-weather{position:static;margin-bottom:24px;background:#f0f3ed;border:1px solid #d9e0d6;box-shadow:0 12px 0 -11px var(--panel-line)}
.compact-weather .wx{padding:9px 12px 10px;overflow:visible}
.compact-weather .wx-head{margin-bottom:8px}.compact-weather .wx-body{display:block}
.compact-weather .wx-days,.compact-weather .wx-days.wx-3{gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.compact-weather .wx-days.wx-1{grid-template-columns:1fr}
.compact-weather .wx-days.wx-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.compact-weather .wx-day,.compact-weather .wx-days.wx-3 .wx-day{grid-template-columns:auto 1fr;gap:3px 10px}
.compact-weather .wx-day h3{margin:0;font-size:10px}
.compact-weather .wx-icon{width:36px;height:36px;flex-basis:36px}
.compact-weather .wx-reading{gap:6px}.compact-weather .wx-temp{font-size:32px}
.compact-weather .wx-temp span,.compact-weather .wx-temp span:first-child{font-size:17px;margin-left:4px}
.compact-weather .wx-text{font-size:13px}.compact-weather .wx-meta{font-size:11px;margin-top:2px}
.compact-weather .wx-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:8px;font-size:11px;white-space:normal}
.weather-hide,.compact-weather[open] .weather-show{display:none}.compact-weather[open] .weather-hide{display:inline}

/* One horizontal anatomy regardless of story length, photo, or publisher. */
.headlines-grid{align-items:stretch}
.headlines-grid>.brief-card,.headlines-grid>.brief-card:not(.brief-lead),.headlines-grid>.brief-card.brief-brief:has(.brief-fallback){display:flex;flex-direction:row;align-items:stretch;grid-row:auto}
.headlines-grid>.brief-card .brief-image,.headlines-grid>.brief-card.brief-brief .brief-fallback{width:72px!important;height:auto!important;min-height:0!important;flex:0 0 72px;border-right:1px solid var(--panel-line);border-bottom:0}
.headlines-grid>.brief-card .brief-image:not(.brief-fallback){position:relative;background:var(--tint)}
.headlines-grid>.brief-card .brief-image:not(.brief-fallback) img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover!important}
.headlines-grid>.brief-card .brief-card-copy{flex:1;min-width:0;padding:11px 12px;display:flex;flex-direction:column}
.headlines-grid>.brief-card h3,.headlines-grid>.brief-card:not(.brief-lead) h3{font-size:21px;line-height:1.15;margin:6px 0}
.headlines-grid .brief-summary{font-size:13px;line-height:1.4;margin:0 0 7px}
.headlines-grid .brief-dateblock b,.headlines-grid>.brief-card.brief-brief .brief-dateblock b{font-size:34px}
.headlines-grid .bd-dow,.headlines-grid .bd-mon{font-size:10px}
.headlines-grid .brief-dateblock .bd-mark{position:static;margin-top:8px;width:28px;height:28px;padding:3px}
.headlines-grid .brief-markblock .bm-tile,.headlines-grid>.brief-card.brief-brief .brief-markblock .bm-tile{width:46px;height:46px;padding:6px;border-radius:9px}
.headlines-grid .bm-name{display:none}.headlines-grid .brief-markblock{flex-direction:column}
.headlines-grid .source{margin-top:auto;padding-top:7px;min-height:0}
.headlines-grid .brief-actions{margin-top:7px;padding-top:5px}

/* A real weekend matrix: each day owns its picks and an honest empty state. */
.weekend-section{border:1px solid #cddbd4;border-top:4px solid #466f69;border-radius:13px;padding:18px;background:#eaf0e9}
.weekend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.weekend-day{background:var(--surface);border:1px solid var(--panel-line);border-radius:9px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.weekend-day>header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 14px;background:#dae6df;color:#284f48}
.weekend-day>header h3{font:600 26px/1.1 var(--display);margin:0}.weekend-day>header span{font:11px var(--mono)}
.weekend-day .plan-row,.weekend-day .plan-row:last-child{display:block;border:0;border-radius:0;background:none;padding:12px 14px;box-shadow:none}
.weekend-day .plan-row+.plan-row{border-top:1px solid var(--panel-line)}
.weekend-day .plan-copy h3{font-size:22px;line-height:1.15}.weekend-day .plan-context{font-size:13px}
.weekend-day .plan-footer{flex-wrap:wrap}.weekend-empty{font-size:14px;color:var(--ink2);padding:14px;margin:0;line-height:1.5}
.weekend-day-link{display:block;margin-top:auto;padding:11px 14px;border-top:1px solid var(--panel-line);font-size:12px;text-decoration:underline;text-underline-offset:3px}

/* Enrich source identity, not unverified imagery or promotional copy. */
.desk-tile-head{background:linear-gradient(120deg,var(--desk-tint),var(--surface));min-height:82px}
.desk-tile .desk-mark{box-shadow:0 2px 7px #12334112;transform:rotate(-3deg)}
.desk-tile-body{display:flex;flex:1;flex-direction:column}.desk-tile-link{display:flex;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px;color:var(--desk-ink);font:500 11px var(--mono)}
.desk-tile:focus-visible{outline:3px solid var(--desk-accent);outline-offset:3px}

@media(max-width:980px){.compact-weather .wx-day,.compact-weather .wx-days.wx-3 .wx-day{grid-template-columns:1fr}.weekend-grid{gap:8px}.weekend-section{padding:13px}.weekend-day .plan-row{padding:10px}.weekend-day>header{padding:10px}.weekend-day>header h3{font-size:23px}}
@media(max-width:760px){
.compact-weather .wx-head .eyebrow{display:none}.compact-weather .wx-head{margin-bottom:6px}
.compact-weather .wx-days,.compact-weather .wx-days.wx-3{gap:10px}
.compact-weather .wx-temp{font-size:27px}.compact-weather .wx-icon{width:28px;height:28px;flex-basis:28px}
.compact-weather .wx-temp span{display:block;margin:2px 0 0;font-size:14px}.compact-weather .wx-links a{padding:5px 0}
.headlines-grid{grid-template-columns:1fr}.headlines-grid>.brief-card .brief-image,.headlines-grid>.brief-card.brief-brief .brief-fallback{width:64px!important;flex-basis:64px}
.weekend-grid{grid-template-columns:1fr}.weekend-section>.section-heading{flex-wrap:wrap}.weekend-day .plan-row{padding:12px 14px}
}
@media print{.weekend-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weekend-section{padding:8px;background:white}.weekend-day-link{display:none}.headlines-grid>.brief-card .brief-image{display:none!important}}
@media(max-width:420px){
/* Narrow phones use three short rows instead of tall, word-wrapped columns. */
.compact-weather .wx-days,.compact-weather .wx-days.wx-2,.compact-weather .wx-days.wx-3{grid-template-columns:1fr;gap:7px}
.compact-weather .wx-day,.compact-weather .wx-days.wx-3 .wx-day{grid-template-columns:48px 88px minmax(0,1fr);gap:5px 10px;align-items:start}
.compact-weather .wx-day h3{grid-column:auto;padding-top:5px;font-size:9px;letter-spacing:.04em}
.compact-weather .wx-reading{flex-direction:row;align-items:center;gap:3px}
.compact-weather .wx-temp{font-size:24px;white-space:nowrap}.compact-weather .wx-temp span{display:inline;font-size:12px;margin-left:2px}
.compact-weather .wx-icon{width:22px;height:22px;flex-basis:22px}
.compact-weather .wx-text,.compact-weather .wx-days.wx-3 .wx-text{font-size:12px}
.compact-weather .wx-meta{font-size:10px}.compact-weather .wx-days.wx-3 .wx-temp{font-size:24px;white-space:normal}
.compact-weather .wx-days.wx-3 .wx-temp span{display:inline;font-size:12px;margin-left:2px}
.compact-weather .wx-days.wx-3 .wx-icon{width:22px;height:22px;flex-basis:22px}
.compact-weather>summary>span:nth-child(2){min-width:0;flex:1}.compact-weather>summary{gap:4px 8px}.compact-weather .weather-more{font-size:10px}
}
@media(max-width:420px){.compact-weather .wx-source{font-size:9px;letter-spacing:0}.compact-weather .wx-links{gap:0 12px;font-size:10px}.compact-weather .wx-links a{padding:3px 0}}
