/* 1–3. Reset, variables and typography. Standalone page styles. */
:root{--xbt-bg:#050606;--xbt-surface:#111414;--xbt-accent:#00b889;--xbt-accent-dark:#008f70;--xbt-text:#f0f0eb;--xbt-muted:#adb5b5;--xbt-border:rgba(0,184,137,.32)}
*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button,select{border:1px solid var(--xbt-border);border-radius:0;background:transparent;color:var(--xbt-text)}button{cursor:pointer;min-height:42px;padding:10px 15px;font-size:.875rem;font-weight:700;transition:background .15s}button:hover,select:hover{background:#202727}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--xbt-accent);outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}.xbt-calendar{background:var(--xbt-bg);color:var(--xbt-text);font-family:Montserrat,Arial,sans-serif;font-size:16px;min-height:100vh}.xbt-calendar main{padding:0 32px 22px;max-width:1920px;margin:auto}.skip-link{position:absolute;left:16px;top:-100px;z-index:5;background:var(--xbt-accent);color:#050606;padding:12px}.skip-link:focus{top:10px}
/* 4. Header */
.xbt-header{padding:22px 32px;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--xbt-border)}.wordmark{font-family:'Dela Gothic One',sans-serif;text-decoration:none;font-size:25px;white-space:nowrap;letter-spacing:-1.5px}.wordmark span{color:var(--xbt-accent)}.wordmark sup{font:12px Montserrat;vertical-align:top;letter-spacing:0}.xbt-header h1{font-size:14px;line-height:1.5;letter-spacing:2px;border-left:1px solid var(--xbt-border);padding-left:28px}.xbt-header h1 span{display:block}.home-link{margin-left:auto;font-size:14px;text-decoration:none;font-weight:700}.home-link:hover{color:var(--xbt-accent)}
/* 5. Toolbar */
.schedule-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 0;font-size:12px;font-weight:600;letter-spacing:1.5px;color:var(--xbt-muted)}.schedule-strip>span:last-child{color:var(--xbt-accent);font-size:24px;letter-spacing:6px}.sample-label{border:1px solid var(--xbt-border);padding:5px 9px;font-size:12px}.xbt-calendar-toolbar{border:1px solid var(--xbt-border);display:flex;align-items:center;gap:22px;padding:22px;background:var(--xbt-surface);flex-wrap:wrap}.period-controls,.view-controls{display:flex;gap:4px}.period-controls button:not(:first-child){font-size:20px;padding:6px 12px}.xbt-calendar-toolbar h2{font-family:'Dela Gothic One',sans-serif;font-size:clamp(20px,2.1vw,32px);letter-spacing:-1px;flex:1;text-transform:uppercase;line-height:1.25}.timezone-control{font-size:12px;letter-spacing:1px;color:var(--xbt-muted);display:grid;gap:6px}.timezone-control select{font-size:14px;min-height:36px;padding:6px 25px 6px 8px;max-width:260px;background:var(--xbt-bg)}.view-controls button[aria-pressed=true]{background:var(--xbt-accent);color:#050606;border-color:var(--xbt-accent)}.calendar-meta{display:flex;justify-content:space-between;gap:12px;padding:12px 0;font-size:12px;color:var(--xbt-muted)}
/* 6. Calendar grid */
.weekday-row,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday-row{border:1px solid var(--xbt-border);background:var(--xbt-surface)}.weekday-row span{padding:12px 16px;font-size:12px;letter-spacing:2px;font-weight:700;color:var(--xbt-muted)}.month-grid{border-left:1px solid var(--xbt-border)}.day-cell{min-width:0;min-height:128px;padding:9px;border-right:1px solid var(--xbt-border);border-bottom:1px solid var(--xbt-border);transition:background .15s}.day-cell:hover{background:rgba(255,255,255,.025)}.day-cell.outside{background:rgba(0,0,0,.13)}.outside .date-button{color:#7d8888}.date-button{border:0;min-width:34px;min-height:34px;padding:5px;font-size:16px;font-weight:500;margin-bottom:5px}.is-today{box-shadow:inset 0 0 0 1px var(--xbt-accent);background:rgba(0,184,137,.035)}.is-today .date-button{border:1px solid var(--xbt-accent);border-radius:50%;color:var(--xbt-accent)}.date-button[aria-pressed=true]{background:rgba(0,184,137,.16)}.day-events{display:grid;gap:5px}.more-button{border:0;padding:4px;min-height:32px;color:var(--xbt-accent);font-size:12px;text-align:left}.selected-day{display:none}.period-agenda{border:1px solid var(--xbt-border)}.agenda-day{display:grid;grid-template-columns:190px 1fr;gap:25px;padding:22px;border-bottom:1px solid var(--xbt-border)}.agenda-day:last-child{border-bottom:0}.agenda-day h3,.selected-day h3{font-size:16px;line-height:1.6}.agenda-day .day-events{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.empty-day{font-size:14px;color:var(--xbt-muted);padding:12px 0}.agenda-day.today-agenda h3{color:var(--xbt-accent)}
/* 7. Events */
.xbt-event{display:block;text-align:left;width:100%;min-width:0;padding:8px 9px;background:rgba(0,184,137,.075);border:0;border-left:2px solid var(--xbt-accent);font-size:14px;line-height:1.4;font-weight:600}.xbt-event:hover{background:rgba(0,184,137,.18)}.event-time{display:block;color:var(--xbt-accent);font-size:12px;font-weight:500;margin-bottom:3px}.event-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xbt-event.registration{border-left-style:dashed;background:rgba(240,240,235,.045)}.xbt-event.special{border-left-color:#f0f0eb}.xbt-holiday{font-size:12px;color:var(--xbt-muted);padding:5px 4px;line-height:1.5}.mobile-dot{display:none}
/* 8. Modal */
.xbt-modal{padding:28px;background:var(--xbt-surface);color:var(--xbt-text);border:1px solid var(--xbt-accent);width:min(570px,calc(100% - 28px));max-height:90vh;overflow:auto}.xbt-modal::backdrop{background:rgba(0,0,0,.8)}.xbt-modal[open]{animation:reveal .16s ease-out}.modal-top{display:flex;justify-content:space-between;align-items:center;color:var(--xbt-accent);font-size:12px;letter-spacing:2px}.modal-top button{font-size:26px;padding:0 12px}.xbt-modal h2{font-family:'Dela Gothic One',sans-serif;font-size:26px;line-height:1.3;margin:24px 0}.xbt-modal dl{display:grid;grid-template-columns:110px 1fr;gap:14px 18px;padding:22px 0;border-block:1px solid var(--xbt-border)}.xbt-modal dt{color:var(--xbt-muted);font-size:12px;letter-spacing:1px;padding-top:3px}.xbt-modal dd{margin:0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}.description{line-height:1.7;font-size:16px;margin:22px 0}.modal-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-actions button:disabled{opacity:.55;cursor:not-allowed}.modal-note{font-size:12px;line-height:1.6;color:var(--xbt-muted);margin-top:12px}
/* 9. Legend */
.calendar-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0}.legend{display:flex;flex-wrap:wrap;gap:20px;font-size:12px;font-weight:600;letter-spacing:.5px}.legend span:first-child{color:var(--xbt-accent)}.holiday-key,.calendar-footer p,.prototype-note{color:var(--xbt-muted);font-size:12px;line-height:1.6}
/* 10. Responsive */
@media(min-width:1500px){.day-cell{min-height:150px}}@media(max-width:1100px){.xbt-calendar-toolbar{gap:16px}.timezone-control{margin-left:auto}.view-controls{margin-left:auto}.xbt-calendar-toolbar h2{min-width:45%}.day-cell{padding:6px}.xbt-event{padding:6px;font-size:14px}.xbt-calendar main{padding-inline:20px}}
@media(max-width:650px){.xbt-header{padding:17px 16px;gap:16px;flex-wrap:wrap}.wordmark{font-size:21px}.xbt-header h1{padding-left:16px;font-size:12px;letter-spacing:1px}.home-link{font-size:12px;margin-left:0}.xbt-calendar main{padding-inline:12px}.schedule-strip{font-size:12px;letter-spacing:0;flex-wrap:wrap}.schedule-strip>span:last-child{display:none}.sample-label{font-size:12px}.xbt-calendar-toolbar{padding:14px;gap:14px}.xbt-calendar-toolbar h2{order:-1;flex-basis:100%;font-size:23px}.timezone-control{width:100%;margin:0;order:3}.timezone-control select{max-width:none;width:100%}.period-controls{gap:2px}.period-controls button{padding:8px 10px}.view-controls{gap:2px}.view-controls button{padding:8px;font-size:12px}.calendar-meta{font-size:12px;flex-wrap:wrap}.weekday-row span{font-size:12px;padding:12px 0;text-align:center;letter-spacing:0}.day-cell{min-height:63px;padding:5px 2px;text-align:center}.date-button{font-size:14px;margin:0;min-height:36px;min-width:36px}.month-grid .day-events,.month-grid .more-button{display:none}.mobile-dot{display:block;font-size:12px;color:var(--xbt-accent);height:12px;line-height:12px}.selected-day{display:block;padding:20px 0 8px}.selected-day h3{margin-bottom:12px}.selected-day .xbt-event{padding:12px;font-size:16px}.event-title{white-space:normal}.agenda-day{grid-template-columns:1fr;gap:8px;padding:16px}.agenda-day .day-events{grid-template-columns:1fr}.calendar-footer{padding:16px 0}.legend{gap:12px;font-size:12px}.xbt-modal{padding:20px}.xbt-modal h2{font-size:23px}.xbt-modal dl{grid-template-columns:85px 1fr;gap:12px}.xbt-modal dd{font-size:14px}}
/* 11. Decorative elements and restrained motion */
.xbt-calendar:before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");opacity:.025;pointer-events:none;z-index:4}@keyframes reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}
 .selected-day[hidden]{display:none}
.event-action{display:inline-block;border:1px solid var(--xbt-border);padding:12px 15px;font-size:14px;font-weight:700;text-decoration:none}.event-action:hover{background:rgba(0,184,137,.16)}
