/* Sports Desk: AP-style black, white and red theme. Accent: #FF322E. */
:root{--brand-black:#000000;--ink:#202020;--muted:#626262;--line:#e0e0e0;--paper:#f5f5f5;--brand-red:#ff322e;--green:#333333;--amber:#555555;--link:#a11b18;--white:#fff;font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-size:14px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper)}
button,input,select,textarea{font:inherit}
button,.button,summary.button{border:1px solid #d0d0d0;background:#fff;border-radius:7px;padding:10px 15px;color:var(--ink);cursor:pointer;font-weight:600;text-decoration:none}
button:hover,.button:hover{background:#f0f0f0}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ff322e;outline-offset:2px}
.primary{background:var(--brand-black);color:white;border-color:var(--brand-black);box-shadow:inset 0 -3px 0 var(--brand-red)}
.primary:hover{background:#242424}
.muted{color:var(--muted);line-height:1.6}
.small{font-size:12px}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;margin:0 0 14px}
h1,h2,h3,p{margin-top:0}
h1{font-size:39px;letter-spacing:-1.5px;line-height:1.1;margin-bottom:12px}
h2{font-size:23px;letter-spacing:-.5px}
h3{font-size:16px}
label{display:block;font-size:11px;color:#555555;font-weight:700;margin-bottom:7px}
input,select,textarea{width:100%;border:1px solid #d6d6d6;background:#fff;color:var(--ink);padding:10px 11px;border-radius:6px;min-height:39px}
textarea{resize:vertical}
.ap-logo{display:block;width:44px;height:52px;object-fit:contain;background:#ffffff;flex-shrink:0}
.sidebar{width:218px;position:fixed;inset:0 auto 0 0;background:var(--brand-black);color:white;padding:30px 20px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:1px}
.brand small{display:block;color:#b5b5b5;font-size:8px;letter-spacing:2px;margin-top:6px}
.sidebar-section{font-size:9px;letter-spacing:1.8px;color:#b5b5b5;margin:50px 10px 15px}
.nav-item{border:0;background:none;color:#cccccc;display:flex;align-items:center;gap:13px;margin-bottom:6px;padding:13px 12px;text-align:left;font-size:15px;font-weight:400}
.nav-item span{font-size:12px}
.nav-item.active,.nav-item:hover{background:#242424;color:white}
.nav-item.active{border-left:3px solid var(--brand-red);padding-left:9px}
.sidebar-note{margin-top:auto;color:#dedede;font-size:11px;line-height:1.6;border-top:1px solid #3d3d3d;padding-top:24px}
.sidebar-note p{font-size:11px;color:#b5b5b5;margin:9px 0 0 12px}
.live-dot{display:inline-block;width:5px;height:5px;background:var(--brand-red);border-radius:50%;margin-right:6px}
.logout button{color:#cccccc;background:none;border:0;font-size:12px;padding:28px 0 0}
.workspace{margin-left:218px;padding:0 40px 28px;max-width:2000px}
.topline{height:66px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:1px;color:var(--muted)}
.topline strong{font-weight:600;color:#303030}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:36px 0 26px}
.page-heading h1 span{color:#ff322e}
.page-heading .muted{font-size:13px;margin-bottom:0}
.heading-actions{display:flex;gap:10px;align-items:center}
.metrics{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:25px;overflow:hidden}
.metrics>div{padding:21px 24px;border-right:1px solid var(--line)}
.metrics>div:last-child{border:0}
.metric-caption{display:block;font-size:9px;letter-spacing:1.1px;font-weight:700;color:#606060}
.metrics strong{display:block;font-size:32px;font-weight:500;letter-spacing:-1px;margin:8px 0 7px}
.metrics small{font-size:10px;color:var(--muted)}
.metric-feature{background:#f5f5f5;border-top:3px solid var(--brand-red)}
.metric-feature p{font-size:14px;line-height:1.6;max-width:240px;margin:13px 0 0}
.filter-panel{display:grid;grid-template-columns:1.7fr 1.2fr 1fr 1.15fr 1fr auto;gap:14px;align-items:end;margin:0 0 22px}
.filter-panel input,.filter-panel select{font-size:12px}
.filter-panel label{font-size:10px}
.text-button{background:none;border:0;padding:10px 0;font-size:11px;font-weight:400;color:#555555}
.more-filters{grid-column:1/-1;font-size:11px;color:var(--muted)}
.more-filters summary{cursor:pointer;width:max-content;padding:3px 0}
.more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:15px}
.results{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.results-toolbar{display:flex;align-items:center;gap:20px;padding:14px 19px;border-bottom:1px solid var(--line)}
.view-tabs{display:flex;background:#f0f0f0;border-radius:6px;padding:3px}
.view-tabs button{border:0;background:transparent;padding:7px 13px;font-size:11px;color:var(--muted)}
.view-tabs button.selected{background:#fff;color:var(--ink);box-shadow:0 1px 3px #00000015}
.results-caption{font-size:11px;color:var(--muted)}
.sort-select{display:flex;align-items:center;gap:9px;margin-left:auto;font-size:11px}
.sort-select label{margin:0;white-space:nowrap}
.sort-select select{width:110px;font-size:11px;padding:7px;min-height:32px}
.sort-select button{padding:6px 10px}
.table-scroll{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left;min-width:760px}
thead{background:#fafafa}
th{padding:0 18px;border-bottom:1px solid var(--line)}
th button{border:0;background:transparent;padding:14px 0;font-size:10px;color:#606060;letter-spacing:.3px;white-space:nowrap}
th button:hover{background:transparent;color:var(--brand-black)}
td{border-bottom:1px solid #ededed;padding:17px 18px;font-size:12px;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#f8f8f8}
.date-main{font-size:12px;font-weight:700;white-space:nowrap}
.date-year{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.sport-label{display:inline-flex;align-items:center;gap:7px;font-size:11px;max-width:150px;line-height:1.5}
.sport-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--link)}
.title-button{border:0;background:none;text-align:left;padding:0;font-size:12px;font-weight:700;line-height:1.4}
.title-button:hover{background:none;text-decoration:underline}
.event-subtitle{font-size:10px;color:var(--muted);display:block;margin-top:6px;line-height:1.4}
.badge{display:inline-block;border-radius:5px;font-size:10px;line-height:1.4;padding:5px 8px;white-space:nowrap;font-weight:600}
.badge.confirmed{color:#303030;background:#eeeeee}
.badge.estimate{color:#555555;background:#f4f2ef;outline:1px dotted #888888;outline-offset:-1px}
.badge.needs-confirmation{color:#a11b18;background:#fff0ef}
.badge.official-window{color:#404040;background:#f6f6f6;outline:1px dashed #999999;outline-offset:-1px}
.priority-high{color:#a11b18;font-weight:700}
.priority-low{color:#666666}
.unassigned{color:#666666;font-size:11px}
.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}
.empty-state h2{font-size:20px}
.empty-state button{margin-top:10px}
.page-footer{font-size:10px;color:#6b6b6b;display:flex;justify-content:space-between;gap:20px;padding-top:22px;line-height:1.6}
.export-menu{position:relative}
.export-menu>summary{list-style:none;font-size:12px}
.menu{position:absolute;z-index:10;right:0;top:46px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:6px;box-shadow:0 8px 24px #0000001a;width:250px}
.menu a{display:block;padding:12px;text-decoration:none;color:var(--ink);font-size:12px;border-radius:4px}
.menu a:hover{background:var(--paper)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;padding:23px 22px 10px}
.calendar-toolbar h2{margin-bottom:5px}
.calendar-toolbar button{font-size:11px;padding:8px 11px}
.calendar-toolbar p{margin-bottom:7px}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.weekdays{padding:12px 0;color:var(--muted);font-size:10px;text-align:center;border-bottom:1px solid var(--line)}
.calendar-day{min-height:136px;padding:9px 7px;border-right:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9;background:#fff;overflow:hidden}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.other-month{background:#f8f8f8;color:#767676}
.day-number{font-size:11px;padding:3px 5px;display:inline-block}
.calendar-day.today .day-number{background:var(--brand-black);color:white;border-radius:4px}
.calendar-chip{display:block;width:100%;border:0;border-left:2px solid #444444;border-radius:3px;background:#f1f1f1;text-align:left;font-size:9px;font-weight:400;line-height:1.4;padding:5px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-chip.unconfirmed{border-color:#ff322e;background:#fff0ef}
.more-day{border:0;background:none;color:var(--link);font-size:9px;padding:3px}
.window-section{padding:24px}
.window-section h3{margin-bottom:7px}
.window-section h3 span{color:var(--muted);font-weight:400}
.window-events{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.window-card{border:1px solid var(--line);padding:14px;text-align:left;background:white;border-radius:6px}
.window-card small{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}
.window-card strong{display:block;font-size:11px;line-height:1.5}
.window-card .badge{margin-top:10px}
dialog{border:1px solid var(--line);border-radius:12px;padding:30px;max-width:670px;width:calc(100% - 30px);color:var(--ink);max-height:90vh;box-shadow:0 20px 100px #00000040}
dialog::backdrop{background:#00000080}
.dialog-close{position:absolute;top:16px;right:16px;padding:0;width:29px;height:29px;border:0;font-size:23px;color:var(--muted);background:#f1f1f1}
.detail-dialog h2{font-size:28px;line-height:1.25;margin:20px 0 8px}
.detail-date{font-size:16px;margin:20px 0}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:22px 0}
.detail-grid dt{font-size:10px;color:var(--muted);margin-bottom:6px}
.detail-grid dd{margin:0;font-size:13px;line-height:1.5}
.detail-notes{line-height:1.7;white-space:pre-wrap;font-size:13px}
.source-link{display:block;font-size:11px;color:var(--link);word-break:break-word;line-height:1.5;text-underline-offset:3px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px;border-top:1px solid var(--line);padding-top:20px}
.detail-dialog .dialog-actions{justify-content:space-between}
.editor-dialog header{padding-right:30px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.wide{grid-column:1/-1}
.checkbox-label{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink)}
.checkbox-label input{width:16px;min-height:0}
.form-error{font-size:12px;color:#a11b18;background:#fff0ef;padding:12px;border-radius:5px}
.editor-dialog input,.editor-dialog select{font-size:13px}
#error-banner{padding:18px;color:#a11b18;background:#fff0ef}
#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--brand-black);color:white;border-radius:7px;padding:13px 23px;z-index:100;font-size:12px}
#day-events .window-card{width:100%;margin-bottom:10px}
.login-page{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:white}
.login-card{padding:65px 30px;max-width:410px;width:100%;margin:auto}
.login-card .ap-logo{width:55px;height:65px;margin-bottom:40px}
.login-card h1{font-size:46px;margin-bottom:20px}
.login-card form{margin-top:30px}
.login-card form button{width:100%;margin-top:15px}
.login-card .small{margin-top:18px}
.login-art{background:var(--brand-black);position:relative;overflow:hidden;padding:40px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:24px;height:100svh;min-height:640px;min-width:0}
.art-tag{color:var(--brand-red);font-size:10px;letter-spacing:3px}
.art-photo{display:block;width:100%;height:100%;min-height:0;min-width:0;object-fit:contain;object-position:center}
.art-line{position:relative;font-size:clamp(32px,3.5vw,48px);letter-spacing:-1.5px;color:#ffffff;line-height:1.1;margin:0}
[hidden]{display:none!important}

@media(min-width:1700px){.workspace{padding-left:55px;padding-right:55px}
}
@media(max-width:1200px){.workspace{padding:0 24px 25px}
.sidebar{width:185px;padding:25px 15px}
.workspace{margin-left:185px}
.filter-panel{grid-template-columns:1.5fr 1fr 1fr}
.filter-panel .text-button{justify-self:start}
.metrics>div{padding:18px}
.metric-feature{display:none}
.metrics{grid-template-columns:repeat(3,1fr)}
h1{font-size:34px}
.results-caption{display:none}
}
@media(max-width:800px){.sidebar{position:static;inset:auto;width:100%;padding:15px;display:flex;flex-direction:row;align-items:center;gap:5px;flex-wrap:wrap}
.sidebar .brand{margin-right:auto}
.sidebar .brand small,.sidebar-section,.sidebar-note,.logout{display:none}
.nav-item{margin:0;padding:10px;font-size:12px}
.nav-item span{font-size:10px}
.nav-item.active{border-left:0;padding-left:10px;border-bottom:2px solid var(--brand-red)}
.workspace{margin:0;padding:0 15px 24px}
.topline{height:45px;font-size:8px}
.page-heading{margin:25px 0;align-items:start;flex-direction:column}
.page-heading h1{font-size:33px}
.metrics>div{padding:15px 12px}
.metrics small{font-size:9px}
.metrics strong{font-size:28px}
.filter-panel{grid-template-columns:1fr 1fr;gap:13px}
.search-box{grid-column:1/-1}
.more-grid{grid-template-columns:1fr 1fr}
.results-toolbar{gap:10px;padding:12px}
.sort-select label{display:none}
.sort-select select{width:90px}
.calendar-toolbar{padding:18px 12px;gap:10px}
.calendar-toolbar h2{font-size:18px}
.calendar-toolbar .small{font-size:10px}
.calendar-toolbar button{padding:6px}
.calendar-day{min-height:105px;padding:5px 3px}
.calendar-chip{font-size:8px;padding:4px 2px}
.window-events{grid-template-columns:1fr}
.window-section{padding:18px}
.page-footer{flex-direction:column;gap:8px}
.login-page{grid-template-columns:1fr}
.login-art{display:none}
.login-card{padding:40px 25px}
.form-grid{grid-template-columns:1fr}
.form-grid>div{grid-column:1}
.form-grid .wide{grid-column:1}
dialog{padding:24px 20px}
.heading-actions .primary{font-size:12px}
}


.manager-message{min-width:0}
.message-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.message-heading button{padding:4px 9px;font-size:12px}
.manager-message p{max-width:none;white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto}
.manager-message #message-updated{display:block;margin-top:9px}
.manager-message form{margin-top:12px}
.manager-message textarea{margin:6px 0;color:var(--ink)}
.manager-message #message-help{display:block;line-height:1.5}
.message-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.message-actions button{padding:7px 10px;font-size:12px}
.manager-message .form-error{color:#a11b18;margin-top:10px}
button:disabled{opacity:.6;cursor:wait}
.nav-item.day-nav-link{text-decoration:none;display:flex;align-items:center}
.view-tabs a{display:inline-block;border:0;padding:7px 13px;font-size:11px;color:var(--muted);text-decoration:none;border-radius:7px}
.view-tabs a.selected{background:#fff;color:var(--ink);box-shadow:0 1px 3px #00000015}
.day-tabs{display:inline-flex;margin-bottom:20px;gap:3px}
.day-panel{padding:24px;border:1px solid var(--line);border-radius:10px;background:white;margin-bottom:22px}
.day-panel h2{margin-top:0;font-size:21px}
.day-panel h3{font-size:16px;letter-spacing:0}
.day-date-row,.day-actions,.day-result-heading{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.day-date-row{align-items:end}
.day-date-row>div{min-width:180px}
.day-fieldset{margin:20px 0;border:1px solid var(--line);padding:15px;border-radius:8px}
.day-fieldset legend,.day-fieldset summary{font-weight:600}
.day-fieldset summary{cursor:pointer}
.day-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-top:10px}
.day-checks label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;margin:0}
.day-checks input{width:auto;min-height:0;accent-color:var(--brand-red)}
.day-milestones{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin-top:18px}
.day-milestone{border:1px solid var(--line);border-radius:8px;padding:16px;min-width:0}
.day-milestone p{font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.day-milestone a{color:#a11b18;font-size:13px}
.day-coverage-note{white-space:pre-wrap}
.day-notices{background:#f5f5f5;border-left:4px solid var(--brand-red);padding:10px 18px;margin-top:20px;font-size:13px;overflow-wrap:anywhere}
.day-result-heading{justify-content:space-between;margin:20px 0 10px}
.day-result{min-height:420px;white-space:pre;font:13px/1.7 Consolas,monospace;margin-top:8px}
a.day-number{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.day-panel{padding:16px}.day-date-row>div{min-width:100%}.day-actions{align-items:stretch}}

.digest-card{min-width:0}
.digest-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.digest-heading button{padding:4px 9px;font-size:12px}
.digest-card p{max-width:none;overflow-wrap:anywhere}
.digest-card .digest-title{font-weight:700;font-size:14px;margin-top:12px}
.digest-card #digest-preview{font-size:12px;line-height:1.6}
.digest-card #digest-updated{display:block;margin-top:10px;line-height:1.5}
.digest-card #read-digest{font-size:12px;padding:7px 10px;margin-top:12px}
.digest-card .form-error{color:#a11b18;font-size:12px;line-height:1.5}
.digest-dialog{width:min(860px,94vw);max-height:90vh;padding:28px}
.digest-dialog h2{padding-right:24px;overflow-wrap:anywhere}
.digest-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:15px;max-height:60vh;overflow:auto;margin:20px 0;padding-right:12px}
@media(max-width:1200px){.metrics .digest-card{display:block;grid-column:1/-1;border-top:3px solid var(--brand-red)}}
