@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=DM+Serif+Display&family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg-primary:#faf9f7;--bg-secondary:#f5f3ef;--bg-card:#ffffff;--text-primary:#1a1a1a;--text-secondary:#6b6b6b;--text-tertiary:#999;--accent:#2d5a27;--accent-light:#4a8c42;--accent-bg:rgba(45,90,39,0.08);--danger:#963030;--danger-bg:rgba(150,48,48,0.07);--danger-border:rgba(150,48,48,0.24);--info:#4a5b8c;--info-bg:rgba(74,91,140,0.10);--warning:#8a6a24;--warning-bg:rgba(138,106,36,0.10);--border:rgba(0,0,0,0.08);--shadow-card:0 14px 40px rgba(37,31,22,0.08);--radius-md:12px;--radius-lg:20px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:linear-gradient(180deg,#ece8df,#f4f1ea 60%);color:var(--text-primary);line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--accent)}code{font-family:JetBrains Mono,monospace;font-size:.9em}button,input,select,textarea{font:inherit}button:disabled{opacity:.58}.page-shell{width:min(720px,100%);margin:0 auto;padding:60px 24px 40px}.auth-shell,.join-shell{width:min(480px,100%);margin:0 auto;padding:80px 24px}.page-header{display:flex;align-items:baseline;gap:16px;margin-bottom:36px}.auth-title,.join-title,.page-title{font-family:"DM Serif Display",serif;line-height:1.05}.page-title{flex:1 1;font-size:40px}.auth-title{font-size:40px;margin-bottom:12px}.join-title{font-size:32px;margin-bottom:8px}.auth-copy,.join-copy,.muted-text,.page-user{color:var(--text-secondary)}.page-user{font-size:13px}.link-button{border:0;background:transparent;color:var(--accent);cursor:pointer;padding:0}.surface-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.home-card{padding:24px;margin-bottom:20px}.section-title{font-family:"DM Serif Display",serif;font-size:22px;line-height:1.1;margin-bottom:10px}.chat-link-list{display:flex;flex-direction:column;gap:8px}.chat-list-link{display:flex;align-items:baseline;gap:12px;padding:12px 16px;color:var(--text-primary);text-decoration:none}.chat-list-link strong{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permission-pill,.role-pill,.you-pill{border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:0}.permission-pill,.role-pill{font-size:10px;padding:2px 7px}.permission-pill.shared,.role-pill.owner,.you-pill{color:var(--accent);background:var(--accent-bg)}.role-pill.member{color:var(--text-tertiary)}.permission-pill.private{color:var(--warning);background:var(--warning-bg)}.app-footer{margin-top:40px;font-size:12px;text-align:center}.app-footer,.app-footer a{color:var(--text-tertiary)}.form-card{padding:24px;gap:14px}.form-card,.form-label{display:flex;flex-direction:column}.form-label{gap:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.composer-box textarea,.field{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--bg-card);color:var(--text-primary);font-size:15px}.mono-field{min-height:150px;resize:vertical;font-family:JetBrains Mono,monospace;font-size:12.5px;line-height:1.45}.inline-error{padding:10px 12px;background:var(--danger-bg);color:var(--danger);border-radius:8px;font-size:13px}.tap-target{min-height:44px}.danger-button,.file-button,.menu-button,.primary-button,.secondary-button{border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap}.primary-button{border:0;background:var(--accent);color:white;padding:10px 16px;font-size:13px;font-weight:600}.secondary-button{border:1px solid var(--border);background:transparent;color:var(--text-secondary);padding:9px 12px;font-size:13px;font-weight:600}.secondary-button.is-active{background:var(--accent-bg);color:var(--accent)}.danger-button{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);padding:9px 12px;font-size:13px;font-weight:600}.spinner-label{display:inline-flex;align-items:center;gap:8px}.spinner{width:14px;height:14px;border:2px solid;border-right:2px solid transparent;border-radius:999px;animation:spin .75s linear infinite}.chat-shell{min-height:100vh;display:flex;flex-direction:column}.chat-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.icon-link{width:44px;height:44px;color:var(--text-secondary);font-size:24px;text-decoration:none;display:grid;place-items:center}.chat-title-group{min-width:0;flex:1 1}.chat-title-group h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"DM Serif Display",serif;font-size:20px;line-height:1.1}.chat-title-group span{display:none;color:var(--text-tertiary);font-size:12px}.member-stack{display:flex;align-items:center;margin-right:4px}.member-stack-mobile{display:none}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--text-secondary);color:white;border:2px solid var(--bg-card);font-size:12px;font-weight:700}.avatar-count,.avatar.owner{background:var(--accent)}.avatar.overlap{margin-left:-8px}.avatar-count{font-size:11px}.chat-actions{display:flex;gap:8px;align-items:center}.chat-actions-mobile{display:none;position:relative}.icon-button{width:44px;padding:0;font-size:24px}.mobile-action-menu{position:absolute;right:0;top:calc(100% + 8px);width:184px;z-index:30;border:1px solid var(--border);background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);padding:6px}.menu-button{width:100%;min-height:44px;border:0;background:transparent;color:var(--text-primary);padding:10px;justify-content:flex-start}.menu-button:hover{background:var(--bg-secondary)}.share-banner{padding:12px 24px;background:var(--accent-bg);border-bottom:1px solid var(--border);color:var(--accent);font-size:13px}.share-banner code{display:inline-block;max-width:min(460px,100%);overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;background:var(--bg-card);padding:2px 8px;border-radius:4px}.chat-panel{padding:14px 24px 16px;background:rgba(255,255,255,.74);border-bottom:1px solid var(--border)}.context-panel{background:rgba(251,250,247,.92)}.message-list-inner,.panel-inner{width:min(820px,100%);margin:0 auto}.panel-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:13px}.panel-heading strong{flex:1 1}.empty-panel,.form-footer,.panel-heading span,.truncate span{color:var(--text-secondary);font-size:12px}.stack-list{display:flex;flex-direction:column;gap:8px}.context-row,.share-row{display:grid;grid-gap:10px;gap:10px;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px}.share-row{grid-template-columns:minmax(0,1fr) auto auto}.context-row{grid-template-columns:32px minmax(0,1fr) auto}.truncate{min-width:0}.resource-title strong,.truncate code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-form{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;padding:12px;margin-bottom:12px}.context-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;grid-gap:10px;gap:10px;margin-bottom:10px}.file-button{min-height:44px;border:1px solid var(--border);color:var(--text-secondary);padding:8px 12px;font-size:13px}.file-button input{display:none}.form-footer{display:flex;align-items:center;gap:10px;margin-top:8px}.form-footer>span:first-child{flex:1 1}.danger-text{color:var(--danger)!important}.resource-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--accent-bg);color:var(--accent);font-size:12px;font-weight:700}.resource-icon.file{background:var(--info-bg);color:var(--info)}.resource-title{display:flex;gap:8px;align-items:center;min-width:0}.edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 140px;grid-gap:8px;gap:8px}.row-actions{display:flex;gap:7px}.message-list{flex:1 1;width:min(820px,100%);margin:0 auto;padding:24px 24px 12px}.empty-chat,.empty-panel{color:var(--text-secondary);font-size:14px}.empty-chat{text-align:center;padding:56px 0}.message-row{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.message-avatar{width:32px;height:32px;border-radius:50%;background:var(--text-secondary);color:white;font-weight:700;font-size:13px;display:grid;place-items:center;flex-shrink:0}.message-avatar.accent{background:var(--accent)}.message-avatar.pulse{animation:pulse 1.2s ease-in-out infinite}.message-body{flex:1 1;min-width:0}.message-meta{display:flex;gap:8px;align-items:center;margin-bottom:4px;color:var(--text-tertiary);font-size:12px}.message-meta strong{color:var(--text-primary);font-size:13px}.pending-row .message-meta strong{color:var(--accent)}.you-pill{font-size:9px;padding:1px 5px}.message-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14.5px;line-height:1.55}.stream-cursor{display:inline-block;width:7px;height:1.1em;margin-left:2px;transform:translateY(2px);background:var(--accent);animation:blink .9s steps(2,start) infinite}.typing-dots:after{content:"...";animation:typingDots 1.2s steps(4) infinite}.composer-shell{position:-webkit-sticky;position:sticky;bottom:0;z-index:15;padding:12px 24px 24px;border-top:1px solid var(--border);background:rgba(245,243,239,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.send-error{margin:0 auto 10px;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);border-radius:10px;font-size:13px}.composer-box,.send-error{width:min(820px,100%);display:flex;padding:10px 12px}.composer-box{margin:0 auto;gap:10px;align-items:flex-end;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.composer-box textarea{flex:1 1;min-height:52px;border:0;outline:0;resize:none;background:transparent;padding:4px 0}.toast-stack{position:fixed;top:76px;right:20px;z-index:60;display:flex;flex-direction:column;gap:8px;width:min(320px,calc(100vw - 32px))}.toast{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);padding:10px 12px;font-size:13px}.toast.success{color:var(--accent);border-color:rgba(45,90,39,.18)}.toast.error{color:var(--danger);border-color:var(--danger-border)}.skeleton-row{height:54px;border-radius:8px;background:linear-gradient(90deg,rgba(0,0,0,.04),rgba(0,0,0,.08),rgba(0,0,0,.04));background-size:220% 100%;animation:shimmer 1.2s ease-in-out infinite}.skeleton-row.short{width:72%}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.94);opacity:.72}}@keyframes blink{0%,48%{opacity:1}49%,to{opacity:0}}@keyframes typingDots{0%{content:""}25%{content:"."}50%{content:".."}75%,to{content:"..."}}@keyframes shimmer{to{background-position:-220% 0}}@media (max-width:700px){.auth-shell,.join-shell,.page-shell{padding:34px 16px 28px}.page-header{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:28px}.auth-title,.page-title{font-size:34px}.chat-list-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.chat-list-link time{grid-column:1/-1}.chat-header{padding:10px 12px;gap:8px}.chat-title-group h1{font-size:18px}.chat-title-group span{display:block}.chat-actions-desktop,.member-stack-desktop{display:none}.chat-actions-mobile,.member-stack-mobile{display:flex}.chat-panel,.share-banner{padding-left:12px;padding-right:12px}.form-footer,.panel-heading,.send-error{align-items:stretch;flex-direction:column}.context-form-grid,.context-row,.edit-grid,.share-row{grid-template-columns:1fr}.row-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.message-list{width:100%;padding:14px 12px 130px}.message-row{gap:10px}.message-content{font-size:15px}.composer-shell{padding:10px 12px max(12px,env(safe-area-inset-bottom))}.composer-box{align-items:stretch}.composer-box textarea{min-height:58px}.composer-box .primary-button{min-width:68px}.toast-stack{top:70px;right:12px;left:12px;width:auto}}