:root{--background: #FFFEF3;--surface: #FFFFFF;--surface-muted: #EAF3EE;--border: #E3ECE7;--text: #15201C;--text-secondary: #56625C;--text-tertiary: #67726C;--accent: #07A28D;--accent-pressed: #0B6E5F;--accent-text: #08796A;--accent-soft: #DDF4EC;--accent-soft-text: #0B6E5F;--fresh-soft: #E6F7DA;--fine-text: #33701F;--over-text: #A8301F;--over-soft: #FBE3DD;--gap-bg: #FDEBD3;--gap-text: #95500A;--switch-off: #C9D4CE;--font-display: "Caprasimo", Georgia, serif;--font-sans: "Figtree", system-ui, sans-serif;--shadow-card: 0 0 0 1px #E3ECE7, 0 6px 16px -12px rgb(20 60 45 / .14);--shadow-fab: 0 10px 24px -6px rgb(8 121 106 / .4), 0 2px 6px rgb(8 121 106 / .2);color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font:400 16px/1.55 var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;text-wrap:balance}h1{font-size:clamp(30px,4vw,40px);line-height:1.05;margin:0 0 6px}h2{font-size:24px;line-height:1.1;margin:0 0 10px}h3{font-size:16px;font-weight:700;margin:18px 0 6px}a{color:var(--accent-text)}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:2px}.page{max-width:1200px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:16px}.page.narrow{max-width:460px;padding-top:56px}.top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:0 24px;min-height:76px;background:color-mix(in srgb,var(--background) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--border);gap:12px;flex-wrap:wrap}.top nav{display:flex;gap:24px;align-items:center;font-weight:600;flex-wrap:wrap}.top nav a{color:var(--text);text-decoration:none}.top nav a:hover{color:var(--accent-text)}.top nav a[aria-current=page]{color:var(--accent-text)}.navmenu{position:relative}.navmenu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.navmenu>summary::-webkit-details-marker{display:none}.navmenu>summary .count{margin-left:0}.navmenu>summary:after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}.navmenu[open]>summary:after{transform:translateY(1px) rotate(-135deg)}.navmenu>summary:hover,.navmenu.on>summary{color:var(--accent-text)}.navlist{position:absolute;top:calc(100% + 12px);left:-14px;z-index:30;min-width:230px;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:8px;max-height:calc(100vh - 100px);overflow-y:auto;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-card),0 16px 32px -16px #143c2d40}.navmenu.end .navlist{left:auto;right:-14px}.navlist>a,.navlist>button.link{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;color:var(--text);font-weight:600;font-size:15px;width:100%}.navlist>a:hover,.navlist>button.link:hover:not(:disabled){background:var(--surface-muted);text-decoration:none}.navlist>.prefs{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px 4px;margin-top:4px;border-top:1px solid var(--border)}@media(max-width:640px){.top nav{gap:6px 18px}.top nav{position:relative;width:100%}.navmenu{position:static}.navlist,.navmenu.end .navlist{left:0;right:0;top:calc(100% + 8px);min-width:0}}.brand,.brand-big{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:400;color:var(--accent-pressed);text-decoration:none;font-size:30px;line-height:1}.brand-big{font-size:46px;margin:0 0 12px}.tag{font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent-soft-text);padding:5px 10px;border-radius:999px;align-self:center}.foot{max-width:1200px;margin:32px auto;padding:0 24px;color:var(--text-tertiary);font-size:13px}.card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow-card);padding:22px}.card.flush{padding:20px 0 10px;overflow-x:auto}.scrollx{overflow-x:auto;max-width:100%}.card.flush h2,.card.flush .pad{padding:0 22px}.card.head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;background:var(--surface-muted);box-shadow:none;border-radius:30px;padding:28px}.card.head p{margin:6px 0 0}.form{display:flex;flex-direction:column;gap:14px}label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}label.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}input[type=email],input[type=password],input[type=number],input[type=date],input[type=tel],input[type=url],input[type=datetime-local],input[type=time],input:not([type]),select{height:48px;border-radius:14px;border:1px solid var(--border);padding:0 14px;font:inherit;font-weight:400;background:var(--surface);color:var(--text)}input.short{width:90px}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:1px}button{font:inherit;cursor:pointer;border-radius:999px;border:0;height:40px;padding:0 18px;background:var(--accent-soft);color:var(--accent-soft-text);font-weight:700;font-size:14px;transition:background .2s}button:hover:not(:disabled){background:#cbeedf}button:disabled{opacity:.45;cursor:default}button.primary{height:52px;padding:0 26px;font-size:16px;background:var(--accent-text);color:#fff;box-shadow:var(--shadow-fab)}button.primary:hover:not(:disabled){background:var(--accent-pressed)}button.link:hover:not(:disabled){background:none;text-decoration:underline}button.link{display:inline;background:none;height:auto;padding:0;color:var(--accent-text);font-weight:700;border-radius:0;text-align:left}button.link.strong{font-size:15px}button.link.danger{color:var(--over-text)}.muted{color:var(--text-secondary)}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.linkpick>button.link{margin-top:8px;font-size:13px}p.linkpick-list{padding:12px 14px}.linkpick{position:relative;font-weight:400}.linkpick input{width:100%;box-sizing:border-box}.linkpick.chosen{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-height:48px;padding:0 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.linkpick.chosen span{flex:1}.linkpick-list{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card)}.linkpick-list li{padding:10px 12px;border-radius:10px;cursor:pointer}.linkpick-list li.on{background:var(--surface-muted)}.linkpick-list li.muted{cursor:default}.small{font-size:12.5px}.error{color:var(--over-text)}.note{color:var(--accent-soft-text);background:var(--accent-soft);padding:10px 14px;border-radius:14px}.code{font-family:ui-monospace,monospace;letter-spacing:.04em;white-space:nowrap}.seats{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.segmented{display:inline-flex;background:var(--surface-muted);border-radius:999px;padding:3px;gap:2px}.segmented button{background:none;color:var(--text-secondary);height:30px}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000001f}.prefs{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.prefs .segmented button{height:26px;padding:0 10px;font-size:12.5px}.prefs select.units{width:auto;height:32px;padding:0 8px;font-size:12.5px;border-radius:10px}.prefs-corner{display:flex;justify-content:flex-end}table.list{width:100%;border-collapse:collapse}table.list th,table.list td{text-align:left;padding:8px 16px;border-top:1px solid var(--border);vertical-align:top}table.list th{font-size:12px;color:var(--text-tertiary);font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-top:0}table.num td{white-space:nowrap}td.gap,p.gap{color:var(--gap-text);background:var(--gap-bg);border-radius:8px}p.gap{padding:8px 12px}.switch{display:inline-block;position:relative;width:46px;height:28px}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{position:absolute;inset:0;background:var(--switch-off);border-radius:999px;transition:background .15s}.switch span:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+span{background:var(--accent-text)}.switch input:checked+span:before{transform:translate(18px)}.switch input:disabled+span{opacity:.45}.switch input:focus-visible+span{outline:2px solid var(--accent-text);outline-offset:2px}.terms{max-width:760px}.chat{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding:4px 0}.bubble{max-width:75%;padding:8px 12px;border-radius:14px;background:var(--surface-muted)}.bubble.mine{align-self:flex-end;background:var(--accent-soft);color:var(--accent-soft-text)}textarea{font:inherit;border-radius:14px;border:1px solid var(--border);padding:8px 12px;background:var(--surface);color:var(--text);min-height:64px;width:100%}@media(max-width:640px){.page{padding:16px}.top{padding:10px 16px}.brand{font-size:26px}.card.head{padding:20px;border-radius:22px}.seats{align-items:flex-start;text-align:left}table.list th,table.list td{padding:8px 10px}}@media print{.noprint,.top,.foot{display:none}body{background:#fff;color:#000}}.badge{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:999px;background:var(--fresh-soft);color:var(--fine-text);font-size:12px;font-weight:700}.note-row{border-top:1px solid var(--border);padding:8px 0;margin-top:8px;white-space:pre-wrap}.bubble{white-space:pre-wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.grid2{grid-template-columns:1fr}}.head-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.card.flush .head-row h2{margin:0;padding:0}form.pad{margin-bottom:8px}.actions input:not([type]),.actions input[type=url]{flex:1 1 220px;min-width:0}.day{border-top:1px solid var(--border);padding:4px 0}.day:first-child{border-top:0}.day.today .day-head strong{color:var(--accent-text)}.card.flush .day-head{display:flex;justify-content:space-between;align-items:center;padding:6px 16px}.appt{display:grid;grid-template-columns:110px 1fr auto;gap:12px;padding:8px 16px;align-items:start}.appt.off .appt-body>button{text-decoration:line-through;color:var(--text-secondary)}.appt-time{font-variant-numeric:tabular-nums;font-weight:600}.muted-badge{background:var(--switch-off);color:var(--text)}label.inline{flex-direction:row;align-items:center;gap:6px;white-space:nowrap}@media(max-width:640px){.appt{grid-template-columns:1fr;gap:4px;padding:8px 10px}}.page.booking{max-width:760px}.pre{white-space:pre-wrap}.slot-days{display:flex;flex-direction:column;gap:12px}.slot-day{display:flex;flex-direction:column;gap:6px}.slots{display:flex;flex-wrap:wrap;gap:6px}.slots button{min-width:72px}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.grid2>label{min-width:0}select{max-width:100%}fieldset.choices{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}fieldset.choices legend{font-size:14px;margin-bottom:4px;padding:0}.answers{margin:0}.answers h3{margin-top:16px}.answer-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:6px 0;border-top:1px solid var(--border)}.answer-row dt{color:var(--text-secondary);font-size:14px}.answer-row dd{margin:0}.field-edit{border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}.note input{width:100%}@media(max-width:640px){.answer-row{grid-template-columns:1fr;gap:2px}}.charts details{border-top:1px solid var(--border);padding:12px 0}.charts details:first-of-type{border-top:0}.charts{scroll-margin-top:90px}.charts summary{cursor:pointer;font-weight:700;font-size:16px;list-style-position:outside;padding:4px 0}.charts summary:hover{color:var(--accent-text)}.charts details[open]>summary{margin-bottom:10px}svg.bars{width:100%;height:auto;max-width:760px;display:block}svg.bars .grid{stroke:var(--border);stroke-width:1}svg.bars .axis{fill:var(--text-tertiary);font-size:11px}svg.bars .axis.strong{fill:var(--text-secondary);font-weight:700}svg.bars .bar{fill:var(--accent)}svg.bars .paused{fill:var(--border);opacity:.5}svg.bars g:hover .bar,svg.bars .bar.on{fill:var(--accent-pressed)}svg.bars .bar.estimated{fill-opacity:.45;stroke:var(--accent);stroke-dasharray:3 2}svg.bars{touch-action:pan-y pinch-zoom;cursor:pointer}svg.bars:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:2px;border-radius:8px}svg.bars .goal{stroke:var(--text-secondary);stroke-width:2;stroke-dasharray:6 4}.donut{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:0}.donut-total{font-family:var(--font-display);font-size:20px;fill:var(--text)}.donut-unit{font-size:9px;fill:var(--text-tertiary)}.legend{list-style:none;margin:0;padding:0;display:grid;gap:6px}.legend li{display:grid;grid-template-columns:12px minmax(110px,auto) 48px auto;gap:10px;align-items:center}.swatch{width:12px;height:12px;border-radius:4px;display:inline-block}.hbars{list-style:none;margin:0;padding:0;display:grid;gap:8px}.hbars li{display:grid;grid-template-columns:minmax(140px,1.2fr) 2fr minmax(150px,auto);gap:12px;align-items:center}.hbars .track{background:var(--surface-muted);border-radius:999px;height:10px;overflow:hidden}.hbars .fill{display:block;height:100%;background:var(--accent);border-radius:999px}.hbars .val{white-space:nowrap;font-weight:700}.foodlog .filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.foodlog input[type=search]{height:40px;border-radius:999px;border:1px solid var(--border);padding:0 16px;font:inherit;background:var(--surface);color:var(--text);min-width:240px;flex:1;max-width:360px}.segmented.wrap{flex-wrap:wrap;border-radius:20px}.charts details.day{border-top:1px solid var(--border);padding:8px 0}.charts details.day>summary{font-weight:400;font-size:15px}.charts details.day>summary strong{font-weight:700}.foodlog>button{margin-top:10px}.meal{margin:6px 0 10px}.meal-head{display:flex;align-items:center;gap:8px}.meal ul{margin:4px 0 0;padding-left:28px}@media(max-width:640px){.hbars li{grid-template-columns:1fr;gap:4px}.legend li{grid-template-columns:12px 1fr 44px}.legend li .muted{grid-column:2 / -1}}.chips{display:flex;flex-wrap:wrap;gap:8px}button.chip{background:var(--surface-muted);color:var(--text);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:500;height:auto}.answer{border-top:1px solid var(--border);margin-top:14px;padding-top:10px}.answer p{white-space:pre-line}.ai-label{color:var(--accent-text);font-weight:700;font-size:14px}.plan-meal{width:130px;white-space:nowrap}.plan-item{display:grid;grid-template-columns:minmax(0,1fr) auto 80px auto;gap:10px;align-items:center;padding:4px 0}.plan-item select{height:36px;border-radius:10px;padding:0 8px}.plan-kcal{text-align:right;white-space:nowrap}.plan-search{display:flex;flex-direction:column;gap:6px;margin-top:6px;max-width:520px}.plan-search ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}details.card>summary{cursor:pointer}.print-only{display:none}@media(max-width:640px){.plan-item{grid-template-columns:1fr auto}.plan-meal{width:auto}}@media print{.print-only{display:block}.page{padding:0;max-width:none}.plan-print{font-size:11pt;color:#000}.plan-print h1{margin:2px 0 6px;font-size:20pt}.plan-print h2{margin:14px 0 4px;font-size:13pt}.plan-print h3{margin:10px 0 2px;font-size:12pt}.print-practice{font-weight:700;margin:0}.print-logo{display:block;max-height:18mm;max-width:60mm;margin:0 0 3mm}.plan-print table{width:100%;border-collapse:collapse}.plan-print th,.plan-print td{text-align:left;border-bottom:1px solid #999;padding:3px 6px;vertical-align:top}.plan-print .num{text-align:right}.plan-print tfoot td{border-bottom:0;font-weight:700}.print-day,.print-recipe{break-inside:avoid}.print-foot{margin-top:18px;font-size:9pt;color:#444}}.count{display:inline-block;margin-left:6px;min-width:20px;padding:0 6px;border-radius:999px;background:var(--accent-text);color:#fff;font-size:12px;text-align:center}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 16px}.badge.warn{background:var(--gap-bg);color:var(--gap-text)}.status{font-weight:700}.status.s-accepted{color:var(--fine-text)}.status.s-declined,.status.s-expired{color:var(--over-text)}.status.s-signed{color:var(--gap-text)}.status.b-paid{color:var(--fine-text)}.status.b-reversed{color:var(--over-text)}.status.b-partially_paid,.status.b-draft{color:var(--gap-text)}.billview .billlogo{display:block;max-height:56px;max-width:180px;margin:0 0 8px}.billview h2{margin:12px 0 6px}.billview p{margin:4px 0}.billview table{margin:8px 0}table.editor input:not([type]),table.editor select{height:38px;border-radius:10px;padding:0 8px;width:100%}table.editor input.short,input.short{width:90px}table.editor input.small{height:32px;margin-top:4px;font-size:13px}table.editor td.handle{cursor:grab;color:var(--text-tertiary);-webkit-user-select:none;user-select:none}table.totals{max-width:420px;margin-left:auto}table.num td:last-child,table.num th:last-child{text-align:right;white-space:nowrap}.planrow{padding:6px 0;border-top:1px solid var(--border)}.sigpad{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.sigpad canvas{width:100%;max-width:600px;aspect-ratio:3 / 1;border:1px dashed var(--switch-off);border-radius:14px;background:#fff;touch-action:none}svg.sigview{width:220px;height:74px;display:block}svg.sigview path{fill:none;stroke:var(--text);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}input.script{font-family:Caprasimo,cursive;font-size:22px}.page.public{max-width:820px}.page.public .brand{margin:8px 0}.early{border-left:4px solid var(--gap-bg);padding-left:12px}.hint{background:var(--surface-muted);border-radius:14px;padding:12px 14px}.code.wrap{white-space:normal;word-break:break-all}ul.inbox{list-style:none;margin:0;padding:0}ul.inbox li{display:flex;justify-content:space-between;gap:12px;padding:12px 22px;border-top:1px solid var(--border)}ul.inbox li:first-child{border-top:0}ul.inbox li.unread .link.strong{font-weight:800}ul.inbox li.action{background:color-mix(in srgb,var(--gap-bg) 45%,transparent)}ul.inbox li.done{opacity:.6}details summary{cursor:pointer;font-weight:700;padding:6px 0}@media(max-width:640px){table.num td:not(:last-child){white-space:normal}table.offer thead{display:none}table.offer tr{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);padding:6px 0}table.offer td{border-top:0;padding:2px 10px;white-space:normal;text-align:left}table.offer td:first-child{grid-column:1 / -1;font-weight:600}table.offer td[data-label]:before{content:attr(data-label) ": ";color:var(--text-tertiary);font-size:12px}table.offer td:empty{display:none}table.num.offer td:last-child{text-align:left}}ul.plain{list-style:none;padding:0;margin:0}label.button{display:inline-flex;align-items:center;cursor:pointer;border-radius:999px;height:40px;padding:0 18px;background:var(--accent-soft);color:var(--accent-soft-text);font-weight:700;font-size:14px}label.button:hover{background:#cbeedf}details>summary{cursor:pointer}.mailtext{white-space:pre-wrap;margin:10px 0;max-height:420px;overflow-y:auto}iframe.mailframe{width:100%;height:420px;border:1px solid var(--border);border-radius:12px;background:#fff}.mail-edit{border:1px solid var(--border);border-radius:12px;background:var(--surface);margin:8px 0}.mail-edit .toolbar{display:flex;gap:4px;padding:6px;border-bottom:1px solid var(--border);flex-wrap:wrap}.mail-edit .tool{min-width:36px;min-height:36px;padding:4px 8px;border-radius:8px;background:transparent;border:1px solid transparent;font-weight:700}.mail-edit .tool.on{background:var(--accent-soft);color:var(--accent-soft-text);border-color:var(--accent-soft)}.mail-editor{min-height:180px;padding:10px 12px;outline:none;color:var(--text)}.mail-editor p{margin:0 0 10px}.compose label.inline{display:flex;gap:6px;align-items:center}img.logo-preview{max-width:160px;height:auto;border:1px solid var(--border);border-radius:8px;background:#fff;padding:6px}
