.toast-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-soft);cursor:pointer;transition:background var(--transition-fast)}.toast-close:hover{background:var(--bg-subtle)}.app-shell{height:100vh;border-radius:0;clip-path:none;overflow:hidden;background:transparent}.app-frame{position:relative;isolation:isolate;height:100vh;display:grid;grid-template-rows:64px minmax(0,1fr) 28px;border-radius:0;clip-path:none;overflow:hidden;border:1px solid var(--line-soft);background:#fffffffa;box-shadow:var(--shadow-lg)}[data-theme=dark] .app-frame{background:#1e2530fa}html[data-tauri=true] .app-shell,html[data-tauri=true] .app-frame{border-radius:var(--radius-xl);clip-path:inset(0 round var(--radius-xl))}.app-toolbar{position:relative;z-index:10;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line-soft);background:#fffffffa}[data-theme=dark] .app-toolbar{background:#1e2530fa}.toolbar-drag-surface{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-width:0;min-height:40px;cursor:grab;-webkit-user-select:none;user-select:none}.toolbar-drag-surface:active{cursor:grabbing}.toolbar-brand-block{display:flex;align-items:center;gap:var(--space-3);min-width:0}.toolbar-brand-dot{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:var(--radius-xs);color:var(--text-inverse);background:var(--bg-accent);font-size:var(--font-sm);font-weight:var(--font-weight-bold);box-shadow:0 10px 24px #4f7cff38,inset 0 1px #ffffff57}.toolbar-copy{min-width:0;display:grid;gap:2px}.toolbar-copy strong,.toolbar-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-copy strong{font-size:var(--font-base);letter-spacing:-.01em}.toolbar-copy span{color:var(--text-soft);font-size:var(--font-xs)}.toolbar-search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--line-soft);min-width:240px;max-width:360px}.toolbar-search-icon{font-size:var(--font-sm);opacity:.6}.toolbar-search-input{flex:1;border:none;background:transparent;font-size:var(--font-sm);color:var(--text-strong)}.toolbar-right-group{display:flex;align-items:center;gap:10px;flex-shrink:0}.theme-toggle{display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.theme-toggle-track{position:relative;display:flex;align-items:center;width:56px;height:28px;padding:0 4px;border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--line-soft);transition:background var(--transition-fast),border-color var(--transition-fast)}.theme-toggle:hover .theme-toggle-track{border-color:var(--line-strong)}.theme-toggle-icon{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:12px;transition:opacity var(--transition-fast)}.theme-toggle-sun,.theme-toggle-moon{opacity:.5}[data-theme=dark] .theme-toggle-sun{opacity:.4}[data-theme=dark] .theme-toggle-moon,[data-theme=light] .theme-toggle-sun{opacity:1}[data-theme=light] .theme-toggle-moon{opacity:.4}.theme-toggle-thumb{position:absolute;left:4px;width:20px;height:20px;border-radius:50%;background:var(--bg-panel-strong);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),background var(--transition-fast)}.theme-toggle-thumb.dark{transform:translate(24px)}.toolbar-user{position:relative;display:flex;align-items:center}.toolbar-user-btn{padding:0;border:none;background:transparent;cursor:pointer;border-radius:50%;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.toolbar-user-btn:hover{transform:scale(1.05)}.toolbar-user-btn:active{transform:scale(.98)}.toolbar-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);overflow:hidden}.toolbar-avatar img{width:100%;height:100%;object-fit:cover}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:240px;padding:var(--space-2);border-radius:var(--radius-md);background:var(--bg-panel-strong);border:1px solid var(--line-soft);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown)}.user-dropdown-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3)}.user-dropdown-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-base);font-weight:var(--font-weight-bold);overflow:hidden}.user-dropdown-avatar img{width:100%;height:100%;object-fit:cover}.user-dropdown-info{min-width:0;display:flex;flex-direction:column;gap:2px}.user-dropdown-name{font-size:var(--font-base);font-weight:var(--font-weight-semibold);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-email{font-size:var(--font-xs);color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-divider{height:1px;margin:var(--space-2) 0;background:var(--line-soft)}.user-dropdown-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);text-align:left}.user-dropdown-item:hover{background:var(--bg-subtle);color:var(--text-strong)}.user-dropdown-item.danger{color:var(--color-error)}.user-dropdown-item.danger:hover{background:var(--color-error-soft);color:var(--color-error)}.user-dropdown-item svg{flex-shrink:0}.logout-modal{width:100%;max-width:360px;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--bg-panel-strong);box-shadow:var(--shadow-lg);text-align:center}.logout-modal-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--space-4);border-radius:50%;background:var(--color-error-soft);color:var(--color-error)}.logout-modal-title{margin:0 0 var(--space-2);font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.logout-modal-text{margin:0 0 var(--space-6);font-size:var(--font-sm);color:var(--text-soft)}.logout-modal-actions{display:flex;justify-content:center;gap:var(--space-3)}.toolbar-actions{display:flex;align-items:center;gap:6px;padding:5px;border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--line-soft)}.toolbar-button{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--window-btn-color);background:var(--window-btn-bg);border:1px solid var(--line-soft);cursor:pointer;transition:transform var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm)}.toolbar-button:hover{transform:translateY(-1px);background:var(--window-btn-hover-bg);border-color:var(--line-strong)}.toolbar-button.danger:hover{color:var(--window-btn-danger-color);border-color:#cc567438;background:var(--window-btn-danger-bg)}.toolbar-icon{position:relative;display:inline-block;width:14px;height:14px}.toolbar-icon-minimize:before,.toolbar-icon-expand:before,.toolbar-icon-close:before,.toolbar-icon-close:after,.toolbar-icon-expand:after{content:"";position:absolute;border-radius:var(--radius-full);background:currentColor}.toolbar-icon-minimize:before{left:1px;right:1px;top:6px;height:2px}.toolbar-icon-expand:before{inset:1px;border:2px solid currentColor;background:transparent;border-radius:4px}.toolbar-icon-expand.is-maximized:after{width:8px;height:8px;right:-1px;top:-1px;border:2px solid currentColor;background:var(--window-expand-bg);border-radius:2px}.toolbar-icon-close:before,.toolbar-icon-close:after{width:2px;height:14px;left:6px;top:0}.toolbar-icon-close:before{transform:rotate(45deg)}.toolbar-icon-close:after{transform:rotate(-45deg)}.app-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0;overflow:hidden}.app-sidebar{display:flex;flex-direction:column;padding:var(--space-4);border-right:1px solid var(--line-soft);background:var(--bg-card-solid)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--text-body);font-size:var(--font-base);font-weight:var(--font-weight-medium);text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-nav-item:hover{background:#4f7cff14;color:var(--text-strong);text-decoration:none}.sidebar-nav-item.active{background:#4f7cff1f;color:var(--color-accent-start);font-weight:var(--font-weight-semibold)}.sidebar-nav-icon{font-size:var(--font-md);line-height:1}.sidebar-nav-label{flex:1}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--line-soft)}.sidebar-status{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.sidebar-status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.sidebar-status-text{font-size:var(--font-xs);color:var(--text-soft)}.app-main{display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at top right,rgba(79,124,255,.06),transparent 30%),var(--bg-surface)}.app-content{flex:1;overflow-y:auto;padding:var(--space-6)}.app-statusbar{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);border-top:1px solid var(--line-soft);background:var(--bg-panel)}.statusbar-text{font-size:var(--font-xs);color:var(--text-muted)}.statusbar-divider{width:1px;height:12px;background:var(--line-soft)}@media(min-width:1200px){.app-body{grid-template-columns:280px minmax(0,1fr)}}@media(max-width:899px){.app-body{grid-template-columns:64px minmax(0,1fr)}.sidebar-nav-label{display:none}.sidebar-nav-item{justify-content:center;padding:var(--space-3)}.sidebar-status-text,.toolbar-search{display:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page);padding:var(--space-6);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-50%;right:-30%;width:80%;height:120%;background:radial-gradient(ellipse,rgba(79,124,255,.08) 0%,transparent 60%);pointer-events:none}.login-page:after{content:"";position:absolute;bottom:-40%;left:-20%;width:60%;height:100%;background:radial-gradient(ellipse,rgba(77,182,255,.06) 0%,transparent 50%);pointer-events:none}.login-container{width:100%;max-width:400px;position:relative;z-index:1}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius-lg);background:var(--bg-accent);color:var(--text-inverse);font-size:2rem;font-weight:var(--font-weight-bold);margin-bottom:var(--space-5);box-shadow:var(--shadow-accent)}.login-header h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);letter-spacing:-.02em}.login-header p{margin:0;color:var(--text-soft);font-size:var(--font-base)}.login-card{padding:var(--space-8);border-radius:var(--radius-xl);background:#fffffffa;border:1px solid var(--line-soft);box-shadow:var(--shadow-lg)}[data-theme=dark] .login-card{background:#1e2530fa}.login-card.card-glass{background:#fffffffa}[data-theme=dark] .login-card.card-glass{background:#1e2530fa}.login-card.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97)}.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.login-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-soft);border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--font-sm);font-weight:var(--font-weight-medium)}.login-error-icon{flex-shrink:0}.form-input{width:100%;padding:var(--space-4);padding-left:calc(var(--space-4) + 18px + var(--space-3));border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:var(--font-family);font-size:var(--font-base);color:var(--text-strong);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.login-button{position:relative;width:100%;padding:var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--bg-accent);color:var(--text-inverse);font-family:var(--font-family);font-size:var(--font-base);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-accent);transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-accent),0 0 0 3px #4f7cff26}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-button.loading{color:transparent}.login-spinner{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.login-footer{text-align:center;padding-top:var(--space-4);color:var(--text-soft);font-size:var(--font-sm)}.login-link{color:var(--color-info);text-decoration:none;font-weight:var(--font-weight-semibold);margin-left:var(--space-1);transition:color var(--transition-fast)}.login-link:hover{color:var(--color-accent-end)}.login-copyright{text-align:center;margin-top:var(--space-8);color:var(--text-muted);font-size:var(--font-xs)}.register-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page);padding:var(--space-6);position:relative;overflow:hidden}.register-page:before{content:"";position:absolute;top:-50%;right:-30%;width:80%;height:120%;background:radial-gradient(ellipse,rgba(79,124,255,.08) 0%,transparent 60%);pointer-events:none}.register-page:after{content:"";position:absolute;bottom:-40%;left:-20%;width:60%;height:100%;background:radial-gradient(ellipse,rgba(77,182,255,.06) 0%,transparent 50%);pointer-events:none}.register-container{width:100%;max-width:420px;position:relative;z-index:1}.register-header{text-align:center;margin-bottom:var(--space-6)}.register-logo{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius-lg);background:var(--bg-accent);color:var(--text-inverse);font-size:2rem;font-weight:var(--font-weight-bold);margin-bottom:var(--space-5);box-shadow:var(--shadow-accent)}.register-header h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);letter-spacing:-.02em}.register-header p{margin:0;color:var(--text-soft);font-size:var(--font-base)}.register-card{padding:var(--space-6);border-radius:var(--radius-xl);background:#fffffffa;border:1px solid var(--line-soft);box-shadow:var(--shadow-lg)}[data-theme=dark] .register-card{background:#1e2530fa}.register-card.card-glass{background:#fffffffa}[data-theme=dark] .register-card.card-glass{background:#1e2530fa}.register-card.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-6px)}20%,40%,60%,80%{transform:translate(6px)}}.register-form{display:flex;flex-direction:column;gap:var(--space-4)}.register-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-soft);border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--font-sm);font-weight:var(--font-weight-medium)}.register-error-icon{flex-shrink:0}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-body)}.input-icon{position:absolute;left:var(--space-4);display:flex;align-items:center;justify-content:center;color:var(--text-muted);pointer-events:none;transition:color var(--transition-fast)}.form-input{width:100%;padding:var(--space-3) var(--space-4);padding-left:calc(var(--space-4) + 18px + var(--space-3));border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:var(--font-family);font-size:var(--font-base);color:var(--text-strong);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow),0 0 0 4px #4f7cff14;background:var(--bg-panel-strong)}.form-input:focus+.input-icon,.input-wrapper:focus-within .input-icon{color:var(--color-info)}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-input.error{border-color:var(--color-error)}.form-input.error:focus{box-shadow:0 0 0 3px var(--color-error-soft)}.field-error{font-size:var(--font-xs);color:var(--color-error);margin-top:var(--space-1)}.input-action{position:absolute;right:var(--space-3);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.input-action:hover{color:var(--text-body);background:var(--bg-subtle)}.password-strength{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}.strength-bar{flex:1;height:4px;background:var(--bg-subtle);border-radius:2px;overflow:hidden}.strength-fill{height:100%;border-radius:2px;transition:width var(--transition-normal),background-color var(--transition-normal)}.strength-fill.weak{width:33%;background:var(--color-error)}.strength-fill.medium{width:66%;background:var(--color-warning)}.strength-fill.strong{width:100%;background:var(--color-success)}.strength-label{font-size:var(--font-xs);white-space:nowrap}.strength-label.weak{color:var(--color-error)}.strength-label.medium{color:var(--color-warning)}.strength-label.strong{color:var(--color-success)}.register-button{position:relative;width:100%;padding:var(--space-4);margin-top:var(--space-2);border:none;border-radius:var(--radius-sm);background:var(--bg-accent);color:var(--text-inverse);font-family:var(--font-family);font-size:var(--font-base);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-accent);transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.register-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-accent),0 0 0 3px #4f7cff26}.register-button:active:not(:disabled){transform:translateY(0)}.register-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.register-button.loading{color:transparent}.register-spinner{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.register-footer{text-align:center;padding-top:var(--space-3);color:var(--text-soft);font-size:var(--font-sm)}.register-link{color:var(--color-info);text-decoration:none;font-weight:var(--font-weight-semibold);margin-left:var(--space-1);transition:color var(--transition-fast)}.register-link:hover{color:var(--color-accent-end)}.register-copyright{text-align:center;margin-top:var(--space-6);color:var(--text-muted);font-size:var(--font-xs)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.1em;line-height:1}.btn-icon-only,.card-padding-none{padding:0}.card-padding-sm{padding:var(--space-3)}.card-padding-lg{padding:var(--space-8)}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:var(--space-4);color:var(--text-muted);font-size:var(--font-base);pointer-events:none}.input-with-icon{padding-left:calc(var(--space-4) + 24px)}.input-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-sm);border-radius:var(--radius-xs)}.input-lg{padding:var(--space-4) var(--space-5);font-size:var(--font-md)}.modal-sm{max-width:360px}.modal-lg{max-width:640px}.skeleton-rect{border-radius:var(--radius-sm)}.sidebar{display:flex;flex-direction:column;height:100%;background:var(--bg-card-solid)}.sidebar-header{padding:var(--space-4);border-bottom:1px solid var(--line-soft)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);overflow-y:auto}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--text-body);text-decoration:none;font-size:var(--font-base);font-weight:var(--font-weight-medium);transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-item:hover{background:#4f7cff14;color:var(--text-strong)}.sidebar-item.active{background:#4f7cff1f;color:var(--color-accent-start);font-weight:var(--font-weight-semibold)}.sidebar-item-icon{font-size:var(--font-md);line-height:1}.sidebar-item-label{flex:1}.sidebar-item-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:#4f7cff24;color:var(--color-accent-start);font-size:var(--font-xs);font-weight:var(--font-weight-bold)}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--line-soft)}.toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--bg-panel);border-bottom:1px solid var(--line-soft)}.toolbar-left{display:flex;align-items:center;gap:var(--space-3);justify-content:flex-start}.toolbar-center{display:flex;align-items:center;justify-content:center}.toolbar-right{display:flex;align-items:center;gap:var(--space-3);justify-content:flex-end}.streaming-text{font-family:var(--font-family);color:var(--text-body);line-height:1.7}.streaming-content{position:relative}.streaming-h1{margin:0 0 var(--space-4);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);line-height:1.3}.streaming-h2{margin:var(--space-4) 0 var(--space-3);font-size:var(--font-xl);font-weight:var(--font-weight-semibold);color:var(--text-strong);line-height:1.35}.streaming-h3{margin:var(--space-3) 0 var(--space-2);font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);line-height:1.4}.streaming-p{margin:0 0 var(--space-3)}.streaming-p:last-of-type{margin-bottom:0}.streaming-bold{font-weight:var(--font-weight-semibold);color:var(--text-strong)}.streaming-cursor{display:inline-block;margin-left:2px;color:var(--color-accent-start);font-weight:var(--font-weight-bold);animation:cursor-blink .6s infinite}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.export-panel-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-6)}.export-panel{width:720px;max-width:100%;height:500px;max-height:90vh;background:var(--bg-panel-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.export-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line-soft)}.export-panel-title{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.export-panel-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-soft);font-size:var(--font-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.export-panel-close:hover{background:var(--bg-subtle);color:var(--text-strong)}.export-panel-content{flex:1;display:flex;overflow:hidden}.export-panel-formats{width:240px;flex-shrink:0;padding:var(--space-4);border-right:1px solid var(--line-soft);overflow-y:auto}.format-list{display:flex;flex-direction:column;gap:var(--space-2)}.format-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);text-align:left}.format-option:hover{background:var(--bg-subtle)}.format-option-active{background:var(--bg-accent-soft);border-color:var(--line-strong)}.format-icon{font-size:24px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.format-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.format-name{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong)}.format-description{font-size:var(--font-xs);color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.format-check{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--bg-accent);color:var(--text-inverse);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-bold)}.export-panel-preview{flex:1;display:flex;flex-direction:column;padding:var(--space-4);min-width:0;gap:var(--space-3)}.platform-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:color-mix(in srgb,var(--platform-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--platform-color) 24%,transparent);border-radius:var(--radius-full);width:fit-content}.platform-badge-icon{font-size:var(--font-sm)}.platform-badge-name{font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-strong)}.preview-area{flex:1;background:var(--code-bg);border-radius:var(--radius-sm);overflow:hidden}.preview-content{width:100%;height:100%;margin:0;padding:var(--space-4);background:transparent;border:none;color:var(--code-text);font-family:SF Mono,Menlo,Monaco,Courier New,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word;overflow:auto}.preview-content::-webkit-scrollbar{width:8px}.preview-content::-webkit-scrollbar-track{background:transparent}.preview-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.preview-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.preview-stats{display:flex;flex-direction:column;gap:var(--space-1)}.stat-item{font-size:var(--font-sm);color:var(--text-body)}.stat-hint{font-size:var(--font-xs);color:var(--text-soft)}.stat-hint.emoji-hint{color:var(--color-accent-start)}.copy-button{min-width:140px;background:var(--bg-accent)!important;transition:background-color var(--transition-normal)}.copy-button.copy-success{background:var(--color-success)!important}@media(max-width:640px){.export-panel{width:100%;height:100%;max-height:100%;border-radius:0}.export-panel-content{flex-direction:column}.export-panel-formats{width:100%;max-height:180px;border-right:none;border-bottom:1px solid var(--line-soft)}.format-list{flex-direction:row;flex-wrap:wrap}.format-option{flex:1;min-width:45%}.preview-footer{flex-direction:column;align-items:stretch}.preview-stats{text-align:center}}.version-history-overlay{position:fixed;inset:0;background:#00000080;z-index:var(--z-modal)}.version-history-panel{position:absolute;right:0;top:0;bottom:0;width:380px;max-width:100%;background:var(--bg-panel-strong);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.version-history-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line-soft)}.version-history-title{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.version-history-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-soft);font-size:var(--font-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.version-history-close:hover{background:var(--bg-subtle);color:var(--text-strong)}.version-history-content{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-5)}.version-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-10);color:var(--text-soft)}.loading-spinner{width:24px;height:24px;border:2px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}.version-error{display:flex;align-items:center;justify-content:center;padding:var(--space-6);color:var(--color-error);font-size:var(--font-sm)}.version-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-10);text-align:center}.empty-icon{font-size:48px;opacity:.5}.empty-text{font-size:var(--font-base);color:var(--text-body)}.empty-hint{font-size:var(--font-xs);color:var(--text-soft)}.version-timeline{display:flex;flex-direction:column}.version-item{display:flex;gap:var(--space-4);padding-bottom:var(--space-4)}.version-timeline-marker{display:flex;flex-direction:column;align-items:center;width:20px;flex-shrink:0}.timeline-dot{width:12px;height:12px;background:var(--bg-accent);border-radius:50%;flex-shrink:0;box-shadow:0 0 0 4px var(--bg-accent-soft)}.timeline-line{width:2px;flex:1;background:linear-gradient(180deg,var(--color-accent-start) 0%,var(--line-soft) 100%);margin-top:var(--space-2)}.version-content{flex:1;min-width:0;background:var(--bg-subtle);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}.version-info{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.version-time{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong)}.version-word-diff{font-size:var(--font-xs);font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:var(--radius-full)}.word-diff-positive{background:var(--color-success-soft);color:var(--color-success)}.word-diff-negative{background:var(--color-error-soft);color:var(--color-error)}.word-diff-neutral{background:var(--bg-subtle);color:var(--text-soft)}.version-meta{margin-bottom:var(--space-3)}.version-word-count{font-size:var(--font-xs);color:var(--text-soft)}.version-actions{display:flex;gap:var(--space-2)}.version-preview{display:flex;flex-direction:column;gap:var(--space-4)}.version-preview-meta{display:flex;gap:var(--space-4);font-size:var(--font-sm);color:var(--text-soft)}.version-preview-content{max-height:400px;overflow-y:auto;padding:var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-sm)}.preview-html{font-size:var(--font-base);line-height:1.75;color:var(--text-body)}.preview-html h1,.preview-html h2,.preview-html h3{color:var(--text-strong);margin-bottom:var(--space-3)}.preview-html p{margin-bottom:var(--space-3)}.restore-confirm-content{text-align:center}.restore-confirm-content p{margin:0 0 var(--space-2);color:var(--text-body)}.restore-warning{font-size:var(--font-sm);color:var(--color-warning)}@media(max-width:480px){.version-history-panel{width:100%}}.image-picker-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:#00000080}.image-picker-panel{width:100%;max-width:960px;max-height:85vh;display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--bg-panel-strong);box-shadow:var(--shadow-lg);overflow:hidden}.image-picker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line-soft)}.image-picker-header h2{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.image-picker-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-soft);font-size:var(--font-lg);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.image-picker-close:hover{background:var(--bg-subtle);color:var(--text-strong)}.image-picker-search{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line-soft);background:var(--bg-surface)}.search-input-wrapper{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-panel-strong);border:1px solid var(--line-soft);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input-wrapper:focus-within{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.search-icon{font-size:var(--font-lg);opacity:.6}.search-input{flex:1;border:none;background:transparent;font-family:var(--font-family);font-size:var(--font-md);color:var(--text-strong);outline:none}.search-filters{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-4)}.filter-group{display:flex;gap:var(--space-2)}.filter-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-full);background:transparent;font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.filter-btn:hover{border-color:var(--line-strong);background:var(--bg-subtle)}.filter-btn.active{border-color:transparent;background:var(--bg-accent);color:var(--text-inverse)}.view-toggle{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-xs);background:var(--bg-subtle)}.view-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:transparent;font-size:var(--font-md);color:var(--text-soft);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.view-btn:hover{color:var(--text-body)}.view-btn.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.image-picker-body{flex:1;overflow-y:auto;padding:var(--space-5) var(--space-6)}.image-picker-results{display:grid;gap:var(--space-4)}.image-picker-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.image-picker-waterfall{column-count:3;column-gap:var(--space-4)}.image-picker-waterfall .image-picker-item{break-inside:avoid;margin-bottom:var(--space-4)}.image-picker-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-subtle);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.image-picker-grid .image-picker-item{aspect-ratio:4/3}.image-picker-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.image-picker-item img{width:100%;height:100%;object-fit:cover;display:block}.image-picker-item-overlay .image-picker-item img{transition:transform var(--transition-normal)}.image-picker-item:hover img{transform:scale(1.05)}.image-picker-item-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-3);background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.3) 50%,transparent 100%);opacity:0;transition:opacity var(--transition-fast)}.image-picker-item:hover .image-picker-item-overlay{opacity:1}.image-picker-photographer{display:flex;align-items:center;gap:6px;font-size:var(--font-sm);color:#fff;margin-bottom:var(--space-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-picker-actions{display:flex;gap:var(--space-2)}.image-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:#fffffff2;color:#000c;font-size:var(--font-base);cursor:pointer;box-shadow:0 1px 3px #00000026;transition:background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.image-action-btn:hover{background:#fffffff2;color:#000000e6;transform:scale(1.1);box-shadow:0 2px 6px #0003}html[data-theme=dark] .image-action-btn{background:#ffffffe6;color:#000000d9}html[data-theme=dark] .image-action-btn:hover{background:#fff;color:#000000f2}.image-action-insert{background:var(--bg-accent)}.image-action-insert:hover{background:var(--bg-accent);filter:brightness(1.1)}.image-skeleton-item{border-radius:var(--radius-sm);overflow:hidden}.image-picker-waterfall .image-skeleton-item{break-inside:avoid;margin-bottom:var(--space-4)}.image-picker-empty,.image-picker-api-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.empty-icon,.api-prompt-icon{font-size:3rem;margin-bottom:var(--space-4)}.image-picker-empty h3,.image-picker-api-prompt h3{margin:0 0 var(--space-2);font-size:var(--font-lg);color:var(--text-strong)}.image-picker-empty p,.image-picker-api-prompt p{margin:0 0 var(--space-5);color:var(--text-soft)}.image-picker-error{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-error-soft);color:var(--color-error);font-size:var(--font-sm);margin-bottom:var(--space-4)}.image-picker-download-error{background:var(--color-warning-soft, rgba(245, 158, 11, .1));color:var(--color-warning, #f59e0b)}.error-close-btn{margin-left:auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:transparent;color:inherit;cursor:pointer;opacity:.7;transition:opacity var(--transition-fast)}.error-close-btn:hover{opacity:1}.image-action-downloaded{background:var(--color-success, #22c55e);cursor:default}.image-action-downloaded:hover{background:var(--color-success, #22c55e);transform:none}.image-action-btn:disabled{opacity:.6;cursor:not-allowed}.image-action-btn .spinning{animation:spin 1s linear infinite}.image-picker-load-more{display:flex;justify-content:center;padding:var(--space-6) 0}.image-picker-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6);color:var(--text-soft)}.loading-spinner{width:20px;height:20px;border:2px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}.image-preview-overlay{position:fixed;inset:0;z-index:calc(var(--z-modal) + 10);display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:#000000d9}.image-preview-content{position:relative;display:flex;flex-direction:column;max-width:90vw;max-height:90vh;border-radius:var(--radius-lg);background:var(--bg-panel-strong);overflow:hidden;box-shadow:var(--shadow-lg)}.image-preview-close{position:absolute;top:var(--space-4);right:var(--space-4);z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#00000080;color:#fff;font-size:var(--font-lg);cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast)}.image-preview-close:hover{background:#000000b3;transform:scale(1.1)}.image-preview-image{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000}.image-preview-image img{max-width:100%;max-height:60vh;object-fit:contain}.image-preview-info{padding:var(--space-5) var(--space-6);border-top:1px solid var(--line-soft)}.image-preview-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.image-preview-photographer{display:flex;flex-direction:column;gap:var(--space-1)}.photographer-label{font-size:var(--font-xs);color:var(--text-soft)}.image-preview-photographer a{font-weight:var(--font-weight-semibold);color:var(--text-strong);text-decoration:none}.image-preview-photographer a:hover{color:var(--color-accent-start)}.image-preview-size{font-size:var(--font-sm);color:var(--text-soft);padding:var(--space-2) var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-xs)}.image-preview-sizes{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.size-label{font-size:var(--font-sm);color:var(--text-soft)}.size-options{display:flex;gap:var(--space-2)}.size-option{padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:transparent;font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.size-option:hover{border-color:var(--line-strong)}.size-option.active{border-color:var(--color-accent-start);background:var(--bg-accent-soft);color:var(--color-accent-start)}.image-preview-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.image-preview-attribution{font-size:var(--font-xs);color:var(--text-muted)}.image-preview-attribution a{color:var(--text-soft);text-decoration:underline}.image-preview-attribution a:hover{color:var(--color-accent-start)}@media(max-width:768px){.image-picker-panel{max-width:100%;max-height:100%;border-radius:0}.image-picker-grid{grid-template-columns:repeat(2,1fr)}.image-picker-waterfall{column-count:2}.search-filters{flex-direction:column;gap:var(--space-3)}.image-preview-content{max-width:95vw;max-height:95vh}}.tiptap-editor{width:100%;min-height:500px;max-width:760px;margin:0}.tiptap-loading{display:flex;align-items:center;justify-content:center}.tiptap-loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--text-soft)}.tiptap-loading-spinner{width:24px;height:24px;border:2px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}.tiptap-prose{outline:none;font-family:var(--font-family);font-size:16px;line-height:1.8;color:var(--text-strong);padding:var(--space-6)}.tiptap-empty:before{content:attr(data-placeholder);float:left;color:var(--text-muted);pointer-events:none;height:0}.tiptap-prose:focus{outline:none}.tiptap-prose h1{font-size:2rem;font-weight:var(--font-weight-bold);color:var(--text-strong);margin:2rem 0 1rem;line-height:1.3}.tiptap-prose h1:first-child{margin-top:0}.tiptap-prose h2{font-size:1.5rem;font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:1.75rem 0 .875rem;line-height:1.35}.tiptap-prose h3{font-size:1.25rem;font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:1.5rem 0 .75rem;line-height:1.4}.tiptap-prose p{margin:1em 0}.tiptap-prose p:first-child{margin-top:0}.tiptap-prose p:last-child{margin-bottom:0}.tiptap-prose strong{font-weight:var(--font-weight-bold);color:var(--text-strong)}.tiptap-prose em{font-style:italic}.tiptap-prose a,.tiptap-link{color:var(--color-accent-start);text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--transition-fast)}.tiptap-prose a:hover,.tiptap-link:hover{border-bottom-color:var(--color-accent-start)}.tiptap-prose ul,.tiptap-prose ol{margin:1em 0;padding-left:1.5em}.tiptap-prose li{margin:.5em 0}.tiptap-prose ul{list-style-type:disc}.tiptap-prose ol{list-style-type:decimal}.tiptap-prose li>ul,.tiptap-prose li>ol{margin:.25em 0}.tiptap-prose blockquote{position:relative;margin:1.5em 0;padding:1em 1.5em;background:var(--bg-subtle);border-radius:var(--radius-xs);color:var(--text-body);font-style:italic}.tiptap-prose blockquote:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--color-accent-start) 0%,var(--color-accent-end) 100%);border-radius:2px}.tiptap-prose blockquote p{margin:0}.tiptap-prose code{background:var(--bg-subtle);padding:.2em .4em;border-radius:4px;font-family:SF Mono,Monaco,Menlo,monospace;font-size:.9em;color:var(--text-strong)}.tiptap-prose pre{margin:1.5em 0;padding:1.25em 1.5em;background:var(--code-bg);border-radius:var(--radius-sm);overflow-x:auto}.tiptap-prose pre code{background:none;padding:0;border-radius:0;font-size:.875em;color:var(--code-text);line-height:1.6}.tiptap-prose img,.tiptap-image{display:block;max-width:100%;height:auto;margin:1.5em auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.tiptap-prose img.ProseMirror-selectednode,.tiptap-image.ProseMirror-selectednode{outline:2px solid var(--color-accent-start);outline-offset:2px}.tiptap-prose hr{border:none;height:1px;background:var(--line-soft);margin:2em 0}.tiptap-prose::selection,.tiptap-prose *::selection{background:#4f7cff33}@media(max-width:768px){.tiptap-prose{padding:var(--space-4);font-size:15px}.tiptap-prose h1{font-size:1.75rem}.tiptap-prose h2{font-size:1.375rem}.tiptap-prose h3{font-size:1.125rem}}.editor-toolbar{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:#fffffffa;border-bottom:1px solid var(--line-soft);position:sticky;top:0;z-index:var(--z-sticky)}[data-theme=dark] .editor-toolbar{background:#1e2530fa}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-divider{width:1px;height:20px;background:var(--line-soft);margin:0 var(--space-2)}.toolbar-spacer{flex:1}.toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-body);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);-webkit-user-select:none;user-select:none}.toolbar-btn:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-strong)}.toolbar-btn:active:not(:disabled){transform:scale(.95)}.toolbar-btn.active{background:var(--bg-accent-soft);color:var(--color-accent-start)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-icon{width:16px;height:16px}.toolbar-icon-bold{font-weight:700;font-size:14px}.toolbar-icon-italic{font-style:italic;font-family:Georgia,serif;font-size:14px}.toolbar-btn-wrapper{position:relative}.toolbar-input-popup{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:var(--space-2);display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--bg-panel-strong);border:1px solid var(--line-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);animation:fadeInDown .15s ease}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toolbar-input{width:240px;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--bg-surface);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-strong);outline:none;transition:border-color var(--transition-fast)}.toolbar-input:focus{border-color:var(--line-focus)}.toolbar-input::placeholder{color:var(--text-muted)}.toolbar-input-btn{padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-xs);background:var(--bg-accent);color:var(--text-inverse);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-fast);white-space:nowrap}.toolbar-input-btn:hover{opacity:.9}@media(max-width:768px){.editor-toolbar{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.editor-toolbar::-webkit-scrollbar{display:none}.toolbar-input-popup{left:0;transform:none;right:auto}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toolbar-input{width:180px}}.platform-selector{position:relative;display:inline-flex}.platform-selector.disabled{opacity:.6;pointer-events:none}.platform-selector-trigger{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:8px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--bg-panel-strong);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.platform-selector-trigger:hover:not(:disabled){border-color:var(--line-strong)}.platform-selector-trigger.open{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.platform-selector-trigger .platform-icon{font-size:1.1em}.platform-selector-trigger .platform-name{color:var(--text-strong)}.platform-chevron{width:14px;height:14px;color:var(--text-soft);transition:transform var(--transition-fast)}.platform-chevron.rotated{transform:rotate(180deg)}.platform-dropdown{position:absolute;top:calc(100% + var(--space-1));left:0;min-width:280px;padding:4px;background:var(--bg-panel-strong);border:1px solid var(--line-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:calc(var(--z-sticky) + 10)}.platform-option{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:8px 10px;border:none;border-radius:var(--radius-xs);background:transparent;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.platform-option:hover{background:var(--bg-subtle)}.platform-option.selected{background:var(--bg-accent-soft)}.platform-option .platform-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;color:var(--text-soft)}.platform-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.platform-option .platform-name{font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);line-height:1.3}.platform-desc{font-size:11px;color:var(--text-muted);line-height:1.3;white-space:nowrap}.platform-limit{flex-shrink:0;padding:1px 6px;background:var(--color-warning-soft);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-medium);color:var(--status-draft-color)}.platform-check{width:14px;height:14px;flex-shrink:0;color:var(--color-accent-start)}@media(max-width:480px){.platform-dropdown{min-width:220px}}.version-panel-backdrop{position:fixed;inset:0;background:#00000080;z-index:calc(var(--z-modal) - 1)}.version-panel{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:100vw;background:var(--bg-panel-strong);box-shadow:var(--shadow-lg);z-index:var(--z-modal);display:flex;flex-direction:column}.version-panel-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line-soft)}.version-panel-title{flex:1;margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.version-panel-back,.version-panel-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-soft);cursor:pointer;transition:background var(--transition-fast)}.version-panel-back:hover,.version-panel-close:hover{background:var(--bg-subtle)}.version-panel-back svg,.version-panel-close svg{width:18px;height:18px}.version-panel-content{flex:1;overflow-y:auto;padding:var(--space-4)}.version-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-3);color:var(--text-soft)}.version-loading-spinner{width:24px;height:24px;border:2px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}.version-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);text-align:center}.version-empty-icon{font-size:2.5rem;margin-bottom:var(--space-4)}.version-empty p{margin:0;color:var(--text-body)}.version-empty-hint{margin-top:var(--space-2)!important;font-size:var(--font-sm);color:var(--text-soft)}.version-list{display:flex;flex-direction:column}.version-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-2);border:none;border-radius:var(--radius-xs);background:transparent;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.version-item:hover{background:var(--bg-subtle)}.version-timeline{display:flex;flex-direction:column;align-items:center;padding-top:4px}.version-dot{width:10px;height:10px;border-radius:50%;background:var(--bg-accent);flex-shrink:0}.version-line{width:2px;flex:1;min-height:32px;background:var(--line-soft);margin-top:var(--space-1)}.version-info{flex:1;min-width:0}.version-time{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);margin-bottom:4px}.version-meta{display:flex;align-items:center;gap:var(--space-2)}.version-words{font-size:var(--font-xs);color:var(--text-soft)}.version-diff{font-size:var(--font-xs);font-weight:var(--font-weight-medium);padding:1px 4px;border-radius:4px}.version-diff.positive{background:var(--color-success-soft);color:var(--status-completed-color)}.version-diff.negative{background:var(--color-error-soft);color:var(--color-error)}.version-arrow{width:16px;height:16px;color:var(--text-muted);flex-shrink:0;margin-top:2px}.version-preview{display:flex;flex-direction:column;height:100%}.version-preview-meta{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--line-soft);margin-bottom:var(--space-4)}.version-preview-time{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong)}.version-preview-words{font-size:var(--font-sm);color:var(--text-soft)}.version-preview-content{flex:1;overflow-y:auto;padding:var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:var(--font-sm);line-height:1.7;color:var(--text-body)}.version-preview-content h1,.version-preview-content h2,.version-preview-content h3{font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:1em 0 .5em}.version-preview-content h1:first-child,.version-preview-content h2:first-child,.version-preview-content h3:first-child{margin-top:0}.version-preview-content p{margin:.75em 0}.version-preview-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line-soft);margin-top:var(--space-4)}@media(max-width:480px){.version-panel{width:100vw}}.workspace-page{display:flex;flex-direction:column;gap:var(--space-8);padding-bottom:var(--space-8)}.workspace-header{margin-bottom:var(--space-2)}.workspace-header h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.workspace-header p{margin:0;color:var(--text-soft);font-size:var(--font-base)}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}@media(max-width:900px){.quick-actions{grid-template-columns:1fr}}.quick-action-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--bg-panel-strong);cursor:pointer;text-align:left;transition:box-shadow var(--transition-fast),border-color var(--transition-fast);box-shadow:var(--shadow-card)}.quick-action-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--line-strong)}.quick-action-card.quick-action-ai{background:var(--bg-accent);border-color:transparent;box-shadow:var(--shadow-accent)}.quick-action-card.quick-action-ai .quick-action-content h3,.quick-action-card.quick-action-ai .quick-action-content p{color:var(--text-inverse)}.quick-action-card.quick-action-ai:hover{box-shadow:var(--shadow-accent),0 0 0 3px #4f7cff26}.quick-action-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-sm);background:var(--bg-accent-soft);font-size:1.5rem;flex-shrink:0}.quick-action-ai .quick-action-icon{background:#fff3}.quick-action-content h3{margin:0 0 var(--space-1);font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.quick-action-content p{margin:0;font-size:var(--font-sm);color:var(--text-soft)}.workspace-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.search-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);font-size:var(--font-base);pointer-events:none}.articles-section{display:flex;flex-direction:column;gap:var(--space-5)}.action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:var(--bg-panel-strong);cursor:pointer;font-size:var(--font-sm);box-shadow:var(--shadow-sm);transition:background var(--transition-fast),transform var(--transition-fast)}.action-btn:hover{background:var(--bg-surface);transform:scale(1.1)}.action-btn.delete:hover{background:var(--color-error-soft)}.empty-icon{font-size:4rem;opacity:.5}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.agent-step-indicator{display:flex;flex-direction:column;gap:0;padding:var(--space-2) 0}.step-item{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0}.step-connector{position:absolute;left:11px;top:32px;bottom:-8px;width:2px;background:var(--line-soft);transition:background var(--transition-fast)}.step-connector.completed{background:var(--color-success)}.step-node{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-panel-strong);border:2px solid var(--line-soft);transition:border-color var(--transition-fast),background var(--transition-fast)}.step-node.pending{border-color:var(--line-soft)}.step-node.running{border-color:var(--color-accent-start);background:linear-gradient(135deg,#4f7cff1a,#4db6ff26)}.step-node.completed{border-color:var(--color-success);background:var(--color-success)}.step-node.failed{border-color:var(--color-error);background:var(--color-error)}.step-node.skipped{border-color:var(--text-muted);border-style:dashed;background:transparent}.step-icon{width:14px;height:14px}.step-icon.check,.step-icon.cross{color:#fff}.step-icon.skip{color:var(--text-muted)}.step-pulse{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-start),var(--color-accent-end));animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.step-empty{width:6px;height:6px;border-radius:50%;background:var(--line-soft)}.step-content{flex:1;min-width:0}.step-header{display:flex;align-items:center;gap:var(--space-2)}.step-icon-emoji{font-size:var(--font-sm)}.step-name{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body)}.step-item:has(.step-node.running) .step-name{color:var(--text-strong)}.step-item:has(.step-node.completed) .step-name{color:var(--color-success)}.step-item:has(.step-node.failed) .step-name{color:var(--color-error)}.step-item:has(.step-node.skipped) .step-name{color:var(--text-muted);text-decoration:line-through}.step-meta{display:flex;align-items:center;gap:var(--space-2);margin-top:2px;font-size:var(--font-xs);color:var(--text-soft)}.step-meta.running{color:var(--color-accent-start)}.step-meta.skipped{color:var(--text-muted)}.step-duration{color:var(--text-soft)}.step-tokens{color:var(--text-muted)}.step-tokens:before{content:"•";margin-right:var(--space-2);color:var(--text-muted)}.step-error{margin-top:4px;font-size:var(--font-xs);color:var(--color-error);word-break:break-word}.agent-panel{display:flex;flex-direction:column;height:100%;padding:var(--space-4);overflow-y:auto}.agent-panel-title{margin:0 0 var(--space-4);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong);text-transform:uppercase;letter-spacing:.05em}.agent-panel-idle{display:flex;flex-direction:column;gap:var(--space-4)}.agent-input-group{display:flex;flex-direction:column;gap:var(--space-2)}.agent-label{font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-soft);text-transform:uppercase;letter-spacing:.03em}.agent-topic-input{width:100%;padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);resize:none;transition:border-color var(--transition-fast)}.agent-topic-input:focus{outline:none;border-color:var(--line-strong);box-shadow:var(--shadow-glow)}.agent-topic-input::placeholder{color:var(--text-muted)}.agent-mode-group{display:flex;flex-direction:column;gap:var(--space-2)}.agent-mode-tabs{display:flex;gap:var(--space-1);background:var(--bg-subtle);border-radius:var(--radius-sm);padding:3px}.agent-mode-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) var(--space-1);border:none;border-radius:calc(var(--radius-sm) - 2px);background:transparent;font-family:var(--font-family);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.agent-mode-tab:hover{background:var(--bg-panel-strong)}.agent-mode-tab.active{background:var(--bg-panel-strong);box-shadow:var(--shadow-sm)}.mode-icon{font-size:var(--font-md)}.mode-label{font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-soft)}.agent-mode-tab.active .mode-label{color:var(--text-strong)}.agent-mode-hint{margin:0;font-size:var(--font-xs);color:var(--text-muted);text-align:center}.agent-style-group{display:flex;flex-direction:column;gap:var(--space-2)}.agent-style-select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);cursor:pointer;appearance:none;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='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:16px}.agent-style-select:focus{outline:none;border-color:var(--line-strong)}.agent-single-buttons{display:flex;flex-direction:column;gap:var(--space-2)}.agent-single-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);font-family:var(--font-family);text-align:left;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.agent-single-btn:hover:not(:disabled){border-color:var(--line-strong);background:var(--bg-subtle);transform:translateY(-1px)}.agent-single-btn:disabled{opacity:.6;cursor:not-allowed}.single-btn-icon{font-size:1.2em;flex-shrink:0}.single-btn-content{display:flex;flex-direction:column;gap:2px;min-width:0}.single-btn-name{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body)}.single-btn-desc{font-size:var(--font-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-start-btn{width:100%;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--bg-accent);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-inverse);cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.agent-start-btn:hover:not(:disabled){box-shadow:var(--shadow-accent);transform:translateY(-1px)}.agent-start-btn:disabled{opacity:.5;cursor:not-allowed}.agent-panel-running{display:flex;flex-direction:column;gap:var(--space-3)}.agent-current-status{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.status-header{display:flex;justify-content:space-between;align-items:center}.status-label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong)}.status-timer{font-size:var(--font-sm);font-family:SF Mono,Monaco,monospace;color:var(--color-accent-start)}.agent-stream-output{max-height:160px;padding:var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-xs);font-family:SF Mono,Monaco,monospace;font-size:var(--font-xs);color:var(--text-body);overflow-y:auto;line-height:1.5}.agent-stream-output::-webkit-scrollbar{width:6px}.agent-stream-output::-webkit-scrollbar-track{background:transparent}.agent-stream-output::-webkit-scrollbar-thumb{background:var(--line-soft);border-radius:3px}.agent-stats{display:flex;gap:var(--space-3);font-size:var(--font-xs);color:var(--text-soft)}.stat-item{display:flex;align-items:center;gap:var(--space-1)}.agent-cancel-btn{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-error);border-radius:var(--radius-sm);background:transparent;font-family:var(--font-family);font-size:var(--font-sm);color:var(--color-error);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.agent-cancel-btn:hover{background:var(--color-error);color:#fff}.agent-paused{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.paused-header{display:flex;align-items:center;gap:var(--space-2)}.paused-label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--color-success)}.agent-paused-output{width:100%;min-height:120px;padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);resize:vertical;line-height:1.6}.agent-paused-output:focus{outline:none;border-color:var(--line-strong)}.paused-actions{display:flex;flex-direction:column;gap:var(--space-2)}.paused-btn{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.paused-btn.continue{border:none;background:var(--bg-accent);color:var(--text-inverse)}.paused-btn.continue:hover{box-shadow:var(--shadow-accent);transform:translateY(-1px)}.paused-btn.skip{border:1px solid var(--line-soft);background:transparent;color:var(--text-body)}.paused-btn.skip:hover{background:var(--bg-subtle)}.paused-btn.apply{border:1px solid var(--color-success);background:transparent;color:var(--color-success)}.paused-btn.apply:hover{background:var(--color-success);color:#fff}.agent-panel-completed{display:flex;flex-direction:column;gap:var(--space-3)}.agent-summary{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-sm)}.summary-row{display:flex;justify-content:space-between;align-items:center}.summary-label{font-size:var(--font-sm);color:var(--text-soft)}.summary-value{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body)}.completed-actions{display:flex;flex-direction:column;gap:var(--space-2)}.agent-apply-btn{width:100%;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--bg-accent);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-inverse);cursor:pointer;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.agent-apply-btn:hover{box-shadow:var(--shadow-accent);transform:translateY(-1px)}.agent-reset-btn{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:transparent;font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);cursor:pointer;transition:background var(--transition-fast)}.agent-reset-btn:hover{background:var(--bg-subtle)}.agent-error{padding:var(--space-3);background:var(--color-error-soft);border-radius:var(--radius-xs);font-size:var(--font-xs);color:var(--color-error)}.editor-page{display:flex;flex-direction:column;height:100%;background:var(--bg-surface)}.editor-page.editor-loading{align-items:center;justify-content:center}.editor-loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--text-soft)}.editor-loading-spinner{width:28px;height:28px;border:2px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}.editor-top-header{position:relative;z-index:calc(var(--z-sticky) + 50);display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--bg-panel-strong);border-bottom:1px solid var(--line-soft);flex-shrink:0}.editor-back-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-body);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast)}.editor-back-btn:hover{background:var(--bg-subtle)}.editor-back-btn svg{width:16px;height:16px}.editor-title-input{flex:1;min-width:0;padding:var(--space-2) 0;border:none;background:transparent;font-family:var(--font-family);font-size:1.5rem;font-weight:var(--font-weight-bold);color:var(--text-strong);outline:none}.editor-title-input::placeholder{color:var(--text-muted)}.editor-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.editor-main{flex:1;display:flex;overflow:hidden}.editor-ai-panel{flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-panel);border-right:1px solid var(--line-soft);overflow:hidden}.editor-ai-panel.collapsed{width:48px}.ai-panel-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:var(--space-3) var(--space-2);border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-soft);cursor:pointer;transition:background var(--transition-fast)}.ai-panel-toggle:hover{background:var(--bg-subtle)}.ai-panel-toggle svg{width:16px;height:16px}.ai-panel-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.ai-panel-title{margin:0 0 var(--space-4);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong);text-transform:uppercase;letter-spacing:.05em}.ai-panel-buttons{display:flex;flex-direction:column;gap:var(--space-2)}.ai-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);text-align:left;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.ai-btn:hover:not(:disabled){border-color:var(--line-strong);background:var(--bg-subtle)}.ai-btn:disabled{opacity:.6;cursor:not-allowed}.ai-btn-icon{font-size:1.2em}.ai-panel-hint{margin-top:var(--space-4);padding:var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-xs);font-size:var(--font-xs);color:var(--text-soft);text-align:center}.editor-content-area{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.editor-wrapper{flex:1;display:flex;flex-direction:column;background:var(--bg-panel-strong);border-radius:var(--radius-lg);margin:var(--space-4);box-shadow:var(--shadow-card);overflow:hidden}.editor-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden}.editor-status-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-5);background:var(--bg-panel);border-top:1px solid var(--line-soft);flex-shrink:0}.word-counter{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-sm);color:var(--text-soft)}.word-counter-warning .word-count-text{color:var(--color-warning)}.word-counter-error .word-count-text{color:var(--color-error)}.word-count-text{font-weight:var(--font-weight-medium);color:var(--text-body)}.word-count-limit,.word-count-label{color:var(--text-soft);font-weight:var(--font-weight-normal)}.word-counter-divider{color:var(--text-muted)}.read-time{color:var(--text-soft)}.editor-status-info{display:flex;align-items:center;gap:var(--space-3)}.editor-article-status{padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-medium)}.editor-article-status.draft{background:var(--color-warning-soft);color:#b45309}.editor-article-status.completed{background:var(--color-success-soft);color:#17646d}.editor-save-status{font-size:var(--font-sm);color:var(--text-soft)}.editor-save-status.saving{color:var(--color-info)}.editor-save-status.saved{color:var(--color-success)}.editor-save-status.error{color:var(--color-error)}@media(max-width:1024px){.editor-ai-panel{display:none}.editor-wrapper{margin:var(--space-3)}}@media(max-width:768px){.editor-top-header{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.editor-title-input{font-size:1.25rem}.editor-header-actions{flex-wrap:wrap}.editor-wrapper{margin:var(--space-2);border-radius:var(--radius-sm)}.editor-status-bar{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-3)}}@media(max-width:480px){.editor-back-btn span,.editor-header-actions .btn span{display:none}}.styles-page{display:flex;flex-direction:column;gap:var(--space-6);animation:fadeIn .3s ease}.styles-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.styles-header-content h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.styles-header-content p{margin:0;color:var(--text-soft);font-size:var(--font-base)}.btn-icon-plus{font-size:1.2em;font-weight:var(--font-weight-medium);margin-right:var(--space-1)}.styles-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);gap:var(--space-4)}.styles-loading-spinner{width:36px;height:36px;border:3px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}.styles-loading p{margin:0;color:var(--text-soft)}.styles-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center;background:var(--bg-panel-strong);border-radius:var(--radius-lg);border:2px dashed var(--line-soft)}.styles-empty-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-5);color:var(--text-muted)}.styles-empty h3{margin:0 0 var(--space-2);font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.styles-empty p{margin:0 0 var(--space-5);color:var(--text-soft);max-width:280px}.styles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-5)}@media(max-width:768px){.styles-grid{grid-template-columns:1fr}}.styles-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.styles-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}.styles-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.styles-card-name{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);line-height:1.3}.styles-card-badges{display:flex;gap:var(--space-2);flex-shrink:0}.styles-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.styles-badge-default{background:var(--bg-accent);color:var(--text-inverse)}.styles-badge-analyzed{background:var(--color-success-soft);color:#17646d}.styles-badge-pending{background:var(--bg-subtle);color:var(--text-muted)}.styles-card-description{margin:0;font-size:var(--font-sm);color:var(--text-soft);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.styles-card-meta{display:flex;align-items:center;gap:var(--space-4);padding-top:var(--space-2)}.styles-card-samples{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-sm);color:var(--text-muted)}.styles-card-samples svg{opacity:.6}.styles-card-actions{display:flex;gap:var(--space-2);margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.styles-card-actions .btn{flex:1}.styles-create-form{display:flex;flex-direction:column;gap:var(--space-4)}.styles-create-form .textarea{resize:vertical;min-height:80px}@media(max-width:640px){.styles-header{flex-direction:column;align-items:stretch}.styles-header .btn{align-self:flex-start}}.style-detail-page{display:flex;flex-direction:column;gap:var(--space-6)}.style-detail-loading,.style-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--space-4)}.style-detail-loading-spinner{width:36px;height:36px;border:3px solid var(--line-soft);border-top-color:var(--color-accent-start);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.style-detail-loading p,.style-detail-error h2{color:var(--text-soft)}.style-detail-error h2{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);margin:0}.style-detail-header{display:flex;flex-direction:column;gap:var(--space-4)}.style-detail-back{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) 0;background:none;border:none;color:var(--text-soft);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast);align-self:flex-start}.style-detail-back:hover{color:var(--text-strong)}.style-detail-header-content{flex:1}.style-detail-title-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.style-detail-title-row h1{margin:0;font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.style-detail-badge-default{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-full);background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-xs);font-weight:var(--font-weight-semibold)}.style-detail-description{margin:0;color:var(--text-soft);font-size:var(--font-base);line-height:1.5}.style-detail-header-actions{display:flex;gap:var(--space-2)}.style-detail-edit-form{display:flex;flex-direction:column;gap:var(--space-3);max-width:480px}.style-detail-edit-form .textarea{resize:vertical;min-height:60px}.style-detail-edit-actions{display:flex;gap:var(--space-2)}.style-detail-content{display:flex;flex-direction:column;gap:var(--space-6)}.style-detail-section{padding:var(--space-6)}.style-detail-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.style-detail-section-header h2{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.style-detail-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);border:2px dashed var(--line-soft);border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.style-detail-upload-zone:hover{border-color:var(--line-strong);background:var(--bg-surface)}.style-detail-upload-zone.dragging{border-color:var(--color-accent-start);background:#4f7cff14}.style-detail-upload-icon{color:var(--text-muted);margin-bottom:var(--space-3)}.style-detail-upload-zone p{margin:0 0 var(--space-1);font-size:var(--font-base);font-weight:var(--font-weight-medium);color:var(--text-body)}.style-detail-upload-zone span{font-size:var(--font-sm);color:var(--text-muted)}.style-detail-samples{margin-top:var(--space-5)}.style-detail-samples-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-3);border-bottom:1px solid var(--line-soft);margin-bottom:var(--space-3)}.style-detail-samples-header span{font-size:var(--font-sm);color:var(--text-muted)}.style-detail-sample-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-sm);margin-bottom:var(--space-2);transition:background-color var(--transition-fast)}.style-detail-sample-item:hover{background:var(--bg-surface)}.style-detail-sample-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--bg-accent-soft);color:var(--color-accent-start);flex-shrink:0}.style-detail-sample-info{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.style-detail-sample-name{font-size:var(--font-base);font-weight:var(--font-weight-medium);color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.style-detail-sample-meta{font-size:var(--font-sm);color:var(--text-muted)}.style-detail-sample-actions{display:flex;gap:var(--space-1);flex-shrink:0;margin-left:auto}.style-detail-sample-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.style-detail-sample-btn:hover{background:var(--bg-surface);color:var(--text-strong)}.style-detail-sample-btn-danger:hover{background:#ef44441a;color:var(--color-error)}.style-detail-analyzing{display:flex;flex-direction:column;gap:var(--space-4)}.style-detail-analyzing-indicator{display:flex;align-items:center;gap:var(--space-3);color:var(--text-soft);font-size:var(--font-sm)}.style-detail-pulse{width:10px;height:10px;border-radius:50%;background:var(--color-accent-start);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.style-detail-analyzing-content{padding:var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-sm);min-height:120px;max-height:300px;overflow-y:auto;font-size:var(--font-sm);line-height:1.6}.style-detail-analysis{display:flex;flex-direction:column;gap:var(--space-5)}.style-detail-analysis-summary{padding:var(--space-5);background:var(--bg-accent-soft);border-radius:var(--radius-md);border-left:4px solid var(--color-accent-start)}.style-detail-analysis-summary blockquote{margin:0;font-size:var(--font-base);line-height:1.7;color:var(--text-body);font-style:italic}.style-detail-analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.style-detail-analysis-item{padding:var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-sm)}.style-detail-analysis-item h4{margin:0 0 var(--space-2);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.style-detail-analysis-item p{margin:0;font-size:var(--font-base);color:var(--text-strong);line-height:1.5}.style-detail-analysis-tags{padding:var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-sm)}.style-detail-analysis-tags h4{margin:0 0 var(--space-3);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.style-detail-tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.style-detail-tag{display:inline-flex;align-items:center;padding:6px 14px;border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:var(--font-weight-medium)}.style-detail-tag-vocab{background:#4f7cff1f;color:#4060c8}.style-detail-tag-rhetoric{background:#31c4b71f;color:#17646d}.style-detail-analysis-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8);gap:var(--space-4)}.style-detail-analysis-empty-icon{color:var(--text-muted)}.style-detail-analysis-empty p{margin:0;max-width:320px;color:var(--text-soft);line-height:1.5}.style-detail-analysis-hint{font-size:var(--font-sm);color:var(--text-muted)}.style-detail-preview{display:flex;flex-direction:column;gap:var(--space-4)}.style-detail-preview-meta{display:flex;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--line-soft);font-size:var(--font-sm);color:var(--text-muted)}.style-detail-preview-content{max-height:60vh;overflow-y:auto;padding:var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:var(--font-base);line-height:1.8;word-wrap:break-word}.markdown-content h1{font-size:1.6em;font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0 0 .8em;padding-bottom:.3em;border-bottom:1px solid var(--line-soft)}.markdown-content h2{font-size:1.4em;font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:1.2em 0 .6em}.markdown-content h3{font-size:1.2em;font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:1em 0 .5em}.markdown-content h4,.markdown-content h5,.markdown-content h6{font-size:1.05em;font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:.8em 0 .4em}.markdown-content p{margin:0 0 .8em;line-height:1.8}.markdown-content ul,.markdown-content ol{padding-left:1.5em;margin:0 0 .8em}.markdown-content li{margin:.3em 0;line-height:1.6}.markdown-content code{background:var(--bg-inset);padding:2px 6px;border-radius:4px;font-size:.9em;font-family:Menlo,Monaco,Courier New,monospace;color:var(--text-strong)}.markdown-content pre{background:var(--bg-inset);padding:12px 16px;border-radius:var(--radius-sm);overflow-x:auto;margin:0 0 .8em}.markdown-content pre code{background:none;padding:0;font-size:.85em;line-height:1.6}.markdown-content blockquote{border-left:3px solid var(--color-accent-start);padding-left:12px;margin:0 0 .8em;color:var(--text-soft);font-style:italic}.markdown-content strong{font-weight:600;color:var(--text-strong)}.markdown-content em{font-style:italic}.markdown-content del{text-decoration:line-through;color:var(--text-muted)}.markdown-content a{color:var(--color-accent-start);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content hr{border:none;border-top:1px solid var(--line-soft);margin:1.5em 0}.markdown-content img{max-width:100%;height:auto;border-radius:var(--radius-sm)}@media(max-width:768px){.style-detail-header-actions{flex-wrap:wrap}.style-detail-analysis-grid{grid-template-columns:1fr}.style-detail-sample-item{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.style-detail-sample-actions{width:100%}.style-detail-sample-actions .btn{flex:1}}.image-library-page{display:flex;flex-direction:column;gap:var(--space-6);height:100%}.image-library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.header-content h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.header-content p{margin:0;color:var(--text-soft)}.image-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--line-soft)}.toolbar-search{display:flex;align-items:center;gap:var(--space-2);flex:1;max-width:320px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--bg-panel-strong);border:1px solid var(--line-soft);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.toolbar-search:focus-within{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.toolbar-search .search-icon{font-size:var(--font-base);opacity:.5}.toolbar-search-input{flex:1;border:none;background:transparent;font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-strong);outline:none}.toolbar-search-input::placeholder{color:var(--text-muted)}.search-clear{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--bg-subtle);color:var(--text-soft);font-size:var(--font-xs);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.search-clear:hover{background:var(--bg-accent);color:var(--text-inverse)}.toolbar-view{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-xs);background:var(--bg-subtle)}.toolbar-view .view-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:transparent;font-size:var(--font-md);color:var(--text-soft);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.toolbar-view .view-btn:hover{color:var(--text-body)}.toolbar-view .view-btn.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.image-library-content{flex:1;overflow-y:auto}.image-library-group{margin-bottom:var(--space-8)}.group-title{margin:0 0 var(--space-4);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-soft);text-transform:uppercase;letter-spacing:.05em}.image-library-grid{display:grid;gap:var(--space-4)}.image-library-grid.image-library-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.image-library-waterfall{column-count:3;column-gap:var(--space-4)}.image-library-waterfall .image-library-item{break-inside:avoid;margin-bottom:var(--space-4)}.image-library-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-subtle);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.image-library-grid.image-library-grid .image-library-item{aspect-ratio:4/3}.image-library-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-card-hover)}.image-library-item.deleting{pointer-events:none}.image-library-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-normal)}.image-library-item:hover img{transform:scale(1.08)}.image-library-item-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-3);background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.2) 40%,transparent 70%);opacity:0;transition:opacity var(--transition-fast)}.image-library-item:hover .image-library-item-overlay{opacity:1}.image-item-info{display:flex;flex-direction:column;gap:var(--space-1);margin-top:auto}.image-item-photographer,.image-item-query{display:flex;align-items:center;gap:6px}.image-item-photographer{font-size:var(--font-sm);color:#fff;font-weight:var(--font-weight-medium)}.image-item-query{font-size:var(--font-xs);color:#ffffffb3}.image-item-actions{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;gap:var(--space-2);opacity:0;transform:translateY(-8px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.image-library-item:hover .image-item-actions{opacity:1;transform:translateY(0)}.image-item-action{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:#fffffff2;font-size:var(--font-sm);cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast)}.image-item-action:hover{background:#ffffff4d;transform:scale(1.1)}.image-item-action-danger:hover{background:var(--color-error)}.image-library-empty,.image-library-no-results,.image-library-loading,.image-library-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center;min-height:400px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px dashed var(--line-soft)}.image-library-loading{color:var(--text-soft);gap:var(--space-4);border-style:solid}.image-library-loading .loading-spinner{animation:spin 1s linear infinite}.image-library-error{border-color:var(--color-error-soft, rgba(239, 68, 68, .2))}.error-icon{color:var(--color-error);margin-bottom:var(--space-4)}.image-library-error h3{margin:0 0 var(--space-2);color:var(--text-strong)}.image-library-error p{margin:0 0 var(--space-5);color:var(--text-soft)}.empty-icon,.no-results-icon{font-size:4rem;margin-bottom:var(--space-5);opacity:.8}.image-library-empty h3,.image-library-no-results h3{margin:0 0 var(--space-2);font-size:var(--font-xl);color:var(--text-strong)}.image-library-empty p,.image-library-no-results p{margin:0 0 var(--space-6);color:var(--text-soft)}.image-library-preview-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:#000000d9}.image-library-preview-content{position:relative;display:flex;flex-direction:column;max-width:90vw;max-height:90vh;border-radius:var(--radius-lg);background:var(--bg-panel-strong);overflow:hidden;box-shadow:var(--shadow-lg)}.preview-close{position:absolute;top:var(--space-4);right:var(--space-4);z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#00000080;color:#fff;font-size:var(--font-lg);cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast)}.preview-close:hover{background:#000000b3;transform:scale(1.1)}.preview-image{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000}.preview-image img{max-width:100%;max-height:60vh;object-fit:contain}.preview-info{padding:var(--space-5) var(--space-6);border-top:1px solid var(--line-soft)}.preview-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.preview-photographer{display:flex;flex-direction:column;gap:var(--space-1)}.meta-label{font-size:var(--font-xs);color:var(--text-soft)}.preview-photographer a{font-weight:var(--font-weight-semibold);color:var(--text-strong);text-decoration:none}.preview-photographer a:hover{color:var(--color-accent-start)}.preview-size{font-size:var(--font-sm);color:var(--text-soft);padding:var(--space-2) var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-xs)}.preview-query{font-size:var(--font-sm);color:var(--text-body);padding:var(--space-2) var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-xs);margin-bottom:var(--space-4)}.preview-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.preview-attribution{font-size:var(--font-xs);color:var(--text-muted)}.preview-attribution a{color:var(--text-soft);text-decoration:underline}.preview-attribution a:hover{color:var(--color-accent-start)}@media(max-width:768px){.image-library-header{flex-direction:column;align-items:stretch}.image-library-toolbar{flex-direction:column;gap:var(--space-3)}.toolbar-search{max-width:none}.image-library-grid.image-library-grid{grid-template-columns:repeat(2,1fr)}.image-library-waterfall{column-count:2}.image-library-preview-content{max-width:95vw;max-height:95vh}}@media(max-width:480px){.image-library-waterfall{column-count:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.image-library-toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--bg-panel-strong);box-shadow:var(--shadow-lg);font-size:var(--font-sm);z-index:var(--z-toast)}.image-library-toast-error{background:var(--color-error-soft, rgba(239, 68, 68, .1));color:var(--color-error)}.image-library-toast button{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;opacity:.7;cursor:pointer;transition:opacity var(--transition-fast)}.image-library-toast button:hover{opacity:1}.settings-page{display:flex;flex-direction:column;gap:var(--space-6);max-width:800px;margin:0 auto;padding-bottom:var(--space-12)}.settings-header h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.settings-header p{margin:0;color:var(--text-soft)}.settings-sections{display:flex;flex-direction:column;gap:var(--space-8)}.section-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.section-icon{font-size:var(--font-xl);line-height:1}.section-header h2{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.section-desc{margin:var(--space-1) 0 0;font-size:var(--font-sm);color:var(--text-soft)}.settings-card{padding:var(--space-5);border-radius:var(--radius-lg);background:#fffffffa;border:1px solid var(--line-soft);box-shadow:var(--shadow-card)}[data-theme=dark] .settings-card{background:#1e2530fa}.card-danger{border-color:#ef444433;background:var(--color-error-soft)}.settings-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--line-soft)}.settings-item:first-child{padding-top:0}.settings-item:last-child{border-bottom:none;padding-bottom:0}.settings-item-content{display:flex;flex-direction:column;gap:var(--space-1);flex-shrink:0}.settings-item-label{font-weight:var(--font-weight-medium);color:var(--text-strong)}.settings-item-hint{font-size:var(--font-sm);color:var(--text-soft)}.settings-item-hint a{color:var(--color-accent-start);text-decoration:none}.settings-item-hint a:hover{text-decoration:underline}.settings-item-control{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.settings-item-value{color:var(--text-body);font-size:var(--font-sm)}.settings-item-action{justify-content:flex-end}.settings-item-warning,.settings-item-loading,.settings-item-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-sm);margin-bottom:var(--space-2)}.settings-item-warning{background:var(--color-warning-soft, rgba(234, 179, 8, .1));color:var(--color-warning, #ca8a04);border:1px solid var(--color-warning-line, rgba(234, 179, 8, .3))}.settings-item-loading{background:var(--bg-accent-soft, rgba(79, 124, 255, .1));color:var(--color-accent-start);border:1px solid var(--color-accent-line, rgba(79, 124, 255, .3))}.settings-item-error{background:var(--color-error-soft);color:var(--color-error);border:1px solid rgba(239,68,68,.3)}.spin-animation{animation:spin 1s linear infinite}.api-key-input:disabled,.api-key-toggle:disabled,.model-card:disabled{opacity:.5;cursor:not-allowed}.model-card:disabled:hover{transform:none;border-color:var(--line-soft)}.api-key-control{flex-wrap:wrap}.api-key-input-wrapper{position:relative;display:flex;align-items:center}.api-key-input{width:240px;padding-right:44px;font-family:monospace;font-size:var(--font-sm)}.api-key-toggle{position:absolute;right:var(--space-2);padding:var(--space-1);border:none;background:transparent;cursor:pointer;font-size:var(--font-base);opacity:.6;transition:opacity var(--transition-fast)}.api-key-toggle:hover{opacity:1}.status-indicator{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:700}.status-idle{background:var(--bg-subtle);border:2px solid var(--line-soft)}.status-loading{border:2px solid var(--color-accent-start);border-right-color:transparent;animation:spin .6s linear infinite}.status-valid{background:var(--color-success);color:#fff}.status-invalid{background:var(--color-error);color:#fff}.saved-indicator{font-size:var(--font-xs);color:var(--color-success);font-weight:var(--font-weight-medium);white-space:nowrap}.model-cards{display:flex;gap:var(--space-3)}.model-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:2px solid var(--line-soft);background:var(--bg-surface);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast);text-align:left}.model-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.model-card-selected{border-color:var(--color-accent-start);background:var(--bg-accent-soft);box-shadow:0 0 0 3px #4f7cff1a}.model-name{font-weight:var(--font-weight-semibold);color:var(--text-strong);font-size:var(--font-sm)}.model-desc{font-size:var(--font-xs);color:var(--text-soft)}.model-price{font-size:var(--font-xs);color:var(--color-accent-start);font-weight:var(--font-weight-medium)}.theme-buttons{display:flex;gap:var(--space-2);padding:3px;border-radius:var(--radius-sm);background:var(--bg-subtle)}.theme-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-body);font-size:var(--font-sm);line-height:1.2;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);text-align:center}.theme-btn svg{flex-shrink:0}.theme-btn:hover{background:var(--bg-panel-strong)}.theme-btn-active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.toggle-switch{position:relative;width:50px;height:28px;padding:0;border:none;border-radius:var(--radius-full);background:var(--bg-subtle);cursor:pointer;transition:background var(--transition-fast)}.toggle-switch-on{background:var(--color-success)}.toggle-switch-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000026;transition:transform var(--transition-fast)}.toggle-switch-on .toggle-switch-thumb{transform:translate(22px)}.toggle-switch:disabled{opacity:.5;cursor:not-allowed}.range-slider{width:120px;height:4px;border-radius:2px;background:var(--bg-subtle);outline:none;cursor:pointer;-webkit-appearance:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-accent-start);cursor:pointer;box-shadow:0 2px 4px #4f7cff4d}.range-slider::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:var(--color-accent-start);cursor:pointer;box-shadow:0 2px 4px #4f7cff4d}.range-value{font-size:var(--font-sm);color:var(--text-soft);min-width:30px}.select-input{padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--bg-surface);color:var(--text-strong);font-size:var(--font-sm);cursor:pointer;outline:none;transition:border-color var(--transition-fast)}.select-input:hover,.select-input:focus{border-color:var(--line-focus)}.settings-section-danger .section-header h2{color:var(--color-error)}@media(max-width:640px){.settings-item{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.settings-item-control{width:100%;flex-wrap:wrap}.api-key-input{width:100%}.model-cards{flex-direction:column;width:100%}.model-card{width:100%}.theme-buttons{width:100%;justify-content:space-between}.theme-btn{flex:1;min-width:0}}.articles-page{display:flex;flex-direction:column;gap:var(--space-6);padding-bottom:var(--space-8)}.articles-header{margin-bottom:var(--space-2)}.articles-header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.articles-header-text h1{margin:0 0 var(--space-2);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.articles-header-text p{margin:0;color:var(--text-soft);font-size:var(--font-base)}.articles-header-actions{display:flex;gap:var(--space-3);flex-shrink:0}@media(max-width:600px){.articles-header-content{flex-direction:column}.articles-header-actions{width:100%}.articles-header-actions .btn{flex:1}}.articles-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.filter-search{position:relative;flex:0 0 280px}@media(max-width:768px){.filter-search{flex:1 1 100%}}.search-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);font-size:var(--font-base);pointer-events:none;color:var(--text-muted)}.search-input{width:100%;padding:var(--space-3) var(--space-4);padding-left:42px;padding-right:36px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-strong);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.search-clear{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--bg-subtle);color:var(--text-soft);font-size:var(--font-xs);cursor:pointer;transition:background var(--transition-fast)}.search-clear:hover{background:var(--line-soft)}.filter-group{display:flex;align-items:center;gap:var(--space-3);flex:1;overflow-x:auto}.filter-tabs{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-sm);background:var(--bg-subtle)}.filter-tab{padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-xs);background:transparent;font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.filter-tab:hover{color:var(--text-body)}.filter-tab.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.filter-divider{width:1px;height:24px;background:var(--line-soft);flex-shrink:0}.articles-content{display:flex;flex-direction:column;gap:var(--space-5)}.articles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}@media(max-width:1400px){.articles-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:1000px){.articles-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.articles-grid{grid-template-columns:1fr}}.article-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--bg-panel-strong);cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast);box-shadow:var(--shadow-card)}.article-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--line-strong)}.article-card:hover .article-actions{opacity:1;transform:translateY(0)}.article-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.platform-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-medium)}.status-badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-semibold)}.status-badge.status-draft{background:var(--color-warning-soft);color:var(--status-draft-color)}.status-badge.status-completed{background:var(--color-success-soft);color:var(--status-completed-color)}.article-title{margin:0;font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-excerpt{margin:0;font-size:var(--font-sm);color:var(--text-soft);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.article-excerpt.empty{color:var(--text-muted);font-style:italic}.article-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.article-meta{font-size:var(--font-xs);color:var(--text-muted)}.article-actions{position:absolute;right:var(--space-3);top:var(--space-3);display:flex;gap:var(--space-1);opacity:0;transform:translateY(-4px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:var(--bg-panel-strong);cursor:pointer;font-size:var(--font-sm);color:var(--text-soft);box-shadow:var(--shadow-sm);transition:background var(--transition-fast),transform var(--transition-fast),color var(--transition-fast)}.action-btn:hover{background:var(--bg-surface);transform:scale(1.1);color:var(--text-strong)}.action-btn.delete:hover{background:var(--color-error-soft);color:var(--color-error)}.article-card-skeleton{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--bg-panel-strong)}.skeleton-footer{display:flex;justify-content:space-between;padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-12) var(--space-6);text-align:center}.empty-icon{color:var(--text-muted);opacity:.5}.empty-state h3{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.empty-state p{margin:0;color:var(--text-soft);max-width:300px}.pagination-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding-top:var(--space-4)}.pagination-controls{display:flex;align-items:center;gap:var(--space-1)}.pagination-btn{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 var(--space-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);color:var(--text-body);font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--bg-surface);border-color:var(--line-strong);color:var(--text-strong)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.pagination-num.active{background:var(--bg-accent);border-color:var(--bg-accent);color:var(--text-inverse);box-shadow:var(--shadow-accent)}.pagination-ellipsis{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--text-muted)}.pagination-info{text-align:center;font-size:var(--font-sm);color:var(--text-muted)}.platform-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.platform-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-surface);cursor:pointer;text-align:center;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.platform-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-card)}.platform-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-sm);font-size:1.75rem}.platform-name{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.platform-desc{font-size:var(--font-xs);color:var(--text-soft)}.delete-confirm-text{margin:0;color:var(--text-body);line-height:1.6}.delete-confirm-text strong{color:var(--text-strong)}.splash-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-page);z-index:9999}.splash-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.splash-logo{display:flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:var(--radius-xl);background:var(--bg-accent);color:var(--text-inverse);font-size:2.5rem;font-weight:var(--font-weight-bold);box-shadow:var(--shadow-accent)}.splash-title{margin:0;font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);letter-spacing:-.02em}.splash-spinner{width:24px;height:24px;margin-top:var(--space-4);border:2px solid var(--line-soft);border-top-color:var(--color-info);border-radius:50%;animation:splash-spin .8s linear infinite}@keyframes splash-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--color-primary: #142033;--color-accent-start: #4f7cff;--color-accent-end: #4db6ff;--bg-page: #eef2f6;--bg-surface: #f8fafc;--bg-panel: rgba(255, 255, 255, .9);--bg-panel-strong: #ffffff;--bg-subtle: #f4f7fb;--bg-card: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(248, 250, 253, .96));--bg-card-solid: rgba(255, 255, 255, .72);--bg-accent: linear-gradient(135deg, #4f7cff 0%, #4db6ff 100%);--bg-accent-soft: linear-gradient(135deg, rgba(79, 124, 255, .1), rgba(77, 182, 255, .16));--text-strong: #122033;--text-body: #4f5f73;--text-soft: #718198;--text-muted: #9aa8b8;--text-inverse: #ffffff;--line-soft: rgba(127, 144, 168, .18);--line-strong: rgba(79, 124, 255, .24);--line-focus: rgba(79, 124, 255, .5);--color-success: #31c4b7;--color-success-soft: rgba(49, 196, 183, .12);--color-warning: #f59e0b;--color-warning-soft: rgba(245, 158, 11, .12);--color-error: #ef4444;--color-error-soft: rgba(239, 68, 68, .1);--color-info: #4f7cff;--color-info-soft: rgba(79, 124, 255, .12);--shadow-sm: 0 2px 8px rgba(33, 54, 88, .04);--shadow-md: 0 14px 30px rgba(27, 44, 79, .08);--shadow-lg: 0 36px 90px rgba(27, 44, 79, .16), 0 12px 28px rgba(27, 44, 79, .08);--shadow-card: 0 18px 36px rgba(33, 54, 88, .06), 0 2px 8px rgba(33, 54, 88, .04);--shadow-card-hover: 0 24px 44px rgba(33, 54, 88, .1), 0 6px 14px rgba(33, 54, 88, .06);--shadow-accent: 0 12px 22px rgba(79, 124, 255, .18);--shadow-glow: 0 0 0 3px rgba(79, 124, 255, .1);--radius-xs: 12px;--radius-sm: 16px;--radius-md: 22px;--radius-lg: 28px;--radius-xl: 34px;--radius-full: 999px;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, "PingFang SC", "Segoe UI", sans-serif;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-xs: .72rem;--font-sm: .82rem;--font-base: .92rem;--font-md: 1rem;--font-lg: 1.15rem;--font-xl: 1.3rem;--font-2xl: 1.62rem;--font-3xl: 2rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--transition-fast: .15s cubic-bezier(.25, .46, .45, .94);--transition-normal: .25s cubic-bezier(.25, .46, .45, .94);--transition-slow: .35s cubic-bezier(.25, .46, .45, .94);--ease-out: cubic-bezier(.25, .46, .45, .94);--ease-in: cubic-bezier(.55, .085, .68, .53);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;--z-tooltip: 500;--window-btn-color: #45536a;--window-btn-bg: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(243, 247, 252, .96));--window-btn-hover-bg: #ffffff;--window-btn-danger-color: #b14a63;--window-btn-danger-bg: linear-gradient(180deg, rgba(255, 245, 247, 1), rgba(255, 238, 242, 1));--window-expand-bg: #ffffff;--code-bg: #f4f7fb;--code-text: #122033;--status-draft-color: #b45309;--status-completed-color: #17646d}html[data-theme=dark]{--bg-page: #0d1117;--bg-surface: #161b22;--bg-panel: rgba(22, 27, 34, .95);--bg-panel-strong: #161b22;--bg-subtle: #21262d;--bg-card: linear-gradient(180deg, rgba(22, 27, 34, .98), rgba(13, 17, 23, .96));--bg-card-solid: rgba(22, 27, 34, .85);--bg-accent-soft: linear-gradient(135deg, rgba(79, 124, 255, .12), rgba(77, 182, 255, .16));--text-strong: #e6edf3;--text-body: #8b949e;--text-soft: #8b949e;--text-muted: #6e7681;--line-soft: rgba(255, 255, 255, .08);--line-strong: rgba(79, 124, 255, .4);--line-focus: rgba(79, 124, 255, .6);--color-success: #3fb950;--color-success-soft: rgba(63, 185, 80, .15);--color-warning: #d29922;--color-warning-soft: rgba(210, 153, 34, .15);--color-error: #f85149;--color-error-soft: rgba(248, 81, 73, .15);--color-info: #58a6ff;--color-info-soft: rgba(88, 166, 255, .15);--window-btn-color: #8b949e;--window-btn-bg: linear-gradient(180deg, rgba(33, 38, 45, .98), rgba(22, 27, 34, .96));--window-btn-hover-bg: rgba(255, 255, 255, .08);--window-btn-danger-color: #f85149;--window-btn-danger-bg: linear-gradient(180deg, rgba(68, 28, 28, 1), rgba(63, 23, 23, 1));--window-expand-bg: #21262d;--code-bg: #161b22;--code-text: #e6edf3;--status-draft-color: #d29922;--status-completed-color: #3fb950;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 14px 30px rgba(0, 0, 0, .4);--shadow-lg: 0 36px 90px rgba(0, 0, 0, .5), 0 12px 28px rgba(0, 0, 0, .3);--shadow-card: 0 4px 12px rgba(0, 0, 0, .25), 0 1px 4px rgba(0, 0, 0, .15);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .35), 0 2px 8px rgba(0, 0, 0, .2);--shadow-accent: 0 8px 20px rgba(79, 124, 255, .25);--shadow-glow: 0 0 0 3px rgba(79, 124, 255, .2)}html[data-theme=light]{--bg-page: #eef2f6;--bg-surface: #f8fafc;--bg-panel: rgba(255, 255, 255, .9);--bg-panel-strong: #ffffff;--bg-subtle: #f4f7fb;--bg-card: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(248, 250, 253, .96));--bg-card-solid: rgba(255, 255, 255, .72);--bg-accent-soft: linear-gradient(135deg, rgba(79, 124, 255, .1), rgba(77, 182, 255, .16));--text-strong: #122033;--text-body: #4f5f73;--text-soft: #718198;--text-muted: #9aa8b8;--line-soft: rgba(127, 144, 168, .18);--line-strong: rgba(79, 124, 255, .24);--shadow-sm: 0 2px 8px rgba(33, 54, 88, .04);--shadow-md: 0 14px 30px rgba(27, 44, 79, .08);--shadow-lg: 0 36px 90px rgba(27, 44, 79, .16), 0 12px 28px rgba(27, 44, 79, .08);--shadow-card: 0 18px 36px rgba(33, 54, 88, .06), 0 2px 8px rgba(33, 54, 88, .04);--shadow-card-hover: 0 24px 44px rgba(33, 54, 88, .1), 0 6px 14px rgba(33, 54, 88, .06)}@media(prefers-color-scheme:dark){:root{--bg-page: #0d1117;--bg-surface: #161b22;--bg-panel: rgba(22, 27, 34, .95);--bg-panel-strong: #161b22;--bg-subtle: #21262d;--bg-card: linear-gradient(180deg, rgba(22, 27, 34, .98), rgba(13, 17, 23, .96));--bg-card-solid: rgba(22, 27, 34, .85);--bg-accent-soft: linear-gradient(135deg, rgba(79, 124, 255, .12), rgba(77, 182, 255, .16));--text-strong: #e6edf3;--text-body: #8b949e;--text-soft: #8b949e;--text-muted: #6e7681;--line-soft: rgba(255, 255, 255, .08);--line-strong: rgba(79, 124, 255, .4);--line-focus: rgba(79, 124, 255, .6);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 14px 30px rgba(0, 0, 0, .4);--shadow-lg: 0 36px 90px rgba(0, 0, 0, .5), 0 12px 28px rgba(0, 0, 0, .3);--shadow-card: 0 4px 12px rgba(0, 0, 0, .25), 0 1px 4px rgba(0, 0, 0, .15);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .35), 0 2px 8px rgba(0, 0, 0, .2)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:13px 18px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.54;transform:none}.btn-primary{color:var(--text-inverse);background:var(--bg-accent);border-color:transparent;box-shadow:var(--shadow-accent)}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-accent),0 0 0 3px #4f7cff26}.btn-ghost{color:var(--text-body);background:var(--bg-panel-strong);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm)}.btn-ghost:hover:not(:disabled){background:var(--bg-surface);border-color:var(--line-strong)}.btn-danger{color:var(--color-error);background:var(--color-error-soft);border-color:#ef444433}.btn-danger:hover:not(:disabled){background:#ef444426;border-color:#ef44444d}.btn-sm{padding:8px 12px;font-size:var(--font-sm);border-radius:var(--radius-xs)}.btn-lg{padding:16px 24px;font-size:var(--font-md);border-radius:var(--radius-md)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-xs)}.btn-loading{position:relative;color:transparent}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.card{padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--line-soft);background:var(--bg-card);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.card-hover:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card-glass{background:var(--bg-card-solid)}.card-accent{background:var(--bg-accent-soft);box-shadow:var(--shadow-card)}.input-group{display:grid;gap:var(--space-2)}.input-label{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-body)}.input{width:100%;padding:14px 16px;border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--bg-surface);font-family:var(--font-family);font-size:var(--font-base);color:var(--text-strong);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 3px var(--color-error-soft)}.input-error-text{font-size:var(--font-xs);color:var(--color-error)}.textarea{min-height:120px;resize:vertical}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-bold)}.badge-default{background:#4f7cff24;color:var(--color-info)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-error{background:var(--color-error-soft);color:var(--color-error)}.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:#00000080}.modal{width:100%;max-width:480px;max-height:90vh;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--bg-panel-strong);box-shadow:var(--shadow-lg);overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.modal-title{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-soft);cursor:pointer;transition:background var(--transition-fast)}.modal-close:hover{background:var(--bg-subtle)}.modal-body{color:var(--text-body);line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.toast-container{position:fixed;top:var(--space-5);right:var(--space-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--bg-panel-strong);box-shadow:var(--shadow-md);pointer-events:auto;max-width:360px}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-error)}.toast-info{border-left:3px solid var(--color-info)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-content{flex:1}.toast-title{font-weight:var(--font-weight-semibold);color:var(--text-strong);margin-bottom:var(--space-1)}.toast-message{font-size:var(--font-sm);color:var(--text-body)}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 0%,var(--bg-surface) 50%,var(--bg-subtle) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-xs)}.skeleton-text{height:16px;border-radius:4px}.skeleton-card{height:120px}.skeleton-avatar{width:44px;height:44px;border-radius:50%}.avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg-accent);color:var(--text-inverse);font-weight:var(--font-weight-bold);font-size:var(--font-sm);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:32px;height:32px;font-size:var(--font-xs)}.avatar-lg{width:56px;height:56px;font-size:var(--font-md)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes breathe{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}@keyframes slideIn{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 fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes modalOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes modalContentScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes ripple{to{transform:scale(2.5);opacity:0}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes progress{0%{width:0%}to{width:100%}}.animate-shimmer{animation:shimmer 1.5s infinite}.animate-breathe{animation:breathe 3s ease-in-out infinite}.animate-slide-in{animation:slideIn .3s ease-out}.animate-slide-in-right{animation:slideInRight .3s ease-out}.animate-fade-in{animation:fadeIn .2s ease-out}.animate-fade-in-up{animation:fadeInUp .3s ease-out}.animate-fade-in-down{animation:fadeInDown .3s ease-out}.animate-scale-in{animation:scaleIn .2s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:bounce .6s ease-in-out infinite}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-width:320px;min-height:100vh;margin:0;border-radius:0;overflow:hidden;background:transparent}html[data-tauri=true],html[data-tauri=true] body,html[data-tauri=true] #root{border-radius:var(--radius-xl)}body{font-family:var(--font-family);font-weight:var(--font-weight-normal);line-height:1.45;color:var(--text-strong);background:var(--bg-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:1.3;letter-spacing:-.02em}h1{font-size:var(--font-3xl)}h2{font-size:var(--font-2xl)}h3{font-size:var(--font-xl)}h4{font-size:var(--font-lg)}p{line-height:1.6}a{color:var(--color-accent-start);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}button{border:0;background:none}input,textarea{outline:none}ul,ol{list-style:none}img,svg{display:block;max-width:100%}::selection{background:#4f7cff33;color:var(--text-strong)}:focus-visible{outline:2px solid var(--color-accent-start);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#e6ecf4b8;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:#4f7cff3d;border-radius:var(--radius-full);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#4f7cff5c;background-clip:padding-box}*{scrollbar-width:thin;scrollbar-color:rgba(79,124,255,.28) rgba(230,236,244,.7)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.text-body{color:var(--text-body)}.text-strong{color:var(--text-strong)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.grid{display:grid}
