@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root{--bg:#f4f0e7;--paper:#fbfaf6;--panel:#e9e3d8;--ink:#25231f;--muted:#817b70;--line:rgba(46,42,35,.12);--accent:#ff5d3b;--accent-2:#e94c2d;--green:#2e8b65;--shadow:0 18px 55px rgba(55,46,31,.12);--radius:18px;--sidebar:284px}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:'Noto Sans SC',system-ui,sans-serif;color:var(--ink);background:var(--bg);overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:99;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.app-shell{height:100%;display:grid;grid-template-columns:var(--sidebar) 1fr}.sidebar{background:#e9e4da;border-right:1px solid var(--line);padding:22px 16px 14px;display:flex;flex-direction:column;min-width:0;z-index:30}.brand-row{display:flex;align-items:center;gap:11px;padding:0 7px 20px}.brand-mark{width:36px;height:36px;border-radius:11px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:'Playfair Display';font-size:22px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.brand-row strong{display:block;font-family:'Playfair Display';font-size:18px;letter-spacing:.2px}.brand-row span{display:block;font-family:'DM Mono';font-size:8px;letter-spacing:2.1px;color:var(--muted);margin-top:2px}.mobile-close{display:none;margin-left:auto}.new-chat{height:46px;border:0;border-radius:13px;background:var(--ink);color:#fff;padding:0 13px;display:flex;align-items:center;gap:9px;font-weight:600;box-shadow:0 9px 22px rgba(37,35,31,.16)}.new-chat span{font-size:21px;font-weight:300}.new-chat kbd{margin-left:auto;color:#aaa398;font:10px 'DM Mono';border:1px solid #5b574f;border-radius:5px;padding:2px 5px}.search-box{height:39px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;margin:12px 4px 10px;color:var(--muted)}.search-box input{border:0;background:transparent;outline:0;width:100%;font-size:12px}.section-label{padding:5px 7px 8px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:10px 'DM Mono';letter-spacing:1.3px}.text-btn{border:0;background:none;color:var(--muted);font-size:10px}.conversation-list{flex:1;overflow-y:auto;min-height:80px}.conversation-item{position:relative;border:1px solid transparent;border-radius:12px;padding:11px 34px 11px 12px;margin:2px 0;cursor:pointer;transition:.18s}.conversation-item:hover{background:rgba(255,255,255,.42)}.conversation-item.active{background:var(--paper);border-color:var(--line);box-shadow:0 5px 16px rgba(60,52,40,.05)}.conversation-item b{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-item span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.conversation-item .more{position:absolute;right:8px;top:12px;border:0;background:none;color:var(--muted);opacity:0}.conversation-item:hover .more,.conversation-item.active .more{opacity:1}.sidebar-bottom{border-top:1px solid var(--line);padding-top:7px}.nav-row,.profile-row{width:100%;border:0;background:none;display:flex;text-align:left;align-items:center;gap:10px;padding:9px 8px;border-radius:11px}.nav-row:hover,.profile-row:hover{background:rgba(255,255,255,.42)}.nav-icon{font:19px 'DM Mono';width:27px;text-align:center}.nav-row>span:nth-child(2),.profile-row>span:nth-child(2){font-size:12px;flex:1}.nav-row small,.profile-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.profile-row{border-top:1px solid var(--line);border-radius:0;padding-top:13px;margin-top:5px}.avatar{width:29px;height:29px;border-radius:50%;background:#d8cec0;display:grid;place-items:center;font:9px 'DM Mono'}.main-panel{min-width:0;height:100%;display:grid;grid-template-rows:72px 1fr auto;background:var(--paper);position:relative}.topbar{display:flex;justify-content:space-between;align-items:center;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(251,250,246,.86);backdrop-filter:blur(14px);z-index:10}.title-side{display:flex;align-items:center;gap:10px}.title-side h1{font-size:14px;margin:0 0 3px}.title-side p{font:10px 'DM Mono';color:var(--muted);margin:0}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c6bfb2;margin-right:6px}.status-dot.online{background:var(--green);box-shadow:0 0 0 3px rgba(46,139,101,.12)}.top-actions{display:flex;gap:8px}.icon-btn,.pill-btn{border:1px solid var(--line);background:rgba(255,255,255,.65);height:35px;border-radius:10px;min-width:35px}.icon-btn:hover,.pill-btn:hover{border-color:rgba(46,42,35,.28)}.pill-btn{padding:0 12px;font-size:11px}.pill-btn.active{background:#e7f3ec;border-color:#b8d9c8;color:#206b4d}.menu-btn{display:none}.chat-scroll{overflow-y:auto;scroll-behavior:smooth;position:relative}.welcome{width:min(850px,calc(100% - 42px));margin:auto;padding:clamp(55px,9vh,105px) 0 30px}.eyebrow{font:10px 'DM Mono';letter-spacing:2px;color:var(--accent);margin-bottom:16px}.welcome h2{font-family:'Playfair Display','Noto Sans SC';font-size:clamp(33px,4vw,53px);line-height:1.1;margin:0;letter-spacing:-1.8px}.welcome>p{color:var(--muted);font-size:14px;line-height:1.8;max-width:560px;margin:17px 0 30px}.prompt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.prompt-card{position:relative;min-height:145px;text-align:left;padding:18px;border:1px solid var(--line);border-radius:15px;background:#f7f4ee;transition:.2s}.prompt-card:hover{transform:translateY(-3px);border-color:#bcb3a6;background:#fff;box-shadow:0 12px 28px rgba(48,42,32,.08)}.prompt-card i{font-style:normal;color:var(--accent);font-size:23px}.prompt-card b{display:block;font-size:13px;margin:21px 0 5px}.prompt-card span{color:var(--muted);font-size:10px}.prompt-card em{position:absolute;right:16px;top:17px;font-style:normal;color:var(--muted)}.privacy-note{display:flex;gap:12px;margin-top:23px;padding:16px 18px;border-left:2px solid var(--accent);background:rgba(235,227,215,.48)}.privacy-note>span{color:var(--accent)}.privacy-note b{font-size:11px}.privacy-note p{font-size:10px;color:var(--muted);margin:3px 0 0}.messages{max-width:850px;margin:0 auto;padding:32px 22px 55px}.message{display:grid;grid-template-columns:34px 1fr;gap:13px;margin:0 0 28px;animation:rise .28s ease}.message.user{grid-template-columns:1fr 34px}.message.user .message-body{grid-column:1;grid-row:1;background:#ede7dc;border:1px solid var(--line);border-radius:16px 4px 16px 16px;padding:13px 16px;justify-self:end;max-width:80%}.message.user .message-avatar{grid-column:2;background:#d9cdbf}.message-avatar{width:31px;height:31px;border-radius:10px;background:var(--ink);color:white;display:grid;place-items:center;font:10px 'DM Mono'}.message-body{min-width:0;font-size:13px;line-height:1.8}.message-meta{font:9px 'DM Mono';color:var(--muted);margin-top:8px}.message-actions{display:flex;gap:3px;margin-top:8px;opacity:0;transition:.15s}.message:hover .message-actions{opacity:1}.message-actions button{border:0;background:none;color:var(--muted);font-size:10px;padding:3px 6px}.message-actions button:hover{color:var(--ink)}.message-content p{margin:.2em 0 .8em}.message-content pre{background:#27251f;color:#ebe7df;border-radius:12px;padding:14px;overflow:auto;font:11px/1.7 'DM Mono'}.message-content code{font-family:'DM Mono';background:#ece7de;padding:1px 4px;border-radius:4px}.message-content pre code{background:none;padding:0}.message-content img{max-width:100%;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow)}.message-content a{color:var(--accent-2)}.typing{display:inline-flex;gap:4px;padding:8px 0}.typing i{width:5px;height:5px;background:var(--accent);border-radius:50%;animation:pulse 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}.error-card{padding:12px 14px;border:1px solid #e5b8aa;background:#fff1ec;border-radius:11px;color:#8f2e20;font-size:11px}.generated-image{position:relative;display:inline-block;max-width:600px}.generated-image .download-image{position:absolute;right:10px;bottom:10px;border:0;border-radius:9px;background:rgba(32,30,26,.78);color:#fff;padding:7px 10px;font-size:10px}.composer-wrap{padding:8px 24px 14px;background:linear-gradient(0deg,var(--paper) 78%,rgba(251,250,246,0));z-index:8}.composer,.attachment-list,.composer-hint{width:min(850px,100%);margin:auto}.composer{border:1px solid #cfc7ba;border-radius:17px;background:#fff;box-shadow:0 11px 35px rgba(57,48,34,.09);padding:13px 13px 10px}.composer:focus-within{border-color:#8e867a;box-shadow:0 12px 38px rgba(57,48,34,.13)}.composer.dragging{border:1px dashed var(--accent);background:#fff7f3}.composer textarea{border:0;outline:0;resize:none;width:100%;max-height:160px;min-height:26px;background:transparent;padding:0 4px;line-height:1.6;font-size:13px}.composer-tools{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.tool-left,.tool-right{display:flex;align-items:center;gap:6px}.tool-btn,#reasoning-select{height:29px;border:1px solid transparent;background:#f3f0ea;border-radius:8px;font-size:10px;padding:0 9px}.tool-btn:first-child{font-size:17px;width:29px;padding:0}.tool-btn.active{color:var(--accent-2);background:#fff0eb;border-color:#efc5b9}#reasoning-select{outline:0;color:var(--muted)}#char-count{font:9px 'DM Mono';color:var(--muted)}.send-btn{width:31px;height:31px;border:0;border-radius:9px;background:var(--ink);color:#fff;font-size:17px}.send-btn:disabled{opacity:.35}.send-btn.stop{background:var(--accent)}.composer-hint{text-align:center;font:8px 'DM Mono';color:#a29b90;margin-top:7px}.attachment-list{display:flex;gap:7px;overflow-x:auto;padding:0 0 7px}.attachment-chip{display:flex;align-items:center;gap:7px;min-width:140px;max-width:220px;background:#ece7de;border:1px solid var(--line);border-radius:10px;padding:7px 9px;font-size:10px}.attachment-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip button{margin-left:auto;border:0;background:none}.modal-backdrop{position:fixed;inset:0;background:rgba(35,31,26,.38);backdrop-filter:blur(6px);z-index:100;display:grid;place-items:center;padding:20px;animation:fade .18s}.modal{background:var(--paper);border:1px solid rgba(255,255,255,.55);border-radius:20px;box-shadow:0 24px 80px rgba(33,28,22,.28);width:min(760px,100%);max-height:min(760px,92vh);overflow:hidden;display:flex;flex-direction:column}.modal.wide{width:min(930px,100%)}.modal-head{padding:20px 22px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.modal-head h3{font-family:'Playfair Display','Noto Sans SC';font-size:21px;margin:0}.modal-head p{font-size:10px;color:var(--muted);margin:4px 0 0}.modal-close{border:0;background:#ece7de;width:31px;height:31px;border-radius:9px}.modal-body{overflow:auto;padding:20px 22px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin:-8px 0 19px}.tab{border:0;background:none;padding:10px 13px;color:var(--muted);font-size:11px;border-bottom:2px solid transparent}.tab.active{color:var(--ink);border-color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:10px;min-height:40px;padding:9px 11px;outline:0;font-size:11px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8f877b}.field small{font-size:9px;color:var(--muted)}.switch-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:11px}.switch{position:relative;width:36px;height:20px}.switch input{display:none}.switch i{position:absolute;inset:0;background:#d5cfc5;border-radius:20px}.switch i:after{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+i{background:var(--ink)}.switch input:checked+i:after{transform:translateX(16px)}.modal-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.primary-btn,.secondary-btn,.danger-btn{border:0;border-radius:10px;padding:9px 14px;font-size:11px}.primary-btn{background:var(--ink);color:#fff}.secondary-btn{background:#ece7de}.danger-btn{background:#fff0ec;color:#ad3e29}.profile-card{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:13px;margin-bottom:8px}.profile-card.active{border-color:#8d8478;background:#f0ebe2}.profile-card .provider-icon{width:36px;height:36px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font:11px 'DM Mono'}.profile-card b{display:block;font-size:12px}.profile-card small{color:var(--muted);font-size:9px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat-card{border:1px solid var(--line);background:#f5f1ea;border-radius:13px;padding:14px}.stat-card span{font-size:9px;color:var(--muted)}.stat-card b{display:block;font:20px 'DM Mono';margin-top:8px}.usage-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:10px}.usage-table th,.usage-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px}.usage-bar{height:8px;background:#e7e1d8;border-radius:8px;overflow:hidden;margin-top:5px}.usage-bar i{display:block;height:100%;background:var(--accent);border-radius:8px}.diag-list{font:10px/1.6 'DM Mono';display:flex;flex-direction:column;gap:8px}.diag-item{border:1px solid var(--line);border-radius:11px;padding:11px}.diag-item.error{border-color:#e0b4a8;background:#fff4f0}.diag-item time{color:var(--muted)}.empty-state{text-align:center;padding:50px 20px;color:var(--muted);font-size:11px}.toast-root{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:var(--ink);color:#fff;padding:11px 15px;border-radius:10px;box-shadow:var(--shadow);font-size:11px;animation:rise .25s}.context-menu{position:fixed;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:5px;z-index:150}.context-menu button{display:block;width:100%;border:0;background:none;padding:8px 12px;text-align:left;font-size:10px;border-radius:7px}.context-menu button:hover{background:#eee9e1}.context-menu .danger{color:#b33d27}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes pulse{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(310px,88vw);transform:translateX(-105%);box-shadow:var(--shadow);transition:.25s}.sidebar.open{transform:none}.mobile-close,.menu-btn{display:block}.topbar{padding:0 14px}.top-actions .pill-btn{display:none}.prompt-grid{grid-template-columns:1fr}.prompt-card{min-height:105px}.welcome{padding-top:40px}.composer-wrap{padding:7px 10px 10px}.messages{padding-inline:13px}.message.user .message-body{max-width:92%}.stat-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.tool-btn span{display:none}.modal-body{padding:16px}.modal-head,.modal-foot{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Mobile viewport fixes: keep the composer visible and make the welcome screen compact. */
.app-shell,.main-panel,.chat-scroll{min-height:0}
.main-panel{grid-template-rows:72px minmax(0,1fr) auto;overflow:hidden}
.chat-scroll{overscroll-behavior:contain}

@media(max-width:820px){
  html,body{height:100%;height:100dvh;overflow:hidden}
  .app-shell{height:100dvh;min-height:0}
  .main-panel{height:100dvh;min-height:0;grid-template-rows:64px minmax(0,1fr) auto}
  .sidebar{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .topbar{padding:env(safe-area-inset-top) 12px 0}
  .title-side,.title-side>div{min-width:0}
  .title-side h1{max-width:48vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{gap:5px}
  .icon-btn{height:34px;min-width:34px}
  .welcome{width:calc(100% - 28px);padding:25px 0 22px}
  .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:10px}
  .welcome h2{font-size:34px;line-height:1.14;letter-spacing:-1px}
  .welcome>p{font-size:12px;line-height:1.65;margin:12px 0 18px}
  .prompt-grid{gap:8px}
  .prompt-card{min-height:78px;padding:12px 14px;display:grid;grid-template-columns:30px 1fr 18px;grid-template-rows:auto auto;column-gap:8px;align-items:center}
  .prompt-card i{grid-row:1/3;font-size:19px}
  .prompt-card b{grid-column:2;margin:0;font-size:12px;align-self:end}
  .prompt-card span{grid-column:2;font-size:9px;align-self:start}
  .prompt-card em{position:static;grid-column:3;grid-row:1/3;justify-self:end}
  .privacy-note{margin-top:12px;padding:11px 13px}
  .privacy-note p{line-height:1.55}
  .composer-wrap{padding:6px 9px max(8px,env(safe-area-inset-bottom));flex-shrink:0}
  .composer{padding:10px 10px 8px;border-radius:14px}
  .composer textarea{font-size:16px;min-height:24px;max-height:96px}
  .composer-tools{margin-top:5px}
  .composer-hint,#char-count{display:none}
  .tool-btn,#reasoning-select{height:28px;padding-inline:8px}
  .messages{padding:20px 12px 28px}
  .message{grid-template-columns:30px 1fr;gap:9px;margin-bottom:20px}
  .message.user{grid-template-columns:1fr 30px}
  .message-avatar{width:29px;height:29px}
  .modal-backdrop{padding:10px;align-items:end}
  .modal{max-height:92dvh;border-radius:18px 18px 10px 10px}
}

@media(max-width:480px) and (max-height:760px){
  .welcome{padding-top:16px}
  .welcome h2{font-size:30px}
  .welcome>p{margin:8px 0 12px}
  .prompt-card{min-height:68px;padding-block:9px}
  .privacy-note{display:none}
}
