:root{--paper: #eef1f5;--raised: #fbfcfe;--ink: #1a1c22;--ink-70: rgba(26, 28, 34, .7);--ink-50: rgba(26, 28, 34, .5);--ink-35: rgba(26, 28, 34, .35);--line: rgba(26, 28, 34, .13);--line-bold: rgba(26, 28, 34, .28);--accent: #a6cff1;--accent-strong: #86bce8;--accent-deep: #356a9e;--accent-wash: #e2eef9;--ok: #2f7d4f;--ok-wash: #e2efe4;--warn: #9a6510;--warn-wash: #f1e6cf;--bad: #bd3526;--bad-wash: #f1ddd8;--ease: cubic-bezier(.16, 1, .3, 1);--radius: 14px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--paper);color:var(--ink);line-height:1.55;font-size:15px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:var(--ink)}a{color:inherit}.shell{max-width:540px;margin:0 auto;padding:clamp(28px,7vw,56px) 20px 72px}.shell--wide{max-width:760px}.masthead{margin-bottom:28px;animation:rise .6s var(--ease) both}.masthead__top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-50);display:inline-flex;align-items:center;gap:8px}.eyebrow:before{content:"";width:22px;height:2px;background:var(--accent-deep)}.display{font-size:clamp(2.1rem,8vw,3rem);font-weight:600;letter-spacing:-.04em;line-height:1.02;text-wrap:balance}.display .accent{color:var(--accent-deep)}.lede{margin-top:12px;color:var(--ink-70);font-size:.98rem;max-width:38ch}.card{background:var(--raised);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,5vw,28px);margin-bottom:16px;box-shadow:0 1px 2px #1a1c220a;animation:rise .6s var(--ease) both}.card:nth-of-type(2){animation-delay:.07s}.card:nth-of-type(3){animation-delay:.14s}.card__title{font-size:1.05rem;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}.card__hint{font-size:.82rem;color:var(--ink-50);margin-bottom:18px}.field{margin-bottom:16px}.field:last-of-type{margin-bottom:0}.field label{display:block;font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-50);margin-bottom:7px}input,select,textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}input::placeholder,textarea::placeholder{color:var(--ink-35)}input:focus,select:focus,textarea:focus{outline:none;background:var(--raised);border-color:var(--accent-deep);box-shadow:0 0 0 4px var(--accent-wash)}textarea{resize:vertical;min-height:76px}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M3 5l4 4 4-4' stroke='%231a1c22' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:.92rem;font-weight:600;letter-spacing:-.01em;border:1.5px solid transparent;border-radius:10px;padding:11px 18px;cursor:pointer;transition:transform .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--block{width:100%;margin-top:20px}.btn--primary{background:var(--accent);color:var(--ink)}.btn--primary:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-bold)}.btn--ghost:hover:not(:disabled){border-color:var(--ink);background:#1a1c220a}.btn--ok{background:var(--ok);color:#fff}.btn--ok:hover:not(:disabled){filter:brightness(.92);transform:translateY(-1px)}.btn--bad{background:transparent;color:var(--bad);border-color:var(--bad)}.btn--bad:hover:not(:disabled){background:var(--bad);color:#fff}.btn--sm{font-size:.8rem;padding:8px 13px}.textlink{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:500;color:var(--ink-70);text-decoration:none;border-bottom:1.5px solid transparent;transition:color .2s var(--ease),border-color .2s var(--ease)}.textlink:hover{color:var(--accent-deep);border-color:var(--accent-deep)}.note{margin-top:14px;padding:12px 14px;border-radius:10px;font-size:.86rem;border-left:3px solid}.note--error{background:var(--bad-wash);border-color:var(--bad);color:#7c241a}.note--ok{background:var(--ok-wash);border-color:var(--ok);color:#1f5638}.note--warn{background:var(--warn-wash);border-color:var(--warn);color:#6b470b}.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal__month{font-size:1rem;font-weight:600;letter-spacing:-.01em}.cal__nav{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;font-size:1.1rem;background:transparent;border:1.5px solid var(--line);border-radius:9px;cursor:pointer;color:var(--ink);transition:border-color .18s var(--ease),background .18s var(--ease)}.cal__nav:hover{border-color:var(--ink);background:#1a1c220a}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal__dow{text-align:center;font-size:.64rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-35);padding-bottom:4px}.cal__day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.92rem;font-weight:500;font-variant-numeric:tabular-nums;background:var(--paper);border:1.5px solid var(--line);border-radius:10px;cursor:pointer;transition:transform .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease)}.cal__day:hover:not(.is-past):not(.is-selected){border-color:var(--ink);transform:translateY(-2px)}.cal__day.is-empty{border:none;background:none;cursor:default}.cal__day.is-past{color:var(--ink-35);background:transparent;border-color:transparent;cursor:not-allowed}.cal__day.is-today{border-color:var(--ink)}.cal__day.is-selected{background:var(--ink);border-color:var(--ink);color:var(--raised)}.cal__dot{position:absolute;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--accent-deep)}.cal__day.is-selected .cal__dot{background:var(--raised)}.cal__legend{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:.76rem;color:var(--ink-50)}.cal__legend i{width:6px;height:6px;border-radius:50%;background:var(--accent-deep)}.slots{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.slots__label{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-50);margin-bottom:2px}.slot{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--ink-35);border-radius:10px;transition:border-color .2s var(--ease)}.slot.is-approved{border-left-color:var(--ok)}.slot.is-pending{border-left-color:var(--warn)}.slot.is-clash{border-color:var(--bad);border-left-color:var(--bad);background:var(--bad-wash)}.slot__time{font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.slot__who{color:var(--ink-50);font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot__tag{margin-left:auto;flex-shrink:0}.tag{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 9px;border-radius:999px}.tag.pending{background:var(--warn-wash);color:var(--warn)}.tag.approved{background:var(--ok-wash);color:var(--ok)}.tag.rejected{background:var(--bad-wash);color:var(--bad)}.readout{display:flex;align-items:baseline;gap:8px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-bold);font-size:.9rem}.readout span{color:var(--ink-50)}.readout strong{font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.wa{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:14px;padding:13px;background:var(--ink);color:var(--raised);text-decoration:none;border-radius:10px;font-weight:600;font-size:.92rem;transition:transform .18s var(--ease),background .18s var(--ease)}.wa:hover{background:#000;transform:translateY(-1px)}.booking{background:var(--raised);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:12px;animation:rise .5s var(--ease) both}.booking__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.booking__name{font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.booking__purpose{color:var(--ink-70);font-size:.92rem;margin-bottom:10px}.booking__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.82rem;color:var(--ink-50);font-variant-numeric:tabular-nums;padding-bottom:14px;margin-bottom:14px;border-bottom:1px dashed var(--line)}.booking__meta b{color:var(--ink);font-weight:600}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.empty{text-align:center;padding:48px 24px;border:1.5px dashed var(--line-bold);border-radius:var(--radius);color:var(--ink-50)}.empty__mark{font-size:2.4rem;font-weight:600;letter-spacing:-.05em;color:var(--ink-35);margin-bottom:6px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px}@keyframes rise{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
