:root{--paper: #ffffff;--paper-2: #f5f7f8;--brand: #01445a;--brand-2: #2aa2cc;--ink: #00394d;--ink-2: #5a6b76;--line: #d3dde3;--line-2: #eaf0f3;--accent: #2aa2cc;--accent-ink: #ffffff;--accent-tint: #e8f5fa;--included: #e8f5fa;--included-ink: #01445a;--hold: #fbf1dc;--hold-ink: #7a5312;--error: #a83a2c;--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-0: .875rem;--fs-1: 1rem;--fs-2: 1.125rem;--fs-3: 1.375rem;--fs-4: 1.75rem;--radius: 10px;--tap: 52px;--col: 640px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-1);line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:2;background:var(--paper);border-bottom:1px solid var(--line-2)}.topbar-inner{max-width:var(--col);margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.wordmark{display:flex;align-items:center;gap:10px}.wordmark img{height:26px;width:auto;display:block}.wordmark span{color:var(--ink-2);font-size:var(--fs-0);padding-left:10px;border-left:1px solid var(--line)}.stage{color:var(--ink-2);font-size:var(--fs-0)}.progress{height:3px;background:var(--line-2)}.progress>i{display:block;height:100%;background:var(--brand-2);transition:width .24s ease}.main{flex:1;width:100%;max-width:var(--col);margin:0 auto;padding:28px 20px 140px}.actions{position:sticky;bottom:0;background:linear-gradient(to top,var(--paper) 70%,rgba(255,255,255,0));padding:16px 20px calc(16px + env(safe-area-inset-bottom))}.actions-inner{max-width:var(--col);margin:0 auto;display:flex;gap:12px}.actions-inner .btn-primary{flex:1}h1{font-size:var(--fs-4);line-height:1.2;font-weight:600;letter-spacing:-.02em;margin:0 0 8px}h2{font-size:var(--fs-3);line-height:1.25;font-weight:600;letter-spacing:-.01em;margin:32px 0 12px}h2:first-child{margin-top:0}.intro{color:var(--ink-2);margin:0 0 24px;max-width:52ch}.help{color:var(--ink-2);font-size:var(--fs-0);margin:4px 0 0}.error-text{color:var(--error);font-size:var(--fs-0);margin:6px 0 0}.btn{min-height:var(--tap);padding:0 20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper);font-weight:500}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--accent-ink)}.btn-quiet{border-color:transparent;color:var(--ink-2);padding:0 12px}.btn-small{min-height:40px;padding:0 14px;font-size:var(--fs-0)}.btn-link{background:none;border:none;padding:0;color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:3px}.field{margin:0 0 24px}.field>label,.field-label{display:block;font-weight:500;margin-bottom:8px}.input{width:100%;min-height:var(--tap);padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-tint)}textarea.input{min-height:96px;resize:vertical}.input-row{display:flex;gap:10px;align-items:center}.input-row .input{flex:1}.unit{color:var(--ink-2)}.choices{display:flex;flex-direction:column;gap:8px}.choice{display:flex;align-items:flex-start;gap:12px;min-height:var(--tap);padding:12px 14px 12px 16px;border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius);background:var(--paper);text-align:left;width:100%}.choice[aria-checked=true],.choice[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint)}.choice .mark{flex:0 0 22px;height:22px;margin-top:1px;border-radius:50%;border:2px solid var(--line);position:relative}.choice.square .mark{border-radius:5px}.choice[aria-checked=true] .mark,.choice[aria-pressed=true] .mark{border-color:var(--accent);background:var(--accent)}.choice[aria-checked=true] .mark:after,.choice[aria-pressed=true] .mark:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.choice .text{flex:1}.choice .text small{display:block;color:var(--ink-2);font-size:var(--fs-0)}.choices.inline{flex-direction:row;flex-wrap:wrap}.choices.inline .choice{width:auto;flex:0 1 auto;padding-right:16px}.choices.inline .choice .text{flex:0 0 auto;white-space:nowrap}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:12px 0;border-bottom:1px solid var(--line-2);width:100%;background:none;border-top:none;border-left:none;border-right:none;text-align:left}.switch-row .label{flex:1;font-weight:500}.switch{flex:0 0 48px;height:28px;border-radius:14px;background:var(--line);position:relative;transition:background .16s ease}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .16s ease}.switch-row[aria-checked=true] .switch{background:var(--accent)}.switch-row[aria-checked=true] .switch:after{transform:translate(20px)}.switch-detail{padding:8px 0 16px;border-bottom:1px solid var(--line-2)}.switch-detail .field{margin-bottom:16px}.switch-detail .field:last-child{margin-bottom:0}.inherited{background:var(--included);color:var(--included-ink);border-radius:var(--radius);padding:12px 14px;margin:0 0 12px}.inherited .btn-link{color:var(--included-ink);margin-left:6px}.inherited .field{margin:12px 0 0;color:var(--ink)}.hold-note{background:var(--hold);color:var(--hold-ink);border-radius:var(--radius);padding:12px 14px;margin:12px 0}.photo-field{margin:12px 0 0}.photo-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.photo-grid img{width:84px;height:84px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.photo-add{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--paper)}.ledger{margin:0;padding:0;list-style:none}.ledger-level{margin-top:24px;font-weight:600;color:var(--ink-2);font-size:var(--fs-0)}.ledger-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:var(--tap);padding:8px 0;border-bottom:1px solid var(--line-2)}.tick{flex:0 0 28px;height:28px;border-radius:7px;border:2px solid var(--line);background:var(--paper);position:relative;padding:0}.tick[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.tick[aria-pressed=true]:after{content:"";position:absolute;left:8px;top:3px;width:7px;height:13px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.ledger-row .name{flex:1;background:none;border:none;padding:6px 0;font-weight:500;min-width:0}.ledger-row .name:focus{outline:none;border-bottom:2px solid var(--accent)}.ledger-row .meta{color:var(--ink-2);font-size:var(--fs-0)}.ledger-row.off .name{color:var(--ink-2);font-weight:400}.ledger-add{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.material-picker{display:flex;gap:6px;flex-basis:100%;padding:2px 0 6px}.chip{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:var(--paper);font-size:var(--fs-0)}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.review-section{margin:0 0 28px}.review-section h2{display:flex;align-items:baseline;gap:10px}.review-section h2 .num{color:var(--ink-2);font-weight:500;font-size:var(--fs-1)}.review-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-2)}.review-line .qty{color:var(--ink-2);white-space:nowrap}.review-line.held:after{content:"Needs review";color:var(--hold-ink);font-size:var(--fs-0)}.review-rooms{color:var(--ink-2);font-size:var(--fs-0)}.picker-results{display:flex;flex-direction:column;gap:6px;margin-top:8px}.picked{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2)}.notice{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:24px 0;color:var(--ink-2)}@media (min-width: 720px){.main{padding-top:40px}.choices.two-up{flex-direction:row}.choices.two-up .choice{flex:1}}.partner{border:1px solid var(--line);border-radius:var(--radius);padding:16px}.partner ol{margin:8px 0 16px;padding-left:20px}.partner li{margin:4px 0}.partner .btn{display:inline-block;text-decoration:none;line-height:var(--tap)}.field.invalid .photo-add{border-color:var(--error);border-style:solid}.picks{display:flex;flex-direction:column;gap:8px}.pick{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);padding:8px 14px;border:1px dashed var(--line);border-radius:var(--radius)}.pick.filled{border-style:solid;border-color:var(--accent);background:var(--accent-tint)}.pick-n{color:var(--ink-2);font-size:var(--fs-0)}.pick-empty{color:var(--ink-2)}.pick-date{background:none;border:none;padding:4px 0;font-weight:600;color:var(--ink)}.pick-date span{color:var(--ink-2);margin-left:6px}.cal{margin:20px 0 8px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-wd{text-align:center;color:var(--ink-2);font-size:var(--fs-0);padding:4px 0}.cal-day{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-weight:500;display:flex;align-items:center;justify-content:center}.cal-day:disabled{color:var(--line);border-color:var(--line-2);background:var(--paper-2);cursor:default}.cal-day.holiday:disabled{text-decoration:line-through}.cal-day.sel{background:var(--brand);border-color:var(--brand);color:#fff}.cal-rank{position:absolute;top:3px;right:4px;font-style:normal;font-size:10px;line-height:1;background:#fff;color:var(--brand);border-radius:8px;padding:2px 4px;font-weight:600}.summary{border:1px solid var(--line);border-radius:var(--radius);padding:4px 16px}.summary-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-2)}.summary-row:last-child{border-bottom:none}.summary-row span{color:var(--ink-2);flex:0 0 auto}.summary-row strong{font-weight:500;text-align:right}
