:root{--greige:#ebeae4;--paper:#fff;--ink:#17211b;--ink-soft:#5a6660;--green:#12b372;--green-deep:#0b7a4e;--green-soft:#e2f5ec;--line:#dddcd4;--danger:#d64545;--radius:16px;--radius-sm:10px;--sidebar-w:300px;--drawer-w:320px;--shadow:0 8px 30px rgba(23,33,27,.1);--font-display:"Bricolage Grotesque",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}body{font-family:var(--font-body);background:var(--greige);color:var(--ink);font-size:15px;line-height:1.55;overflow:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}.app{display:flex;height:100vh;width:100vw}.loading-screen{flex:1 1;align-items:center;justify-content:center;gap:12px;color:var(--ink-soft);font-size:14px}.loading-screen,.sidebar{display:flex;flex-direction:column}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--greige);padding:28px 24px 20px;border-right:1px solid var(--line)}.brand{gap:14px;margin-bottom:22px}.brand,.brand-logo{display:flex;align-items:center}.brand-logo{width:52px;height:52px;border-radius:16px;background:var(--paper);border:1px solid var(--line);justify-content:center;box-shadow:0 6px 16px rgba(23,33,27,.1);flex-shrink:0;padding:4px}.logo-img{display:block;width:100%;height:100%;object-fit:contain}.brand-name{font-family:var(--font-display);font-weight:800;font-size:21px;line-height:1.1;letter-spacing:-.01em}.brand-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--green-deep);font-weight:600;margin-top:4px}.pulse{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(18,179,114,.5)}70%{box-shadow:0 0 0 8px rgba(18,179,114,0)}to{box-shadow:0 0 0 0 rgba(18,179,114,0)}}@media (prefers-reduced-motion:reduce){.pulse{animation:none}}.sidebar-about{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;font-size:13.5px;color:var(--ink-soft)}.sidebar-about h2{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em}.sidebar-about ul{list-style:none;display:flex;flex-direction:column;gap:9px}.sidebar-about li{display:flex;gap:9px;align-items:flex-start}.sidebar-about li svg{width:15px;height:15px;flex-shrink:0;margin-top:2.5px;color:var(--green)}.sidebar-about-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-soft);line-height:1.5}.sidebar-about-note a{color:var(--green-deep);font-weight:600;text-decoration:none}.sidebar-about-note a:hover{text-decoration:underline}.sidebar-spacer{flex:1 1}.sidebar-mark{display:flex;justify-content:center;margin-bottom:14px}.sidebar-mark img{width:50px;height:50px;object-fit:contain}.account-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.account-head{gap:11px;margin-bottom:12px}.account-head,.avatar{display:flex;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:var(--green-soft);color:var(--green-deep);justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.account-name{font-weight:600;font-size:14px}.account-plan{font-size:12px;color:var(--ink-soft)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px}.badge.free{background:var(--greige);color:var(--ink-soft)}.badge.premium{background:var(--green-soft);color:var(--green-deep)}.quota{margin-top:4px}.quota-label{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);margin-bottom:6px}.quota-label strong{color:var(--ink)}.quota-bar{height:6px;border-radius:99px;background:var(--greige);overflow:hidden}.quota-fill{height:100%;border-radius:99px;background:var(--green);transition:width .4s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:13.5px;transition:transform .12s ease,background .15s ease}.btn:active{transform:scale(.98)}.btn-green{background:var(--green);color:#fff;width:100%;margin-top:12px}.btn-green:hover{background:var(--green-deep)}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn-ghost:hover{background:var(--paper)}.account-manage{width:100%;margin-top:12px;font-size:12.5px;color:var(--ink-soft);text-align:center}.account-manage:hover{color:var(--ink);text-decoration:underline}.main{flex:1 1;flex-direction:column;border-radius:24px 0 0 24px;overflow:hidden;position:relative}.main,.topbar{display:flex;background:var(--paper)}.topbar{align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--line);z-index:5;gap:12px}.topbar-title{font-family:var(--font-display);font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:0}.topbar-actions{display:flex;gap:8px;flex-shrink:0}.icon-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--ink);background:var(--paper);transition:background .15s ease}.icon-btn:hover{background:var(--greige)}.icon-btn svg{width:15px;height:15px}.mobile-menu-btn{display:none;width:36px;height:36px;border-radius:10px;flex-shrink:0;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--paper)}.mobile-menu-btn svg{width:18px;height:18px}.chat{flex:1 1;overflow-y:auto;padding:32px 0 16px;scroll-behavior:smooth}.chat-inner{max-width:760px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;gap:18px}.msg{display:flex;gap:12px;max-width:88%}.msg.user{align-self:flex-end;flex-direction:row-reverse}.msg-avatar{width:32px;height:32px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.msg.bot .msg-avatar{background:var(--paper);border:1px solid var(--line);padding:2px}.msg.user .msg-avatar{background:var(--greige);color:var(--ink-soft);font-weight:700;font-size:12px}.bubble{padding:13px 17px;border-radius:var(--radius);font-size:14.5px;line-height:1.6}.msg.bot .bubble{background:var(--greige);border-bottom-left-radius:4px}.msg.user .bubble{background:var(--green);color:#fff;border-bottom-right-radius:4px}.bubble p+p{margin-top:8px}.bubble ol,.bubble ul{margin:8px 0 8px 18px}.bubble strong{font-weight:700}.bubble em{font-style:italic}.bubble code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:rgba(23,33,27,.07);padding:1px 5px;border-radius:5px}.bubble a{color:var(--green-deep);font-weight:600}.bubble .md-table-wrap{overflow-x:auto;margin:10px 0;-webkit-overflow-scrolling:touch}.bubble .md-table{border-collapse:collapse;width:100%;font-size:13.5px}.bubble .md-table td,.bubble .md-table th{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}.bubble .md-table th{background:var(--paper);font-weight:700;white-space:nowrap}.bot-col{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.msg-actions{display:flex;gap:4px;flex-wrap:wrap}.copy-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink-soft);padding:4px 9px;border-radius:8px;border:1px solid transparent;transition:background .15s ease,color .15s ease}.copy-btn:hover{background:var(--greige);color:var(--ink)}.copy-btn svg{width:13px;height:13px}.quick-replies{display:flex;flex-wrap:wrap;gap:8px;padding-left:44px;margin-top:-6px}.chip{padding:9px 15px;border-radius:99px;border:1.5px solid var(--green);color:var(--green-deep);font-size:13px;font-weight:600;background:var(--paper);transition:all .15s ease}.chip:hover{background:var(--green);color:#fff}.welcome{flex:1 1;flex-direction:column;text-align:center;padding:24px;gap:8px}.welcome,.welcome-logo{display:flex;align-items:center;justify-content:center}.welcome-logo{width:84px;height:84px;border-radius:24px;background:var(--paper);border:1px solid var(--line);box-shadow:0 10px 28px rgba(23,33,27,.1);margin-bottom:14px;padding:8px}.welcome h1{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:-.02em}.welcome p{color:var(--ink-soft);max-width:440px;margin-bottom:20px}.starters{display:grid;grid-template-columns:repeat(2,minmax(200px,280px));grid-gap:10px;gap:10px}.starter{text-align:left;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-size:13.5px;font-weight:500;color:var(--ink);transition:all .15s ease}.starter:hover{border-color:var(--green);background:var(--green-soft)}.starter span{display:block;color:var(--green-deep);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.typing{display:flex;gap:5px;padding:6px 2px}.typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-soft);opacity:.4;animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.3}40%{opacity:1}}.composer{padding:14px 24px 20px;background:var(--paper);border-top:1px solid var(--line)}.composer-inner{max-width:760px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;background:var(--greige);border-radius:18px;padding:8px;border:1.5px solid transparent;transition:border-color .15s ease}.attach-btn{width:40px;height:40px;border-radius:12px;flex-shrink:0;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);transition:border-color .15s ease,color .15s ease}.attach-btn:hover{border-color:var(--green);color:var(--green-deep)}.attach-btn svg{width:18px;height:18px}.attach-preview{max-width:760px;margin:0 auto 8px}.attach-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;background:var(--green-soft);color:var(--green-deep);border:1px solid #bee7d3;border-radius:10px;padding:7px 8px 7px 11px;font-size:12.5px;font-weight:600}.attach-chip .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.attach-chip button{color:var(--green-deep);display:flex;padding:2px;border-radius:6px}.attach-chip button:hover{background:#cdeedd}.attach-chip.loading{background:var(--greige);color:var(--ink-soft);border-color:var(--line)}.attach-chip .attach-status{font-weight:500;opacity:.85}.attach-spin{width:13px;height:13px;border-radius:50%;flex-shrink:0;border:2px solid var(--line);border-top-color:var(--green);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.attach-spin{animation-duration:1.6s}}.msg-attach{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font-size:12px;font-weight:600;opacity:.9}.msg.user .msg-attach{color:#eafbf2}.composer-inner:focus-within{border-color:var(--green)}.composer textarea{flex:1 1;border:none;background:transparent;resize:none;font-family:inherit;font-size:14.5px;line-height:1.5;max-height:140px;padding:8px 0;color:var(--ink)}.composer textarea:focus{outline:none}.send-btn{width:40px;height:40px;border-radius:12px;background:var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease}.send-btn:hover{background:var(--green-deep)}.send-btn:disabled{background:var(--line);cursor:not-allowed}.send-btn svg{width:18px;height:18px}.composer-note{max-width:760px;margin:8px auto 0;font-size:11.5px;color:var(--ink-soft);text-align:center}.composer-note a{color:var(--green-deep);font-weight:600;text-decoration:none}.composer-note a:hover{text-decoration:underline}.drawer-overlay{position:fixed;inset:0;background:rgba(23,33,27,.35);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:40}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100vh;width:var(--drawer-w);background:var(--paper);z-index:50;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(23,33,27,.12)}.drawer.open{transform:translateX(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line)}.drawer-head h3{font-family:var(--font-display);font-weight:700;font-size:16px}.drawer-close{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}.drawer-close:hover{background:var(--greige)}.drawer-body{flex:1 1;overflow-y:auto;padding:14px}.drawer-new{width:100%;margin-bottom:12px;border:1.5px dashed var(--line);color:var(--ink-soft)}.drawer-new:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft)}.conv-item{display:flex;align-items:center;gap:8px;padding:11px 12px;border-radius:var(--radius-sm);transition:background .12s ease}.conv-item:hover{background:var(--greige)}.conv-item.active{background:var(--green-soft)}.conv-open{flex:1 1;text-align:left;min-width:0}.conv-title{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-meta{font-size:11.5px}.conv-del,.conv-meta{color:var(--ink-soft)}.conv-del{width:28px;height:28px;border-radius:7px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.conv-del:hover{background:#fcebeb;color:var(--danger)}.conv-del svg{width:14px;height:14px}.drawer-empty{text-align:center;color:var(--ink-soft);font-size:13px;padding:30px 10px}.drawer-foot{padding:14px;border-top:1px solid var(--line)}.mobile-drawer{position:fixed;top:0;left:0;height:100vh;width:280px;background:var(--paper);z-index:50;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:12px 0 40px rgba(23,33,27,.12)}.mobile-drawer.open{transform:translateX(0)}.modal-overlay{position:fixed;inset:0;background:rgba(23,33,27,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:60;padding:20px}.modal-overlay.open{opacity:1;pointer-events:auto}.modal{background:var(--paper);border-radius:24px;max-width:420px;width:100%;padding:34px 32px 28px;text-align:center;transform:translateY(12px);transition:transform .25s ease;box-shadow:var(--shadow);max-height:92vh;overflow-y:auto}.modal-overlay.open .modal{transform:translateY(0)}.modal-logo{width:64px;height:64px;border-radius:18px;background:var(--paper);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;padding:6px}.modal h2{font-family:var(--font-display);font-weight:800;font-size:23px;letter-spacing:-.01em;margin-bottom:8px}.modal .modal-sub{color:var(--ink-soft);font-size:14px;margin-bottom:22px}.pay-form{flex-direction:column;margin-bottom:12px;text-align:left}.pay-form,.pay-form .field-row{display:flex;gap:10px}.pay-form input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:14px;background:var(--greige);color:var(--ink)}.pay-form input:focus{outline:none;border-color:var(--green);background:var(--paper)}.pay-form input::placeholder{color:var(--ink-soft)}.pay-error{display:none;color:var(--danger);font-size:12.5px;text-align:left;margin-bottom:10px}.pay-error.show{display:block}.price{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:4px}.price .amount{font-family:var(--font-display);font-weight:800;font-size:46px;letter-spacing:-.03em}.price .period{color:var(--ink-soft);font-size:15px;font-weight:500}.price-note{font-size:12px;color:var(--ink-soft);margin-bottom:20px}.modal-features{text-align:left;display:flex;flex-direction:column;gap:9px;background:var(--greige);border-radius:var(--radius);padding:16px 18px;margin-bottom:22px;font-size:13.5px}.modal-features div{display:flex;gap:9px;align-items:center}.modal-features svg{width:15px;height:15px;color:var(--green);flex-shrink:0}.btn-pay{width:100%;padding:14px;font-size:15px;background:var(--green);color:#fff;border-radius:14px}.btn-pay:hover{background:var(--green-deep)}.btn-pay:disabled{opacity:.6;cursor:not-allowed}.modal-later{margin-top:12px;font-size:13px;color:var(--ink-soft)}.modal-later:hover{color:var(--ink);text-decoration:underline}.secure-note{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;font-size:11.5px;color:var(--ink-soft)}.secure-note svg{width:13px;height:13px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 24px;border-radius:12px;font-size:13.5px;font-weight:600;opacity:0;pointer-events:none;transition:all .3s ease;z-index:100;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@keyframes msgIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.msg{animation:msgIn .3s cubic-bezier(.33,1,.68,1)}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.welcome-logo{animation:floaty 3.4s ease-in-out infinite}@keyframes chipIn{0%{opacity:0;transform:scale(.85) translateY(6px)}to{opacity:1;transform:none}}.quick-replies .chip{animation:chipIn .3s cubic-bezier(.34,1.56,.64,1) backwards}.quick-replies .chip:first-child{animation-delay:.04s}.quick-replies .chip:nth-child(2){animation-delay:.12s}.quick-replies .chip:nth-child(3){animation-delay:.2s}.quick-replies .chip:nth-child(4){animation-delay:.28s}@keyframes starterIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.starter{animation:starterIn .4s ease backwards}.starter:first-child{animation-delay:.05s}.starter:nth-child(2){animation-delay:.13s}.starter:nth-child(3){animation-delay:.21s}.starter:nth-child(4){animation-delay:.29s}@media (prefers-reduced-motion:reduce){.msg,.quick-replies .chip,.starter,.toast,.welcome-logo{animation:none!important;transition:none!important}}@media (max-width:860px){.sidebar{display:none}.main{border-radius:0}.starters{grid-template-columns:1fr}.mobile-menu-btn{display:flex}.btn-label{display:none}.icon-btn{padding:8px 10px}.topbar{padding:12px 16px}.composer{padding:10px 16px 16px}.chat-inner{padding:0 16px}.quick-replies{padding-left:0}}