@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Lora:ital,wght@0,400;0,500;0,600&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap";:root{--son-50:#fbedef;--son-100:#f6d9de;--son-200:#ebb0ba;--son-300:#dc8593;--son-500:#a83246;--son-600:#8e2639;--son-700:#721c2c;--kim-50:#faf4e6;--kim-200:#e6cf93;--kim-300:#d6b45f;--kim-400:#c2a15b;--kim-500:#a8853f;--dao-100:#f8e1df;--dao-300:#e5a9ac;--dao-400:#dd8b95;--paper:#fcf8f3;--sand:#f6eee4;--linen:#f0e6d8;--card:#fffdfb;--line-100:#efe6d8;--line-200:#e4d6c3;--line-300:#d6c4ac;--ink-900:#2b2420;--ink-700:#4a4039;--ink-500:#6b5d52;--ink-400:#8c7e70;--ink-300:#a99c8d;--sage-50:#e9f1ea;--sage-500:#5e8c6a;--amber-50:#faf0df;--info-50:#e7eef3;--font-display:"Playfair Display", "Times New Roman", serif;--font-body:"Lora", Georgia, serif;--font-ui:"Be Vietnam Pro", system-ui, -apple-system, sans-serif;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:26px;--r-pill:999px;--shadow-xs:0 1px 2px #5032280f;--shadow-sm:0 2px 8px #50322812;--shadow-md:0 8px 24px #5032281a;--shadow-lg:0 18px 48px #50322824;--shadow-rose:0 8px 24px #a832462e}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--linen);color:var(--ink-900);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit}button{border:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in oklab, var(--son-500) 45%, transparent);outline-offset:2px}::-webkit-scrollbar{width:0;height:0}.app-page{background:radial-gradient(circle at 50% -8rem, #f8e1dfe6, transparent 28rem), var(--linen);justify-content:center;min-height:100vh;display:flex}.app-frame{background:var(--paper);width:100%;max-width:768px;height:100vh;position:relative;overflow:hidden}.ds-label{color:var(--ink-400);font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;margin:0 0 11px;font-size:12px;font-weight:700}.brand{color:var(--son-500);align-items:center;gap:8px;display:inline-flex}.brand>span{color:var(--ink-900);font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1}.brand>span span{color:var(--son-500)}.icon-button{border-radius:var(--r-md);width:40px;height:40px;color:var(--ink-700);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--sand);color:var(--son-600)}.appbar,.page-header{z-index:30;border-bottom:1px solid var(--line-100);background:color-mix(in oklab, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;height:54px;display:flex;position:absolute;top:0;left:0;right:0}.appbar{justify-content:space-between;padding:6px 14px 0}.page-header{gap:6px;padding:6px 8px 0}.page-header span{font-family:var(--font-display);font-size:19px;font-weight:600}.avatar-button,.avatar{background:linear-gradient(135deg, var(--dao-300), var(--son-500));color:#fff;width:34px;height:34px;font-family:var(--font-display);cursor:pointer;border-radius:50%;place-items:center;font-size:12.5px;font-weight:700;display:grid}.chat-home,.subpage{background:var(--paper);flex-direction:column;height:100%;display:flex}.chat-scroll,.subpage{overflow-y:auto}.chat-scroll{flex:1;padding-top:54px;padding-bottom:8px}.empty-home{flex-direction:column;gap:26px;padding:20px 16px 8px;display:flex}.greeting{flex-wrap:wrap;align-items:center;gap:11px;display:flex}.greeting h1{color:var(--ink-900);font-family:var(--font-display);flex:210px;margin:0;font-size:22px;font-weight:600;line-height:1.18}.profile-nudge{border:1px solid var(--son-200);border-radius:var(--r-pill);background:var(--son-50);min-height:34px;color:var(--son-700);font-family:var(--font-ui);cursor:pointer;align-items:center;gap:7px;padding:0 13px;font-size:12.5px;font-weight:700;display:inline-flex}.shortcut-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.shortcut-grid button,.recent-list button,.suggestion-list button,.task-row,.category-card,.guest-row{border:1px solid var(--line-100);border-radius:var(--r-md);background:var(--card);box-shadow:var(--shadow-xs)}.shortcut-grid button{min-height:54px;color:var(--ink-700);font-family:var(--font-ui);text-align:left;cursor:pointer;align-items:center;gap:9px;padding:12px 13px;font-size:13.5px;font-weight:700;display:flex}.shortcut-grid span,.recent-list button>span:first-child,.category-card span,.guest-row>span{border-radius:var(--r-sm);background:var(--son-50);width:30px;height:30px;color:var(--son-500);flex:none;place-items:center;display:grid}.recent-list,.suggestion-list,.task-list,.category-list,.guest-list{flex-direction:column;gap:8px;display:flex}.recent-list button{width:100%;min-height:58px;color:var(--ink-900);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:11px 14px;display:flex}.recent-list button>span:nth-child(2){flex:1;min-width:0}.recent-list strong,.recent-list em{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.recent-list strong{font-family:var(--font-ui);font-size:14px;font-weight:600}.recent-list em{color:var(--ink-400);font-family:var(--font-ui);margin-top:2px;font-size:11.5px;font-style:normal}.suggestion-list button{border-color:var(--son-100);background:var(--son-50);width:100%;color:var(--son-700);text-align:left;cursor:pointer;align-items:center;gap:11px;padding:12px 14px;display:flex}.suggestion-list span{flex:1;font-size:14px;line-height:1.45}.message-stack{flex-direction:column;gap:14px;padding:14px 16px;display:flex}.mobile-user-bubble{background:var(--son-500);color:#fff7f0;border-radius:16px 16px 4px;align-self:flex-end;max-width:82%;padding:10px 14px;font-size:14.5px;line-height:1.5}.bot-block{width:100%;display:flex}.bot-stack{flex-direction:column;gap:8px;width:100%;display:flex}.agent-row{flex-wrap:wrap;gap:5px;display:flex}.agent-row span{border:1px solid var(--kim-200);border-radius:var(--r-pill);background:var(--kim-50);color:var(--kim-500);font-family:var(--font-ui);letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;font-size:10.5px;font-weight:700}.mobile-bot-bubble{color:var(--ink-900);font-size:14.5px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 10px}.md ul,.md ol{margin:0 0 10px;padding-left:20px}.md li{margin:3px 0}.md li>p{margin:0}.md h1,.md h2,.md h3,.md h4{font-family:var(--font-display,inherit);color:var(--ink-900);margin:14px 0 8px;font-weight:700;line-height:1.3}.md h1{font-size:18px}.md h2{font-size:16.5px}.md h3{font-size:15px}.md h4{font-size:14.5px}.md strong{font-weight:700}.md em{font-style:italic}.md a{color:var(--son-600);text-decoration:underline}.md code{background:var(--son-50,#0000000d);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.md pre{background:var(--son-50,#0000000d);border-radius:10px;margin:0 0 10px;padding:10px 12px;overflow-x:auto}.md pre code{background:0 0;padding:0;font-size:12.5px}.md blockquote{border-left:3px solid var(--son-200);color:var(--ink-700,var(--ink-900));margin:0 0 10px;padding-left:12px}.md hr{border:none;border-top:1px solid var(--son-200);margin:12px 0}.md table{border-collapse:collapse;width:100%;margin:0 0 10px;font-size:13.5px}.md th,.md td{border:1px solid var(--son-200);text-align:left;padding:6px 9px}.md th{background:var(--son-50,#0000000a);font-weight:700}.bot-actions{align-items:center;gap:2px;margin-top:4px;display:flex}.bot-actions button{width:30px;height:30px;color:var(--ink-500,#8a8178);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.bot-actions button:hover{background:var(--son-50,#0000000d);color:var(--ink-900)}.bot-actions button.on{color:var(--son-600)}.followups{flex-direction:column;align-items:flex-start;gap:7px;display:flex}.followups button{border:1px solid var(--son-200);border-radius:var(--r-pill);background:var(--card);color:var(--son-700);font-family:var(--font-ui);cursor:pointer;align-items:center;gap:7px;padding:7px 13px;font-size:13px;font-weight:600;display:inline-flex}.typing{gap:5px;padding:12px 4px;display:flex}.typing span{background:var(--son-300);border-radius:50%;width:8px;height:8px;animation:1.1s ease-in-out infinite thbounce}.typing span:nth-child(2){animation-delay:.16s}.typing span:nth-child(3){animation-delay:.32s}.caret{background:var(--son-400);width:7px;height:18px;animation:1s infinite blink;display:inline-block}.error-box{border-radius:var(--r-md);color:#b23b3b;font-family:var(--font-ui);background:#f8e6e4;border:1px solid oklab(81.4331% .0549937 .0249612);padding:12px 14px;font-size:13px}.mobile-composer{border-top:1px solid var(--line-100);background:var(--paper);align-items:flex-end;gap:9px;padding:8px 14px 18px;display:flex}.mobile-composer textarea{resize:none;border:1px solid var(--line-200);border-radius:var(--r-xl);background:var(--card);max-height:150px;color:var(--ink-900);outline:none;flex:1;padding:12px 18px;font-size:15px;line-height:1.5;overflow-y:auto}.mobile-composer textarea::placeholder{color:var(--ink-300)}.mobile-composer button{background:var(--son-500);color:#fff;cursor:pointer;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.mobile-composer button:disabled{background:var(--line-200);cursor:default}.drawer-scrim{z-index:50;pointer-events:none;background:#2b242000;transition:background .26s;position:absolute;inset:0}.drawer-scrim.is-open{pointer-events:auto;background:#2b242057}.drawer{z-index:60;background:var(--card);width:min(290px,82vw);box-shadow:var(--shadow-lg);flex-direction:column;padding-top:8px;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0 auto 0 0;transform:translate(-100%)}.drawer.is-open{transform:translate(0)}.drawer-head{justify-content:space-between;align-items:center;padding:14px 18px 12px;display:flex}.drawer-new{padding:4px 14px 10px}.drawer-new button{border:1px solid var(--son-200);border-radius:var(--r-pill);background:var(--son-50);width:100%;min-height:43px;color:var(--son-600);font-family:var(--font-ui);cursor:pointer;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.drawer-scroll{flex:1;padding:6px 12px;overflow-y:auto}.drawer-scroll .ds-label{margin:0;padding:10px 8px 7px}.recent-label{margin-top:10px!important}.drawer-link,.drawer-recent{border-radius:var(--r-md);width:100%;color:var(--ink-900);text-align:left;cursor:pointer;background:0 0;align-items:center;display:flex}.drawer-link{gap:13px;padding:11px 12px}.drawer-link svg:first-child{color:var(--son-500)}.drawer-link span,.drawer-recent span{min-width:0;color:var(--ink-900);font-family:var(--font-ui);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;overflow:hidden}.drawer-link:hover,.drawer-recent:hover{background:var(--sand)}.drawer-recent{color:var(--ink-400);gap:11px;padding:10px 12px}.drawer-recent span{color:var(--ink-700);font-size:13.5px;font-weight:500}.drawer-profile{border-top:1px solid var(--line-100);align-items:center;gap:11px;padding:14px 16px;display:flex}.drawer-profile strong,.drawer-profile span{font-family:var(--font-ui);display:block}.drawer-profile strong{color:var(--ink-900);font-size:13.5px}.drawer-profile span{color:var(--ink-400);margin-top:2px;font-size:11.5px}.screen{background:var(--paper);min-height:100%;padding:70px 20px 44px}.countdown-card{border-radius:var(--r-xl);background:linear-gradient(150deg, var(--son-500), var(--son-600));box-shadow:var(--shadow-rose);margin-bottom:18px;padding:24px 22px;position:relative;overflow:hidden}.countdown-card svg{opacity:.5;width:240px;height:100%;position:absolute;top:0;right:-20px}.countdown-card path{fill:none;stroke:#ffffff59;stroke-width:1.5px}.countdown-card circle{fill:var(--kim-300)}.countdown-card div{position:relative}.countdown-card p,.countdown-card span,.stat-card div,.stat-card strong,.task-row span,.page-metric h1,.money-grid span,.money-grid strong,.category-card strong,.category-card em,.guest-row strong,.guest-row em,.guest-row mark{display:block}.countdown-card p{color:var(--kim-200);font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.countdown-card h1{color:#fff;font-family:var(--font-display);margin:6px 0 2px;font-size:40px;font-weight:600;line-height:1.05}.countdown-card span{color:#fff7f0e6;font-size:15px}.stat-grid,.money-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px;display:grid}.stat-card{border:1px solid var(--line-100);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow-xs);padding:14px 15px}.stat-card div{color:var(--son-500);align-items:center;gap:7px;margin-bottom:9px;display:flex}.stat-card div span{color:var(--ink-400);font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;font-size:11.5px;font-weight:700}.stat-card strong{font-family:var(--font-display);margin-bottom:9px;font-size:20px}.stat-card i,.category-card i{border-radius:var(--r-pill);background:var(--line-100);height:5px;display:block;overflow:hidden}.stat-card b,.category-card b{border-radius:inherit;background:var(--son-500);height:100%;display:block}.task-row{align-items:center;gap:12px;padding:13px 15px;display:flex}.task-check{border:2px solid var(--line-300);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.task-check.done{border-color:var(--son-500);background:var(--son-500);color:#fff}.task-row strong{color:var(--ink-900);font-size:15px;font-weight:500;display:block}.task-check.done+div strong{color:var(--ink-400);text-decoration:line-through}.task-row span{color:var(--ink-400);font-family:var(--font-ui);margin-top:2px;font-size:12px}.page-metric{margin-bottom:18px}.page-metric h1{font-family:var(--font-display);margin:0;font-size:34px;font-weight:600;line-height:1.15}.page-metric h1 span{color:var(--ink-400);font-size:20px}.money-grid div{border-radius:var(--r-md);padding:13px 15px}.money-grid div:first-child{background:var(--son-50)}.money-grid div:last-child{background:var(--sage-50)}.money-grid span{color:var(--son-600);font-family:var(--font-ui);font-size:11.5px}.money-grid div:last-child span,.money-grid div:last-child strong{color:var(--sage-500)}.money-grid strong{color:var(--son-600);font-family:var(--font-display);font-size:19px}.category-card{padding:13px 15px}.category-card>div{align-items:center;gap:11px;margin-bottom:9px;display:flex}.category-card strong{color:var(--ink-900);flex:1;font-size:15px;font-weight:500}.category-card em{color:var(--ink-900);font-family:var(--font-ui);font-size:14px;font-style:normal;font-weight:700}.screen-lead{color:var(--ink-500);margin:-5px 0 22px;font-size:14px}.timeline-list{padding-left:2px;position:relative}.timeline-list:before{content:"";background:var(--son-100);width:2px;position:absolute;top:14px;bottom:14px;left:15px}.timeline-item{gap:15px;margin-bottom:22px;display:flex;position:relative}.timeline-dot{z-index:1;border:2px solid var(--son-200);background:var(--card);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.timeline-dot:after{content:"";background:var(--son-300);border-radius:50%;width:8px;height:8px}.timeline-dot.done{border-color:var(--son-500);background:var(--son-500);color:#fff}.timeline-dot.done:after{content:none}.timeline-item strong{font-family:var(--font-display);padding-top:2px;font-size:17px;display:block}.timeline-item span{color:var(--son-500);font-family:var(--font-ui);margin:2px 0;font-size:12.5px;font-weight:700;display:block}.timeline-item p{color:var(--ink-500);margin:0;font-size:13.5px}.guest-bar{border-radius:var(--r-pill);height:10px;margin-bottom:12px;display:flex;overflow:hidden}.guest-bar i{display:block}.guest-legend{flex-wrap:wrap;gap:14px;margin-bottom:24px;display:flex}.guest-legend span{color:var(--ink-700);font-family:var(--font-ui);align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.guest-legend i{border-radius:3px;width:10px;height:10px}.guest-row{align-items:center;gap:12px;padding:13px 15px;display:flex}.guest-row div{flex:1;min-width:0}.guest-row strong{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.guest-row em{color:var(--ink-400);font-family:var(--font-ui);font-size:12px;font-style:normal}.guest-row mark{border-radius:var(--r-pill);background:var(--amber-50);color:#9a6a26;font-family:var(--font-ui);white-space:nowrap;padding:4px 10px;font-size:11.5px;font-weight:700}.guest-row mark.ok{background:var(--sage-50);color:var(--sage-500)}.btn{border-radius:var(--r-pill);min-height:40px;font-family:var(--font-ui);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:700;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.45}.btn.primary{background:var(--son-500);color:#fff7f0}.btn.secondary{border:1px solid var(--son-200);background:var(--card);color:var(--son-700)}.modal-overlay{z-index:80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2b242061;place-items:center;padding:14px;display:grid;position:absolute;inset:0}.modal-card{border:1px solid var(--line-200);border-radius:var(--r-lg);background:var(--paper);width:min(100%,560px);max-height:92vh;box-shadow:var(--shadow-lg);overflow:auto}.modal-head{border-bottom:1px solid var(--line-200);grid-template-columns:44px 1fr;align-items:center;gap:12px;padding:18px;display:grid}.modal-head h2{font-family:var(--font-display);margin:2px 0 0;font-size:24px}.modal-body{padding:18px}label{color:var(--ink-500);font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;gap:7px;margin-bottom:14px;font-size:12px;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line-200);border-radius:var(--r-md);background:var(--card);width:100%;min-height:42px;color:var(--ink-900);font-family:var(--font-ui);letter-spacing:0;text-transform:none;padding:0 13px;font-size:14px}textarea{resize:vertical;min-height:90px;padding-top:11px}.modal-foot{border-top:1px solid var(--line-200);justify-content:space-between;gap:12px;padding:16px 18px;display:flex}@keyframes thbounce{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (width>=769px){.app-frame{border-left:1px solid var(--line-200);border-right:1px solid var(--line-200);box-shadow:var(--shadow-lg)}}@media (width<=420px){.screen{padding-left:16px;padding-right:16px}.stat-grid,.money-grid{gap:10px}.countdown-card h1{font-size:34px}.guest-row{align-items:flex-start}.guest-row mark{text-align:center;white-space:normal;max-width:104px}}
