:root{--bg:#161A14;--surface:#1E2419;--elev:#252D20;--border:#2C3325;--text:#E3DFD3;--muted:#A39E90;--text-3:#A39E90;--accent:#8BAF80;--gold:#B8C4AE;--bronze:#9C8A6A;--font-body:'Switzer',sans-serif;--font-title:'Satoshi',sans-serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5}a{color:var(--gold);text-underline-offset:4px}button,input{font:inherit}a,button,input,summary{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}button,.cal-primary{border:1px solid var(--border);background:var(--elev);color:var(--text);padding:11px 16px;border-radius:8px;min-height:44px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.cal-primary{background:var(--accent);color:var(--bg);font-weight:600}.cal-skip{position:absolute;left:16px;top:-80px;z-index:10;background:var(--elev);padding:12px}.cal-skip:focus{top:12px}.cal-wrap{max-width:1600px;margin:auto;padding:0 40px}.cal-mast{text-align:center;padding:52px 0 35px;border-bottom:1px solid var(--border)}.cal-mast .wordmark{font:900 28px var(--font-title);letter-spacing:.04em}.cal-mast p,.cal-eyebrow{font-size:10px;letter-spacing:.2em;color:var(--muted)}.cal-intro{display:flex;justify-content:space-between;gap:32px;align-items:center;padding:38px 0}.cal-intro h1{font:900 clamp(30px,4vw,48px)/1.15 var(--font-title);margin:8px 0 12px}.cal-intro p{color:var(--muted);max-width:680px}.cal-export{width:290px;flex-shrink:0}.cal-export small{display:block;font-size:10px;color:var(--muted);margin-top:8px}.cal-export details{margin-top:12px;font-size:12px}.cal-export details p{font-size:12px}.cal-workspace{display:grid;grid-template-columns:238px minmax(0,1fr);gap:30px;align-items:start}.cal-filters{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;position:sticky;top:16px}.cal-filters fieldset{border:0;margin:0 0 20px;padding:0}.cal-filters legend{font-weight:600;margin-bottom:8px}.cal-filters label{display:flex;align-items:center;gap:8px;min-height:36px;font-size:12px}.cal-filters input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0}.cal-filters details{border-top:1px solid var(--border);padding:12px 0}.cal-filters summary{cursor:pointer;font-weight:600}.cal-filters summary span{float:right;color:var(--muted);font-weight:400}.cal-filters .cal-search-label{display:block;font-size:10px;color:var(--muted);margin:12px 0 8px}.cal-search-label input{width:100%;display:block;margin-top:6px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;color:var(--text);min-height:40px}.cal-choices{max-height:250px;overflow-y:auto}.cal-choices [hidden]{display:none}.cal-filters>.cal-primary{width:100%;margin:10px 0}.cal-filters>a{display:block;text-align:center;font-size:12px;margin-top:8px}.cal-fine{font-size:11px;color:var(--muted)}.cal-layer-key,.cal-event-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--accent);flex-shrink:0}[data-layer=macro]{--event-color:#B8C4AE}[data-layer=thesis]{--event-color:#C4A55A}[data-layer=company]{--event-color:#8BAF80}[data-layer=record]{--event-color:#9C8A6A}.cal-layer-key{background:var(--event-color)}.cal-toolbar,.cal-viewbar{display:flex;justify-content:space-between;gap:16px;align-items:center}.cal-toolbar h2{font:700 26px var(--font-title);margin:0}.cal-toolbar p{color:var(--muted);font-size:12px;margin:6px 0}.cal-toolbar nav,.cal-viewbar nav{display:flex;gap:6px}.cal-toolbar nav a,.cal-viewbar nav a{padding:9px 12px;min-height:40px;text-decoration:none;border:1px solid var(--border);border-radius:7px;font-size:12px}.cal-viewbar{border-bottom:1px solid var(--border);padding:16px 0}.cal-viewbar nav a[aria-current]{background:var(--elev);border-color:var(--accent)}.cal-viewbar form{display:flex;align-items:center;gap:8px;font-size:11px}.cal-viewbar input{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px}.cal-viewbar button{padding:7px 12px}.cal-context{font-size:11px;color:var(--muted);margin:14px 0}.cal-chips{display:flex;flex-wrap:wrap;gap:6px;padding-top:14px}.cal-chips a{padding:5px 9px;border-radius:20px;background:var(--elev);text-decoration:none;font-size:11px}.cal-notice{border-left:2px solid var(--bronze);padding:9px 12px;background:var(--surface);font-size:12px}.cal-grid{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.cal-weekdays,.cal-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-weekdays span{padding:10px 12px;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.cal-cell{min-width:0;min-height:125px;border-top:1px solid var(--border);border-right:1px solid var(--border);padding:8px}.cal-cell:nth-child(7n){border-right:0}.cal-cell.is-outside{background:var(--bg);color:var(--muted)}.cal-cell.is-today{box-shadow:inset 0 0 0 1px var(--accent)}.cal-day-number{display:flex;justify-content:space-between;color:inherit;text-decoration:none;margin-bottom:6px;font-size:12px;min-height:26px}.cal-day-number span{color:var(--muted);font-size:10px}.cal-grid-event{display:block;border-left:2px solid var(--event-color,var(--accent));background:var(--elev);border-radius:3px;margin:4px 0;padding:4px 5px;color:var(--text);font-size:10px;line-height:1.4;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-more{font-size:10px;display:block;margin-top:5px}.cal-agenda{margin-top:28px}.cal-agenda-title{font:500 12px var(--font-body);color:var(--muted);letter-spacing:.04em}.cal-agenda-day{scroll-margin-top:20px;margin-bottom:28px}.cal-agenda-day h2{font:700 17px var(--font-title);display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.cal-agenda-day h2 span{font:400 11px var(--font-body);color:var(--muted)}.cal-event{border-bottom:1px solid var(--border);scroll-margin-top:20px}.cal-event summary{padding:14px 4px;display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;min-height:56px}.cal-event summary::-webkit-details-marker{display:none}.cal-event-dot{background:var(--event-color,var(--accent))}.cal-event strong{font-size:13px;font-weight:500}.cal-event small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.cal-kind{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}.cal-event[open]{background:var(--surface);padding:0 12px;border-radius:8px}.cal-inspector{padding:0 20px 14px;font-size:13px}.cal-role{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}.cal-inspector dl{font-size:11px;display:flex;flex-wrap:wrap;gap:12px 28px}.cal-inspector dt{color:var(--muted)}.cal-inspector dd{margin:3px 0;overflow-wrap:anywhere}.cal-event-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0;font-size:11px}.cal-event-actions a{min-height:34px}.cal-coverage,.cal-unplaced{margin-top:20px;border:1px solid var(--border);border-radius:8px;padding:16px;font-size:12px}.cal-coverage summary,.cal-unplaced summary{cursor:pointer;font-weight:500}.cal-coverage ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cal-coverage li{background:var(--surface);padding:12px;border-radius:6px}.cal-coverage li span{float:right;font-size:10px;color:var(--muted)}.cal-coverage li p,.cal-coverage small{color:var(--muted);font-size:11px}.cal-empty{color:var(--muted);font-size:12px;padding:14px 0}.cal-footer{margin:45px 0 24px;padding-top:20px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;text-align:center}
@media(max-width:1000px){.cal-wrap{padding:0 24px}.cal-workspace{grid-template-columns:200px minmax(0,1fr);gap:20px}.cal-toolbar{align-items:flex-start;flex-direction:column}.cal-viewbar{flex-wrap:wrap}.cal-cell{min-height:100px;padding:5px}.cal-weekdays span{padding:8px 5px}.cal-filters{padding:14px}}
@media(max-width:720px){.cal-wrap{padding:0 18px}.cal-mast{padding:32px 0 22px}.cal-mast .wordmark{font-size:22px}.cal-intro{display:block;padding:28px 0}.cal-export{width:100%;margin-top:20px}.cal-export>.cal-primary{width:100%}.cal-workspace{display:block}.cal-filters{position:static;margin-bottom:25px}.cal-filters fieldset{display:grid;grid-template-columns:1fr 1fr;margin-bottom:8px}.cal-filters .cal-choices{max-height:150px;display:grid;grid-template-columns:1fr 1fr}.cal-filters details:not([open]){padding:10px 0}.cal-toolbar h2{font-size:24px}.cal-toolbar nav{width:100%;justify-content:space-between}.cal-viewbar{gap:12px}.cal-viewbar form{width:100%;justify-content:space-between}.cal-grid-event{font-size:0;line-height:0;height:5px;padding:0;border-left:0;background:var(--event-color)}.cal-cell{min-height:72px;padding:4px}.cal-day-number{font-size:11px;display:block;text-align:center}.cal-day-number span{display:block;font-size:9px}.cal-weekdays span{font-size:9px;text-align:center;padding:8px 0}.cal-more{font-size:0}.cal-more:after{content:'...';font-size:10px;display:block;text-align:center}.cal-kind{display:none}.cal-inspector{padding:0 4px 12px}.cal-coverage ul{grid-template-columns:1fr}.cal-agenda-day h2{font-size:15px}.cal-event strong{overflow-wrap:anywhere}.cal-intro p{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:white;color:black}.tabnav,.cal-filters,.cal-export,.cal-viewbar,.cal-toolbar nav,.cal-event-actions,.cal-skip{display:none}.cal-workspace{display:block}.cal-wrap{padding:0}.cal-grid{break-inside:avoid}.cal-event,.cal-inspector,.cal-cell{background:none!important;color:black}.cal-inspector{display:block!important}.cal-coverage,.cal-unplaced{break-inside:avoid}.cal-event summary{color:black}.cal-agenda-day{break-inside:avoid}}

.cal-empty-day{display:none}.cal-empty-day:target{display:block}

.cal-unplaced li{margin:16px 0;overflow-wrap:anywhere}.cal-unplaced li p{margin:5px 0}.cal-unplaced small{color:var(--muted)}
@media print{.wordmark,.wordmark .of{background:none!important;-webkit-text-fill-color:#000!important;color:#000!important}}

/* ═══ PHONE RENDER (MOBILE-SITE-1) — lib/calendar/phone.js serves body.cal-phone
   to phones only, so these rules never reach the ≥721px workspace. They are
   NOT inside a width query: a rotated phone keeps the phone render at 844px
   and must still read correctly. LAUREL tokens from :root above; no new
   palette values; text floor 12px for tracked labels, 15px for reading. ═══ */
.cal-phone{font-size:15px}
.cal-phone .cal-wrap{max-width:760px;padding:0 16px}
.cal-phone .cal-mast{padding:26px 0 18px}
.cal-phone .cal-mast .wordmark{font-size:24px}
.cal-phone .cal-mast p,.cal-phone .cal-eyebrow{font-size:12px;letter-spacing:.16em}
.cal-pintro{padding:22px 0 6px}
.cal-pintro h1{font:900 30px/1.15 var(--font-title);margin:6px 0 10px}
.cal-pintro p{color:var(--muted);margin:0;font-size:15px}
.cal-pintro .cal-eyebrow{margin:0}
.cal-ptoolbar{padding:18px 0 10px}
.cal-ptoolbar h2{font:700 24px var(--font-title);margin:0}
.cal-ptoolbar p{color:var(--muted);font-size:13px;margin:4px 0 0}
.cal-pnav,.cal-pviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}
.cal-pnav a,.cal-pviews a,.cal-pfilters,.cal-pback{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;text-decoration:none;font-size:14px;color:var(--text);text-align:center}
.cal-pviews a[aria-current]{background:var(--elev);border-color:var(--accent);color:var(--gold)}
.cal-ptools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 4px}
.cal-pfilters{flex:1 1 150px;background:var(--surface)}
.cal-pdate{flex:1 1 190px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.cal-pdate label{flex:none}
.cal-pdate input{flex:1 1 auto;min-width:0;min-height:44px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:16px}
.cal-pdate button{min-height:44px;min-width:52px;padding:8px 12px}
.cal-phone .cal-chips{padding-top:8px}
.cal-phone .cal-chips a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;font-size:13px}
.cal-phone .cal-notice{font-size:14px}
.cal-pgrid{margin:14px 0 6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.cal-pweek,.cal-pcells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-pweek span{padding:8px 0;font-size:12px;letter-spacing:.06em;color:var(--muted);text-align:center;text-transform:uppercase}
.cal-pday{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;min-height:56px;min-width:0;padding:6px 2px 8px;border-top:1px solid var(--border);color:var(--text);text-decoration:none;font-variant-numeric:tabular-nums}
.cal-pday time{font-size:15px;line-height:1.3;font-weight:500}
.cal-pcount{font-size:12px;line-height:1.3;color:var(--muted);min-height:16px}
.cal-pdots{display:flex;gap:3px;margin-top:2px}
.cal-pdots i{display:block;width:5px;height:5px;border-radius:50%;background:var(--event-color,var(--accent))}
.cal-pday.is-outside{background:var(--bg);color:var(--muted)}
.cal-pday.is-empty time{color:var(--muted)}
.cal-pday.is-today time{color:var(--accent)}
.cal-pday[aria-current="date"]{background:var(--elev);box-shadow:inset 0 0 0 1px var(--accent)}
.cal-pday[aria-current="date"] time{color:var(--gold)}
.cal-pselected{margin-top:22px}
.cal-phone .cal-agenda-day h2{font-size:18px;align-items:baseline;gap:12px}
.cal-phone .cal-agenda-day h2 span{font-size:13px;flex:none}
.cal-phone .cal-event summary{min-height:56px;padding:12px 2px}
.cal-phone .cal-event strong{font-size:15px;overflow-wrap:anywhere}
.cal-phone .cal-event small{font-size:13px}
.cal-phone .cal-kind{display:none}
.cal-phone .cal-event[open]{padding:0 10px}
.cal-phone .cal-inspector{padding:0 2px 12px;font-size:15px}
.cal-phone .cal-role{font-size:12px}
.cal-phone .cal-inspector dl{font-size:13px;gap:10px 22px}
.cal-phone .cal-event-actions{gap:4px 16px;font-size:14px;margin:12px 0}
.cal-phone .cal-event-actions a{display:inline-flex;align-items:center;min-height:44px}
.cal-phone .cal-fine{font-size:12.5px}
.cal-phone .cal-continuation a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
.cal-phone .cal-empty{font-size:14px}
.cal-ppager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin:10px 0;font-size:13px;color:var(--muted)}
.cal-ppager a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
.cal-prows{margin-top:26px}
.cal-prows .cal-agenda-title{font-size:13px;margin:0 0 6px}
.cal-prow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline;min-height:56px;padding:10px 2px;border-top:1px solid var(--border);color:var(--text);text-decoration:none}
.cal-prow time{font:700 16px var(--font-title)}
.cal-prow-n{font-size:13px;color:var(--muted)}
.cal-prow-first{grid-column:1/-1;font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-pexport{margin-top:28px}
.cal-pexport>.cal-primary{width:100%}
.cal-pexport small{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}
.cal-pexport details{margin-top:8px;font-size:14px}
.cal-pexport summary,.cal-phone .cal-coverage summary,.cal-phone .cal-unplaced summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;list-style:none}
.cal-pexport summary::-webkit-details-marker,.cal-phone .cal-coverage summary::-webkit-details-marker,.cal-phone .cal-unplaced summary::-webkit-details-marker{display:none}
.cal-pexport summary::after,.cal-phone .cal-coverage summary::after,.cal-phone .cal-unplaced summary::after{content:'+';color:var(--accent);font-size:17px;flex:none}
.cal-pexport details[open]>summary::after,.cal-phone .cal-coverage[open]>summary::after,.cal-phone .cal-unplaced[open]>summary::after{content:'−'}
.cal-phone .cal-coverage,.cal-phone .cal-unplaced{font-size:14px;padding:4px 14px}
.cal-phone .cal-coverage li p,.cal-phone .cal-coverage small,.cal-phone .cal-coverage li span{font-size:13px}
.cal-phone .cal-coverage ul{grid-template-columns:1fr}
.cal-pfull{margin:26px 0 0;display:flex;flex-direction:column;gap:4px}
.cal-pfull a{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
.cal-pfull small{font-size:13px;color:var(--muted)}
.cal-pback{justify-content:flex-start;border:0;padding-left:0;color:var(--gold)}
.cal-ptitle{font:700 24px var(--font-title);margin:8px 0 12px}
.cal-phone .cal-filters{position:static}
.cal-phone .cal-filters label{min-height:44px;font-size:15px}
.cal-phone .cal-filters .cal-search-label{font-size:13px}
.cal-phone .cal-search-label input{font-size:16px;min-height:44px}
.cal-phone .cal-filters>.cal-primary{position:sticky;bottom:12px;z-index:2;box-shadow:0 6px 18px rgba(22,26,20,.9)}
.cal-phone .cal-filters .cal-choices{max-height:none;display:grid;grid-template-columns:1fr 1fr}
.cal-phone .cal-filters fieldset{display:grid;grid-template-columns:1fr}
.cal-phone .cal-filters summary{display:flex;align-items:center;justify-content:space-between;min-height:44px}
.cal-phone .cal-filters .cal-fine{font-size:13px}
.cal-phone .cal-filters>a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:14px}
.cal-phone .cal-footer{font-size:13px}
.cal-phone .cal-skip{padding:12px 16px}

