:root{--ink:#3c2218;--ink-2:#794a39;--ink-3:#96604f;--paper:#faf9f6;--card:#fff;--cream:#fcf2e8;--rule:#e9dcd4;--rule-soft:#f4ebe4;--accent:#df957a;--accent-text:#a85030;--accent-soft:#fff5f0;--accent-ink:#3c2218;--blush:#e6bcab;--label:#8a6455;--critical:#b8452f;--critical-soft:#fff5f0;--high:#9a5a25;--high-soft:#fdf3e9;--info:#7b6155;--info-soft:#f7f1ed;--good:#55704d;--good-soft:#f0f4ee;--display:"Playfair Display", Georgia, "Times New Roman", serif;--body:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"DM Sans", system-ui, sans-serif;--radius:14px;--radius-sm:11px;--shadow:0 2px 14px #3c221817;--shadow-lg:0 4px 28px #3c221824;--maxw:720px}@media (prefers-color-scheme:dark){:root{--ink:#f6ece5;--ink-2:#d8bfb1;--ink-3:#ad8c7c;--paper:#1c120d;--card:#271913;--cream:#2f1e16;--rule:#3d2820;--rule-soft:#33211a;--accent:#e7a68d;--accent-text:#f0b79f;--label:#c2a294;--accent-soft:#38221b;--accent-ink:#1c120d;--blush:#c99a86;--critical:#f0907c;--critical-soft:#3a1f19;--high:#dda86a;--high-soft:#33241a;--info:#c3aa9c;--info-soft:#2b1f1a;--good:#a2c098;--good-soft:#1f2a1e;--shadow:0 2px 14px #00000073;--shadow-lg:0 8px 32px #0009}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--display);letter-spacing:0;margin:0;line-height:1.14}h1{font-size:clamp(30px,6vw,42px);font-weight:400}h2{font-size:clamp(21px,3.6vw,27px);font-weight:400}h3{font-size:18px;font-weight:500}.serif-em{color:var(--accent-text);font-style:italic}p{margin:0 0 14px}a{color:var(--accent-text)}.eyebrow{font-family:var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--label);font-size:10px;font-weight:700}.muted{color:var(--ink-3)}.small{font-size:14px}.tiny{font-size:12.5px}.center{text-align:center}.stack>*+*{margin-top:12px}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1}.shell{max-width:var(--maxw);margin:0 auto;padding:24px 20px 120px}.shell-wide{max-width:980px}.topbar{z-index:20;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:0}.topbar-inner{align-items:center;gap:14px;max-width:980px;margin:0 auto;padding:10px 20px;display:flex}.brand{font-family:var(--display);letter-spacing:.01em;color:var(--accent);font-size:25px;font-style:italic;font-weight:400;line-height:1.05;text-decoration:none}.brand span{color:var(--ink)}.wordmark{flex-direction:column;text-decoration:none;display:flex}.tagline{font-family:var(--display);letter-spacing:.04em;color:var(--ink-3);margin-top:-2px;font-size:11.5px}.tagline em{color:var(--accent-text);font-style:italic}.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:18px}.card+.card{margin-top:14px}.card-flush{padding:0;overflow:hidden}button,.btn{font:inherit;letter-spacing:.01em;border:1px solid var(--rule);background:var(--card);color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 22px;font-weight:500;text-decoration:none;transition:transform 60ms,border-color .12s,background .12s;display:inline-flex}button:hover:not(:disabled),.btn:hover{border-color:var(--ink-3)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.72;cursor:not-allowed;filter:saturate(.55)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);min-height:52px;font-weight:600;box-shadow:0 1px 2px #3c22180f}.btn-primary:hover:not(:disabled){filter:brightness(1.06);border-color:var(--accent)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000;padding:8px 12px}.btn-ghost:hover{background:var(--rule-soft);border-color:#0000}.btn-block{width:100%}.btn-sm{padding:7px 14px;font-size:14px}.btn-danger{color:var(--critical);border-color:color-mix(in srgb, var(--critical) 35%, transparent);background:0 0}input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],textarea,select{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--rule);background:var(--card);width:100%;color:var(--ink);padding:12px 14px}textarea{resize:vertical;min-height:110px;line-height:1.5}input:focus-visible,textarea:focus-visible,button:focus-visible,.choice:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label.field{margin-bottom:14px;display:block}label.field>span{color:var(--ink-2);margin-bottom:5px;font-size:14px;display:block}.choices{gap:9px;display:grid}.choice{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--rule);background:var(--card);cursor:pointer;align-items:flex-start;gap:12px;width:100%;padding:13px 15px;line-height:1.4;display:flex}.choice:hover{border-color:var(--ink-3)}.choice[aria-pressed=true],.choice.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.choice{border-radius:var(--radius-sm)}.choice-mark{border:1.5px solid var(--rule);color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;font-size:12px;display:grid}.choice.square .choice-mark{border-radius:6px}.choice[aria-pressed=true] .choice-mark{background:var(--accent-text);border-color:var(--accent-text)}.choice-label{font-weight:500}.choice-help{color:var(--ink-3);margin-top:2px;font-size:13.5px;font-weight:400;display:block}.swatches{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;display:grid}.swatch{border:1px solid var(--rule);border-radius:var(--radius-sm);cursor:pointer;background:var(--card);padding:0;overflow:hidden}.swatch-chip{height:74px}.swatch-name{color:var(--ink-2);text-align:center;padding:8px 10px;font-size:13px}.swatch[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent);border-color:var(--accent)}.swatch[aria-pressed=true] .swatch-name{color:var(--accent-text);font-weight:600}.levelbar{grid-template-columns:repeat(10,1fr);gap:4px;margin:4px 0 6px;display:grid}.level{aspect-ratio:1/1.5;border:1px solid var(--rule);cursor:pointer;font-family:var(--mono);color:#00000080;border-radius:6px;place-items:end center;padding:0;font-size:10px;display:grid;position:relative;overflow:hidden}.level[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.level span{padding-bottom:3px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.photo-slot{aspect-ratio:3/4;border-radius:var(--radius-sm);border:1px dashed var(--rule);background:var(--rule-soft);cursor:pointer;text-align:center;place-items:center;padding:10px;display:grid;position:relative;overflow:hidden}.photo-slot img{object-fit:cover;width:100%;height:100%}.photo-slot.filled{border-style:solid}.photo-slot input[type=file]{display:none}.photo-kind{color:#fff;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:#0000009e;border-radius:5px;padding:3px 7px;font-size:10px;position:absolute;top:8px;left:8px}.photo-remove{color:#fff;background:#0000009e;border:0;padding:4px 9px;font-size:12px;position:absolute;top:6px;right:6px}.ref{border:1px solid var(--rule);border-radius:var(--radius-sm);overflow:hidden}.ref-image{cursor:crosshair;position:relative}.ref-image img{width:100%;display:block}.ref-pin{background:var(--accent);color:var(--accent-ink);white-space:nowrap;border:2px solid var(--card);box-shadow:var(--shadow);border-radius:999px;padding:3px 9px;font-size:12px;position:absolute;transform:translate(-50%,-50%)}.ref-tags{flex-wrap:wrap;gap:7px;padding:10px 12px;display:flex}.tag{background:var(--accent-soft);color:var(--accent-text);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:999px;padding:4px 11px;font-size:13px}.tag button{all:unset;cursor:pointer;opacity:.6;margin-left:6px}.progress{background:var(--rule-soft);border-radius:999px;height:4px;overflow:hidden}.progress>i{background:var(--accent);height:100%;transition:width .3s;display:block}.steps{scrollbar-width:none;gap:5px;padding-bottom:4px;display:flex;overflow-x:auto}.steps::-webkit-scrollbar{display:none}.step-chip{border:1px solid var(--rule);background:var(--card);color:var(--ink-3);white-space:nowrap;cursor:pointer;border-radius:999px;padding:5px 11px;font-size:12.5px}.step-chip.done{color:var(--good);border-color:color-mix(in srgb, var(--good) 30%, transparent)}.step-chip.current{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.invite-note{background:var(--cream);border-radius:var(--radius);font-family:var(--display);color:var(--ink-2);margin-top:20px;padding:16px 18px;font-size:17px;font-style:italic;line-height:1.5}.invite-note .eyebrow{font-family:var(--body);font-style:normal}.prefilled-note{color:var(--accent-text);background:var(--accent-soft);border-radius:var(--radius-sm);margin:0 0 12px;padding:8px 11px;font-size:13px}.code{font-family:var(--body);letter-spacing:.16em;color:var(--ink);font-size:30px;font-weight:700}.code-input{text-align:center;letter-spacing:.14em;text-transform:uppercase;font-size:26px;font-weight:700}.note-panel{border-left:2px solid var(--accent);background:var(--cream);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-2);padding:12px 14px;font-size:14.5px}.note-panel .eyebrow{color:var(--accent-text);margin-bottom:4px;display:block}.flag{border-radius:var(--radius-sm);border:1px solid #0000;padding:12px 14px}.flag+.flag{margin-top:9px}.flag-critical{background:var(--critical-soft);border-color:color-mix(in srgb, var(--critical) 30%, transparent)}.flag-high{background:var(--high-soft);border-color:color-mix(in srgb, var(--high) 28%, transparent)}.flag-info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 22%, transparent)}.flag-title{font-weight:600;line-height:1.35}.flag-critical .flag-title{color:var(--critical)}.flag-high .flag-title{color:var(--high)}.flag-info .flag-title{color:var(--info)}.flag-detail{color:var(--ink-2);margin-top:3px;font-size:14.5px}.pill{font-family:var(--body);letter-spacing:.01em;background:var(--cream);color:var(--ink-2);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.pill-critical{background:var(--critical-soft);color:var(--critical);border-color:#0000}.pill-high{background:var(--high-soft);color:var(--high);border-color:#0000}.pill-good{background:var(--good-soft);color:var(--good);border-color:#0000}.pill-accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.brief-section{border-top:1px solid var(--rule);margin-top:20px;padding-top:16px}.brief-section>h3{margin-bottom:10px}.facts{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px 18px;display:grid}.fact-label{letter-spacing:.15em;text-transform:uppercase;color:var(--label);font-size:10px;font-weight:700}.fact-value{font-size:15px}.fact-qualifier{color:var(--ink-3);font-size:13px}.quote{font-family:var(--display);border-left:3px solid var(--ink);padding-left:14px;font-size:20px;font-style:italic;line-height:1.4}.lift-scale{grid-template-columns:repeat(10,1fr);gap:3px;margin:10px 0 6px;display:grid}.lift-cell{aspect-ratio:1/1.4;font-family:var(--mono);color:#0000008c;border-radius:5px;place-items:center;font-size:10px;display:grid;position:relative}.lift-marker{border:2px solid var(--ink);border-radius:7px;position:absolute;inset:-3px}.lift-marker.target{border-color:var(--accent-text);border-style:dashed}.lift-legend{color:var(--ink-3);gap:14px;font-size:12.5px;display:flex}.translation{grid-template-columns:1fr auto 1fr;align-items:baseline;gap:10px;display:grid}.translation+.translation{border-top:1px solid var(--rule-soft);margin-top:10px;padding-top:10px}.translation .arrow{color:var(--ink-3);font-family:var(--mono)}.translation .said{font-family:var(--display);font-size:17px;font-style:italic}.translation .means{color:var(--ink-2)}.translation.conflict .said{color:var(--high)}.appt{border-bottom:1px solid var(--rule);color:inherit;grid-template-columns:78px 1fr auto;align-items:center;gap:14px;padding:15px 16px;text-decoration:none;display:grid}.appt:last-child{border-bottom:0}.appt:hover{background:var(--rule-soft)}.appt-time{font-family:var(--mono);color:var(--ink-2);font-size:14px}.appt-name{font-family:var(--display);font-size:19px;font-weight:500}.appt-meta{color:var(--ink-3);font-size:13.5px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;display:grid}.stat{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:12px 14px}.stat-value{font-family:var(--display);font-size:27px;font-weight:400;line-height:1.1}.stat-label{letter-spacing:.15em;text-transform:uppercase;color:var(--label);margin-top:4px;font-size:10px;font-weight:700}.msg{border-radius:16px;max-width:78%;padding:10px 14px;font-size:15px;line-height:1.45}.msg-client{background:var(--rule-soft);border-bottom-left-radius:5px;align-self:flex-start}.msg-stylist{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:5px;align-self:flex-end}.msg-list{flex-direction:column;gap:9px;display:flex}.msg-time{opacity:.65;margin-top:3px;font-size:11px}.sticky-actions{padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--rule);z-index:30;position:fixed;bottom:0;left:0;right:0}.sticky-inner{max-width:var(--maxw);align-items:center;gap:10px;margin:0 auto;display:flex}.spinner{border:2px solid var(--rule);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.saving{color:var(--ink-3);align-items:center;gap:6px;font-size:12.5px;display:flex}.banner{border-radius:var(--radius-sm);border:1px solid #0000;padding:11px 14px;font-size:14.5px}.banner-error{background:var(--critical-soft);color:var(--critical);border-color:color-mix(in srgb, var(--critical) 25%, transparent)}.banner-good{background:var(--good-soft);color:var(--good);border-color:color-mix(in srgb, var(--good) 25%, transparent)}.banner-info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb, var(--info) 20%, transparent)}.divider{border:0;border-top:1px solid var(--rule);margin:22px 0}@media (width<=560px){.appt{grid-template-columns:64px 1fr}.appt-right{grid-column:2}}@media print{.topbar,.sticky-actions,button{display:none!important}body{background:#fff}.card{border:0;padding:0}}
