:root{--primary:#68b88e;--primary-hover:#5aa87d;--primary-light:#68b88e1a;--dark:#1a1a1a;--text:#333;--text-secondary:#666;--text-light:#999;--bg:#fff;--bg-light:#f5f5f5;--bg-dark:#fafafa;--border:#e5e5e5;--border-light:#f0f0f0;--shadow:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001a;--shadow-lg:0 8px 32px #0000001f;--radius:12px;--radius-sm:8px;--radius-lg:16px;--radius-pill:999px;--transition:all .3s ease}*{box-sizing:border-box;margin:0;padding:0}@keyframes scrollUp{0%{transform:translateY(0)}to{transform:translateY(-50%)}}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;outline:none}input,textarea{font-family:inherit;font-size:inherit;border:none;outline:none}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.badge{border-radius:var(--radius-pill);align-items:center;padding:2px 8px;font-size:11px;font-weight:500;line-height:1.4;display:inline-flex}.badge-free{color:#1a1a1a;background:linear-gradient(135deg,#68b88e,#68b88e)}.badge-hot{color:#fff;background:linear-gradient(135deg,#ff6b6b,#ff4757)}.badge-new{color:#fff;background:linear-gradient(135deg,#4ecdc4,#44b09e)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:.5s forwards fadeIn}.slide-in-left{animation:.4s forwards slideInLeft}.slide-in-right{animation:.4s forwards slideInRight}.app{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1;padding-top:60px}.app-main-canvas{padding-top:0}.app-route-loading{color:#718278;place-items:center;min-height:calc(100vh - 60px);font-size:14px;font-weight:700;display:grid}.page-home{min-height:calc(100vh - 60px)}.page-chat{height:calc(100vh - 60px);display:flex}.page-categories{min-height:calc(100vh - 60px);padding:32px 24px}@media (width<=768px){.app-main{padding-top:56px;padding-bottom:calc(66px + env(safe-area-inset-bottom,0px));margin-left:0}.app-main-canvas{padding-top:0;padding-bottom:0}.page-chat{height:calc(100dvh - 56px - 66px - env(safe-area-inset-bottom,0px));flex-direction:column;min-height:0}.page-categories{padding:20px 16px}}.modelSwitcherShell{z-index:1000;touch-action:none;-webkit-user-select:none;user-select:none;transition:left .22s,right .22s,top .22s;position:fixed}.modelSwitcherDragging{transition:none}.modelSwitcherTrigger{color:#10281c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:grab;touch-action:none;background:#68b88e;border:1px solid #4fa878;border-radius:999px;justify-content:center;align-items:center;gap:4px;width:108px;height:42px;padding:0 10px;font-family:inherit;display:flex;box-shadow:0 12px 28px #68b88e4d}.modelSwitcherDragging .modelSwitcherTrigger{cursor:grabbing;box-shadow:0 16px 34px #68b88e61}.modelSwitcherTriggerLabel{font-size:13px;font-weight:700}.modelSwitcherTriggerValue,.modelSwitcherTriggerIcon{display:none}.modelSwitcherPanel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;background:#ffffffeb;border:1px solid #dde6e0;border-radius:12px;width:164px;padding:8px;transition:opacity .18s,transform .18s,visibility 0s linear .28s;position:absolute;top:50px;left:0;right:auto;transform:translateY(-6px);box-shadow:0 10px 30px #243c3014}.modelSwitcherSide-right .modelSwitcherPanel{left:auto;right:0}.modelSwitcherPanel:before{content:"";height:14px;position:absolute;bottom:100%;left:0;right:0}.modelSwitcherShell:hover .modelSwitcherPanel,.modelSwitcherShell:focus-within .modelSwitcherPanel{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.modelSwitcherShell:hover .modelSwitcherTrigger,.modelSwitcherShell:focus-within .modelSwitcherTrigger{cursor:grab;background:#5fab83;border-color:#4d9d73;justify-content:space-between;width:138px}.modelSwitcherShell:hover .modelSwitcherTriggerValue,.modelSwitcherShell:focus-within .modelSwitcherTriggerValue,.modelSwitcherShell:hover .modelSwitcherTriggerIcon,.modelSwitcherShell:focus-within .modelSwitcherTriggerIcon{display:inline-flex}.modelSwitcherHeader{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modelSwitcherTitle{color:#2e3a34;font-size:12px;font-weight:700}.modelOptionGroup{flex-direction:column;gap:8px;display:flex}.modelOption{cursor:pointer;text-align:left;background:#fafafa;border:1px solid #e5e5e5;border-radius:9px;min-height:50px;padding:9px 10px;font-family:inherit;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s;position:relative;overflow:hidden}.modelOption:hover{background:#f8fcfa;border-color:#68b88e;transform:translateY(-1px)}.modelOptionActive{background:#f4fbf7;border-color:#68b88e;box-shadow:0 0 0 1px #68b88e29}.modelOptionActiveBg{border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#68b88e33,#68b88e14);position:absolute;inset:0}.modelOptionName{z-index:1;color:#222;font-size:12px;font-weight:700;line-height:1.2;display:block;position:relative}.modelOptionDesc{z-index:1;color:#777;margin-top:4px;font-size:10px;line-height:1.2;display:block;position:relative}
