:root{--ink: #0b2239;--ink-2: #1d4e79;--ink-3: #3e6485;--paper: #e4ecf3;--paper-2: #fbfdfe;--paper-3: #f0f5f9;--line: #bed0e0;--line-soft: #d7e3ed;--signal: #f2a116;--signal-deep: #c47a00;--alarm: #bb3324;--ok: #14705c;--font-display: "Futura", "Avenir Next", "Century Gothic", "URW Gothic", "Trebuchet MS", system-ui, sans-serif;--font-body: "Optima", "Gill Sans", "Gill Sans MT", "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--gap: clamp(16px, 2.2vw, 28px);--hatch: repeating-linear-gradient( -45deg, rgba(29, 78, 121, .6) 0 1.5px, transparent 1.5px 6px );--hatch-alarm: repeating-linear-gradient( -45deg, rgba(187, 51, 36, .75) 0 1.5px, transparent 1.5px 6px )}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55;background-color:var(--paper);background-image:linear-gradient(to right,rgba(11,34,57,.05) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(11,34,57,.05) 0 1px,transparent 1px),linear-gradient(to right,rgba(11,34,57,.045) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(11,34,57,.045) 0 1px,transparent 1px);background-size:9px 9px,9px 9px,45px 45px,45px 45px}h1,h2,h3,p,ul,figure{margin:0}ul{padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.desk{max-width:1180px;margin:0 auto;padding:clamp(18px,3vw,44px) clamp(14px,3vw,32px) 64px;display:flex;flex-direction:column;gap:var(--gap)}.columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:var(--gap);align-items:start}.panel{background:var(--paper-2);border:1px solid var(--line);border-radius:3px;box-shadow:0 1px #0b22390f;padding:clamp(16px,2vw,24px);animation:rise .5s cubic-bezier(.2,.7,.3,1) both}.columns .sheet{animation-delay:.08s}.ledger{animation-delay:.14s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.eyebrow{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}.titleblock{border:1px solid var(--ink);border-radius:3px;background:var(--paper-2);overflow:hidden;animation:rise .5s cubic-bezier(.2,.7,.3,1) both}.titleblock__top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:10px clamp(14px,2vw,22px);border-bottom:1px solid var(--ink);background:var(--ink);color:var(--paper-2)}.mark{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.28em;text-transform:uppercase}.mark__dot{width:5px;height:5px;border-radius:50%;background:var(--signal)}.mark__sub{font-size:10px;letter-spacing:.18em;color:#a9c4dc}.switch{display:flex;gap:4px}.switch__tab{border:1px solid rgba(233,240,246,.35);background:transparent;color:#cfe0ee;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;padding:5px 12px;border-radius:2px;transition:background-color .16s ease,color .16s ease}.switch__tab:hover{background:#e9f0f61f;color:#fff}.switch__tab[aria-current=true]{background:var(--signal);border-color:var(--signal);color:var(--ink)}.titleblock__name{padding:clamp(14px,1.8vw,22px) clamp(14px,2vw,22px) 16px}.titleblock__name h1{font-family:var(--font-display);font-size:clamp(28px,3.8vw,40px);font-weight:500;line-height:1.02;letter-spacing:.02em;text-transform:uppercase}.titleblock__place{margin-top:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase}.titleblock__blurb{margin-top:10px;max-width:46ch;color:var(--ink-2)}.titleblock__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;border-top:1px solid var(--ink);background:var(--paper-2)}.field{padding:10px 14px;background:var(--paper-2);box-shadow:1px 0 0 var(--line),0 1px 0 var(--line-soft);display:flex;flex-direction:column;gap:3px;min-width:0}.field__label{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.field__value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;text-transform:capitalize}.plan__head,.sheet__head,.ledger__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.plan__nav{display:flex;align-items:center;gap:8px}.plan__month{font-family:var(--font-display);font-size:15px;letter-spacing:.1em;text-transform:uppercase;min-width:11ch;text-align:center}.ghost{background:transparent;border:1px solid var(--line);border-radius:2px;font-family:var(--font-mono);font-size:12px;padding:4px 9px;color:var(--ink-2);transition:border-color .16s ease,background-color .16s ease,color .16s ease}.ghost:hover:not(:disabled){border-color:var(--ink);background:var(--paper-3);color:var(--ink)}.ghost:disabled{opacity:.4}.ghost--text{border-color:transparent;text-decoration:underline;text-underline-offset:3px;padding-inline:4px}.grid{border:1px solid var(--line);border-radius:2px;overflow:hidden}.grid__weekdays,.grid__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.grid__weekdays{background:var(--paper-3);border-bottom:1px solid var(--line)}.grid__weekday{padding:7px 8px;font-family:var(--font-display);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);border-right:1px solid var(--line-soft)}.grid__weekday:last-child{border-right:0}.cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:66px;padding:6px 8px;border:0;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--paper-2);text-align:left;transition:background-color .16s ease}.cell:nth-child(7n){border-right:0}.cell:nth-child(n+36){border-bottom:0}.cell:hover:not(:disabled){background:var(--paper-3)}.cell--outside{background:var(--paper-3);color:#9db4c8}.cell--past:disabled{color:#a5bacc}.cell__day{position:relative;z-index:1;display:inline-block;padding:0 4px;margin-left:-4px;border-radius:2px;font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;line-height:1.45}.cell--today .cell__day{background:var(--ink);color:var(--paper-2)}.cell__rate{position:absolute;right:7px;bottom:5px;font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-3);letter-spacing:.02em}.cell--outside .cell__rate,.cell--past .cell__rate{color:#a5bacc}.half{position:absolute;top:46%;bottom:28%;transition:left .16s ease,right .16s ease}.half--am{left:-1px;right:50%}.half--pm{left:50%;right:0}.cell--seam .half--am{right:calc(50% + 2px)}.cell--seam .half--pm{left:calc(50% + 2px)}.half--am.half--capped{border-radius:0 999px 999px 0}.half--pm.half--capped{border-radius:999px 0 0 999px}.half--booked{background-image:var(--hatch);background-color:#1d4e791a}.half--picked{background-color:var(--signal);box-shadow:inset 0 1px #935b0073,inset 0 -1px #935b0073}.half--pending{background-image:repeating-linear-gradient(90deg,var(--signal) 0 7px,transparent 7px 12px)}.half--conflict{background-color:#bb332424;background-image:var(--hatch-alarm)}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:14px;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.legend li{display:flex;align-items:center;gap:7px}.legend__note{margin-left:auto}.key{width:26px;height:9px;border-radius:999px;border:1px solid var(--line)}.key--free{background:var(--paper-2)}.key--booked{background-color:#1d4e791a;background-image:var(--hatch);border-color:transparent}.key--am{background-image:var(--hatch),linear-gradient(90deg,rgba(29,78,121,.1) 0 50%,transparent 50%);background-size:50% 100%,100% 100%;background-repeat:no-repeat,no-repeat;border-color:var(--line-soft)}.key--picked{background:var(--signal);border-color:var(--signal-deep)}.stay{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:2px;background:var(--paper-3)}.stay__leg{display:flex;flex-direction:column;gap:2px;min-width:0}.stay__leg--out{text-align:right}.stay__label{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.stay__date{font-family:var(--font-mono);font-size:15px;letter-spacing:-.01em}.stay__hint{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}.stay__nights{display:flex;align-items:center;gap:5px}.stay__rule{width:14px;height:1px;background:var(--ink-3)}.stay__count{font-family:var(--font-mono);font-size:11px;color:var(--ink);min-width:2.5ch;text-align:center}.controls{display:flex;flex-wrap:wrap;gap:10px 18px;margin:16px 0}.stepper,.discount{display:flex;flex-direction:column;gap:5px}.stepper__label{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.stepper__controls{display:flex;align-items:center;gap:4px}.stepper__value{font-family:var(--font-mono);font-size:14px;min-width:2ch;text-align:center}.discount__field{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:14px}.discount__field input{width:5.5ch;font:inherit;color:inherit;padding:3px 5px;border:1px solid var(--line);border-radius:2px;background:var(--paper-2)}.prompt{font-size:14px;color:var(--ink-2);padding:10px 12px;border-left:2px solid var(--line);background:var(--paper-3)}.alert{font-size:14px;color:#7d1e14;padding:10px 12px;border-left:2px solid var(--alarm);background:#bb332412}.confirmed{margin-bottom:14px;font-size:14px;color:var(--ok);padding:10px 12px;border-left:2px solid var(--ok);background:#14705c12}.receipt{margin:16px 0 18px}.line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dotted var(--line)}.line__label{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:14px}.line__note{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3)}.line__amount{font-family:var(--font-mono);font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.line--credit .line__amount{color:var(--ok)}.line--subtotal{border-bottom:1px solid var(--ink-3);margin-top:4px}.line--subtotal .line__label,.line--subtotal .line__amount{font-weight:600}.line--total{border-bottom:0;border-top:2px solid var(--ink);margin-top:6px;padding-top:10px}.line--total .line__label{font-family:var(--font-display);font-size:12px;letter-spacing:.2em;text-transform:uppercase}.line--total .line__amount{font-size:22px;letter-spacing:-.02em}.tape{margin:2px 0 8px;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.tape summary{cursor:pointer;padding:4px 0;letter-spacing:.04em}.tape ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:2px 16px;padding:6px 0 8px}.tape li{display:flex;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums;border-bottom:1px dotted var(--line-soft)}.receipt__foot{margin-top:12px;font-size:13px;color:var(--ink-2)}.confirm{display:block;width:100%;padding:13px 16px;border:1px solid var(--ink);border-radius:2px;background:var(--signal);color:var(--ink);font-family:var(--font-display);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;transition:transform .12s ease,box-shadow .16s ease,background-color .16s ease;box-shadow:2px 2px 0 var(--ink)}.confirm:hover:not(:disabled){background:#ffb32e;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}.confirm:active:not(:disabled){transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}.confirm:disabled{background:var(--paper-3);border-style:dashed;border-color:var(--line);color:var(--ink-3);box-shadow:none}.ledger__count{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.ledger__table{width:100%;border-collapse:collapse}.ledger__table th{text-align:left;font-family:var(--font-display);font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);padding:0 10px 8px 0;border-bottom:1px solid var(--line)}.ledger__table td{padding:10px 10px 10px 0;border-bottom:1px dotted var(--line);vertical-align:baseline;font-size:14px}.ledger__table .num{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.row__dates{font-family:var(--font-mono);font-size:13px;margin-right:10px;white-space:nowrap}.row__notice{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.row__action{text-align:right}.row--cancelled td{color:var(--ink-3)}.row--cancelled .row__dates{text-decoration:line-through}.chip{display:inline-block;font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid currentColor;vertical-align:1px}.chip--confirmed{color:var(--ok)}.chip--cancelled{color:var(--ink-3)}.foot{font-family:var(--font-mono);font-size:11.5px;line-height:1.7;color:var(--ink-3);border-top:1px solid var(--line);padding-top:14px;max-width:78ch}@media(max-width:980px){.columns{grid-template-columns:minmax(0,1fr)}.cell{min-height:56px}.legend__note{margin-left:0;width:100%}}@media(max-width:620px){body{font-size:14px}.cell{min-height:48px;padding:4px 6px}.cell__rate{right:5px;bottom:3px;font-size:9.5px}.ledger__table .row__notice,.ledger__table th:nth-child(4){display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
