:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#233747;background:#f6f9f8;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;height:100%}body{background:linear-gradient(115deg,rgba(250,253,252,.86),rgba(246,251,250,.78)),url('/soft-beach.png') center/cover fixed}
button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}
:focus-visible{outline:3px solid #3f9b9a;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.45rem,2.1vw,2rem);letter-spacing:-.035em;margin-bottom:0}h2{font-size:1.4rem;letter-spacing:-.025em;margin-bottom:.3rem}h3{font-size:1rem;margin-bottom:1rem}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#518480;margin:0 0 .25rem}.muted{color:#667b87;line-height:1.45}small{font-size:.75rem;color:#718795}label{display:grid;gap:.35rem;font-size:.78rem;font-weight:700;color:#435b68}input{min-width:0;border:1px solid #ccdcd9;border-radius:10px;padding:.68rem .8rem;background:#fff;color:#203847}input:focus{border-color:#4b9992;outline:3px solid #d7efeb}
.primary,.secondary,.icon-button{border:1px solid transparent;border-radius:10px;font-size:.82rem;font-weight:750;padding:.7rem .95rem;white-space:nowrap;transition:background .15s,transform .15s}.primary{background:#267f7b;color:white;box-shadow:0 4px 12px rgba(27,105,102,.16)}.primary:hover{background:#1b6f6c}.secondary{background:#edf5f3;border-color:#cbdeda;color:#286863}.secondary:hover{background:#dceeea}.primary:active,.secondary:active,.icon-button:active{transform:translateY(1px)}.wide{width:100%;margin-top:.5rem}.text-button{border:0;background:none;color:#286f6c;font-weight:700;padding:.6rem 0}
.password-field{position:relative;display:block;width:100%}.password-field input{display:block;width:100%;padding-right:3rem}.password-field input::-ms-reveal{display:none}.password-toggle{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:2.3rem;height:2.3rem;padding:0;border:0;border-radius:8px;background:transparent;color:#54737b}.password-toggle:hover{background:#edf5f3;color:#286f6c}.password-toggle svg{display:block;pointer-events:none}
.brand-mark{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#2b8a84,#7db9a9);color:white;font-size:.85rem;font-weight:900;letter-spacing:.05em;box-shadow:0 5px 16px rgba(33,111,105,.17)}
.auth-screen{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:linear-gradient(115deg,rgba(247,252,251,.43),rgba(250,250,246,.44))}.auth-card{width:min(100%,420px);padding:2.25rem;border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 22px 70px rgba(36,86,83,.16);border:1px solid rgba(210,231,226,.9)}.auth-card .brand-mark{margin-bottom:1.3rem}.auth-card h1{margin-bottom:.5rem}.auth-card form{display:grid;gap:1rem;margin-top:1.7rem}
.auth-notice{margin:.8rem 0 0;color:#94522c;font-size:.8rem;line-height:1.4}
.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);height:100dvh;min-height:600px;overflow:hidden}.sidebar{display:flex;flex-direction:column;min-height:0;padding:1.4rem .85rem .9rem;background:rgba(250,253,252,.92);backdrop-filter:blur(16px);border-right:1px solid #dbe9e7;box-shadow:4px 0 24px rgba(49,94,91,.04)}.side-brand{display:flex;align-items:center;gap:.7rem;padding:.2rem .55rem 2rem}.side-brand strong{display:block;font-size:.91rem;letter-spacing:-.02em}.side-brand small{display:block;margin-top:.1rem}.side-nav{display:grid;align-content:start;gap:.25rem;min-height:0;overflow:auto}.nav-item{display:flex;align-items:center;gap:.78rem;width:100%;border:0;border-radius:11px;background:transparent;color:#5a707c;text-align:left;font-weight:720;font-size:.83rem;padding:.78rem .85rem}.nav-item:hover{background:#eaf3f1;color:#286c68}.nav-item.active{background:#e0f0ec;color:#1c6b67;box-shadow:inset 3px 0 #328f88}.nav-icon{display:inline-grid;place-items:center;width:1.3rem;font-size:1.1rem;font-weight:500}.sidebar-foot{margin-top:auto;padding:.95rem .55rem .2rem;border-top:1px solid #e0eae8;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:.55rem}.profile-avatar{grid-row:1 / span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#d7eae5;color:#2c6c67;font-weight:800;font-size:.72rem}.profile-copy{min-width:0}.profile-copy strong{display:block;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-copy small{display:block}.side-link{grid-column:1 / -1;width:100%;border:0;background:transparent;text-align:left;color:#54737b;padding:.48rem .15rem;font-size:.77rem;font-weight:650}.side-link:hover{color:#216e6b;text-decoration:underline}
.workspace{min-width:0;min-height:0;display:flex;flex-direction:column;padding:1.25rem clamp(1rem,2vw,2rem) 1rem;background:rgba(250,253,252,.73)}.page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:60px;margin-bottom:1rem}.header-meta{display:flex;align-items:center;gap:.65rem}.timezone{font-size:.75rem;color:#63817d}.profile-chip{border:1px solid #d5e7e2;border-radius:999px;background:#eff7f4;padding:.4rem .7rem;color:#33736d;font-size:.72rem;font-weight:750}.notice{flex:none;padding:.6rem .9rem;margin:0 0 .7rem;border-radius:10px;background:#e7f4ef;border:1px solid #b7dbcf;color:#245b50;font-size:.8rem;white-space:pre-wrap}.main-content{flex:1;min-height:0;display:flex}.panel{flex:1;min-width:0;min-height:0}.calendar-panel{display:flex;flex-direction:column;padding:1rem 1rem .85rem;border:1px solid #d8e8e3;border-radius:18px;background:rgba(255,255,255,.93);box-shadow:0 15px 42px rgba(52,98,93,.08)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.month-nav{display:flex;align-items:center;gap:.5rem}.icon-button{display:grid;place-items:center;width:34px;height:34px;padding:0;border-color:#d5e6e1;background:#f5faf8;color:#397b73;font-size:1.5rem;line-height:1}.month-picker{display:flex;align-items:center;gap:.6rem;font-weight:750}.month-picker span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:#7b9691}.month-picker input{padding:.45rem .55rem;border:none;background:transparent;color:#264f4b;font-weight:800;font-size:1rem;max-width:175px}.calendar-key{display:flex;align-items:center;gap:1rem;min-height:35px;color:#57716f;font-size:.69rem}.calendar-key span{display:flex;align-items:center;gap:.3rem;white-space:nowrap}.calendar-key p{margin:0 0 0 auto;color:#819893;font-size:.67rem;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.key-dot{width:8px;height:8px;border-radius:50%;background:#d5e5e2}.key-dot.mine{background:#2e9988}.key-dot.pending{background:#d7a15c}.key-dot.open{background:#a8c9c0}.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:3px;color:#62817b;text-align:center;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.weekdays span{padding:.22rem}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));gap:4px;flex:1;min-height:0}.day{display:flex;flex-direction:column;min-width:0;min-height:0;padding:.3rem .36rem;background:#fcfefd;border:1px solid #e0eae7;border-radius:9px;text-align:left;color:#2c4a50;overflow:hidden}.day:hover{border-color:#8dbdb2;background:#f5faf7}.day.weekend{background:#f9faf6}.day.empty{background:#f6f8f7;border-style:dashed;opacity:.55;cursor:default}.day.mine{border-color:#7fbead;background:#f2faf6}.day.selected{border-color:#2c9186;box-shadow:inset 0 0 0 1px #2c9186;background:#edf8f4}.day.pending{border-style:dashed;border-color:#d0a264}.day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;font-size:.68rem;font-weight:850;line-height:1.1}.day-count{font-size:.58rem;color:#8ba09b;font-weight:700}.slots{display:grid;grid-template-rows:repeat(6,minmax(0,1fr));gap:1px;flex:1;min-height:0}.slot{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:0 2px;font-size:clamp(.57rem,.62vw,.68rem);line-height:1.13;color:#496a6a}.slot.filled{background:#edf3f1;font-weight:650}.slot.own{background:#cceadd;color:#125f50;font-weight:850}.slot.open{color:#afbfbb}.slot.pending-mark{background:#f9e9d0;color:#8a5b1f;font-weight:750}.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.75rem .2rem 0}.selection-bar strong{display:block;font-size:.8rem;color:#27534f}.selection-bar small{display:block;margin-top:.15rem}.selection-actions{display:flex;gap:.5rem}
.utility-panel{display:flex;flex-direction:column;padding:1.4rem;border:1px solid #d8e8e3;border-radius:18px;background:rgba(255,255,255,.93);box-shadow:0 15px 42px rgba(52,98,93,.08)}.section-heading,.section-row{display:flex;align-items:start;justify-content:space-between;gap:1rem}.section-heading{padding-bottom:1.1rem;border-bottom:1px solid #e2edeb}.section-heading .muted{font-size:.83rem;margin:0}.section-row h3{margin:0}.utility-scroll{overflow:auto;min-height:0;padding-top:1rem;display:grid;align-content:start;gap:1rem}.surface{padding:1.1rem;border:1px solid #e0eae7;border-radius:13px;background:#fff}.surface p{font-size:.82rem;line-height:1.5;color:#536e76}.surface label{max-width:360px}.inline-form{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap}.inline-form label{min-width:190px}.inline-form button{align-self:end}.surface button{margin:.2rem .3rem .2rem 0}.surface #users>p,.surface #audit-events>p,.surface #mail-events>p{padding:.55rem 0;margin:0;border-bottom:1px solid #ecf2f0;font-size:.79rem;line-height:1.5;overflow-wrap:anywhere}.surface #users>p button{margin-left:.5rem}.surface #reviews>.card{padding:.8rem;border:1px solid #e2edeb;border-radius:10px;margin:.65rem 0}.surface #reviews>.card p{margin-bottom:.4rem}
@media(max-height:740px) and (min-width:821px){.workspace{padding-top:.7rem;padding-bottom:.7rem}.page-header{min-height:48px;margin-bottom:.55rem}.calendar-panel{padding:.7rem}.calendar-key{min-height:27px}.selection-bar{padding-top:.4rem}.selection-bar small{display:none}.day{padding:.16rem .25rem}.slot{font-size:.56rem}}
@media(max-width:820px){.app-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding:1rem .45rem}.side-brand{justify-content:center;padding:.15rem 0 1rem}.side-brand>div:last-child,.nav-item:not(.active){font-size:0}.side-brand .brand-mark{width:38px}.nav-item{justify-content:center;font-size:0;padding:.7rem 0}.nav-icon{font-size:1.2rem}.sidebar-foot{display:block;text-align:center;padding:.6rem 0}.profile-copy,.side-link{font-size:0;display:none}.profile-avatar{margin:auto}.workspace{padding:.8rem}.calendar-key p{display:none}}
@media(max-width:640px){body{background-attachment:scroll}.app-shell{display:block;height:auto;min-height:100dvh;overflow:visible}.sidebar{position:sticky;top:0;z-index:10;display:flex;flex-direction:row;align-items:center;padding:.5rem .65rem;border-right:0;border-bottom:1px solid #dbe9e7}.side-brand{padding:0;margin-right:auto}.side-brand .brand-mark{width:32px;height:32px}.side-nav{display:flex;gap:0;overflow:auto}.nav-item{flex:none;width:38px;padding:.5rem}.sidebar-foot{display:none}.workspace{min-height:calc(100dvh - 52px);padding:.7rem}.page-header{margin-bottom:.6rem}.header-meta .timezone{display:none}.calendar-panel{min-height:740px;padding:.6rem}.calendar-key{gap:.4rem;flex-wrap:wrap}.weekdays{gap:2px}.grid{gap:2px}.day{padding:.15rem;border-radius:5px}.day-head{font-size:.6rem}.day-count{display:none}.slot{font-size:.49rem;padding:0 1px}.selection-bar{align-items:stretch;flex-direction:column}.selection-actions{display:grid;grid-template-columns:1fr 1fr}.selection-actions button{padding:.6rem .25rem;font-size:.7rem}.utility-panel{min-height:calc(100dvh - 130px)}.profile-chip{display:none}}
.audit-controls{display:flex;align-items:end;justify-content:space-between;gap:.7rem;flex-wrap:wrap;padding:.8rem 0}.audit-controls label{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.audit-controls select{padding:.45rem .6rem;border:1px solid #ccdcd9;border-radius:8px;background:rgba(255,255,255,.8);font:inherit}.audit-pages{display:flex;align-items:center;gap:.5rem}.audit-pages button{padding:.48rem .7rem}.audit-pages span{min-width:3.8rem;text-align:center;font-size:.78rem;font-weight:750}.audit-controls+.utility-scroll{padding-top:.2rem}
.slots{grid-auto-flow:column;grid-template-columns:repeat(var(--slot-columns,1),minmax(0,1fr));grid-template-rows:repeat(var(--slot-rows,6),minmax(0,1fr));overflow:visible}
