body{background:linear-gradient(115deg,rgba(255,255,255,.08),rgba(247,252,249,.18)),url('/soft-beach.png') center/cover fixed}
.workspace{background:transparent}
.sidebar{background:rgba(250,253,252,.52);backdrop-filter:blur(2px)}
.page-header{min-height:76px;padding:.85rem 1.2rem;border:1px solid rgba(217,232,228,.8);border-radius:17px;background:rgba(255,255,255,.42);backdrop-filter:blur(2px);box-shadow:0 8px 25px rgba(58,105,100,.06)}
.calendar-panel,.utility-panel{background:rgba(255,255,255,.4);backdrop-filter:blur(1px)}
.surface{background:rgba(255,255,255,.45)}
.auth-card{background:rgba(255,255,255,.48);backdrop-filter:blur(2px)}
.day{background:rgba(252,254,253,.51)}
.day.weekend{background:rgba(250,252,247,.51)}
.slot.filled{background:rgba(237,243,241,.77)}
.toolbar-actions{display:flex;align-items:center;gap:.5rem}
.view-toggle{display:flex;align-items:center;padding:3px;border:1px solid #cbdeda;border-radius:10px;background:rgba(232,243,239,.75)}
.view-toggle button{border:0;border-radius:7px;padding:.42rem .75rem;background:transparent;color:#52746e;font-size:.78rem;font-weight:750}
.view-toggle button[aria-pressed="true"]{background:#fff;color:#1e6a65;box-shadow:0 2px 8px rgba(54,97,91,.12)}
.admin-booking{display:flex;align-items:center;gap:.6rem;margin:.15rem 0 .45rem;padding:.36rem .55rem;border:1px solid rgba(203,222,218,.85);border-radius:10px;background:rgba(255,255,255,.48)}
.admin-booking label{display:block;white-space:nowrap;font-size:.73rem;font-weight:800}
.admin-booking select{width:min(240px,35vw);min-width:150px;padding:.35rem .45rem;border:1px solid #cbdeda;border-radius:8px;background:rgba(255,255,255,.8);font:inherit;font-size:.78rem}
.admin-booking span{font-size:.7rem}
.week-range{margin-left:.8rem;color:#315f5c;font-size:.87rem;white-space:nowrap}.week-view{grid-template-rows:minmax(0,1fr);gap:8px}.week-view .day{padding:.65rem;border-radius:12px}.week-view .day-head{margin-bottom:.55rem;font-size:1rem}.week-view .day-count{font-size:.72rem}.week-view .slots{gap:.4rem}.week-view .slot{display:flex;align-items:center;min-height:0;padding:.45rem .5rem;font-size:clamp(.72rem,.85vw,.91rem);line-height:1.2;border-radius:7px}.week-view .slot.open{background:rgba(244,248,246,.53);color:#8aa39d}.week-view .slot.filled{background:rgba(234,242,239,.77);color:#294b48}.week-view .slot.own{background:#c9eadd;color:#155b4f}.week-view .day.past{opacity:.6;cursor:default}.week-view .day.past:hover{border-color:#e0eae7;background:rgba(252,254,253,.7)}
.notice{font-size:.88rem;font-weight:650;padding:.8rem 1rem}
.overflow-note{display:block;margin-top:.35rem;padding:.3rem .4rem;border-radius:6px;background:#fff1dc;color:#785121;font-size:.68rem;line-height:1.15}
.month-view{grid-template-rows:repeat(var(--month-rows),minmax(0,1fr));gap:4px}
.month-view .day{padding:.22rem .3rem;border-radius:8px}
.month-view .day-head{margin-bottom:2px;font-size:.71rem}
.month-view .day-count{font-size:.57rem}
.month-view .slots{gap:1px}
.month-view .slot{min-height:0;padding:0 2px;font-size:clamp(.55rem,.64vw,.68rem);line-height:1.1}
.month-view .slot.open{color:#becfc9;background:rgba(244,249,247,.38)}
.month-view .day.outside{opacity:.42;cursor:default}
.month-view .overflow-note{font-size:.55rem;margin-top:1px;padding:1px 2px}
@media(max-width:1150px){.week-range{font-size:.72rem}.week-view .day{padding:.4rem}.week-view .slot{padding:.35rem .25rem;font-size:.72rem}}
@media(max-width:760px){.calendar-panel{min-height:660px}.week-view{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(155px,1fr));overflow:auto}.weekdays{display:none}.week-view .slot{font-size:.79rem}.week-range{display:block;margin-left:0}.calendar-toolbar{align-items:flex-start;flex-wrap:wrap}.month-nav{flex-wrap:wrap}.toolbar-actions{margin-left:auto}.page-header{min-height:77px}.month-view{min-height:480px;overflow:auto}.month-view .day{padding:1px}.month-view .day-head{font-size:.6rem}.month-view .day-count{display:none}.month-view .slot{font-size:.48rem;padding:0 1px}}
@media(max-width:760px){.admin-booking{flex-wrap:wrap}.admin-booking select{width:min(300px,75vw)}}
.key-dot.waiting{background:#ef9d47}
.day-head{gap:2px}.waitlist-badge{flex:none;border:1px solid #dc8b29;border-radius:999px;padding:1px 4px;background:#fff0d8;color:#8c4b00!important;font-size:.59rem;font-weight:900;line-height:1.1;cursor:pointer}.waitlist-badge.own-wait{box-shadow:0 0 0 2px #ffd49a}.waitlist-badge:hover{background:#ffddaa}.month-view .waitlist-badge{font-size:.5rem;padding:0 3px}
.waitlist-dialog{width:min(440px,calc(100vw - 2rem));max-height:75vh;overflow:auto;border:1px solid #d9e5df;border-radius:16px;padding:1.2rem;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:0 20px 60px rgba(0,0,0,.18)}.waitlist-dialog::backdrop{background:rgba(24,42,39,.28)}.waitlist-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.waitlist-heading h2{margin:0}.waitlist-dialog p{margin:.55rem 0 1rem;font-size:.8rem}.waitlist-entry{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem .7rem;padding:.6rem .7rem;border:1px solid #e2e9e5;border-radius:9px;margin:.4rem 0;background:rgba(255,255,255,.65)}.waitlist-entry.mine{border-color:#eda44a;background:#fff2dd}.waitlist-entry strong{font-size:.85rem}.waitlist-entry small{margin-left:auto}.waitlist-entry button{padding:.35rem .55rem;font-size:.7rem}
.my-leave-panel{overflow:hidden}.my-calendar{display:flex;flex-direction:column;min-height:0;flex:1;padding-top:.7rem}.my-calendar-nav{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.my-calendar-nav input{padding:.45rem .6rem;width:170px}.my-weekdays,.my-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.my-weekdays{text-align:center;font-size:.7rem;font-weight:800;margin-bottom:4px}.my-grid{grid-template-rows:repeat(6,minmax(0,1fr));min-height:0;flex:1}.my-day{display:flex;flex-direction:column;gap:.25rem;min-width:0;padding:.5rem;border:1px solid rgba(216,229,223,.9);border-radius:8px;background:rgba(255,255,255,.53)}.my-day.outside{opacity:.4}.my-day.today{box-shadow:inset 0 0 0 2px #8fc4b2}.my-day.booked{background:rgba(205,239,222,.82);border-color:#8fc6aa}.my-day.waiting{background:rgba(255,232,193,.88);border-color:#e9b968}.my-day.pending{background:rgba(248,231,205,.7);border-style:dashed}.my-day strong{font-size:.82rem}.my-day span{font-size:clamp(.62rem,.9vw,.82rem);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-day small{font-size:.65rem}.my-list{overflow:auto;min-height:0;padding-top:.7rem}.my-list-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.35rem 0;padding:.7rem .9rem;border:1px solid #dce9e0;border-radius:9px;background:rgba(211,238,221,.85);font-size:.82rem}.my-list-row.waiting{background:rgba(255,235,202,.88);border-color:#e9b968}.my-list-row.pending{background:rgba(249,235,211,.8);border-style:dashed}
@media(max-width:760px){.my-day{padding:.2rem}.my-day small{display:none}.my-day span{font-size:.51rem}.my-leave-panel .section-heading{flex-wrap:wrap}}
