:root{--bg: #0b0d12;--fg: #e6e8eb;--muted: #a9b0bd;--card: #121624;--border: #374058;--border-strong: #445073;--accent: #7c4dff;--accent-2: #5b7cfa;--danger: #ff5470;--success: #4ade80;--warning: #fbbf24;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px rgba(0,0,0,.1);--shadow-lg: 0 10px 15px rgba(0,0,0,.1);--shadow-xl: 0 20px 25px rgba(0,0,0,.1);--ctrl-h: 56px;--ctrl-w: 140px}:root[data-theme=light]{--bg: #ffffff;--fg: #1a1a1a;--muted: #666666;--card: #f8f9fa;--border: #e9ecef;--accent: #7c4dff;--accent-2: #5b7cfa;--danger: #dc3545}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:HarmonyOS Sans,MiSans,Inter,Segoe UI,PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bg-app{background:var(--bg)}.text-app{color:var(--fg)}.container{max-width:1100px;margin:0 auto}.content-wrap{width:clamp(420px,72vw,960px);margin:0 auto}.home-composer{max-width:780px;margin:24px auto 0;border-radius:20px;background:transparent;border:1px solid transparent;box-shadow:none}:root[data-theme=light] .home-composer{background:#fff}.home-composer .input{min-height:var(--ctrl-h);height:var(--ctrl-h);resize:none}.btn{background:var(--accent);color:#fff;padding:0 18px;border-radius:16px;transition:all .2s ease;box-shadow:var(--shadow-md);border:1px solid rgba(255,255,255,.08);cursor:pointer;font-weight:500;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:var(--ctrl-h);width:var(--ctrl-w);font-size:16px}.btn.sm,.btn.md,.btn.lg{height:var(--ctrl-h);width:var(--ctrl-w);padding:0 18px;font-size:16px;border-radius:16px}.btn.md{min-height:var(--ctrl-h);padding:10px 18px;font-size:14px}.btn.lg{min-height:48px;padding:12px 20px;font-size:15px}.tab-btn{background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:16px;padding:0 18px;font-size:16px;font-weight:500;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:var(--ctrl-h);width:var(--ctrl-w)}.tab-btn:hover{background:#ffffff0d;border-color:var(--accent)}.tab-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg);background:var(--accent-2)}.btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn:focus{outline:2px solid var(--accent);outline-offset:2px}.btn.secondary{background:transparent;color:var(--fg);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn.secondary:hover{background:#ffffff0d;border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input,.select,.file{background:var(--card);border:1px solid var(--border);color:var(--fg);padding:16px 18px;border-radius:16px;transition:all .2s ease;font-size:16px}.select{height:var(--ctrl-h);width:var(--ctrl-w);padding:0 18px;display:inline-block;box-sizing:border-box}.input:focus,.select:focus,.file:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #7c4dff33}.input:hover,.select:hover,.file:hover{border-color:#7c4dff80}.input::-moz-placeholder{color:var(--muted);opacity:.7}.input::placeholder{color:var(--muted);opacity:.7}.card{background:var(--card);border:1px solid var(--border-strong);border-radius:16px;padding:16px;transition:all .2s ease}.card:hover{box-shadow:var(--shadow-md);border-color:#7c4dff4d}.modal{position:fixed;inset:0;backdrop-filter:blur(8px);background:#02040873;display:grid;place-items:center;padding:20px;z-index:50;animation:fadeIn .2s ease}.modal-card{background:var(--card);border:1px solid var(--border-strong);border-radius:16px;padding:24px;width:clamp(420px,72vw,960px);max-width:960px;max-height:80vh;box-sizing:border-box;overflow:hidden;box-shadow:var(--shadow-xl);animation:bubbleIn .35s ease both}.modal-title{font-size:20px;font-weight:600;color:var(--fg);margin-bottom:16px;text-align:left}.modal-content{color:var(--fg);line-height:1.6;font-size:14px;max-height:50vh;overflow-y:auto;margin-bottom:20px;word-break:break-word;overflow-wrap:anywhere;scrollbar-gutter:stable both-edges;padding-inline:16px}.modal-content p{margin:8px 0;text-align:justify;-moz-text-align-last:left;text-align-last:left}.modal-footer{text-align:right}.modal-footer .btn{padding:10px 18px;border-radius:12px;min-height:40px;font-size:14px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.shine{position:relative}.shine:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(255,255,255,.08),transparent);transform:translate(-100%);animation:shine 2.3s infinite}@keyframes shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.bubble-in{animation:bubbleIn .35s ease both;will-change:transform,opacity}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ripple{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ripple:active:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;background:#fff9;border-radius:999px;transform:translate(-50%,-50%) scale(1);animation:ripple .6s ease-out}@keyframes ripple{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}to{transform:translate(-50%,-50%) scale(42);opacity:0}}.header{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,rgba(124,77,255,.12),transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(8px);padding:12px 0}:root[data-theme=light] .header{background:linear-gradient(180deg,rgba(124,77,255,.08),transparent)}.header .container{display:flex;align-items:center;justify-content:space-between;gap:16px}.header-left{display:flex;align-items:center;gap:12px}.header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.seg{display:inline-flex;gap:8px;align-items:center}.layout{display:grid;grid-template-columns:280px 1fr;gap:16px;padding:16px;min-height:calc(100vh - 80px)}@media (max-width: 860px){.layout{grid-template-columns:1fr;gap:12px;padding:12px}.sidebar{order:2}section{order:1}}.sidebar{display:flex;flex-direction:column;gap:12px;position:sticky;top:100px;height:-moz-fit-content;height:fit-content}@media (max-width: 860px){.sidebar{position:static;flex-direction:row;flex-wrap:wrap;gap:8px}.sidebar .card{flex:1;min-width:200px}}.sidebar .title{font-size:14px;color:var(--muted);letter-spacing:.2px;font-weight:600;margin-bottom:4px}.session-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.session-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--card);flex-wrap:wrap}.session-item .title{font-size:13px}.session-item .name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-actions{display:inline-flex;gap:6px;flex-wrap:wrap}.session-actions .btn{height:36px;min-width:80px;padding:6px 12px;font-size:13px;border-radius:12px}.msg-list{display:flex;flex-direction:column;gap:16px;min-height:52vh;padding:8px 0}.msg{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:flex-start;animation:bubbleIn .3s ease}@media (max-width: 640px){.msg{gap:8px;grid-template-columns:32px 1fr}}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#1a2030;color:#fff;box-shadow:inset 0 0 0 1px var(--border);font-size:12px;font-weight:600;transition:all .2s ease}@media (max-width: 640px){.avatar{width:32px;height:32px}}.avatar.ai{background:radial-gradient(120px circle at 30% 30%,#7c4dff,#5b7cfa);box-shadow:0 4px 14px #7c4dff59}.avatar:hover{transform:scale(1.05)}.bubble{background:#121724;border:1px solid var(--border-strong);border-radius:16px;padding:12px 16px;transition:all .2s ease;position:relative}:root[data-theme=light] .bubble{background:#fff}.bubble:hover{border-color:#7c4dff80;box-shadow:0 4px 12px #0000001a}.msg.ai .bubble{background:linear-gradient(180deg,#7c4dff14,#5b7cfa0f);border-color:#7c4dff59}:root[data-theme=light] .msg.ai .bubble{background:linear-gradient(180deg,#7c4dff0f,#5b7cfa0a);border-color:#7c4dff40}.msg.ai .bubble:hover{border-color:#7c4dff99}.meta{font-size:12px;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}.content{white-space:pre-wrap;line-height:1.6;word-break:break-word;overflow-wrap:break-word}.actions{display:flex;gap:8px;margin-top:8px}.content code,.content pre{background:#0e121b;border:1px solid var(--border-strong);padding:6px 8px;border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px}.content pre{padding:12px;margin:8px 0;overflow-x:auto}.typing{display:inline-flex;align-items:center;gap:4px;height:8px}.typing:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 1.4s infinite}.typing:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 1.4s infinite .2s}@keyframes blink{0%,60%,to{opacity:.2}30%{opacity:1}}.composer{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:16px 20px;border:1px solid var(--border-strong);background:var(--card);border-radius:24px;margin-top:16px;box-shadow:var(--shadow-xl)}.composer #send{max-width:160px;align-self:center}:root[data-theme=light] .composer{background:#fff}.composer .input{background:transparent;border:none;min-height:48px;padding:10px 4px;font-size:16px;width:100%;resize:none}.composer .input::-moz-placeholder{color:var(--muted)}.composer .input::placeholder{color:var(--muted)}@media (max-width: 640px){.composer{position:fixed;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 12px);grid-template-columns:1fr auto;gap:8px;padding:12px 16px;z-index:70}.content-wrap{padding-bottom:120px}}.composer .file{display:none}.composer-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#ffffff0f;border:1px solid var(--border-strong);font-size:13px;transition:all .2s ease;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip:hover{background:#ffffff1a;border-color:var(--accent)}.chip.danger{background:#ff547014;border-color:#ff54704d;color:#ff8aa0}.chip.danger:hover{background:#ff54701f}.empty{display:grid;place-items:center;min-height:60vh;padding:2rem}.empty .hero{text-align:center;max-width:780px;margin:40px auto 24px}.empty .avatar{margin:0 auto 16px;width:48px;height:48px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 4px 12px #7c4dff4d}.empty h2{font-size:56px;margin-bottom:8px;font-weight:800;letter-spacing:2px;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty p{color:var(--muted);line-height:1.6;margin-bottom:24px;font-size:15px}.scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent;scroll-behavior:smooth}.scroll::-webkit-scrollbar{width:8px}.scroll::-webkit-scrollbar-track{background:transparent;border-radius:4px}.scroll::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:999px;border:2px solid transparent;background-clip:padding-box}.scroll::-webkit-scrollbar-thumb:hover{background:#fff6}.scroll::-webkit-scrollbar-thumb:active{background:#ffffff80}input[type=file]{border:2px dashed var(--border);background:#ffffff05;transition:all .2s ease}input[type=file]:hover{border-color:var(--accent);background:#7c4dff0d}input[type=file]:focus{border-color:var(--accent);box-shadow:0 0 0 2px #7c4dff33}select{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23a9b0bd' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{resize:vertical;min-height:140px;max-height:280px}textarea:focus{box-shadow:0 0 0 2px #7c4dff33}.loading{opacity:.7;pointer-events:none}.loading:after{content:"";display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-left:8px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-contrast: high){:root{--border: #ffffff;--muted: #ffffff}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.header,.composer,.sidebar{display:none!important}.layout{grid-template-columns:1fr!important}.msg{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:6px;background:var(--accent);color:#fff;padding:8px;border-radius:4px;text-decoration:none;z-index:100;transition:top .3s}.skip-link:focus{top:6px}*:focus{outline:2px solid var(--accent);outline-offset:2px}button:focus,input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-contrast: high){:root{--border: #ffffff;--muted: #ffffff;--bg: #000000;--fg: #ffffff}.btn{border:2px solid currentColor}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-color-scheme: light){:root{--bg: #ffffff;--fg: #1a1a1a;--muted: #666666;--card: #f8f9fa;--border: #e9ecef;--accent: #7c4dff;--accent-2: #5b7cfa;--danger: #dc3545}}[role=status][aria-live=polite]{transition:opacity .2s ease}[role=status][aria-live=assertive]{font-weight:600}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.error-message{color:var(--danger);background:#ff54701a;border:1px solid rgba(255,84,112,.3);border-radius:8px;padding:12px;margin:8px 0;font-size:14px}.success-message{color:var(--success);background:#4ade801a;border:1px solid rgba(74,222,128,.3);border-radius:8px;padding:12px;margin:8px 0;font-size:14px}[title]{position:relative}[title]:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--card);color:var(--fg);padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:1000;border:1px solid var(--border);box-shadow:var(--shadow-md);margin-bottom:4px}.keyboard-navigation *:focus{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 640px){.container{padding-left:16px;padding-right:16px}.header .container{padding:12px 16px;flex-direction:column;gap:12px}.header-left,.header-right{width:100%;justify-content:center}.tab-btn{padding:6px 12px;font-size:12px}.btn{padding:8px 12px;font-size:13px}.input,.select,.file{padding:10px 12px;font-size:16px}textarea{font-size:16px}.card{padding:12px}.bubble{padding:10px 12px}.composer{padding:12px;gap:8px}.empty{padding:1rem;min-height:30vh}.empty h2{font-size:20px}.empty p{font-size:13px}}@media (max-width: 768px) and (min-width: 641px){.layout{gap:8px;padding:8px}.sidebar{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}.sidebar .card{flex:1;min-width:150px}}@media (min-width: 1200px){.container{max-width:1200px}.layout{grid-template-columns:320px 1fr;gap:20px;padding:20px}.sidebar{top:120px}}@media (min-width: 1024px){.composer{position:sticky;bottom:16px;z-index:10}}@media (min-width: 1600px){.container{max-width:1400px}.layout{grid-template-columns:360px 1fr;gap:24px;padding:24px}}.new-tip{position:fixed;right:20px;bottom:92px;z-index:60}.session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.session-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--card)}.session-item .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-item .actions{display:inline-flex;gap:6px}.session-item .pin{color:var(--warning)}.md-code{background:#0e121b;border:1px solid var(--border);border-radius:8px;padding:10px;overflow:auto}.md-code code{white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px}.tok-keyword{color:#c792ea}.tok-string{color:#ecc48d}.tok-number{color:#f78c6c}.tok-comment{color:#637777}.tok-operator{color:#89ddff}@media (max-width: 860px){.composer{position:fixed;left:0;right:0;bottom:0;border-top:1px solid var(--border);border-radius:0;padding-bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:45;background:#00000059}.content-wrap{padding-bottom:140px}:root[data-theme=light] .composer{background:#fff}}.banner{background:radial-gradient(1200px circle at 20% 10%,#7c4dff29,#5b7cfa14),var(--card);display:grid;place-items:center;min-height:160px}.banner-inner{text-align:center;padding:20px 12px}.banner-title{font-size:24px;font-weight:700}.banner-sub{color:var(--muted);margin-top:6px}.chips{display:inline-flex;gap:8px;margin-top:12px}.chip.lg{padding:10px 14px;font-size:14px}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px}.gallery-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;text-decoration:none;color:var(--fg);transition:all .2s ease;display:grid;gap:8px}.gallery-card:hover{border-color:#7c4dff59;box-shadow:var(--shadow-md);transform:translateY(-1px)}.gallery-card .icon{font-size:20px}.gallery-card .gc-title{font-weight:600}.gallery-card .gc-sub{color:var(--muted);font-size:13px}.hero{background:transparent;border:none;border-radius:0;padding:0;text-align:center}.hero-inner{max-width:720px;margin:0 auto}.hero-title{font-size:28px;font-weight:700;letter-spacing:.2px}.hero-sub{color:var(--muted);margin-top:8px}.hero-actions{display:inline-flex;gap:12px;margin-top:16px;flex-wrap:wrap;justify-content:center}.hero-card{background:#ffffff0f;border:1px solid var(--border-strong);border-radius:24px;padding:16px 24px;display:inline-block}:where(.sidebar) .btn{width:auto;min-width:96px}.sidebar .card{max-height:60vh;overflow:auto}
