:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#edf2f7;background:#0b0e14;font-synthesis:none}*{box-sizing:border-box}body{margin:0}main{max-width:1440px;margin:auto;padding:32px 5vw}header{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#edf2f7;font-size:27px;font-weight:650;letter-spacing:-1px}.mark{background:#b9ed9f;color:#14200e;width:38px;height:38px;border-radius:11px;text-align:center;line-height:35px}.brand-note{font-size:9px;letter-spacing:2px;color:#9aa7ba;margin-left:12px;border-left:1px solid #303b4b;padding:9px 20px}.connection{border:1px solid #303b4b;border-radius:20px;font-size:11px;padding:8px 12px;color:#b2bfd1}.intro{margin:62px 0 36px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;color:#b9ed9f}.intro h1{font-size:clamp(32px,4vw,53px);line-height:1.1;letter-spacing:-2px;font-weight:500;margin:15px 0}.intro h1 span{color:#9aa7ba}.intro>p:last-child{color:#9aa7ba;font-size:13px;margin-top:20px}.calendar{border:1px solid #273140;border-radius:14px;background:#141a24;overflow:hidden;box-shadow:0 25px 60px #00000028}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 28px;border-bottom:1px solid #273140}label{display:block;font-size:12px;color:#d5deeb;margin:16px 0 7px}.toolbar label{font-size:9px;letter-spacing:1.5px;color:#9aa7ba;margin:0 0 8px}button,select,input,textarea{font:inherit;border:1px solid #303b4b;background:#141a24;color:#edf2f7;border-radius:7px;padding:10px 13px}button,select{cursor:pointer}button{font-size:12px;transition:background .15s}button:hover:enabled{background:#263345}button:disabled{cursor:default;opacity:.5}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.grid:focus-visible{outline:2px solid #b9ed9f;outline-offset:3px}select{min-width:175px;font-size:13px}.week-nav{display:flex;align-items:center;gap:14px}.week-nav h2{font-size:15px;margin:0 0 5px;font-weight:550}.week-nav p{font-size:10px;color:#9aa7ba;margin:0}.week-nav>div{text-align:center;min-width:175px}.grid{overflow:auto;padding:0 20px;min-height:240px}.calendar footer{display:flex;justify-content:space-between;padding:20px 30px;font-size:10px;color:#9aa7ba;border-top:1px solid #273140;margin-top:14px}.dot{display:inline-block;height:6px;width:6px;border-radius:50%;margin:0 7px 0 15px}.dot:first-child{margin-left:0}.green{background:#92dbb5}.red{background:#ed9cb4}.footnote{text-align:center;color:#9aa7ba;font-size:10px;letter-spacing:.4px;margin:25px}#notice:not(:empty){margin:18px 28px;padding:15px;background:#1b283b;border:1px solid #334966;border-radius:8px;font-size:13px;line-height:1.6;white-space:pre-line}.empty{padding:60px 20px;text-align:center;color:#9aa7ba;font-size:14px}dialog{width:min(490px,92vw);padding:28px;border:1px solid #303b4b;border-radius:16px;background:#141a24;color:#edf2f7;box-shadow:0 30px 90px #0002}dialog::backdrop{background:#02050bbd;backdrop-filter:blur(5px)}dialog h2{font-size:25px;font-weight:500;margin:10px 0}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading button{padding:4px 10px;font-size:22px}input,textarea{display:block;width:100%;font-size:13px}label span{color:#9aa7ba;font-size:10px}.primary{background:#b9ed9f;color:#14200e;width:100%;margin-top:12px;font-weight:650;display:flex;justify-content:space-between}.primary:hover:enabled{background:#d0f5bb}@media(max-width:850px){main{padding:22px 4vw}.intro{margin-top:40px}.toolbar{flex-wrap:wrap;padding:20px}.week-nav{order:3;width:100%;justify-content:center;gap:9px}.week-nav>div{min-width:140px}.brand-note{display:none}.calendar footer{gap:18px;line-height:1.5;padding:18px}.calendar footer>span:last-child{max-width:140px}.grid{padding:0 8px}.intro h1{letter-spacing:-1px}}
.timeline{display:grid;grid-template-columns:70px repeat(5,minmax(0,1fr));min-width:850px;margin:0 10px 30px;border-bottom:1px solid #273140}
.timeline-heading{height:72px;margin:0;padding:14px 10px;font-size:11px;font-weight:500;color:#9aa7ba;border-bottom:1px solid #273140}
.timeline-heading span{display:block;font-size:19px;color:#edf2f7;margin-top:5px}
.time-axis .timeline-heading{padding-left:0;font-size:10px;letter-spacing:1px}
.time-ticks{position:relative}.time-ticks>span{position:absolute;left:0;transform:translateY(-50%);font-size:11px;color:#9aa7ba;background:#141a24;padding-right:8px}
.timeline-day{min-width:0;border-left:1px solid #273140}
.timeline-track{display:grid;position:relative;column-gap:3px;padding:0 5px;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(5% - 1px),#26313e77 calc(5% - 1px),#26313e77 5%,transparent 5%,transparent calc(10% - 1px),#273140 calc(10% - 1px),#273140 10%)}
.meeting-block{position:relative;min-width:0;min-height:0;margin:1px 0;padding:0 7px;background:#30202a;color:#edb5c7;border:1px solid #593342;border-left:3px solid #ed9cb4;border-radius:6px;font-size:11px;line-height:1.5;display:flex;flex-direction:column;overflow:hidden}
.meeting-block>strong{font-size:11px;padding-top:7px;font-weight:650}.meeting-block>span{overflow-wrap:anywhere}.meeting-block>small{color:#edb5c7;font-size:10px;margin-top:7px;padding-bottom:7px}
.meeting-block:focus-visible{outline:2px solid #b9ed9f;outline-offset:2px;z-index:3}
.meeting-block .meeting-details{display:none}
.meeting-block:hover,.meeting-block:focus{overflow:visible;z-index:4}
.meeting-block:hover .meeting-details,.meeting-block:focus .meeting-details{display:block;position:absolute;left:0;top:0;width:100%;min-width:125px;background:#30202a;box-shadow:0 6px 20px #0002;border:1px solid #ed9cb4;border-radius:6px;padding:8px;z-index:5}
@media(max-width:850px){.timeline{min-width:850px}}

[hidden]{display:none!important}main{padding:22px 4vw 30px}header{min-height:48px;padding-bottom:18px;border-bottom:1px solid #273140;gap:20px}.brand{font-size:23px;letter-spacing:-.6px}.mark{color:#14200e;line-height:36px}nav{display:flex;align-items:center;gap:8px}nav button{border-color:transparent;background:transparent}nav button[aria-current="page"]{background:#223629;color:#b9ed9f}#signed-in{font-size:12px;color:#9aa7ba;margin:0 8px}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:28px 0 22px}.intro h1{font-size:28px;letter-spacing:-.7px;line-height:1.2;margin:0 0 7px;font-weight:650}.intro p{font-size:13px;color:#9aa7ba;margin:0}.intro .primary{width:auto;margin:0}.toolbar{padding:20px 24px}.calendar{box-shadow:0 4px 20px #00000020}.login-card{max-width:420px;margin:10vh auto 0;padding:32px;border:1px solid #273140;border-radius:20px;background:#141a24;box-shadow:0 8px 35px #00000030}.login-card h1{font-size:27px;letter-spacing:-.6px;margin:12px 0}.login-card>p{font-size:13px;color:#9aa7ba;line-height:1.6}.help{font-size:12px;line-height:1.6;color:#9aa7ba}.primary{justify-content:center;min-height:40px}.account-list{display:grid;gap:12px}.account-row{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#141a24;border:1px solid #273140;border-radius:13px;padding:20px 24px}.account-row strong{font-size:15px}.account-row p{font-size:12px;color:#9aa7ba;margin:6px 0 0}.actions{display:flex;gap:8px}.danger{color:#ffadb8}fieldset{border:1px solid #273140;border-radius:8px;margin:20px 0;padding:12px}legend{font-size:13px;font-weight:600}.diary-choice{display:flex;align-items:center;gap:9px;font-size:13px;margin:8px 0}.diary-choice input{width:17px;height:17px}.diary-choice span{font-size:13px;color:#d5deeb}#diary-options{max-height:210px;overflow:auto}#login-error,#account-error,#delete-error{color:#ffadb8;font-size:13px;line-height:1.6}#users-status{font-size:13px;line-height:1.6}dialog{max-height:90vh;overflow:auto}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #b9ed9f;outline-offset:3px}
@media(max-width:600px){header{align-items:flex-start;gap:10px}nav{flex-wrap:wrap;justify-content:flex-end;gap:2px}#signed-in{display:none}nav button{padding:9px}.intro{margin:24px 0 18px}.intro h1{font-size:24px}.login-card{margin-top:6vh;padding:24px}.account-row{padding:16px;gap:12px;align-items:flex-start}.actions{flex-wrap:wrap}.calendar footer{flex-wrap:wrap}.footnote{margin:18px 4px;line-height:1.7}.toolbar{gap:14px;padding:16px}.week-nav{justify-content:space-between;gap:5px}.week-nav>div{min-width:110px}.week-nav h2{font-size:13px}.week-nav button{padding:9px}}

/* Application navigation and account controls. */
header{position:sticky;top:0;z-index:10;background:#0b0e14ed;backdrop-filter:blur(18px);padding:16px 0;min-height:80px;margin-top:-22px}nav{flex:1;gap:6px;margin-left:32px}nav button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 16px;font-size:13px;border-radius:10px;color:#aab8cc}nav button[aria-current="page"]{color:#c4efae;background:#223629;box-shadow:inset 0 0 0 1px #39513b}nav button:hover:enabled{color:#edf2f7;background:#222d3c}.nav-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#signed-in{margin-left:auto;padding:8px 13px;border-left:1px solid #303b4b;font-size:12px;color:#cad4e2;max-width:220px;overflow-wrap:anywhere}#logout{font-size:12px}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand-copy small{font-size:9px;font-weight:500;letter-spacing:1.8px;color:#91a0b5}.brand .mark{background:#b9ed9f;color:#15220e}.primary{color:#15220e}.login-card{background:linear-gradient(145deg,#1a2230,#111720);border-color:#303b4b}.intro h1{font-weight:600}.account-row{transition:border-color .15s}.account-row:hover{border-color:#45566d}.week-nav button{min-height:40px}input::placeholder,textarea::placeholder{color:#8492a6}input[type="checkbox"]{accent-color:#b9ed9f}
@media(max-width:700px){header{flex-wrap:wrap;gap:14px;padding:14px 0}nav{flex-basis:100%;margin:0;justify-content:flex-start}nav button{padding:10px 12px}#signed-in{display:block;margin-left:auto;max-width:125px;font-size:11px;padding:6px 9px}#logout{padding:10px}.brand-copy small{font-size:8px}}
@media(max-width:420px){#signed-in{display:none}#logout{margin-left:auto}nav button{gap:6px;font-size:12px}}

/* Keep controls on the page and headings/time labels inside the scrollable calendar. */
header{position:relative;top:auto}
.calendar{overflow:visible}
.toolbar{position:sticky;top:0;z-index:10;background:#141a24;padding:14px 20px;border-radius:14px 14px 0 0;gap:12px;box-shadow:0 5px 12px #0003}
.toolbar label{margin-bottom:5px}.toolbar select{max-width:260px}
.calendar-hint{font-size:12px;color:#b2bfd1;margin:12px 20px}
.grid{padding:0;max-height:65vh;min-height:280px;overscroll-behavior:contain}
.timeline{margin:0;min-width:850px;grid-template-columns:70px repeat(5,minmax(0,1fr))}
.timeline-heading{position:sticky;top:0;z-index:6;background:#141a24;height:64px;padding:10px}
.time-axis{position:sticky;left:0;z-index:7;background:#141a24}
.time-axis .timeline-heading{padding-left:10px}.time-ticks>span{left:10px}
.timeline-track{padding:0 4px}.free-period{min-height:0;min-width:0;margin:1px 0;padding:5px 7px;border:1px solid #38684f;border-left:3px solid #92dbb5;border-radius:6px;background:#173b2b;color:#b9efd0;white-space:pre-line;line-height:1.5;text-align:left;font-size:11px;overflow:hidden}

.meeting-block{background:#43242d;border-color:#8e465b;border-left-color:#f19ab0;color:#ffccda}.meeting-block>small{color:#ffccda}
.calendar footer{margin-top:0;gap:16px;flex-wrap:wrap;line-height:1.8;padding:14px 20px}.neutral{background:#8391a5}
.availability-status:empty{display:none}.availability-status{padding:12px 20px;color:#c0ccdd;font-size:13px;line-height:1.5}

@media(max-width:600px){.toolbar{padding:12px;gap:10px}.toolbar select{min-width:150px;max-width:55vw}.grid{max-height:60vh}.calendar-hint{margin:10px 12px}.calendar footer{padding:12px}.week-nav{flex-wrap:wrap}.week-nav>div{flex:1}}

/* A quiet masthead: notebook mark, wordmark, and simple section tabs. */
header{min-height:82px;padding:0;gap:0;border-bottom:1px solid #252d38;background:transparent;backdrop-filter:none}
header .brand{gap:10px;padding:18px 30px 18px 0;flex-shrink:0}
.brand-symbol{width:31px;height:35px;fill:none;stroke:#d9e2e9;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.brand-symbol .brand-date{fill:#b9ed9f;stroke:none}
.brand-wordmark{font-size:27px;font-weight:600;letter-spacing:-1.2px;line-height:1;color:#f1f3f5}
header #navigation{align-self:stretch;margin-left:20px;gap:6px}
header #navigation>button{position:relative;align-self:stretch;min-height:48px;padding:0 18px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#99a6b5;font-size:13px;font-weight:500}
header #navigation>button:hover:enabled{background:transparent;color:#f1f3f5}
header #navigation>button[aria-current="page"]{background:transparent;box-shadow:none;color:#f1f3f5}
header #navigation>button[aria-current="page"]::after{content:'';position:absolute;bottom:-1px;left:17px;right:17px;height:2px;background:#b9ed9f;border-radius:2px}
header .nav-icon{width:16px;height:16px;stroke-width:1.6}
header #signed-in{align-self:center;border:0;padding:7px 14px;margin-left:auto;color:#aeb8c6;font-size:12px}
header #navigation>#logout{align-self:center;min-height:36px;padding:8px 0 8px 14px;border-left:1px solid #303845;font-size:12px}
@media(max-width:700px){header{padding-top:8px;gap:0}header .brand{padding:10px 0 8px}.brand-symbol{width:27px;height:31px}.brand-wordmark{font-size:25px}header #navigation{margin-left:0;flex-basis:100%;min-height:52px}header #navigation>button{padding:0 12px}header #navigation>button[aria-current="page"]::after{left:12px;right:12px}header #signed-in{padding:5px 8px;max-width:145px}header #navigation>#logout{padding-left:10px;padding-right:0}}
@media(max-width:420px){header #signed-in{display:none}header #navigation>#logout{margin-left:auto}header #navigation>button{font-size:12px}}

/* Keep the wide calendar inside its own scroller; the rest of the app fits the viewport. */
.mobile-calendar-hint{display:none}
main,.calendar,.grid,#calendar-view,#users-view,.toolbar>div,.account-row>div{min-width:0}
.grid{width:100%;max-width:100%;-webkit-overflow-scrolling:touch}
.account-row strong,#delete-description{overflow-wrap:anywhere}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
@media(max-width:700px){
  main{width:100%;padding:14px max(12px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
  header{margin-top:0;min-height:0;align-items:center}
  header #navigation{min-width:0;gap:0;flex-wrap:wrap;justify-content:flex-start}
  header #navigation>button,header #navigation>#logout{min-height:44px}
  header #signed-in{display:none}
  header #navigation>#logout{margin-left:auto;padding-left:12px}
  .intro{margin:20px 0 16px;gap:12px;flex-wrap:wrap;align-items:center}
  .intro h1{font-size:24px}.intro p{font-size:13px;line-height:1.5}
  .connection{font-size:11px;padding:7px 10px;flex-shrink:0}
  .calendar{border-radius:12px}
  .toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px;top:0;border-radius:12px 12px 0 0}
  .toolbar>div:first-child{grid-column:1;min-width:0}
  .toolbar label{font-size:10px;letter-spacing:1px}
  .toolbar select{width:100%;min-width:0;max-width:100%;min-height:44px;text-overflow:ellipsis}
  .toolbar>.refresh{grid-column:2;grid-row:1;align-self:end;min-height:44px;padding:10px 12px}
  .toolbar .week-nav{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;width:100%;gap:6px;order:initial}
  .week-nav>div{min-width:0}.week-nav h2{font-size:14px;white-space:normal}.week-nav p{font-size:10px;line-height:1.4}
  .week-nav button{min-height:44px;padding:10px}.week-nav #today{font-size:12px}
  .calendar-hint{font-size:12px;line-height:1.6;margin:12px}
  .mobile-calendar-hint{display:block;color:#c5d2e1;margin-top:3px}
  .grid{max-height:65vh;max-height:65dvh;min-height:240px;touch-action:pan-x pan-y pinch-zoom}
  .timeline{width:1106px;min-width:1106px;grid-template-columns:56px repeat(5,210px)}
  .timeline-heading{height:64px;font-size:12px}.timeline-heading span{font-size:18px}
  .time-axis .timeline-heading{padding-left:6px}.time-ticks>span{left:6px;font-size:11px;padding-right:4px}
  .free-period{font-size:12px;padding:6px 8px}.meeting-block{font-size:12px}.meeting-block>strong{font-size:12px}.meeting-block>small{font-size:11px}
  .calendar footer{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px;font-size:11px}
  .calendar footer>span:last-child{max-width:none}.calendar footer>span{max-width:100%;overflow-wrap:anywhere}
  #notice:not(:empty){margin:12px;padding:12px;font-size:13px;overflow-wrap:anywhere}
  .footnote{font-size:11px;line-height:1.6;margin:16px 2px}
  .login-card{width:100%;max-width:420px;margin:28px auto 0;padding:24px 20px}
  input,select,textarea{font-size:16px;min-height:44px}label{font-size:13px}label span{font-size:11px}
  button.primary,.actions button,.dialog-heading button{min-height:44px}
  dialog{width:calc(100% - 24px);max-width:490px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:20px;margin:auto;overscroll-behavior:contain;scroll-padding:16px}
  dialog h2{font-size:22px;line-height:1.25}.dialog-heading{gap:12px;align-items:flex-start}.dialog-heading button{min-width:44px;flex-shrink:0}
  #account-role{width:100%;min-width:0}fieldset{min-width:0;padding:10px}
  .diary-choice{min-height:44px;margin:0;gap:12px}.diary-choice input{min-height:22px;width:22px;height:22px;flex-shrink:0}.diary-choice span{overflow-wrap:anywhere}
  #diary-options{max-height:28vh;max-height:28dvh}
  
  .account-row{flex-direction:column;align-items:stretch;gap:14px;padding:16px}
  .account-row .actions{display:flex;flex-wrap:wrap}.account-row .actions button{flex:1}
  #users-view .intro .primary{min-height:44px}#delete-dialog .actions{display:flex}#delete-dialog .actions button{flex:1}
}
@media(max-width:360px){
  header #navigation>button{padding:0 9px;font-size:12px;gap:5px}header #navigation>#logout{padding-left:9px;font-size:12px}
  .toolbar{padding:10px;gap:10px}.toolbar>.refresh{padding:10px 8px;font-size:11px}
  .toolbar .week-nav{grid-template-columns:40px minmax(0,1fr) 40px;gap:5px}.week-nav #today{grid-column:1 / -1}
  .login-card{padding:20px 16px}
}
@media(max-height:500px) and (max-width:950px){.toolbar{position:static}.grid{max-height:75vh;max-height:75dvh;min-height:180px}.login-card{margin-top:16px}dialog{max-height:calc(100dvh - 16px)}}

/* Show the whole day in the page rather than cropping it into a nested vertical pane. */
.grid{max-height:none;overscroll-behavior:auto}
.time-ticks>span:first-child{transform:none}
.time-ticks>span:last-child{transform:translateY(-100%)}
.free-period{display:flex;align-items:flex-start;justify-content:flex-start;text-align:left;padding-top:10px}

.sign-in-history{margin-top:2rem;border-top:1px solid #273140;padding-top:1rem}.sign-in-history .intro{margin-bottom:.5rem}.sign-in-history ol{padding:0;list-style:none;max-height:28rem;overflow:auto}.sign-in-history li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem;border-bottom:1px solid #273140}.sign-in-history li span,.last-sign-in{color:#9aa7ba;font-size:.875rem}@media(max-width:600px){.sign-in-history li{flex-direction:column;gap:.3rem}}

.type-add{display:flex;gap:.5rem;align-items:center}.type-add input{min-width:0;flex:1}#meeting-type-options{max-height:14rem;overflow:auto}#meeting-type-options .diary-choice span{overflow-wrap:anywhere}

/* One proportional 08:00–18:00 scale for ticks, meetings, free periods and grid lines.
   The minimum keeps short/zoomed windows readable and lets the page scroll. */
#calendar-view{--calendar-chrome:400px;--track-height:max(300px,calc(100vh - var(--calendar-chrome)));--track-height:max(300px,calc(100dvh - var(--calendar-chrome)))}
#calendar-view:has(.availability-status:not(:empty)){--calendar-chrome:455px}
#calendar-view .availability-status{margin:0;padding:8px 16px}
#calendar-view .intro{margin:14px 0 12px}
#calendar-view .intro h1{font-size:25px;margin-bottom:4px}
#calendar-view .toolbar{position:static;padding:10px 16px;box-shadow:none}
#calendar-view .calendar-hint{margin:8px 16px;line-height:1.5}
#calendar-view .timeline-heading{height:48px;padding:6px 10px;position:relative}
#calendar-view .timeline-heading span{font-size:17px;margin-top:2px}
#calendar-view .time-ticks,#calendar-view .timeline-track{height:var(--track-height)}
#calendar-view .grid{max-height:none;min-height:0;padding-bottom:0}
#calendar-view .timeline{min-width:0}
#calendar-view .calendar footer{padding:7px 16px;gap:6px 16px}
#calendar-view .footnote{margin:8px 0;line-height:1.5}
#calendar-view .free-period{padding-top:4px}
#calendar-view .meeting-block>strong{padding-top:3px}
#calendar-view .meeting-block>small{margin-top:2px;padding-bottom:3px}
@media(min-width:851px){
  main:has(#calendar-view:not([hidden])){padding-bottom:10px}
  main:has(#calendar-view:not([hidden]))>header{min-height:60px}
  main:has(#calendar-view:not([hidden]))>header .brand{padding-top:10px;padding-bottom:10px}
}
@media(max-width:850px){
  #calendar-view{--track-height:500px}
  #calendar-view .timeline{width:1106px;min-width:1106px;grid-template-columns:56px repeat(5,210px)}
  #calendar-view .mobile-calendar-hint{display:block}
}
