:root{--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-muted: #64748b;--text-faint: #94a3b8;--accent: #4f46e5;--accent-hover: #4338ca;--accent-soft: #eef2ff;--line-green: #06c755;--danger: #dc2626;--code-bg: #f1f5f9;--hover-overlay: rgba(15, 23, 42, .02);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--shadow-md: 0 4px 6px rgba(15, 23, 42, .05), 0 10px 15px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 25px rgba(15, 23, 42, .1), 0 10px 10px rgba(15, 23, 42, .04);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--topbar-h: 56px}:root[data-theme=dark]{--bg: #0b1120;--surface: #1e293b;--border: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--text-faint: #64748b;--accent: #818cf8;--accent-hover: #a5b4fc;--accent-soft: #1e1b4b;--code-bg: #0f172a;--hover-overlay: rgba(255, 255, 255, .04);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 10px 15px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 25px rgba(0, 0, 0, .5), 0 10px 10px rgba(0, 0, 0, .3)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bg: #0b1120;--surface: #1e293b;--border: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--text-faint: #64748b;--accent: #818cf8;--accent-hover: #a5b4fc;--accent-soft: #1e1b4b;--code-bg: #0f172a;--hover-overlay: rgba(255, 255, 255, .04);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 10px 15px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 25px rgba(0, 0, 0, .5), 0 10px 10px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,PingFang TC,Noto Sans TC,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;min-height:100dvh}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit}input,textarea{font-family:inherit;font-size:16px}a{color:var(--accent);text-decoration:none}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.topbar-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;color:var(--text)}.topbar-brand-btn{background:none;border:0;padding:4px 6px;margin:0 -6px;border-radius:8px;cursor:pointer;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}.topbar-brand-btn:active{background:var(--bg)}.topbar-actions{display:flex;align-items:center;gap:8px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--border);object-fit:cover}.menu-btn{height:36px;padding:0 12px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:14px}.menu-btn:hover{background:var(--bg);color:var(--text)}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;padding:0;border:2px solid transparent;background:transparent;transition:border-color .15s ease}.user-menu-trigger:hover,.user-menu-trigger:focus-visible{border-color:var(--accent-soft);outline:none}.user-menu-trigger[aria-expanded=true]{border-color:var(--accent)}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:8px;z-index:20;animation:menu-fade-in .12s ease-out}@keyframes menu-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{display:flex;align-items:center;gap:10px;padding:8px 8px 12px}.user-menu-id{min-width:0;flex:1}.user-menu-name{margin:0;font-weight:600;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-email{margin:2px 0 0;font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-divider{height:1px;background:var(--border);margin:4px 0}.user-menu-item{display:block;width:100%;text-align:left;padding:9px 10px;border-radius:var(--radius-sm);font-size:14px;color:var(--text)}.user-menu-item:hover,.user-menu-item:focus-visible{background:var(--bg);outline:none}.user-menu-item-danger{color:var(--danger)}.user-menu-item-danger:hover,.user-menu-item-danger:focus-visible{background:#fef2f2}.main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:24px 16px 96px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.greeting{margin-bottom:24px}.greeting-hello{font-size:13px;color:var(--text-faint);margin:0 0 4px}.greeting-name{font-size:24px;font-weight:700;margin:0;letter-spacing:-.01em}.section{margin-bottom:32px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.rename-row{display:flex;gap:8px}.rename-row>.input{flex:1}.rename-row>.btn{flex:0 0 auto;padding:0 20px}.section-title{font-size:13px;font-weight:600;color:var(--text-muted);margin:0;text-transform:uppercase;letter-spacing:.05em}.section>.section-title{margin-bottom:12px}.empty{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-md);padding:32px 16px;text-align:center;color:var(--text-faint)}.notebook-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px}.notebook-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease,border-color .12s ease}.notebook-card:hover{border-color:#cbd5e1;box-shadow:var(--shadow-sm)}.notebook-card:active{transform:scale(.99)}.notebook-card-main{flex:1;min-width:0}.notebook-name{font-weight:600;font-size:16px;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notebook-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.notebook-member-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em}.badge-personal{background:var(--accent-soft);color:var(--accent)}.badge-group{background:#ecfdf5;color:#047857}.chev{color:var(--text-faint);flex-shrink:0}.fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:28px;font-weight:300;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:transform .1s ease,background .12s ease;z-index:5}.fab:hover{background:var(--accent-hover)}.fab:active{transform:scale(.95)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:50;animation:fade-in .15s ease}@media(min-width:640px){.modal-backdrop{align-items:center}}.modal{width:100%;max-width:480px;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);animation:slide-up .2s cubic-bezier(.2,.8,.2,1)}@media(min-width:640px){.modal{border-radius:var(--radius-lg);margin:16px}}.modal-title{margin:0 0 16px;font-size:18px;font-weight:700}.modal-actions{display:flex;gap:8px;margin-top:16px}.input{width:100%;height:44px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 16px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;transition:background .12s ease,transform .08s ease;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff;flex:1}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{background:var(--text-faint);cursor:not-allowed}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);flex:1}.btn-secondary:hover{background:#f1f5f9}.type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.type-option{height:44px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-weight:600;font-size:14px;color:var(--text-muted);transition:all .12s ease}.type-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.landing{min-height:100vh;min-height:100dvh;background:linear-gradient(180deg,var(--accent-soft) 0%,var(--bg) 60%);display:flex;flex-direction:column}.login-screen{min-height:100vh;min-height:100dvh;background:linear-gradient(180deg,var(--accent-soft) 0%,var(--bg) 60%);display:flex;flex-direction:column;align-items:center;padding:32px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.login-brand-name{line-height:1}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:28px 24px;display:flex;flex-direction:column;gap:12px}.login-card>.btn{flex:0 0 auto}.login-heading{display:flex;flex-direction:column;gap:6px}.login-lead{margin:0;font-size:14px;color:var(--text-muted);text-align:center;word-break:break-word}.login-title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--text);text-align:center;word-break:break-word}.login-subtitle{margin:0 0 8px;font-size:14px;color:var(--text-muted);line-height:1.5;text-align:center}.login-about{width:100%;max-width:420px;margin-top:24px;text-align:center}.login-about-title{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--text-muted);letter-spacing:.04em}.login-about-text{margin:0;font-size:13px;line-height:1.7;color:var(--text-muted)}.landing-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:48px 24px 32px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));display:flex;flex-direction:column}.landing-hero{text-align:center;margin-bottom:56px}.landing-logo{display:inline-flex;margin-bottom:20px}.landing-title{margin:0 0 10px;font-size:36px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.landing-tagline{margin:0 0 36px;font-size:16px;color:var(--text-muted);line-height:1.5}.line-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:320px;height:48px;background:var(--line-green);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:15px;transition:filter .12s ease,transform .08s ease;margin:0 auto}.line-btn:hover{filter:brightness(.95)}.line-btn:active{transform:scale(.99)}.line-btn-large{height:56px;font-size:16px;border-radius:var(--radius-md);box-shadow:0 4px 12px #06c75540}.landing-login-hint{margin:12px 0 0;font-size:13px;color:var(--text-faint);text-align:center}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:48px}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;text-align:center;transition:transform .15s ease,box-shadow .15s ease}.feature-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.feature-icon{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);color:var(--accent);margin-bottom:12px}.feature-title{margin:0 0 6px;font-size:15px;font-weight:600;color:var(--text)}.feature-desc{margin:0;font-size:13px;line-height:1.5;color:var(--text-muted)}.landing-footer{margin-top:auto;text-align:center;font-size:12px;color:var(--text-faint);padding-top:24px;padding-bottom:max(0px,env(safe-area-inset-bottom))}.landing-footer p{margin:0}@media(min-width:600px){.landing-title{font-size:44px}.landing-tagline{font-size:18px}}.loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:14px}.icon-btn{width:36px;height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);margin-right:4px}.icon-btn:hover{background:var(--bg);color:var(--text)}.icon-btn:disabled{cursor:default;opacity:.5}.icon-btn:disabled:hover{background:none;color:var(--text-muted)}.icon-btn.is-spinning>svg{animation:icon-spin .7s linear infinite}@keyframes icon-spin{to{transform:rotate(-360deg)}}.link-btn{font-size:13px;font-weight:600;color:var(--accent);padding:4px 8px;border-radius:6px}.link-btn:hover{background:var(--accent-soft)}.btn-sm{height:36px;padding:0 12px;font-size:13px}.textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);outline:none;resize:vertical;min-height:80px;transition:border-color .12s ease,box-shadow .12s ease;font-family:inherit;font-size:15px;line-height:1.5}.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.detail-head{margin-bottom:24px}.detail-title{margin:0 0 8px;font-size:24px;font-weight:700;letter-spacing:-.01em}.detail-meta{display:flex;gap:6px;align-items:center}.badge-role{background:#f1f5f9;color:var(--text-muted)}.note-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.note-list-item{display:flex;gap:12px;align-items:flex-start;padding:14px 8px;margin:0 -8px;border-bottom:1px solid var(--border);cursor:pointer;border-radius:var(--radius-sm);transition:background .1s ease}.note-list-item:hover,.note-list-item:focus-visible{background:var(--hover-overlay);outline:none}.note-list-item:last-child{border-bottom:none}.note-list-item-main{flex:1;min-width:0}.note-list-item-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.note-list-item-author{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-list-item-date{font-size:11px;color:var(--text-faint);flex-shrink:0;margin-left:auto}.note-list-item-title{margin:0 0 4px;font-size:15px;font-weight:600;letter-spacing:-.005em;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-list-item-preview{margin:0;font-size:13px;line-height:1.5;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.note-list-item-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;font-size:12px;color:var(--text-faint)}.note-list-item-stat{display:inline-flex;align-items:center;gap:3px}.note-list-item-stat-emoji{font-size:13px;line-height:1}.note-list-item-stat-count{font-variant-numeric:tabular-nums;font-weight:500}.note-list-item-thumb{position:relative;flex-shrink:0;width:72px;height:72px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg)}.note-list-item-thumb img,.note-list-item-thumb video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.note-list-item-thumb-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none;background:linear-gradient(#0000 40%,#00000059);filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.note-list-item-with-thumb .note-list-item-preview{-webkit-line-clamp:1}.note-view{margin-bottom:20px}.note-view-author{display:flex;flex-direction:column;gap:2px;min-width:0}.note-view-date{font-size:12px;color:var(--text-faint)}.note-view-title{margin:12px 0;font-size:22px;font-weight:700;letter-spacing:-.01em;word-break:break-word}.feed-item{padding:16px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s ease;background:transparent}.feed-item:hover{background:#0f172a05;margin:0 -16px;padding-left:16px;padding-right:16px}.feed-item:last-child{border-bottom:none}.feed-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.feed-author{font-weight:600;font-size:14px;color:var(--text)}.feed-title{margin:0 0 6px;font-size:16px;font-weight:600;letter-spacing:-.005em}.feed-content{font-size:15px;line-height:1.6;color:var(--text);word-break:break-word}.feed-content p{margin:0 0 8px}.feed-content p:last-child{margin-bottom:0}.feed-content h1,.feed-content h2,.feed-content h3{font-weight:700;letter-spacing:-.01em;margin:16px 0 8px}.feed-content h1{font-size:20px}.feed-content h2{font-size:17px}.feed-content h3{font-size:16px}.feed-content ul,.feed-content ol{padding-left:22px;margin:0 0 8px}.feed-content li{margin-bottom:2px}.feed-content code{background:#f1f5f9;padding:1px 5px;border-radius:4px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.9em}.feed-content pre{background:#f1f5f9;padding:10px 12px;border-radius:var(--radius-sm);overflow-x:auto;margin:0 0 8px}.feed-content pre code{background:transparent;padding:0}.feed-content blockquote{border-left:3px solid var(--accent);padding-left:12px;margin:0 0 8px;color:var(--text-muted)}.feed-content a{color:var(--accent);text-decoration:underline}.feed-content img,.feed-content video{max-width:100%;max-height:480px;width:auto;height:auto;border-radius:var(--radius-sm);margin:6px 0;display:block}.feed-content video{background:#000}.video-facade{position:relative;display:block;width:100%;max-width:100%;margin:6px 0;border-radius:var(--radius-sm);overflow:hidden;background:#000;cursor:pointer;min-height:160px}.video-facade img{display:block;width:100%;max-height:480px;object-fit:contain;margin:0;border-radius:0}.video-facade-play{position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%);width:56px;height:56px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;pointer-events:none}.video-facade-play svg{margin-left:3px}.feed-date{display:block;margin-top:10px;font-size:12px;color:var(--text-faint)}.note-title{margin:0 0 4px;font-weight:600;font-size:15px}.note-preview{margin:0 0 6px;color:var(--text-muted);font-size:14px;line-height:1.5;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-date{margin:0;color:var(--text-faint);font-size:12px}.member-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.member-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.member-name{flex:1;font-weight:500;font-size:14px}.member-role{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.switch{position:relative;display:inline-block;width:40px;height:24px;flex-shrink:0}.switch>input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:999px;cursor:pointer;transition:background .15s ease}.switch-track:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0f172a33;transition:transform .15s ease}.switch>input:checked+.switch-track{background:var(--accent)}.switch>input:checked+.switch-track:before{transform:translate(16px)}.switch>input:focus-visible+.switch-track{box-shadow:0 0 0 3px var(--accent-soft)}.switch>input:disabled+.switch-track{opacity:.5;cursor:not-allowed}.invite-row{display:flex;gap:8px;align-items:center}.invite-row>.input{flex:1;font-family:SF Mono,Menlo,Consolas,monospace}.invite-row>.btn{flex:0 0 auto}.invite-qr{display:flex;justify-content:center;margin-top:12px;padding:12px;background:#fff;border:1px solid var(--border);border-radius:8px}.approval-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.approval-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:10px}@media(min-width:480px){.approval-item{flex-direction:row;align-items:center}}.approval-main{flex:1;display:flex;align-items:center;gap:10px}.approval-name{margin:0;font-weight:600;font-size:14px}.approval-message{margin:2px 0 0;font-size:13px;color:var(--text-muted)}.approval-actions{display:flex;gap:6px}.main-home{padding-top:16px}.home-controls{position:sticky;top:var(--topbar-h);z-index:5;background:var(--bg);margin:0 -16px 12px;padding:8px 16px;display:flex;flex-direction:column;gap:8px}.search-bar{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:var(--text-faint);pointer-events:none}.search-input{flex:1;height:38px;padding:0 32px 0 36px;border:1px solid transparent;border-radius:999px;background:#f1f5f9;color:var(--text);outline:none;-webkit-appearance:none;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.search-input::placeholder{color:var(--text-faint)}.search-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-clear{position:absolute;right:8px;width:22px;height:22px;border-radius:50%;background:var(--text-faint);color:#fff;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.search-clear:hover{background:var(--text-muted)}.tabs{display:flex;border-bottom:1px solid var(--border);margin:0 -16px;padding:0 16px}.tab{flex:1;height:44px;position:relative;font-size:15px;font-weight:500;color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;border-radius:0;transition:color .15s ease}.tab:hover{color:var(--text)}.tab.active{color:var(--text);font-weight:600}.tab.active:after{content:"";position:absolute;bottom:-1px;left:20%;right:20%;height:2px;background:var(--text);border-radius:2px 2px 0 0}.tab-count{font-size:12px;color:var(--text-faint);font-weight:500;background:transparent;padding:0}.tab.active .tab-count{color:var(--text-muted)}.scroll-list{contain:layout style}.scroll-list>.notebook-card,.scroll-list>.note-list-item{contain:layout paint;content-visibility:auto;contain-intrinsic-size:auto 70px}.editor-toolbar{position:sticky;top:var(--topbar-h);z-index:5;display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.toolbar-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-muted)}.toolbar-btn:hover:not(:disabled){background:var(--bg);color:var(--text)}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.toolbar-hint{margin-left:auto;font-size:12px;color:var(--text-faint)}.toolbar-error{margin-left:auto;font-size:12px;color:var(--danger)}.editor-body{position:relative}.editor-body.drag-active{outline:2px dashed var(--accent);outline-offset:-8px;border-radius:var(--radius-md)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#eef2ffd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;color:var(--accent);border-radius:var(--radius-md);pointer-events:none;z-index:2}.editor-preview video{max-width:100%;border-radius:var(--radius-sm);background:#000}.editor-shell{display:flex;flex-direction:column;background:var(--surface);min-height:100dvh}.editor-shell:has(.editor-footer){position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--vv-height, 100dvh);min-height:0;overflow:hidden}.editor-bar{flex:none;z-index:10;height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:8px}.editor-bar-info{flex:1;display:flex;justify-content:center}.editor-bar-spacer{flex:1}.editor-status{font-size:12px;color:var(--text-faint)}.editor-status-dirty{color:var(--accent);font-weight:500}.text-btn{height:36px;padding:0 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-muted)}.text-btn:hover{background:var(--bg);color:var(--text)}.editor-save{flex:0 0 auto}.editor-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom))}.editor-title{width:100%;border:none;outline:none;background:transparent;font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text);padding:8px 0;margin-bottom:4px}.editor-title::placeholder{color:var(--text-faint)}.editor-content{flex:1;width:100%;border:none;outline:none;resize:none;background:transparent;font-family:inherit;font-size:16px;line-height:1.6;color:var(--text);padding:8px 0;min-height:60vh}.editor-content::placeholder{color:var(--text-faint)}.editor-preview{padding:8px 0;font-size:16px;line-height:1.6;color:var(--text)}.editor-preview h1,.editor-preview h2,.editor-preview h3{font-weight:700;letter-spacing:-.01em;margin:24px 0 8px}.editor-preview h1{font-size:26px}.editor-preview h2{font-size:20px}.editor-preview h3{font-size:17px}.editor-preview p{margin:0 0 12px}.editor-preview ul,.editor-preview ol{padding-left:24px;margin:0 0 12px}.editor-preview li{margin-bottom:4px}.editor-preview code{background:#f1f5f9;padding:2px 5px;border-radius:4px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.9em}.editor-preview pre{background:#f1f5f9;padding:12px 14px;border-radius:var(--radius-sm);overflow-x:auto;margin:0 0 12px}.editor-preview pre code{background:transparent;padding:0}.editor-preview blockquote{border-left:3px solid var(--accent);padding-left:14px;margin:0 0 12px;color:var(--text-muted)}.editor-preview a{color:var(--accent);text-decoration:underline}.editor-preview img{max-width:100%;border-radius:var(--radius-sm)}.editor-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-faint);padding:32px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.detail-head-clickable{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px;margin:-8px -8px 16px;border-radius:var(--radius-md);transition:background .12s ease}.detail-head-clickable .detail-title{margin-bottom:6px;flex-shrink:1;min-width:0}.detail-head-clickable>.chev{color:var(--text-faint);flex-shrink:0;margin-left:auto}.detail-head-clickable:hover,.detail-head-clickable:focus-visible{background:var(--bg);outline:none}.feed-head{position:relative}.note-menu{margin-left:auto;position:relative}.note-menu-trigger{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-muted);transition:background .12s ease,color .12s ease}.note-menu-trigger:hover,.note-menu-trigger:focus-visible{background:var(--bg);color:var(--text);outline:none}.note-menu-trigger[aria-expanded=true]{background:var(--bg);color:var(--text)}.note-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;z-index:20;animation:menu-fade-in .12s ease-out}.note-menu-item{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);font-size:14px;color:var(--text)}.note-menu-item:hover,.note-menu-item:focus-visible{background:var(--bg);outline:none}.note-menu-item-danger{color:var(--danger)}.note-menu-item-danger:hover,.note-menu-item-danger:focus-visible{background:#fef2f2}.settings-head{margin-bottom:24px}.back-link{display:inline-flex;align-items:center;font-size:14px;color:var(--text-muted);padding:4px 0;margin-bottom:6px}.back-link:hover{color:var(--text)}.settings-title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}.album-empty{text-align:center;padding:64px 16px;font-size:16px;color:var(--text-muted)}.album-filters{display:flex;align-items:center;gap:8px;margin-bottom:14px}.album-filter-group{display:flex;gap:8px}.album-view-toggle{margin-left:auto;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);cursor:pointer}.album-filter{padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:14px;cursor:pointer}.album-filter.active{background:var(--accent);border-color:var(--accent);color:#fff}.album-group{margin-bottom:22px}.album-group-title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-muted);position:sticky;top:env(safe-area-inset-top,0px);background:var(--bg);padding:4px 0;z-index:1}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}@media(min-width:640px){.album-grid{grid-template-columns:repeat(4,1fr)}}.album-cell{position:relative;aspect-ratio:1 / 1;padding:0;border:none;border-radius:2px;overflow:hidden;background:var(--border);cursor:pointer}.album-cell img{width:100%;height:100%;object-fit:cover;display:block}.album-cell-blank{display:block;width:100%;height:100%;background:#1e293b}.album-cell-play{position:absolute;right:4px;bottom:4px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#0000008c;color:#fff;pointer-events:none}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000;display:flex;align-items:center;justify-content:center}.lightbox-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:linear-gradient(rgba(0,0,0,.6),transparent);color:#fff;z-index:1}.lightbox-count{font-size:14px;opacity:.85}.lightbox-link{margin-left:auto;padding:4px 10px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:transparent;color:#fff;font-size:13px;cursor:pointer}.lightbox-close{padding:4px 8px;border:none;background:transparent;color:#fff;font-size:20px;line-height:1;cursor:pointer}.lightbox-stage{max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.lightbox-stage img,.lightbox-stage video{max-width:100vw;max-height:100vh;object-fit:contain;display:block}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:none;border-radius:50%;background:#00000073;color:#fff;font-size:28px;line-height:1;cursor:pointer}.lightbox-nav.prev{left:8px}.lightbox-nav.next{right:8px}.editor-content-wrap{flex:1;display:flex;flex-direction:column}.tiptap-content,.ProseMirror{flex:1;outline:none;font-family:inherit;font-size:16px;line-height:1.6;color:var(--text);padding:8px 0;min-height:60vh;word-break:break-word}.tiptap-content>*+*,.ProseMirror>*+*{margin-top:.6em}.tiptap-content p,.ProseMirror p{margin:0}.tiptap-content h1,.ProseMirror h1{font-size:26px;font-weight:700;letter-spacing:-.01em;margin-top:.8em}.tiptap-content h2,.ProseMirror h2{font-size:20px;font-weight:700;letter-spacing:-.01em;margin-top:.8em}.tiptap-content h3,.ProseMirror h3{font-size:17px;font-weight:700;letter-spacing:-.01em;margin-top:.8em}.tiptap-content ul,.tiptap-content ol,.ProseMirror ul,.ProseMirror ol{padding-left:24px}.tiptap-content blockquote,.ProseMirror blockquote{border-left:3px solid var(--accent);padding-left:14px;color:var(--text-muted)}.tiptap-content code,.ProseMirror code{background:#f1f5f9;padding:2px 5px;border-radius:4px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.9em}.tiptap-content pre,.ProseMirror pre{background:#f1f5f9;padding:12px 14px;border-radius:var(--radius-sm);overflow-x:auto}.tiptap-content pre code,.ProseMirror pre code{background:transparent;padding:0}.tiptap-content a,.ProseMirror a{color:var(--accent);text-decoration:underline}.tiptap-content img,.ProseMirror img,.tiptap-content video,.ProseMirror video{max-width:100%;max-height:480px;width:auto;height:auto;border-radius:var(--radius-sm);display:block}.tiptap-content video,.ProseMirror video{background:#000}.tiptap-content img.ProseMirror-selectednode,.ProseMirror img.ProseMirror-selectednode,.tiptap-content video.ProseMirror-selectednode,.ProseMirror video.ProseMirror-selectednode{outline:2px solid var(--accent);outline-offset:2px}.tiptap-content p.is-editor-empty:first-child:before,.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-faint);float:left;height:0;pointer-events:none}.editor-footer{display:flex;align-items:center;gap:12px;padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));background:var(--surface);border-top:1px solid var(--border);flex:none}.footer-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-muted);transition:background .12s ease,color .12s ease}.footer-btn:hover:not(:disabled){background:var(--bg);color:var(--accent)}.footer-btn:disabled{opacity:.4;cursor:not-allowed}.footer-hint{margin-left:auto;font-size:12px;color:var(--text-faint)}.footer-error{font-size:12px;color:var(--danger)}.upload-ph{position:relative;display:block;margin:6px 0;border-radius:var(--radius-sm);overflow:hidden;background:#0f172a;min-height:180px}.upload-ph-preview{display:block;width:100%;max-height:480px;object-fit:contain;filter:brightness(.5)}.upload-ph-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.upload-ph-ring{transform:rotate(-90deg)}.upload-ph-ring .track,.upload-ph-ring .bar{fill:none;stroke-width:3}.upload-ph-ring .track{stroke:#ffffff40}.upload-ph-ring .bar{stroke:#fff;stroke-linecap:round;stroke-dasharray:125.664;stroke-dashoffset:calc(125.664px * (1 - var(--p, 0)));transition:stroke-dashoffset .4s ease-out}.upload-ph-pct{position:absolute;font-size:12px;font-variant-numeric:tabular-nums;color:#ffffffd9;pointer-events:none}.upload-ph[data-state=error] .upload-ph-ring .bar{stroke:var(--danger)}.upload-ph[data-state=error] .upload-ph-pct{position:static;font-size:13px}.upload-ph[data-state=error] .upload-ph-ring{display:none}.upload-ph-cancel{position:absolute;top:8px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:#00000080;color:#fff;font-size:14px;line-height:1;cursor:pointer}.feed-body{cursor:pointer;margin:0 -8px;padding:0 8px;border-radius:var(--radius-sm);transition:background .1s ease}.feed-body:hover{background:#0f172a05}.reaction-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.reaction-chip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border-radius:14px;background:var(--bg);border:1px solid transparent;font-size:13px;color:var(--text);transition:background .12s ease,border-color .12s ease}.reaction-chip:hover{background:#e2e8f0}.reaction-chip-me{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.reaction-chip-me:hover{background:#e0e7ff}.reaction-emoji{font-size:14px;line-height:1}.reaction-count{font-weight:600;font-variant-numeric:tabular-nums}.note-actions{display:flex;align-items:center;gap:4px;margin-top:10px}.action-btn{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 8px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;transition:background .12s ease,color .12s ease}.action-btn:hover{background:var(--bg);color:var(--text)}.action-btn-active{color:var(--accent);background:var(--accent-soft)}.action-count{font-weight:600;font-variant-numeric:tabular-nums}.emoji-picker-wrap{position:relative}.emoji-picker{position:absolute;bottom:calc(100% + 8px);left:0;display:flex;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-md);z-index:5;animation:menu-fade-in .12s ease-out}.emoji-pick-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:20px;line-height:1;transition:background .12s ease,transform .08s ease}.emoji-pick-btn:hover{background:var(--bg);transform:scale(1.15)}.comment-thread{margin-top:12px;padding:12px;background:var(--bg);border-radius:var(--radius-md)}.comment-empty{margin:0 0 12px;font-size:13px;color:var(--text-faint);text-align:center}.comment-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:10px}.comment-item{display:flex;gap:8px;align-items:flex-start}.comment-body{flex:1;min-width:0;background:var(--surface);border-radius:var(--radius-md);padding:8px 10px}.comment-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.comment-author{font-weight:600;font-size:13px;color:var(--text)}.comment-time{font-size:11px;color:var(--text-faint)}.comment-content{margin:0;font-size:14px;color:var(--text);white-space:pre-wrap;word-break:break-word}.comment-delete{width:22px;height:22px;border-radius:50%;color:var(--text-faint);font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s ease,color .12s ease}.comment-delete:hover{background:var(--surface);color:var(--danger)}.comment-input-row{display:flex;gap:8px;align-items:center}.comment-input{flex:1;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.comment-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.comment-error{margin:8px 0 0;font-size:12px;color:var(--danger)}.notif-bell{display:inline-flex}.notif-trigger{position:relative;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-muted);transition:background .12s ease,color .12s ease}.notif-trigger:hover,.notif-trigger:focus-visible{background:var(--bg);color:var(--text);outline:none}.notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--surface)}.notif-page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.notif-page-title{margin:0;font-size:22px;font-weight:700;color:var(--text)}.notif-mark-all{font-size:13px;color:var(--accent);padding:6px 10px;border-radius:var(--radius-sm);transition:background .12s ease}.notif-mark-all:hover{background:var(--accent-soft)}.notif-tabs{display:inline-flex;background:var(--bg);border-radius:999px;padding:3px;gap:2px;margin-bottom:16px}.notif-tab{padding:6px 16px;border-radius:999px;font-size:13px;font-weight:500;color:var(--text-muted);transition:background .12s ease,color .12s ease}.notif-tab:hover{color:var(--text)}.notif-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.notif-empty{margin:0;padding:48px 16px;text-align:center;font-size:13px;color:var(--text-faint)}.notif-list{list-style:none;padding:0;margin:0}.notif-list-page{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.notif-list>li+li{border-top:1px solid var(--border)}.notif-more{display:flex;justify-content:center;margin-top:16px}.notif-item{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:14px 16px;background:transparent;transition:background .1s ease}.notif-item:hover{background:var(--bg)}.notif-item-unread{background:var(--accent-soft)}.notif-item-unread:hover{background:#e0e7ff}.notif-body{flex:1;min-width:0}.notif-text{margin:0;font-size:13px;line-height:1.45;color:var(--text);word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-time{display:block;margin-top:4px;font-size:11px;color:var(--text-faint)}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:12px}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px}.profile-avatar-row{display:flex;align-items:center;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border)}.profile-avatar-row .avatar{width:72px;height:72px;flex-shrink:0}.profile-meta{flex:1;min-width:0}.profile-meta-line{display:flex;align-items:center;gap:12px;margin:0 0 6px;font-size:13px}.profile-meta-line:last-child{margin-bottom:0}.profile-meta-label{width:56px;flex-shrink:0;color:var(--text-faint);font-weight:500}.profile-meta-value{color:var(--text);word-break:break-all}.profile-field{margin-bottom:16px}.profile-label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px;font-weight:500}.profile-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.profile-error{font-size:13px;color:var(--danger)}.profile-saved{font-size:13px;color:var(--accent);font-weight:500}.profile-hint{margin:0;font-size:12px;color:var(--text-faint);text-align:center}.member-self{font-size:12px;color:var(--text-faint);margin-left:4px}.member-item{position:relative}.btn-block{display:flex;width:100%}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.danger-section{border-top:1px solid var(--border);padding-top:16px;margin-top:24px}.danger-hint{margin:8px 0 0;font-size:12px;color:var(--text-faint)}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:14px}.settings-section-title{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-row-label{font-size:14px;color:var(--text)}.settings-row-value{font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums}.settings-info{margin:0;font-size:13px;color:var(--text-muted);line-height:1.5}.settings-howto{margin:8px 0 0;padding-left:20px;font-size:13px;color:var(--text-muted);line-height:1.7}.settings-howto li{margin:0}.settings-about-links{margin-top:12px;font-size:13px;color:var(--text-muted)}.settings-about-links a{color:var(--accent)}.settings-about-sep{margin:0 8px;color:var(--text-faint)}.theme-toggle{display:inline-flex;background:var(--bg);border-radius:999px;padding:3px;gap:2px}.theme-option{padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;color:var(--text-muted);transition:background .12s ease,color .12s ease}.theme-option:hover{color:var(--text)}.theme-option.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.iab-banner{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));background:#fff7ed;border-bottom:1px solid #fed7aa;color:#7c2d12}:root[data-theme=dark] .iab-banner{background:#2a1a0c;border-bottom-color:#7c2d12;color:#fed7aa}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .iab-banner{background:#2a1a0c;border-bottom-color:#7c2d12;color:#fed7aa}}.iab-banner-icon{flex:0 0 auto;margin-top:2px;color:#c2410c}:root[data-theme=dark] .iab-banner-icon{color:#fb923c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .iab-banner-icon{color:#fb923c}}.iab-banner-body{flex:1;min-width:0}.iab-banner-title{margin:0 0 4px;font-size:14px;font-weight:600}.iab-banner-text{margin:0;font-size:13px;line-height:1.5;opacity:.9}.iab-banner-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.iab-btn{flex:0 0 auto}.iab-banner-close{flex:0 0 auto;width:28px;height:28px;border-radius:50%;font-size:20px;line-height:1;color:inherit;opacity:.6}.iab-banner-close:hover,.iab-banner-close:focus-visible{opacity:1;background:#0000000f;outline:none}:root[data-theme=dark] .iab-banner-close:hover,:root[data-theme=dark] .iab-banner-close:focus-visible{background:#ffffff14}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .iab-banner-close:hover,:root:not([data-theme=light]) .iab-banner-close:focus-visible{background:#ffffff14}}.iab-gate{display:flex;flex-direction:column;gap:10px;padding:16px;background:#fff7ed;border:1px solid #fed7aa;border-radius:var(--radius-md);color:#7c2d12;text-align:left}:root[data-theme=dark] .iab-gate{background:#2a1a0c;border-color:#7c2d12;color:#fed7aa}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .iab-gate{background:#2a1a0c;border-color:#7c2d12;color:#fed7aa}}.iab-gate-title{font-size:15px;font-weight:600}.iab-gate-text{margin:0;font-size:13px;line-height:1.6;opacity:.9}.iab-gate-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.iab-gate-btn{flex:1 1 auto;min-width:140px}.install-banner{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:14px 16px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:var(--radius-md)}.install-banner-icon{flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center}.install-banner-body{flex:1;min-width:0}.install-banner-title{margin:0;font-size:14px;font-weight:600;color:var(--text)}.install-banner-text{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.install-banner-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.env-badge{position:fixed;left:max(8px,env(safe-area-inset-left));bottom:max(8px,env(safe-area-inset-bottom));z-index:9999;padding:3px 8px;border-radius:999px;background:#b45309;color:#fff;font-size:11px;font-weight:600;letter-spacing:.02em;opacity:.85;pointer-events:none}.feed-content .file-card,.tiptap-content .file-card,.ProseMirror .file-card{--file-card-hue: var(--accent);display:block;margin:8px 0;max-width:100%}.feed-content .file-card[data-ext=PDF i],.tiptap-content .file-card[data-ext=PDF i],.ProseMirror .file-card[data-ext=PDF i],.feed-content .file-card[data-ext=PPT i],.tiptap-content .file-card[data-ext=PPT i],.ProseMirror .file-card[data-ext=PPT i],.feed-content .file-card[data-ext=PPTX i],.tiptap-content .file-card[data-ext=PPTX i],.ProseMirror .file-card[data-ext=PPTX i]{--file-card-hue: var(--danger)}.feed-content .file-card[data-ext=TXT i],.tiptap-content .file-card[data-ext=TXT i],.ProseMirror .file-card[data-ext=TXT i],.feed-content .file-card[data-ext=CSV i],.tiptap-content .file-card[data-ext=CSV i],.ProseMirror .file-card[data-ext=CSV i],.feed-content .file-card[data-ext=XLS i],.tiptap-content .file-card[data-ext=XLS i],.ProseMirror .file-card[data-ext=XLS i],.feed-content .file-card[data-ext=XLSX i],.tiptap-content .file-card[data-ext=XLSX i],.ProseMirror .file-card[data-ext=XLSX i]{--file-card-hue: var(--text-muted)}.feed-content .file-card-link,.tiptap-content .file-card-link,.ProseMirror .file-card-link{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);text-decoration:none;transition:background .12s ease,border-color .12s ease}@media(hover:hover){.feed-content .file-card-link:hover,.tiptap-content .file-card-link:hover,.ProseMirror .file-card-link:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}}.feed-content .file-card-link:focus-visible,.tiptap-content .file-card-link:focus-visible,.ProseMirror .file-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feed-content .file-card-badge,.tiptap-content .file-card-badge,.ProseMirror .file-card-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:color-mix(in srgb,var(--file-card-hue) 16%,var(--surface));border:1px solid color-mix(in srgb,var(--file-card-hue) 32%,transparent);color:color-mix(in srgb,var(--file-card-hue) 72%,var(--text));font-size:10px;font-weight:700;letter-spacing:.03em;line-height:1;text-transform:uppercase;overflow:hidden}.feed-content .file-card-body,.tiptap-content .file-card-body,.ProseMirror .file-card-body{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.feed-content .file-card-name,.tiptap-content .file-card-name,.ProseMirror .file-card-name{display:block;min-width:0;font-size:14px;font-weight:600;line-height:1.35;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}.feed-content .file-card-size,.tiptap-content .file-card-size,.ProseMirror .file-card-size{display:block;font-size:12px;line-height:1.3;color:var(--text-muted);font-variant-numeric:tabular-nums}.tiptap-content .file-card-link,.ProseMirror .file-card-link{pointer-events:none;cursor:default}.tiptap-content .file-card.ProseMirror-selectednode,.ProseMirror .file-card.ProseMirror-selectednode{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-md)}.note-list-item-thumb-file{background:var(--surface);border:1px solid var(--border)}.note-list-item-thumb-ext{--file-card-hue: var(--accent);display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:color-mix(in srgb,var(--file-card-hue) 14%,var(--surface));color:color-mix(in srgb,var(--file-card-hue) 72%,var(--text));font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;overflow:hidden}.note-list-item-thumb-ext[data-ext=PDF i],.note-list-item-thumb-ext[data-ext=PPT i],.note-list-item-thumb-ext[data-ext=PPTX i]{--file-card-hue: var(--danger)}.note-list-item-thumb-ext[data-ext=TXT i],.note-list-item-thumb-ext[data-ext=CSV i],.note-list-item-thumb-ext[data-ext=XLS i],.note-list-item-thumb-ext[data-ext=XLSX i]{--file-card-hue: var(--text-muted)}.quota-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;font-size:14px}.quota-top b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.quota-track{height:8px;border-radius:4px;background:var(--border, #e2e5ea);overflow:hidden}.quota-fill{height:100%;border-radius:4px;transition:width .3s ease}.quota-ok{background:var(--accent, #3b5bdb)}.quota-warn{background:#f08c00}.quota-over{background:var(--danger, #c92a2a)}.quota-note{margin-top:8px}.quota-site-full{margin-top:8px;padding:8px 10px;border-radius:8px;background:#c92a2a14}