/* The full workspace at ≤720px (a desktop window narrowed, or ?layout=full on
   a phone): the 5px grid bars and the "…" were tap targets; the day number
   now covers its whole cell and the bars are marks, and nothing drops under
   the 12px floor. */
@media(max-width:720px){
  .cal-cell{position:relative}
  .cal-day-number::after{content:"";position:absolute;inset:0}
  .cal-grid-event,.cal-more{pointer-events:none}
  .cal-day-number span,.cal-weekdays span,.cal-more:after{font-size:12px}
  .cal-mast p,.cal-eyebrow,.cal-export small,.cal-fine,.cal-context,.cal-footer,.cal-toolbar p,.cal-agenda-day h2 span,.cal-inspector dl,.cal-event small,.cal-coverage li p,.cal-coverage small,.cal-coverage li span,.cal-role,.cal-chips a{font-size:12.5px}
  .cal-event strong{font-size:15px}
  .cal-event-actions{font-size:14px}
  .cal-event-actions a,.cal-toolbar nav a,.cal-viewbar nav a,.cal-filters label,.cal-chips a{display:inline-flex;align-items:center;min-height:44px}
  .cal-viewbar input{min-height:44px;font-size:16px}
  .cal-filters .cal-search-label input{min-height:44px;font-size:16px}
  .cal-coverage summary,.cal-unplaced summary,.cal-export summary,.cal-filters summary{min-height:44px;display:flex;align-items:center}
}
