/* Home-only styles: shared sidebar, header and other pages retain their layout. */
.today-page { background: #f3f5f8; }
.today-page .c-navbar { margin-bottom: 0 !important; min-height: 58px; height: 58px; box-sizing: border-box; }
.today-page .c-navbar .c-toolbar { display: flex; padding: 0; background: transparent; box-shadow: none; }
.today-page .c-toolbar img { width: 36px !important; height: 36px !important; }
.today-page .c-toolbar__title, .today-page .c-toolbar__meta { display: none; }
.today-brand-label { color: #263548; font-size: 17px; font-weight: 700; margin-left: 3px; }
.today-account { margin-left: auto; display: flex; gap: 16px; align-items: center; font-size: 13px; }
.today-account a { color: #445b70; }
.today-page .notification-bell-wrap + .today-account { margin-left: 16px; }
.today-home { --today-ink: #263548; --today-muted: #637487; --today-line: #e2e9ef; --today-blue: #267d96; --today-tint: #edf6f8; --today-radius: 16px; max-width: 1460px; padding: 30px 30px 36px; margin: auto; color: var(--today-ink); font-size: 14px; line-height: 1.65; }
.today-home * { box-sizing: border-box; }
.today-home a { color: inherit; }
.today-home a:hover { color: var(--today-blue); }
.today-home button, .today-home summary { font: inherit; cursor: pointer; }
.today-home button:focus-visible, .today-home a:focus-visible, .today-home summary:focus-visible { outline: 3px solid #65b4e1; outline-offset: 3px; }
.today-home h1, .today-home h2, .today-home h3, .today-home p { margin: 0; }
.today-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.today-title h1 { font-size: 28px; font-weight: 700; letter-spacing: -1px; line-height: 1.4; }
.today-title-description { color: var(--today-muted); font-size: 13px; margin-top: 6px !important; }
.today-title-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; padding-top: 4px; font-size: 12px; color: var(--today-muted); }
.today-muted { font-size: 12px; color: var(--today-muted); }
.today-home .today-link { color: var(--today-blue); font-size: 13px; white-space: nowrap; }
.today-stats { background: #fff; border: 1px solid var(--today-line); border-radius: var(--today-radius); padding: 20px 24px 24px; }
.today-stats-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.today-stats-head h2 { font-size: 14px; font-weight: 700; line-height: 1.5; word-break: keep-all; }
.today-stats-head h2::before { content: ''; display: inline-block; width: 6px; height: 6px; margin: 0 9px 2px 0; border-radius: 50%; background: var(--today-blue); }
.today-stats-toggle { flex-shrink: 0; border: 0; background: transparent; padding: 4px 0; color: var(--today-muted); font-size: 12px !important; }
.today-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.today-stat { min-width: 0; padding: 0 24px; border-left: 1px solid var(--today-line); }
.today-stat:first-child { padding-left: 0; border: 0; }
.today-stat:last-child { padding-right: 0; }
.today-stat h3 { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 400; color: var(--today-muted); }
.today-stat h3 i { color: var(--today-blue); }
.today-stat-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; margin: 7px 0 5px; }
.today-stat-value strong { min-width: 0; font-size: 42px; font-weight: 700; line-height: 1.3; letter-spacing: -1.5px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.today-stat-value > span { color: var(--today-muted); font-size: 13px; }
.today-stat > p { color: var(--today-muted); font-size: 12px; }
.today-stats-detail { border-top: 1px solid var(--today-line); padding-top: 18px; margin-top: 20px; }
.today-stats-detail dl { display: flex; gap: 10px 26px; flex-wrap: wrap; margin: 0; font-size: 12px; }
.today-stats-detail dl div { display: flex; gap: 8px; flex-wrap: wrap; }
.today-stats-detail dt, .today-stats-detail dd { margin: 0; }
.today-stats-detail p { margin-top: 12px; }
.today-notice { display: flex; align-items: center; gap: 12px; padding: 15px 3px 21px; font-size: 12px; }
.today-notice-label { color: var(--today-blue); font-weight: 700; flex-shrink: 0; }
.today-notice-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-notice .today-link { margin-left: auto; font-size: 12px; }
.today-columns { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); gap: 24px; align-items: start; }
.today-left, .today-right { display: grid; gap: 24px; min-width: 0; }
.today-panel { background: #fff; border: 1px solid var(--today-line); border-radius: var(--today-radius); overflow: hidden; min-width: 0; }
.today-panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; padding: 21px 22px 18px; border-bottom: 1px solid var(--today-line); }
.today-panel-head h2 { font-size: 19px; font-weight: 700; letter-spacing: -.6px; line-height: 1.5; }
.today-panel-head > .today-link { padding-top: 3px; font-size: 12px; }
.today-votes .today-panel-head { background: var(--today-tint); }
.today-panel-sub { margin-top: 5px !important; font-size: 12px; color: var(--today-muted); }
.today-vote-card { padding: 21px 22px; border-bottom: 1px solid var(--today-line); }
.today-vote-card:last-child { border-bottom: 0; }
.today-vote-heading { display: flex; gap: 10px; align-items: baseline; }
.today-vote-heading h3 { min-width: 0; font-size: 16px; line-height: 1.65; font-weight: 700; overflow-wrap: anywhere; }
.today-home .today-vote-summary { margin-top: 10px; font-size: 13px; line-height: 1.85; color: var(--today-muted); overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.today-summary-link { display: inline-block; margin-top: 6px; }
.today-vote-results { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; margin-top: 18px; }
.today-result-top { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 6px; align-items: baseline; font-size: 12px; margin-bottom: 7px; }
.today-bar { display: flex; height: 6px; border-radius: 6px; overflow: hidden; background: #e9eef1; }
.today-bar span { display: block; min-width: 0; }
.today-yes { background: #58a684; }
.today-no { background: #d98986; }
.today-abstain { background: #c3ab73; }
.today-absent { background: #aab6c3; }
.today-result-label { display: block; margin-top: 6px; font-size: 12px; color: var(--today-muted); }
.today-vote-actions { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 16px; }
.today-vote-buttons { display: flex; gap: 7px; flex-wrap: wrap; }
.today-vote-buttons button { border: 1px solid #c4d6e3; border-radius: 7px; background: #fff; color: #32617e; min-width: 65px; min-height: 38px; padding: 6px 14px; font-weight: 600; font-size: 13px; }
.today-vote-buttons button:hover { background: var(--today-tint); border-color: #79aecf; }
.today-vote-buttons button[data-vote="Y"] { background: var(--today-blue); border-color: var(--today-blue); color: #fff; }
.today-vote-buttons button:disabled { opacity: .55; cursor: wait; }
.today-vote-status { font-size: 12px; color: var(--today-muted); overflow-wrap: anywhere; }
.today-vote-status[data-state="success"] { color: #27775b; font-weight: 600; }
.today-vote-status[data-state="error"] { color: #ad3737; }
.today-vote-card[data-state="saved"] { background: #fbfdfc; }
.today-vote-refresh { font-size: 12px; color: var(--today-muted); margin-top: 7px; }
.today-vote-refresh button { border: 0; background: none; padding: 2px 5px; color: var(--today-blue); }
.today-more > summary { padding: 12px 22px; font-size: 12px; color: var(--today-blue); }
.today-brief-row { padding: 21px 22px; border-bottom: 1px solid var(--today-line); }
.today-brief-row h3 { font-size: 16px; font-weight: 700; line-height: 1.7; overflow-wrap: anywhere; }
.today-brief-row p { margin-top: 10px; color: var(--today-muted); font-size: 13px; line-height: 1.85; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.today-brief-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: space-between; margin-top: 15px; align-items: baseline; }
.today-tags { min-width: 0; max-width: 100%; color: #607d92; font-size: 12px; overflow-wrap: anywhere; }
.today-right .today-panel-head { padding: 18px 18px 15px; flex-wrap: wrap; }
.today-right .today-panel-head h2 { font-size: 16px; }
.today-community-tabs { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 12px 18px 0; border-bottom: 1px solid var(--today-line); }
.today-community-tabs button { background: none; border: 0; border-bottom: 2px solid transparent; color: var(--today-muted); padding: 0 0 10px; font-size: 12px; }
.today-community-tabs [aria-selected="true"] { color: var(--today-blue); border-bottom-color: var(--today-blue); font-weight: 700; }
.today-board-row { display: block; padding: 15px 18px; border-bottom: 1px solid var(--today-line); }
.today-board-top { display: flex; flex-wrap: wrap; gap: 5px 8px; align-items: baseline; }
.today-board-category { width: 100%; font-size: 11px; color: #5f8098; }
.today-board-title { min-width: 0; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; flex: 1; }
.today-comment-count { font-size: 11px; color: var(--today-blue); flex-shrink: 0; }
.today-board-meta { margin-top: 6px; display: flex; gap: 4px 9px; flex-wrap: wrap; color: var(--today-muted); font-size: 11px; overflow-wrap: anywhere; }
.today-comments-head { padding: 16px 18px 6px; display: flex; flex-wrap: wrap; gap: 4px 8px; justify-content: space-between; align-items: center; }
.today-comments-head h3 { font-size: 13px; font-weight: 700; }
.today-comments-head .today-muted { font-size: 11px; }
.today-comment-row { display: block; padding: 12px 18px; }
.today-comment-row + .today-comment-row { border-top: 1px solid var(--today-line); }
.today-comment-text { color: #476074; font-size: 12px; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.today-comment-source { display: block; font-size: 11px; color: var(--today-muted); margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-community-foot { padding: 13px 18px; margin-top: 7px; border-top: 1px solid var(--today-line); display: flex; flex-wrap: wrap; gap: 7px 12px; justify-content: space-between; }
.today-community-foot .today-muted { font-size: 11px; }
.today-schedule { background: var(--today-tint); padding-bottom: 8px; }
.today-schedule .today-panel-head { border-bottom: 0; padding-bottom: 8px; }
.today-schedule .today-panel-head > i { color: var(--today-blue); padding-top: 4px; }
.today-schedule-date { display: flex; align-items: center; gap: 12px; padding: 6px 18px 8px; }
.today-schedule-date > strong { color: var(--today-blue); font-size: 44px; font-weight: 700; letter-spacing: -1.7px; line-height: 1.2; }
.today-schedule-date > span { color: var(--today-muted); font-size: 12px; }
.today-schedule-row { display: flex; flex-direction: column; gap: 5px; margin: 16px 18px; padding: 0 0 0 12px; border-left: 2px solid #92bdc9; }
.today-schedule-row time { color: var(--today-muted); font-size: 11px; }
.today-schedule-row b { font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.today-home .today-schedule-action { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 0 7px; margin: 4px 18px 0; border-top: 1px solid #d8e6eb; font-size: 12px; }
.today-member-panel .today-panel-head .today-muted { font-size: 11px; }
.today-member { display: flex; gap: 12px; align-items: center; padding: 15px 18px; }
.today-member-photo { width: 64px; height: 78px; object-fit: cover; object-position: top; border-radius: 8px; flex-shrink: 0; background: #e9eef3; }
.today-member-placeholder { display: flex; align-items: center; justify-content: center; color: #9bafc0; font-size: 36px; }
.today-member-info { min-width: 0; }
.today-member-name { display: block; font-size: 16px; font-weight: 700; line-height: 1.5; margin-bottom: 5px; overflow-wrap: anywhere; }
.today-member-party { font-size: 12px; color: var(--today-muted); overflow-wrap: anywhere; }
.today-home .today-member-action { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--today-line); color: var(--today-blue); font-size: 12px; }
.today-ranking { list-style: none; margin: 0; padding: 0 18px; }
.today-ranking li + li { border-top: 1px solid var(--today-line); }
.today-ranking a { display: flex; gap: 12px; align-items: center; padding: 14px 0; }
.today-rank { font-size: 13px; color: var(--today-muted); min-width: 14px; }
.today-ranked-person { min-width: 0; }
.today-ranking b { font-size: 13px; font-weight: 600; }
.today-ranked-person .today-muted { display: block; font-size: 11px; margin-top: 3px; overflow-wrap: anywhere; }
.today-rank-arrow { margin-left: auto; color: var(--today-muted); }
.today-empty { padding: 24px 18px; font-size: 13px; color: var(--today-muted); }
.today-guide { margin-top: 28px; padding: 28px; border: 1px solid var(--today-line); border-radius: var(--today-radius); background: #fff; }
.today-guide-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.today-guide-label { color: var(--today-blue); font-size: 12px; font-weight: 600; margin-bottom: 7px !important; }
.today-guide h2 { font-size: 24px; line-height: 1.5; font-weight: 700; letter-spacing: -.8px; }
.today-guide-description { color: var(--today-muted); font-size: 13px; margin-top: 8px !important; }
.today-home .today-guide-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 15px; border: 1px solid #d5e2e9; border-radius: 8px; color: var(--today-blue); font-size: 13px; white-space: nowrap; }
.today-guide-button:hover { background: var(--today-tint); }
.today-guide-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 25px; }
.today-home .today-guide-step { min-width: 0; padding: 18px; border: 1px solid transparent; border-radius: 11px; background: #f3f5f8; }
.today-home .today-guide-step:first-child { background: var(--today-tint); }
.today-home .today-guide-step:hover { border-color: #8fbdcb; color: var(--today-ink); }
.today-guide-step-number { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 13px; font-size: 12px; color: var(--today-blue); }
.today-guide-step-number i { font-size: 17px; }
.today-guide-step h3 { font-size: 15px; font-weight: 600; line-height: 1.6; margin-bottom: 7px; }
.today-guide-step p { font-size: 12px; color: var(--today-muted); line-height: 1.8; }
.today-guide-step-link { display: block; margin-top: 14px; font-size: 12px; color: var(--today-blue); }
#today-briefing-title { scroll-margin-top: 20px; }
.today-home [hidden] { display: none !important; }
@media (max-width: 1199px) {
    .today-home { padding: 25px 22px 30px; }
    .today-columns { grid-template-columns: minmax(0, 7fr) minmax(230px, 3fr); gap: 20px; }
    .today-left, .today-right { gap: 20px; }
    .today-stat { padding-left: 18px; padding-right: 18px; }
    .today-panel-head, .today-vote-card, .today-brief-row { padding-left: 20px; padding-right: 20px; }
    .today-guide { padding: 25px; }
}
@media (max-width: 992px) {
    .today-page .c-sidebar-toggle { margin-left: 0; }
}
@media (max-width: 767px) {
    .today-page .c-navbar { min-height: 54px; height: 54px; padding: 7px 12px !important; }
    .today-page .c-toolbar img { width: 32px !important; height: 32px !important; }
    .today-brand-label { display: none; }
    .today-account { gap: 10px; font-size: 12px; }
    .today-home { padding: 22px 16px 28px; }
    .today-title { gap: 10px; margin-bottom: 20px; }
    .today-title h1 { font-size: 26px; }
    .today-title-description { font-size: 12px; }
    .today-title-meta { font-size: 11px; gap: 5px; }
    .today-title-meta > .today-link { font-size: 11px; }
    .today-stats { padding: 17px 16px 20px; }
    .today-stats-head { margin-bottom: 16px; gap: 8px; }
    .today-stats-head h2 { font-size: 13px; }
    .today-stats-toggle { font-size: 11px !important; }
    .today-stat { padding-left: 14px; padding-right: 14px; }
    .today-stat h3 { font-size: 12px; }
    .today-stat-value strong { font-size: 34px; }
    .today-stat > p { font-size: 11px; }
    .today-columns { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .today-left, .today-right { gap: 20px; }
    .today-panel-head { padding: 18px; }
    .today-panel-head h2 { font-size: 18px; }
    .today-vote-card, .today-brief-row { padding: 19px 18px; }
    .today-vote-results { gap: 14px; }
    .today-result-label { font-size: 11px; }
    .today-vote-heading h3 { font-size: 15px; }
    .today-vote-actions { align-items: flex-start; }
    .today-vote-buttons button { min-height: 44px; }
    .today-community-tabs button { min-height: 38px; }
    .today-schedule-row { margin-top: 14px; margin-bottom: 14px; }
    .today-guide { margin-top: 22px; padding: 23px 20px; }
    .today-guide-head { flex-wrap: wrap; gap: 15px; }
    .today-guide h2 { font-size: 22px; }
    .today-guide-steps { gap: 10px; }
    .today-home .today-guide-step { padding: 14px; }
    .today-guide-step h3 { font-size: 14px; }
}
@media (max-width: 480px) {
    .today-home { padding-left: 12px; padding-right: 12px; }
    .today-title { flex-wrap: wrap; }
    .today-title-meta { flex-direction: row; align-items: center; justify-content: space-between; gap: 14px; width: 100%; }
    .today-stats { padding-left: 13px; padding-right: 13px; }
    .today-stats-head { align-items: flex-start; }
    .today-stats-head h2 { line-height: 1.7; }
    .today-stats-head h2::before { margin-right: 6px; }
    .today-stat { padding-left: 9px; padding-right: 9px; }
    .today-stat h3 { font-size: 11px; }
    .today-stat h3 i { display: none; }
    .today-stat-value { gap: 3px; }
    .today-stat-value strong { font-size: 29px; letter-spacing: -1px; }
    .today-stat-value > span { font-size: 11px; }
    .today-guide-steps { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 20px; }
    .today-guide-step-number { margin-bottom: 9px; }
    .today-guide-step p br { display: none; }
    .today-guide-step-link { margin-top: 10px; }
    .today-community-foot { gap: 8px; }
    .today-notice { gap: 8px; }
}
@media (max-width: 359px) {
    .today-stat { padding-left: 6px; padding-right: 6px; }
    .today-stat-value strong { font-size: 25px; }
    .today-panel-head { flex-wrap: wrap; }
    .today-vote-card, .today-brief-row { padding-left: 15px; padding-right: 15px; }
    .today-guide { padding-left: 17px; padding-right: 17px; }
}
@media (prefers-reduced-motion: reduce) { .today-home * { scroll-behavior: auto; transition: none; } }
