.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:var(--bg-surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}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:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.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;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.toolbar-search:focus-within{border-color:var(--line-strong);box-shadow:var(--shadow-glow)}.toolbar-search-icon{font-size:var(--font-sm);opacity:.6;flex-shrink:0}.toolbar-search-input{flex:1;border:none;background:transparent;font-size:var(--font-sm);color:var(--text-strong);outline:none}.toolbar-search-input::placeholder{color:var(--text-muted)}.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}.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);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.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;display:flex;align-items:center;justify-content:center}.sidebar-nav-label{flex:1}.sidebar-nav-divider{height:1px;background:var(--line-soft);margin:var(--space-3) var(--space-4)}.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);flex-shrink:0}.sidebar-status-dot.disconnected{background:var(--color-error)}.sidebar-status-text{font-size:var(--font-xs);color:var(--text-soft)}.sidebar-info{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.sidebar-info-item{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-xs);color:var(--text-soft)}.sidebar-info-value{color:var(--text-body);font-weight:var(--font-weight-medium)}.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;justify-content:space-between;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)}.statusbar-connection{display:flex;align-items:center;gap:var(--space-2)}.statusbar-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success)}.statusbar-dot.disconnected{background:var(--color-error)}.statusbar-dot.connected{background:var(--color-success);will-change:opacity;animation:pulse 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.statusbar-dot.connected{animation:none}}@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,.sidebar-info,.toolbar-search,.toolbar-copy{display:none}}.modal-overlay,.logout-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal)}.logout-dialog{width:100%;max-width:340px;margin:var(--space-4);padding:var(--space-6);background:var(--bg-panel-strong);border-radius:var(--radius-lg);border:1px solid var(--line-soft);box-shadow:var(--shadow-lg);text-align:center}.logout-dialog-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;margin-bottom:var(--space-4);border-radius:var(--radius-full);background:var(--color-error-soft);color:var(--color-error)}.logout-dialog-title{margin:0 0 var(--space-2);font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.logout-dialog-message{margin:0 0 var(--space-6);font-size:var(--font-base);color:var(--text-soft)}.logout-dialog-actions{display:flex;gap:var(--space-3)}.logout-dialog-btn{flex:1;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.logout-dialog-btn-cancel{background:var(--bg-subtle);color:var(--text-body)}.logout-dialog-btn-cancel:hover{background:var(--line-soft)}.logout-dialog-btn-confirm{background:var(--color-error);color:var(--text-inverse)}.logout-dialog-btn-confirm:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.toast-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);flex-shrink:0}.toast-icon svg{width:18px;height:18px}.toast-icon-success{background:var(--color-success-soft);color:var(--color-success)}.toast-icon-error{background:var(--color-error-soft);color:var(--color-error)}.toast-icon-info{background:var(--color-info-soft);color:var(--color-info)}.toast-icon-warning{background:var(--color-warning-soft);color:var(--color-warning)}.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;flex-shrink:0;transition:background var(--transition-fast)}.toast-close:hover{background:var(--bg-subtle)}.toast-close svg{width:16px;height:16px}.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:var(--bg-card-solid);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line-soft);box-shadow:var(--shadow-lg)}.login-card.card-glass{background:var(--bg-card-solid)}.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:var(--bg-card-solid);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line-soft);box-shadow:var(--shadow-lg)}.register-card.card-glass{background:var(--bg-card-solid)}.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-wrapper{display:inline-flex;align-items:center;justify-content:center;font-size:1.1em;line-height:1}.btn-text{line-height:1}.btn-spinner{display:inline-flex;align-items:center;justify-content:center;animation:spin 1s linear infinite}.btn-spinner svg{width:16px;height:16px}.btn-sm .btn-spinner svg{width:14px;height:14px}.btn-lg .btn-spinner svg{width:18px;height:18px}.btn.btn-loading{color:inherit}.btn.btn-loading:after{display:none}.card-padding-none{padding:0}.card-padding-sm{padding:var(--space-3)}.card-padding-lg{padding:var(--space-8)}.card-clickable{cursor:pointer}.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;display:flex;align-items:center;justify-content:center}.input-icon svg{width:18px;height:18px}.input.input-with-icon{padding-left:calc(var(--space-4) + 28px)}.input-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-sm);border-radius:var(--radius-xs)}.input-sm.input-with-icon{padding-left:calc(var(--space-3) + 24px)}.input-wrapper:has(.input-sm) .input-icon{left:var(--space-3)}.input-lg{padding:var(--space-4) var(--space-5);font-size:var(--font-md)}.input-lg.input-with-icon{padding-left:calc(var(--space-5) + 30px)}.input-wrapper:has(.input-lg) .input-icon{left:var(--space-5)}.modal-sm{max-width:400px}.modal-md{max-width:560px}.modal-lg{max-width:720px}.modal-close svg{width:18px;height:18px}.skeleton-circular{border-radius:50%}.skeleton-rectangular{border-radius:var(--radius-sm)}.skeleton-lines{display:flex;flex-direction:column;gap:var(--space-2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center}.empty-state-icon{display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4);color:var(--text-muted)}.empty-state-icon svg{width:48px;height:48px;opacity:.6}.empty-state-title{margin:0 0 var(--space-2);font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-body)}.empty-state-description{margin:0 0 var(--space-4);font-size:var(--font-sm);color:var(--text-soft);max-width:300px;line-height:1.5}.empty-state-action{margin-top:var(--space-2)}.sales-table-wrapper{width:100%}.sales-table-container{width:100%;overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:var(--bg-panel-strong)}.sales-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.sales-table-head{position:sticky;top:0;z-index:1;background:var(--bg-subtle)}.sales-table-th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-body);white-space:nowrap;border-bottom:1px solid var(--line-soft)}.sales-table-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.sales-table-th-sortable:hover{background:var(--bg-surface)}.sales-table-th-content{display:flex;align-items:center;gap:var(--space-2)}.sales-table-sort-icons{display:flex;flex-direction:column;gap:-2px}.sales-table-sort-icon{color:var(--text-muted);opacity:.4;transition:opacity var(--transition-fast),color var(--transition-fast)}.sales-table-sort-icon.active{opacity:1;color:var(--color-info)}.sales-table-body{background:var(--bg-panel-strong)}.sales-table-row{transition:background var(--transition-fast)}.sales-table-row:hover{background:var(--bg-subtle)}.sales-table-row-clickable{cursor:pointer}.sales-table-striped .sales-table-row:nth-child(2n){background:var(--bg-surface)}.sales-table-striped .sales-table-row:nth-child(2n):hover{background:var(--bg-subtle)}.sales-table-td{padding:var(--space-3) var(--space-4);color:var(--text-body);border-bottom:1px solid var(--line-soft)}.sales-table-row:last-child .sales-table-td{border-bottom:none}.sales-table-empty{padding:var(--space-10) var(--space-4);text-align:center}.sales-table-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-4)}.sales-table-pagination-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--bg-panel-strong);color:var(--text-body);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.sales-table-pagination-btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--line-strong)}.sales-table-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.sales-table-pagination-pages{display:flex;align-items:center;gap:var(--space-1)}.sales-table-pagination-page{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-xs);background:transparent;color:var(--text-body);font-size:var(--font-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.sales-table-pagination-page:hover{background:var(--bg-subtle)}.sales-table-pagination-page.active{background:var(--bg-accent);color:var(--text-inverse);border-color:transparent}.sales-table-pagination-ellipsis{padding:0 var(--space-2);color:var(--text-muted)}.badge-sm{height:18px;padding:0 var(--space-2);font-size:10px}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.badge-accent{background:var(--bg-accent);color:var(--text-inverse)}.badge-dot{display:inline-flex;align-items:center;gap:var(--space-2);padding-left:var(--space-2)}.badge-dot-indicator{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.stats-card{display:flex;flex-direction:column;gap:var(--space-3)}.stats-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.stats-card-title{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft)}.stats-card-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-xs);background:var(--bg-accent-soft);color:var(--color-info);flex-shrink:0}.stats-card-icon svg{width:18px;height:18px}.stats-card-value{display:flex;align-items:baseline;gap:var(--space-1)}.stats-card-prefix{font-size:var(--font-lg);font-weight:var(--font-weight-medium);color:var(--text-body)}.stats-card-number{font-size:var(--font-2xl);font-weight:var(--font-weight-semibold);color:var(--text-strong);line-height:1.2}.stats-card-suffix{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);margin-left:var(--space-1)}.stats-card-trend{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-xs)}.stats-card-trend svg{width:14px;height:14px}.stats-card-trend-up{color:var(--color-success)}.stats-card-trend-down{color:var(--color-error)}.stats-card-trend-value{font-weight:var(--font-weight-semibold)}.stats-card-trend-label{color:var(--text-muted)}.line-chart{position:relative;width:100%;padding:var(--space-4) 0;padding-left:var(--space-8)}.line-chart-svg{width:100%;overflow:visible}.line-chart-grid{stroke:var(--line-soft);stroke-width:.15;stroke-dasharray:1 1}.line-chart-area{opacity:.8;animation:chartFadeIn .6s ease-out}.line-chart-line{stroke-dasharray:1000;stroke-dashoffset:1000;animation:chartDraw 1.2s ease-out forwards}.line-chart-dot{transition:r var(--transition-fast),fill var(--transition-fast);filter:drop-shadow(0 1px 3px rgba(79,124,255,.3))}.line-chart-dot-active{filter:drop-shadow(0 2px 6px rgba(79,124,255,.5))}.line-chart-dot-hitarea{cursor:pointer}.line-chart-y-axis{position:absolute;left:0;top:0;bottom:0;width:var(--space-8);pointer-events:none}.line-chart-y-label{position:absolute;left:0;transform:translateY(-50%);font-size:var(--font-xs);color:var(--text-muted);white-space:nowrap}.line-chart-x-axis{position:relative;width:calc(100% - var(--space-8));margin-left:var(--space-8);height:var(--space-6);margin-top:var(--space-2)}.line-chart-x-label{position:absolute;transform:translate(-50%);font-size:var(--font-xs);color:var(--text-muted);white-space:nowrap}.line-chart-tooltip{position:absolute;transform:translate(-50%,-120%);background:var(--bg-panel-strong);border:1px solid var(--line-soft);border-radius:var(--radius-xs);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-md);pointer-events:none;z-index:var(--z-tooltip);display:flex;flex-direction:column;gap:var(--space-1);animation:tooltipFadeIn .15s ease-out}.line-chart-tooltip-label{font-size:var(--font-xs);color:var(--text-soft)}.line-chart-tooltip-value{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.line-chart-empty{display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px dashed var(--line-soft)}.line-chart-empty-text{color:var(--text-muted);font-size:var(--font-sm)}@keyframes chartDraw{to{stroke-dashoffset:0}}@keyframes chartFadeIn{0%{opacity:0}to{opacity:.8}}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,-110%)}to{opacity:1;transform:translate(-50%,-120%)}}html[data-theme=dark] .line-chart-tooltip{background:var(--bg-surface);border-color:var(--line-soft)}html[data-theme=dark] .line-chart-dot{filter:drop-shadow(0 1px 4px rgba(79,124,255,.4))}html[data-theme=dark] .line-chart-dot-active{filter:drop-shadow(0 2px 8px rgba(79,124,255,.6))}@media(max-width:640px){.line-chart{padding-left:var(--space-6)}.line-chart-y-axis{width:var(--space-6)}.line-chart-x-axis{width:calc(100% - var(--space-6));margin-left:var(--space-6)}.line-chart-x-label:nth-child(2n){display:none}}.dashboard-page{padding:var(--space-6);max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.welcome-section{display:flex;justify-content:space-between;align-items:flex-end;padding:var(--space-4) 0}.welcome-content{display:flex;flex-direction:column;gap:var(--space-1)}.welcome-greeting{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0;background:var(--bg-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-date{font-size:var(--font-sm);color:var(--text-soft);margin:0}.welcome-summary{display:flex;align-items:center;gap:var(--space-2)}.welcome-summary-text{font-size:var(--font-sm);color:var(--text-body)}.welcome-summary-text strong{color:var(--color-accent-start);font-weight:var(--font-weight-semibold)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.chart-section{width:100%}.chart-card{padding:var(--space-5)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.chart-title{display:flex;align-items:center;gap:var(--space-2)}.chart-title h3{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.chart-title-icon{color:var(--color-accent-start)}.chart-link{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-sm);color:var(--color-accent-start);text-decoration:none;transition:color var(--transition-fast)}.chart-link:hover{color:var(--color-accent-end)}.chart-content{min-height:200px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line-soft)}.card-link{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-xs);color:var(--text-soft);text-decoration:none;transition:color var(--transition-fast)}.card-link:hover{color:var(--color-accent-start)}.recent-orders-card{padding:0}.recent-orders-list{display:flex;flex-direction:column}.recent-order-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line-soft);transition:background var(--transition-fast)}.recent-order-item:last-child{border-bottom:none}.recent-order-item:hover{background:var(--bg-subtle)}.recent-order-info{display:flex;flex-direction:column;gap:var(--space-1)}.recent-order-no{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);font-family:SF Mono,Fira Code,monospace}.recent-order-time{font-size:var(--font-xs);color:var(--text-muted)}.recent-order-meta{display:flex;align-items:center;gap:var(--space-3)}.recent-order-amount{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.inventory-alerts-card{padding:0}.inventory-alerts-list{display:flex;flex-direction:column}.inventory-alert-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line-soft);transition:background var(--transition-fast)}.inventory-alert-item:last-child{border-bottom:none}.inventory-alert-item:hover{background:var(--bg-subtle)}.inventory-alert-info{display:flex;align-items:center;gap:var(--space-2)}.inventory-alert-icon{color:var(--color-warning);flex-shrink:0}.inventory-alert-name{font-size:var(--font-sm);color:var(--text-body)}.inventory-alert-meta{display:flex;align-items:center;gap:var(--space-3)}.inventory-alert-stock{font-size:var(--font-sm);color:var(--text-soft)}.inventory-alert-stock strong{color:var(--color-warning);font-weight:var(--font-weight-semibold)}.inventory-alert-action{background:var(--bg-accent-soft);color:var(--color-accent-start);border:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.inventory-alert-action:hover{background:var(--bg-accent);color:var(--text-inverse)}.inventory-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);gap:var(--space-2)}.inventory-empty-icon{color:var(--color-success)}.inventory-empty-text{font-size:var(--font-sm);color:var(--text-soft)}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.bottom-grid{grid-template-columns:1fr}}@media(max-width:640px){.dashboard-page{padding:var(--space-4);gap:var(--space-4)}.welcome-section{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.stats-grid{grid-template-columns:1fr}.chart-card{padding:var(--space-4)}.card-header,.recent-order-item,.inventory-alert-item{padding:var(--space-3) var(--space-4)}}.coupon-form{display:flex;flex-direction:column;gap:var(--space-5)}.label-hint{font-weight:var(--font-weight-normal);color:var(--text-muted);font-size:var(--font-xs);margin-left:var(--space-2)}.type-option{flex:1;padding:var(--space-3) var(--space-4);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);font-weight:var(--font-weight-medium);color:var(--text-body);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.type-option:hover{border-color:var(--line-strong);background:var(--bg-subtle)}.type-option.active{border-color:var(--color-info);background:var(--color-info-soft);color:var(--color-info);box-shadow:0 0 0 2px var(--color-info-soft)}.form-textarea{width:100%;padding:var(--space-3) var(--space-4);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);resize:vertical;min-height:80px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-textarea::placeholder{color:var(--text-muted)}.form-textarea:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.form-textarea.has-error{border-color:var(--color-error)}.form-textarea.has-error:focus{box-shadow:0 0 0 3px var(--color-error-soft)}@media(max-width:480px){.form-row{grid-template-columns:1fr}}.form-error{font-size:var(--font-xs);color:var(--color-error)}.coupon-import{min-height:400px}.step-indicator{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6)}.step-dot{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast)}.step-dot.active{background:var(--bg-accent);color:var(--text-inverse)}.step-dot.done{background:var(--color-success);color:#fff}.step-line{width:40px;height:2px;background:var(--line-soft)}.import-step{display:flex;flex-direction:column;gap:var(--space-4)}.upload-step{gap:var(--space-5)}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);border:2px dashed var(--line-soft);border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;transition:all var(--transition-fast)}.upload-zone:hover{border-color:var(--line-focus);background:var(--bg-surface)}.upload-zone.dragging{border-color:var(--color-accent-start);background:var(--bg-accent-soft)}.upload-zone.has-error{border-color:var(--color-error)}.upload-input{display:none}.upload-icon{color:var(--text-muted)}.upload-text{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.upload-title{font-size:var(--font-md);font-weight:var(--font-weight-medium);color:var(--text-strong)}.upload-hint{font-size:var(--font-sm);color:var(--text-muted)}.upload-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-error-soft);color:var(--color-error);font-size:var(--font-sm)}.upload-tips{padding:var(--space-4);border-radius:var(--radius-sm);background:var(--bg-subtle)}.upload-tips h4{margin:0 0 var(--space-2);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.upload-tips ul{margin:0;padding-left:var(--space-5);font-size:var(--font-sm);color:var(--text-body);line-height:1.8}.preview-step{gap:var(--space-4)}.preview-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.preview-file{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-sm);color:var(--text-body)}.preview-stats{display:flex;gap:var(--space-3)}.preview-stats .stat{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-medium)}.preview-stats .stat.valid{background:var(--color-success-soft);color:var(--color-success)}.preview-stats .stat.invalid{background:var(--color-error-soft);color:var(--color-error)}.remove-invalid-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-sm);background:var(--color-error-soft);color:var(--color-error);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast)}.remove-invalid-btn:hover{background:var(--color-error);color:#fff}.preview-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:280px;overflow-y:auto;padding:var(--space-1)}.preview-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--bg-subtle);transition:background var(--transition-fast)}.preview-item:hover{background:var(--bg-surface)}.preview-item.invalid{background:var(--color-error-soft)}.preview-item-content{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.preview-code{font-family:SF Mono,Monaco,monospace;font-size:var(--font-sm);color:var(--text-strong);word-break:break-all}.preview-error{font-size:var(--font-xs);color:var(--color-error)}.preview-item-remove{display:flex;align-items:center;justify-content:center;padding:var(--space-1);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.preview-item-remove:hover{background:var(--color-error-soft);color:var(--color-error)}.step-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-error-soft);color:var(--color-error);font-size:var(--font-sm)}.settings-step{gap:var(--space-4)}.settings-summary{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-sm)}.summary-icon{flex-shrink:0}.form-label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong)}.type-select{display:flex;gap:var(--space-2)}.type-option{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:transparent;color:var(--text-body);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast)}.type-option:hover{border-color:var(--line-focus)}.type-option.active{border-color:var(--color-accent-start);background:var(--bg-accent-soft);color:var(--color-accent-start)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-select{width:100%;padding:var(--space-3) var(--space-4);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;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-select:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.form-select:disabled{opacity:.6;cursor:not-allowed}.importing-step{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}.importing-icon{color:var(--color-accent-start)}.spin{animation:spin 1s linear infinite}.importing-text{display:flex;flex-direction:column;gap:var(--space-1)}.importing-title{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.importing-count,.progress-text{font-size:var(--font-sm);color:var(--text-muted)}.import-input{display:flex;flex-direction:column;gap:var(--space-5)}.import-help{padding:var(--space-4);border-radius:var(--radius-sm);background:var(--bg-subtle)}.import-help h4{margin:0 0 var(--space-2);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.import-help ul{margin:0;padding-left:var(--space-5);font-size:var(--font-sm);color:var(--text-body);line-height:1.8}.import-help li strong{color:var(--text-strong)}.help-example{margin:var(--space-3) 0 0;font-size:var(--font-xs);color:var(--text-soft)}.help-example code{padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);background:var(--bg-surface);font-family:SF Mono,Monaco,monospace}.import-defaults{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.default-field{display:flex;flex-direction:column;gap:var(--space-2)}.default-field label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong)}.default-field input{padding:var(--space-3) var(--space-4);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)}.default-field input:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.import-textarea{width:100%;padding:var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:SF Mono,Monaco,monospace;font-size:var(--font-sm);color:var(--text-strong);resize:vertical;min-height:200px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.import-textarea::placeholder{font-family:var(--font-family);color:var(--text-muted)}.import-textarea:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.import-file{display:flex;justify-content:center}.import-preview{display:flex;flex-direction:column;gap:var(--space-5)}.preview-stats{display:flex;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--bg-subtle)}.stat-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body)}.stat-item.success{color:var(--color-success)}.stat-item.error{color:var(--color-error)}.preview-batch{display:flex;align-items:center;gap:var(--space-3)}.preview-batch label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);flex-shrink:0}.preview-batch input{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:SF Mono,Monaco,monospace;font-size:var(--font-sm);color:var(--text-strong);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.preview-batch input:focus{border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.preview-table-container{border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow:hidden}.preview-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.preview-table th,.preview-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--line-soft)}.preview-table th{background:var(--bg-subtle);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.preview-table td{color:var(--text-body)}.preview-table tr:last-child td{border-bottom:none}.preview-table tr.invalid{background:var(--color-error-soft)}.preview-table tr.invalid td{color:var(--color-error)}.code-cell{font-family:SF Mono,Monaco,monospace;font-size:var(--font-xs)}.status-valid{color:var(--color-success);display:flex;align-items:center}.status-invalid{color:var(--color-error);display:flex;align-items:center;cursor:help}.preview-more{margin:0;padding:var(--space-3) var(--space-4);text-align:center;font-size:var(--font-sm);color:var(--text-muted);background:var(--bg-subtle)}.import-progress{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}.progress-icon{color:var(--color-info);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.import-progress h3{margin:0;font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.progress-bar{width:100%;max-width:300px;height:8px;border-radius:var(--radius-full);background:var(--bg-subtle);overflow:hidden}.progress-fill{height:100%;background:var(--bg-accent);border-radius:var(--radius-full);transition:width .3s ease}.progress-text{margin:0;font-size:var(--font-sm);color:var(--text-soft)}.coupons-page{display:flex;flex-direction:column;gap:var(--space-6);padding-bottom:var(--space-8)}.page-header{margin-bottom:var(--space-2)}.page-header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.page-header-text h1{margin:0 0 var(--space-1);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.page-header-text p{margin:0;color:var(--text-soft);font-size:var(--font-sm)}.page-header-actions{display:flex;gap:var(--space-3);flex-shrink:0}@media(max-width:600px){.page-header-content{flex-direction:column}.page-header-actions{width:100%}.page-header-actions .btn{flex:1}}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}.filter-tabs{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-sm);background:var(--bg-subtle);overflow-x:auto}.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-search{position:relative;flex:0 0 280px}@media(max-width:768px){.filter-bar{flex-direction:column;align-items:stretch}.filter-tabs{width:100%;justify-content:flex-start}.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);display:flex;align-items:center}.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)}.table-section{background:var(--bg-panel-strong);border:1px solid var(--line-soft);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.coupon-name-cell{display:flex;align-items:center;gap:var(--space-2)}.coupon-name-icon{color:var(--color-info);flex-shrink:0}.coupon-name-text{font-weight:var(--font-weight-medium);color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coupon-type-cell{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-body);font-size:var(--font-sm)}.coupon-price{font-weight:var(--font-weight-semibold);color:var(--text-strong)}.coupon-cost{color:var(--text-soft)}.coupon-product{color:var(--text-body);font-size:var(--font-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coupon-date{color:var(--text-soft);font-size:var(--font-sm)}.coupon-actions{display:flex;gap:var(--space-1)}.action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-xs);background:var(--bg-surface);cursor:pointer;color:var(--text-soft);transition:background var(--transition-fast),transform var(--transition-fast),color var(--transition-fast)}.action-btn:hover{background:var(--bg-subtle);transform:scale(1.1);color:var(--text-strong)}.action-btn.edit:hover{background:var(--color-info-soft);color:var(--color-info)}.action-btn.delete:hover{background:var(--color-error-soft);color:var(--color-error)}.delete-confirm-text{margin:0;color:var(--text-body);line-height:1.6}.delete-confirm-text strong{color:var(--text-strong)}.table-section .empty-state{padding:var(--space-12) var(--space-6)}.product-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-section{display:flex;flex-direction:column;gap:var(--space-4)}.form-section-title{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--line-soft)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}@media(max-width:500px){.form-row{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);color:var(--text-strong);font-size:var(--font-base);font-family:inherit;line-height:1.5;resize:vertical;min-height:80px;transition:var(--transition-fast)}.textarea:focus{outline:none;border-color:var(--line-strong);box-shadow:var(--shadow-glow)}.textarea::placeholder{color:var(--text-muted)}.select{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-panel-strong);color:var(--text-strong);font-size:var(--font-base);font-family:inherit;cursor:pointer;transition:var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23718198' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-4) center;padding-right:var(--space-10)}.select:focus{outline:none;border-color:var(--line-strong);box-shadow:var(--shadow-glow)}.select option{background:var(--bg-panel-strong);color:var(--text-strong)}.product-form-footer{display:flex;justify-content:flex-end;gap:var(--space-3)}html[data-theme=dark] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b949e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}@media(prefers-color-scheme:dark){.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b949e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}}html[data-theme=light] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23718198' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}.products-page{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6);min-height:100%}.products-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.products-header-info h1{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0 0 var(--space-1)}.products-header-info p{font-size:var(--font-sm);color:var(--text-muted);margin:0}.products-filters{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:var(--space-2)}.filter-label{font-size:var(--font-sm);color:var(--text-soft);font-weight:var(--font-weight-medium)}.filter-pills{display:flex;gap:var(--space-1);background:var(--bg-card-solid);border-radius:var(--radius-full);padding:var(--space-1);border:1px solid var(--line-soft)}.filter-pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);background:transparent;border:none;cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.filter-pill:hover{color:var(--text-strong);background:var(--bg-subtle)}.filter-pill.active{color:var(--text-inverse);background:var(--bg-accent);box-shadow:var(--shadow-accent)}.products-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}@media(max-width:900px){.products-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.products-grid{grid-template-columns:1fr}.products-header,.products-filters{flex-direction:column;align-items:stretch}.filter-pills{overflow-x:auto;-webkit-overflow-scrolling:touch}}.product-card{position:relative;display:flex;flex-direction:column;cursor:pointer;overflow:hidden}.product-card:hover .product-actions{opacity:1;transform:translateY(0)}.product-image{height:180px;background:var(--bg-accent-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.product-image img{width:100%;height:100%;object-fit:cover}.product-image-placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-info);opacity:.5}.product-status{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1}.product-info{padding:var(--space-4) 0 0;flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.product-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.product-name{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0;line-height:1.4;flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product-description{font-size:var(--font-sm);color:var(--text-soft);margin:0;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.product-price{display:flex;align-items:baseline;gap:var(--space-2)}.price-current{font-size:var(--font-xl);font-weight:var(--font-weight-bold);background:var(--bg-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.price-original{font-size:var(--font-sm);color:var(--text-muted);text-decoration:line-through}.product-stats{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.product-inventory{font-size:var(--font-xs);color:var(--text-soft)}.product-inventory.low{color:var(--color-warning);font-weight:var(--font-weight-medium)}.product-sold{font-size:var(--font-xs);color:var(--text-muted)}.product-actions{position:absolute;top:var(--space-3);left:var(--space-3);display:flex;gap:var(--space-2);opacity:0;transform:translateY(-8px);transition:var(--transition-fast);z-index:2}.action-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-fast);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.action-btn-edit{background:var(--bg-panel-strong);color:var(--text-body);box-shadow:var(--shadow-sm)}.action-btn-edit:hover{background:var(--bg-accent);color:var(--text-inverse);box-shadow:var(--shadow-accent)}.action-btn-delete{background:var(--bg-panel-strong);color:var(--color-error);box-shadow:var(--shadow-sm)}.action-btn-delete:hover{background:var(--color-error);color:var(--text-inverse);box-shadow:0 4px 12px #ef44444d}.product-skeleton{display:flex;flex-direction:column;gap:var(--space-3)}.product-skeleton-image{height:180px;border-radius:var(--radius-sm)}.products-empty{grid-column:1 / -1;padding:var(--space-12) 0}.delete-confirm-content{text-align:center;padding:var(--space-4) 0}.delete-confirm-content p{color:var(--text-body);margin:0;font-size:var(--font-base)}.delete-confirm-content .product-name-highlight{color:var(--text-strong);font-weight:var(--font-weight-semibold)}.delete-confirm-footer{display:flex;justify-content:center;gap:var(--space-3)}.orders-page{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);min-height:100%}.orders-header{display:flex;flex-direction:column;gap:var(--space-2)}.orders-title-row{display:flex;align-items:baseline;gap:var(--space-3)}.orders-title{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0}.orders-subtitle{font-size:var(--font-sm);color:var(--text-muted)}.status-tabs{display:flex;gap:var(--space-1);padding:var(--space-2) 0;border-bottom:1px solid var(--line-soft);overflow-x:auto;scrollbar-width:none}.status-tabs::-webkit-scrollbar{display:none}.status-tab{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:var(--radius-xs);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);cursor:pointer;white-space:nowrap;position:relative;transition:color var(--transition-fast),background var(--transition-fast)}.status-tab:hover{color:var(--text-body);background:var(--bg-subtle)}.status-tab.active{color:var(--color-accent-start)}.status-tab.active:after{content:"";position:absolute;bottom:calc(-1 * var(--space-2) - 1px);left:var(--space-4);right:var(--space-4);height:2px;background:linear-gradient(90deg,var(--color-accent-start),var(--color-accent-end));border-radius:1px}.status-tab-count{font-size:var(--font-xs);color:var(--text-muted);margin-left:var(--space-1)}.status-tab.active .status-tab-count{color:var(--color-accent-start);opacity:.8}.toolbar-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.search-section{display:flex;gap:var(--space-2);flex:1;max-width:400px}.search-section .input-group{flex:1}.date-range-section{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--bg-subtle);border-radius:var(--radius-full)}.date-pill{padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);cursor:pointer;transition:all var(--transition-fast)}.date-pill:hover{color:var(--text-body)}.date-pill.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.orders-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);background:var(--color-error-soft);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--font-sm)}.orders-content{flex:1;display:flex;flex-direction:column}.order-no{font-family:SF Mono,Menlo,Monaco,monospace;font-size:var(--font-sm);color:var(--text-body)}.order-amount{font-weight:var(--font-weight-semibold);color:var(--color-accent-start)}.buyer-id{font-family:SF Mono,Menlo,Monaco,monospace;font-size:var(--font-xs);color:var(--text-soft)}.product-name,.coupon-name{font-size:var(--font-sm);color:var(--text-body);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-cell{font-size:var(--font-sm);color:var(--text-soft)}.order-actions{display:flex;gap:var(--space-2);align-items:center}.order-detail-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s var(--ease-out)}.order-detail-modal{width:90%;max-width:640px;max-height:85vh;background:var(--bg-panel-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:slideUp .25s var(--ease-spring)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.order-detail-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line-soft)}.order-detail-header h2{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.order-detail-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-soft);cursor:pointer;transition:all var(--transition-fast)}.order-detail-close:hover{background:var(--bg-subtle);color:var(--text-strong)}.order-detail-body{flex:1;overflow-y:auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.order-detail-section h3{font-size:var(--font-base);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0 0 var(--space-4) 0}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.detail-item{display:flex;flex-direction:column;gap:var(--space-1)}.detail-item label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-item span{font-size:var(--font-sm);color:var(--text-body);word-break:break-all}.order-timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:var(--space-2)}.timeline-item{display:flex;gap:var(--space-3);padding:var(--space-3) 0;position:relative}.timeline-item:not(:last-child):before{content:"";position:absolute;left:11px;top:calc(var(--space-3) + 24px);bottom:0;width:2px;background:var(--line-soft)}.timeline-item.completed:not(:last-child):before{background:linear-gradient(180deg,var(--color-success),var(--line-soft))}.timeline-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--bg-subtle);color:var(--text-muted);flex-shrink:0;position:relative;z-index:1}.timeline-item.completed .timeline-icon{background:var(--color-success-soft);color:var(--color-success)}.timeline-content{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.timeline-label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft)}.timeline-item.completed .timeline-label{color:var(--text-strong)}.timeline-item.refunded .timeline-icon{background:var(--color-error-soft);color:var(--color-error)}.timeline-item.refunded .timeline-label{color:var(--color-error)}.timeline-item.refunded:not(:last-child):before{background:linear-gradient(180deg,var(--color-error),var(--line-soft))}.timeline-time{font-size:var(--font-xs);color:var(--text-muted)}.json-block{background:var(--code-bg);color:var(--code-text);padding:var(--space-4);border-radius:var(--radius-sm);font-family:SF Mono,Menlo,Monaco,monospace;font-size:var(--font-xs);line-height:1.6;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-all}@media(max-width:768px){.orders-page{padding:var(--space-4)}.toolbar-row{flex-direction:column;align-items:stretch}.search-section{max-width:none}.date-range-section{justify-content:center}.detail-grid{grid-template-columns:1fr}.order-detail-modal{width:95%;max-height:90vh}}.order-detail-actions{padding-top:var(--space-4);border-top:1px solid var(--line-soft)}.order-detail-actions .btn-full-width{width:100%}.refund-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-modal) + 1);animation:fadeIn .2s var(--ease-out)}.refund-modal{width:90%;max-width:420px;background:var(--bg-panel-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:slideUp .25s var(--ease-spring)}.refund-modal-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-6) var(--space-4);text-align:center}.refund-modal-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--color-warning-soft);color:var(--color-warning)}.refund-modal-header h2{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.refund-modal-body{padding:0 var(--space-6) var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.refund-warning{font-size:var(--font-sm);color:var(--text-soft);text-align:center;margin:0;line-height:1.5}.refund-order-info{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.refund-info-row{display:flex;justify-content:space-between;align-items:center}.refund-info-label{font-size:var(--font-sm);color:var(--text-muted)}.refund-info-value{font-size:var(--font-sm);color:var(--text-body);font-weight:var(--font-weight-medium)}.refund-info-value.refund-amount{color:var(--color-error);font-weight:var(--font-weight-semibold)}.refund-reason-section{display:flex;flex-direction:column;gap:var(--space-2)}.refund-reason-section label{font-size:var(--font-sm);color:var(--text-soft)}.refund-reason-input{width:100%;padding:var(--space-3);background:var(--bg-subtle);border:1px solid var(--line-soft);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-body);resize:vertical;min-height:80px;font-family:inherit;transition:border-color var(--transition-fast)}.refund-reason-input:focus{outline:none;border-color:var(--color-accent-start)}.refund-reason-input::placeholder{color:var(--text-muted)}.refund-modal-footer{display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6)}.refund-modal-footer .btn{flex:1}.customers-page{padding:var(--space-6);animation:fadeIn var(--transition-normal) ease-out}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5);gap:var(--space-4)}.page-header-left{display:flex;align-items:baseline;gap:var(--space-3)}.page-title{font-size:var(--font-xl);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.page-subtitle{font-size:var(--font-sm);color:var(--text-muted)}.page-header-right{display:flex;align-items:center;gap:var(--space-3)}.sort-select{appearance:none;background:var(--bg-panel-strong);border:1px solid var(--line-soft);border-radius:var(--radius-xs);padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);font-size:var(--font-sm);color:var(--text-body);cursor:pointer;transition:all var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23718198' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-2) center}.sort-select:hover{border-color:var(--line-strong)}.sort-select:focus{outline:none;border-color:var(--color-accent-start);box-shadow:var(--shadow-glow)}.customers-search{margin-bottom:var(--space-5);max-width:400px}.customer-avatar{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover;flex-shrink:0}.customer-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase}.customer-name{font-weight:var(--font-weight-medium);color:var(--text-strong)}.customer-spent{color:var(--color-accent-start);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.customer-tags{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.customer-tags-more{font-size:var(--font-xs);color:var(--text-muted);margin-left:var(--space-1)}.customer-detail{display:flex;flex-direction:column;gap:var(--space-5)}.customer-detail-loading{display:flex;flex-direction:column;gap:var(--space-4);align-items:center;padding:var(--space-4)}.customer-detail-loading .customer-mini-stats{width:100%}.customer-profile{display:flex;align-items:center;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--line-soft)}.customer-profile-info{display:flex;flex-direction:column;gap:var(--space-1)}.customer-profile-name{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.customer-profile-id{font-size:var(--font-xs);color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;margin:0}.customer-detail-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.customer-detail-tags .badge{display:inline-flex;align-items:center;gap:var(--space-1)}.customer-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.customer-stat-card{display:flex;align-items:center;gap:var(--space-3)}.customer-stat-icon{width:36px;height:36px;border-radius:var(--radius-xs);background:var(--bg-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-soft);flex-shrink:0}.customer-stat-icon-accent{background:var(--bg-accent-soft);color:var(--color-accent-start)}.customer-stat-icon .currency-symbol{font-size:var(--font-md);font-weight:var(--font-weight-bold)}.customer-stat-content{display:flex;flex-direction:column;gap:2px}.customer-stat-value{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);font-variant-numeric:tabular-nums}.customer-stat-value-accent{color:var(--color-accent-start)}.customer-stat-label{font-size:var(--font-xs);color:var(--text-muted)}.customer-orders{display:flex;flex-direction:column;gap:var(--space-3)}.customer-orders-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-base);font-weight:var(--font-weight-medium);color:var(--text-strong);margin:0}.customer-orders-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto;padding-right:var(--space-2)}.customer-order-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-xs);transition:background var(--transition-fast)}.customer-order-item:hover{background:var(--bg-card-solid)}.customer-order-info{display:flex;flex-direction:column;gap:2px}.customer-order-no{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.customer-order-time{font-size:var(--font-xs);color:var(--text-muted)}.customer-order-detail{display:flex;align-items:center;gap:var(--space-3)}.customer-order-amount{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent-start);font-variant-numeric:tabular-nums}.customer-orders-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8);color:var(--text-muted);background:var(--bg-subtle);border-radius:var(--radius-xs)}.customer-orders-empty span{font-size:var(--font-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.customers-page{padding:var(--space-4)}.page-header{flex-direction:column;align-items:flex-start}.customers-search{max-width:100%}.customer-mini-stats{grid-template-columns:1fr}}.stats-page{padding:var(--space-6);max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.stats-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;gap:var(--space-4)}.stats-header-content{flex:1}.stats-title{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0}.stats-subtitle{font-size:var(--font-sm);color:var(--text-soft);margin:0}.time-range-section{display:flex;justify-content:flex-start}.time-range-selector{display:flex;gap:var(--space-2);padding:var(--space-1);background:var(--bg-card-solid);border-radius:var(--radius-full);border:1px solid var(--line-soft)}.time-range-pill{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-body);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.time-range-pill:hover:not(:disabled){background:var(--bg-subtle)}.time-range-pill.active{background:var(--bg-accent);color:var(--text-inverse)}.time-range-pill:disabled{opacity:.5;cursor:not-allowed}.summary-grid,.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.stats-card-warning{border-color:var(--color-warning)}.stats-card-warning .stats-card-value{color:var(--color-warning)}.trend-section{width:100%}.trend-card{padding:var(--space-5)}.trend-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.trend-title{display:flex;align-items:center;gap:var(--space-2)}.trend-title h3{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.trend-title-icon{color:var(--color-accent-start)}.metric-toggle{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--bg-subtle);border-radius:var(--radius-full)}.metric-btn{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-soft);font-size:var(--font-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.metric-btn:hover{color:var(--text-body)}.metric-btn.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.trend-content{min-height:240px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.section-title{display:flex;align-items:center;gap:var(--space-2)}.section-title h3{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.section-icon{color:var(--color-accent-start)}.trend-range-selector{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--bg-subtle);border-radius:var(--radius-full)}.trend-range-btn{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-soft);font-size:var(--font-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.trend-range-btn:hover{color:var(--text-body)}.trend-range-btn.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.chart-content{min-height:220px}.chart-content-sm{min-height:180px}.analysis-section{display:flex;flex-direction:column;gap:var(--space-4)}.section-heading{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.section-heading svg{color:var(--color-accent-start)}.analysis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.analysis-card{padding:var(--space-5)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.card-title{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.card-header-icon{color:var(--text-muted)}.pie-chart-container{display:flex;align-items:center;gap:var(--space-6)}.pie-chart{width:160px;height:160px;flex-shrink:0}.pie-slice{transition:transform var(--transition-fast)}.pie-slice:hover{transform:scale(1.02)}.pie-center-value{font-size:var(--font-xl);font-weight:var(--font-weight-bold);fill:var(--text-strong)}.pie-center-label{font-size:var(--font-xs);fill:var(--text-muted)}.pie-legend{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.pie-legend-item{display:flex;align-items:center;gap:var(--space-2)}.pie-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.pie-legend-label{flex:1;font-size:var(--font-sm);color:var(--text-body)}.pie-legend-value{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);min-width:32px;text-align:right}.pie-legend-percentage{font-size:var(--font-xs);color:var(--text-muted);min-width:36px;text-align:right}.products-card{grid-column:span 1}.products-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:400px;overflow-y:auto}.product-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.product-rank{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);background:var(--bg-subtle);flex-shrink:0}.product-rank.top-1{background:linear-gradient(135deg,gold,#fa0);color:#fff}.product-rank.top-2{background:linear-gradient(135deg,silver,#a0a0a0);color:#fff}.product-rank.top-3{background:linear-gradient(135deg,#cd7f32,#b06020);color:#fff}.product-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.product-name{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-bar-wrapper{height:4px;background:var(--bg-subtle);border-radius:var(--radius-full);overflow:hidden}.product-bar{height:100%;background:var(--bg-accent);border-radius:var(--radius-full);transition:width var(--transition-slow)}.product-stats{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.product-sales{font-size:var(--font-xs);color:var(--text-muted)}.product-revenue{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.category-list{display:flex;flex-direction:column;gap:var(--space-4)}.category-item{display:flex;flex-direction:column;gap:var(--space-2)}.category-header{display:flex;justify-content:space-between;align-items:center}.category-name{font-size:var(--font-sm);color:var(--text-body)}.category-percentage{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.category-bar-wrapper{height:8px;background:var(--bg-subtle);border-radius:var(--radius-full);overflow:hidden}.category-bar{height:100%;background:var(--bg-accent);border-radius:var(--radius-full);transition:width var(--transition-slow)}.category-sales{font-size:var(--font-xs);color:var(--text-muted)}.spending-chart{padding:var(--space-4) 0}.bar-chart{display:flex;justify-content:space-around;align-items:flex-end;height:200px;gap:var(--space-2)}.bar-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex:1}.bar-column-wrapper{display:flex;align-items:flex-end;height:160px;width:100%}.bar-column{width:100%;background:var(--bg-accent);border-radius:var(--radius-xs) var(--radius-xs) 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:var(--space-2);min-height:20px;transition:height var(--transition-slow)}.bar-value{font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--text-inverse)}.bar-label{font-size:var(--font-xs);color:var(--text-muted);text-align:center}.rankings-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.ranking-card{padding:0}.ranking-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line-soft)}.ranking-title{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.ranking-list{display:flex;flex-direction:column}.ranking-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line-soft);transition:background var(--transition-fast)}.ranking-item:last-child{border-bottom:none}.ranking-item:hover{background:var(--bg-subtle)}.ranking-position-wrapper{flex-shrink:0;width:28px}.ranking-position{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);background:var(--bg-subtle)}.ranking-position.top-1{background:linear-gradient(135deg,gold,#fa0);color:#fff}.ranking-position.top-2{background:linear-gradient(135deg,silver,#a0a0a0);color:#fff}.ranking-position.top-3{background:linear-gradient(135deg,#cd7f32,#b06020);color:#fff}.ranking-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.ranking-name{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-bar-wrapper{height:4px;background:var(--bg-subtle);border-radius:var(--radius-full);overflow:hidden}.ranking-bar{height:100%;background:var(--bg-accent);border-radius:var(--radius-full);transition:width var(--transition-slow)}.ranking-stats{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);flex-shrink:0}.ranking-sold{font-size:var(--font-xs);color:var(--text-muted)}.ranking-revenue{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.customer-avatar{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-muted);border:2px solid transparent}.customer-avatar.top-1{background:var(--bg-accent-soft);color:var(--color-accent-start);border-color:gold}.customer-avatar.top-2{background:var(--bg-accent-soft);color:var(--color-accent-start);border-color:silver}.customer-avatar.top-3{background:var(--bg-accent-soft);color:var(--color-accent-start);border-color:#cd7f32}.ranking-orders{font-size:var(--font-xs);color:var(--text-muted)}.ranking-spent{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--text-strong);flex-shrink:0}.refund-section{width:100%}.refund-card{padding:0}.refund-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line-soft)}.refund-title{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.refund-content{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-6);padding:var(--space-5)}.refund-summary{display:flex;flex-direction:column;gap:var(--space-4)}.refund-stat{display:flex;flex-direction:column;gap:var(--space-1)}.refund-stat-value{font-size:var(--font-xl);font-weight:var(--font-weight-bold);color:var(--text-strong)}.refund-stat-label{font-size:var(--font-xs);color:var(--text-muted)}.refund-reasons{display:flex;flex-direction:column;gap:var(--space-3)}.refund-reasons-title{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body);margin:0}.refund-reasons-list{display:flex;flex-direction:column;gap:var(--space-3)}.refund-reason-item{display:flex;flex-direction:column;gap:var(--space-1)}.refund-reason-header{display:flex;justify-content:space-between;align-items:center}.refund-reason-name{font-size:var(--font-sm);color:var(--text-body)}.refund-reason-count{font-size:var(--font-xs);color:var(--text-muted)}.refund-reason-bar-wrapper{height:6px;background:var(--bg-subtle);border-radius:var(--radius-full);overflow:hidden}.refund-reason-bar{height:100%;background:var(--color-warning);border-radius:var(--radius-full);transition:width var(--transition-slow)}@media(max-width:1200px){.summary-grid,.overview-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.rankings-grid,.analysis-grid,.refund-content{grid-template-columns:1fr}.pie-chart-container{flex-direction:column}.pie-chart{width:140px;height:140px}}@media(max-width:640px){.stats-page{padding:var(--space-4);gap:var(--space-4)}.stats-header{flex-direction:column;align-items:flex-start}.summary-grid,.overview-grid{grid-template-columns:1fr}.time-range-selector{flex-wrap:wrap;justify-content:center}.trend-card,.analysis-card{padding:var(--space-4)}.ranking-header,.refund-header,.ranking-item{padding:var(--space-3) var(--space-4)}.refund-content{padding:var(--space-4)}.bar-chart{height:160px}.bar-column-wrapper{height:120px}}.settings-page{padding:var(--space-6);max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.settings-header{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) 0}.settings-title{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0;background:var(--bg-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-subtitle{font-size:var(--font-sm);color:var(--text-soft);margin:0}.settings-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-soft);border:1px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--font-sm)}.settings-error-close{margin-left:auto;background:transparent;border:none;color:var(--color-error);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast)}.settings-error-close:hover{background:#ef444426}.settings-content{display:flex;flex-direction:column;gap:var(--space-5)}.settings-card{padding:0;overflow:hidden}.settings-card-header{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--line-soft)}.settings-card-icon{width:44px;height:44px;background:var(--bg-accent-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-accent-start);flex-shrink:0}.settings-card-title{display:flex;flex-direction:column;gap:var(--space-1)}.settings-card-title h2{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.settings-card-title p{font-size:var(--font-sm);color:var(--text-soft);margin:0}.settings-card-body{padding:var(--space-5)}.settings-card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-subtle);border-top:1px solid var(--line-soft)}.settings-form{display:flex;flex-direction:column;gap:var(--space-4)}.settings-secret-field{position:relative}.settings-secret-toggle{position:absolute;right:var(--space-3);bottom:var(--space-2);background:transparent;border:none;color:var(--text-soft);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.settings-secret-toggle:hover{color:var(--text-strong);background:var(--bg-subtle)}.settings-save-success{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-sm);color:var(--color-success);animation:fadeIn var(--transition-fast)}@keyframes fadeIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.settings-oauth-status,.settings-system-info{display:flex;flex-direction:column;gap:var(--space-4)}.settings-status-row,.settings-info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--line-soft)}.settings-status-row:last-child,.settings-info-row:last-child{border-bottom:none}.settings-status-label,.settings-info-label{font-size:var(--font-sm);color:var(--text-body);font-weight:var(--font-weight-medium)}.settings-status-value,.settings-info-value{display:flex;align-items:center;gap:var(--space-2)}.settings-token-preview{font-family:SF Mono,Fira Code,monospace;font-size:var(--font-xs);color:var(--text-soft);background:var(--bg-subtle);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs)}.settings-info-value code{font-family:SF Mono,Fira Code,monospace;font-size:var(--font-sm);color:var(--text-body);background:var(--bg-subtle);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs)}.settings-oauth-actions{display:flex;align-items:center;gap:var(--space-2)}html[data-theme=dark] .settings-card-icon{background:var(--bg-accent-soft)}html[data-theme=dark] .settings-token-preview,html[data-theme=dark] .settings-info-value code,html[data-theme=dark] .settings-card-footer{background:var(--bg-panel-strong)}@media(max-width:640px){.settings-page{padding:var(--space-4);gap:var(--space-4)}.settings-card-header{flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.settings-card-body{padding:var(--space-4)}.settings-card-footer{flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-4)}.settings-oauth-actions{flex-direction:column;width:100%}.settings-oauth-actions .btn{width:100%}.settings-status-row,.settings-info-row{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.audit-log-page{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);min-height:100%}.audit-log-header{display:flex;flex-direction:column;gap:var(--space-2)}.audit-log-title-row{display:flex;align-items:center;gap:var(--space-3)}.audit-log-title-icon{color:var(--color-accent-start)}.audit-log-title{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0}.audit-log-subtitle{font-size:var(--font-sm);color:var(--text-muted);margin-left:auto}.audit-log-tabs{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--bg-subtle);border-radius:var(--radius-full);overflow-x:auto;scrollbar-width:none}.audit-log-tabs::-webkit-scrollbar{display:none}.audit-log-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.audit-log-tab:hover{color:var(--text-body)}.audit-log-tab.active{background:var(--bg-panel-strong);color:var(--text-strong);box-shadow:var(--shadow-sm)}.audit-log-tab svg{flex-shrink:0}.audit-log-error{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-error-soft);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--font-sm)}.audit-log-error span{flex:1}.audit-log-content{flex:1;display:flex;flex-direction:column}.audit-log-timeline{display:flex;flex-direction:column;gap:var(--space-4)}.audit-log-item{display:flex;gap:var(--space-4);position:relative}.audit-log-item:not(:last-child):after{content:"";position:absolute;left:55px;top:calc(var(--space-4) + 16px);bottom:calc(-1 * var(--space-4));width:2px;background:var(--line-soft)}.audit-log-item.level-info .audit-log-card{border-left:3px solid var(--color-info)}.audit-log-item.level-warning .audit-log-card{border-left:3px solid var(--color-warning)}.audit-log-item.level-error .audit-log-card{border-left:3px solid var(--color-error)}.audit-log-time{display:flex;align-items:center;gap:var(--space-1);min-width:110px;padding-top:var(--space-3);font-size:var(--font-xs);color:var(--text-muted);flex-shrink:0}.audit-log-card{flex:1;background:var(--bg-card-solid);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--transition-fast)}.audit-log-card:hover{box-shadow:var(--shadow-card)}.audit-log-card-header{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4)}.audit-log-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-xs);background:var(--bg-accent-soft);color:var(--color-accent-start);flex-shrink:0}.audit-log-content{flex:1;min-width:0}.audit-log-action-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.audit-log-action{font-size:var(--font-base);font-weight:var(--font-weight-semibold);color:var(--text-strong)}.audit-log-level-text{margin-left:var(--space-1)}.audit-log-description{font-size:var(--font-sm);color:var(--text-body);line-height:1.5;margin:0 0 var(--space-2) 0}.audit-log-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.audit-log-ip{font-size:var(--font-xs);font-family:SF Mono,Menlo,Monaco,monospace;color:var(--text-muted)}.audit-log-expand-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-soft);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.audit-log-expand-btn:hover{background:var(--bg-subtle);color:var(--text-strong)}.audit-log-metadata{border-top:1px solid var(--line-soft);padding:var(--space-4);background:var(--bg-subtle)}.audit-log-json{background:var(--code-bg);color:var(--code-text);padding:var(--space-3);border-radius:var(--radius-xs);font-family:SF Mono,Menlo,Monaco,monospace;font-size:var(--font-xs);line-height:1.6;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-all}.audit-log-skeleton{display:flex;flex-direction:column;gap:var(--space-4)}.audit-log-item-skeleton{display:flex;gap:var(--space-4)}.audit-log-time-skeleton{min-width:110px;padding-top:var(--space-3)}.audit-log-card-skeleton{flex:1;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--bg-card-solid);border-radius:var(--radius-sm)}.audit-log-content-skeleton{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.audit-log-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;margin-top:auto}.audit-log-pagination-info{font-size:var(--font-sm);color:var(--text-soft)}@media(max-width:768px){.audit-log-page{padding:var(--space-4)}.audit-log-title-row{flex-wrap:wrap}.audit-log-subtitle{width:100%;margin-left:0;margin-top:var(--space-1)}.audit-log-tabs{margin:0 calc(-1 * var(--space-4));padding:var(--space-1) var(--space-4);border-radius:0}.audit-log-item{flex-direction:column;gap:var(--space-2)}.audit-log-item:not(:last-child):after{display:none}.audit-log-time{min-width:auto;padding-top:0}.audit-log-card-header{flex-wrap:wrap}.audit-log-action-row{flex-wrap:wrap;gap:var(--space-2)}}.customer-service-page{padding:var(--space-6);max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-5)}.page-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) 0}.page-header-content{display:flex;align-items:center;gap:var(--space-4)}.page-header-icon{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-accent);color:var(--text-inverse);display:flex;align-items:center;justify-content:center}.page-title{font-size:var(--font-2xl);font-weight:var(--font-weight-bold);color:var(--text-strong);margin:0}.page-subtitle{font-size:var(--font-sm);color:var(--text-soft);margin:var(--space-1) 0 0}.cs-tabs{display:flex;gap:var(--space-2);padding:var(--space-1);background:var(--bg-card-solid);border-radius:var(--radius-md);width:fit-content}.cs-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:transparent;border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-soft);cursor:pointer;transition:all var(--transition-fast)}.cs-tab:hover{color:var(--text-body);background:var(--bg-subtle)}.cs-tab.active{color:var(--color-accent-start);background:var(--bg-panel-strong);box-shadow:var(--shadow-sm)}.cs-content{flex:1;min-height:0}.faq-panel{display:grid;grid-template-columns:320px 1fr;gap:var(--space-4);min-height:500px}.faq-categories,.faq-items{padding:var(--space-5);display:flex;flex-direction:column}.faq-section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--line-soft)}.faq-section-header h3{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.faq-section-subtitle{font-size:var(--font-xs);color:var(--text-soft);margin:var(--space-1) 0 0}.faq-count{font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-muted);padding:var(--space-1) var(--space-2);background:var(--bg-subtle);border-radius:var(--radius-full)}.faq-category-list{flex:1;display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}.faq-category-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast)}.faq-category-item:hover{background:var(--bg-accent-soft)}.faq-category-item.active{background:var(--bg-accent);color:var(--text-inverse)}.faq-category-item.active .faq-category-question{color:var(--text-inverse)}.faq-category-item.active .faq-action-btn{color:var(--text-inverse);opacity:.8}.faq-category-item.active .faq-action-btn:hover{opacity:1}.faq-category-question{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faq-category-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.faq-category-item:hover .faq-category-actions{opacity:1}.faq-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-soft);cursor:pointer;transition:all var(--transition-fast)}.faq-action-btn:hover{background:var(--bg-panel-strong);color:var(--text-strong)}.faq-action-btn.danger:hover{background:var(--color-error-soft);color:var(--color-error)}.faq-add-btn{margin-top:var(--space-3)}.faq-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-muted);font-size:var(--font-sm)}.faq-item-list{flex:1;display:flex;flex-direction:column;gap:var(--space-3);overflow-y:auto}.faq-item{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--bg-subtle);border-radius:var(--radius-xs);transition:all var(--transition-fast)}.faq-item:hover{background:var(--bg-accent-soft)}.faq-item-content{flex:1;min-width:0}.faq-item-question{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);margin-bottom:var(--space-2)}.faq-item-answer{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}.faq-item-actions{display:flex;flex-direction:column;gap:var(--space-1)}.faq-no-selection{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--text-muted)}.faq-no-selection p{font-size:var(--font-sm)}.quick-reply-panel{padding:var(--space-5);max-width:800px}.quick-reply-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--line-soft)}.quick-reply-header h3{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.quick-reply-subtitle{font-size:var(--font-xs);color:var(--text-soft);margin:var(--space-1) 0 0}.quick-reply-count{font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-muted);padding:var(--space-1) var(--space-2);background:var(--bg-subtle);border-radius:var(--radius-full)}.quick-reply-list{display:flex;flex-direction:column;gap:var(--space-2)}.quick-reply-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-xs);transition:all var(--transition-fast)}.quick-reply-item:hover{background:var(--bg-accent-soft)}.quick-reply-index{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);flex-shrink:0}.quick-reply-content{flex:1;font-size:var(--font-sm);color:var(--text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-reply-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.quick-reply-item:hover .quick-reply-actions{opacity:1}.quick-reply-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-soft);cursor:pointer;transition:all var(--transition-fast)}.quick-reply-action-btn:hover:not(:disabled){background:var(--bg-panel-strong);color:var(--text-strong)}.quick-reply-action-btn.danger:hover:not(:disabled){background:var(--color-error-soft);color:var(--color-error)}.quick-reply-action-btn:disabled{opacity:.3;cursor:not-allowed}.quick-reply-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-muted);font-size:var(--font-sm)}.quick-reply-add-btn{margin-top:var(--space-4)}.greeting-panel{display:grid;grid-template-columns:1fr 400px;gap:var(--space-4)}.greeting-config{padding:var(--space-5)}.greeting-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--line-soft)}.greeting-header h3{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0}.greeting-subtitle{font-size:var(--font-xs);color:var(--text-soft);margin:var(--space-1) 0 0}.greeting-switch{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.greeting-switch input{display:none}.greeting-switch-slider{width:44px;height:24px;background:var(--bg-subtle);border-radius:var(--radius-full);position:relative;transition:all var(--transition-fast);border:1px solid var(--line-soft)}.greeting-switch-slider:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--bg-panel-strong);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.greeting-switch input:checked+.greeting-switch-slider{background:var(--bg-accent);border-color:transparent}.greeting-switch input:checked+.greeting-switch-slider:after{transform:translate(20px)}.greeting-switch-label{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-body)}.greeting-editor{margin-bottom:var(--space-5)}.greeting-editor-label{display:block;font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--text-strong);margin-bottom:var(--space-2)}.greeting-textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-subtle);border:1px solid var(--line-soft);border-radius:var(--radius-xs);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);resize:vertical;transition:all var(--transition-fast)}.greeting-textarea:focus{outline:none;border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.greeting-textarea:disabled{opacity:.5;cursor:not-allowed}.greeting-preview{padding:var(--space-5)}.greeting-preview-title{font-size:var(--font-md);font-weight:var(--font-weight-semibold);color:var(--text-strong);margin:0 0 var(--space-4)}.greeting-chat-preview{display:flex;justify-content:center}.greeting-chat-window{width:100%;max-width:360px;background:var(--bg-subtle);border-radius:var(--radius-md);overflow:hidden}.greeting-chat-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-sm);font-weight:var(--font-weight-medium)}.greeting-chat-avatar{width:28px;height:28px;background:#fff3;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-xs);font-weight:var(--font-weight-bold)}.greeting-chat-body{min-height:200px;padding:var(--space-4);display:flex;flex-direction:column}.greeting-chat-bubble{display:flex;gap:var(--space-2);max-width:85%}.greeting-chat-bubble-avatar{width:28px;height:28px;background:var(--bg-accent);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--text-inverse);flex-shrink:0}.greeting-chat-bubble-content{background:var(--bg-panel-strong);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-body);line-height:1.5;box-shadow:var(--shadow-sm)}.greeting-chat-disabled{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text-muted)}.greeting-chat-disabled span{font-size:var(--font-sm)}.edit-modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.edit-modal-field{display:flex;flex-direction:column;gap:var(--space-2)}.edit-modal-textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-subtle);border:1px solid var(--line-soft);border-radius:var(--radius-xs);font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-body);resize:vertical;transition:all var(--transition-fast)}.edit-modal-textarea:focus{outline:none;border-color:var(--line-focus);box-shadow:var(--shadow-glow)}.modal-footer-actions{display:flex;gap:var(--space-2);justify-content:flex-end}@media(max-width:1000px){.faq-panel{grid-template-columns:1fr}.faq-categories{max-height:300px}.greeting-panel{grid-template-columns:1fr}.greeting-preview{order:-1}}@media(max-width:640px){.customer-service-page{padding:var(--space-4);gap:var(--space-4)}.page-header-icon{width:40px;height:40px}.page-header-icon svg{width:20px;height:20px}.page-title{font-size:var(--font-xl)}.cs-tabs{width:100%;overflow-x:auto}.cs-tab{padding:var(--space-2) var(--space-3);white-space:nowrap}.quick-reply-panel{max-width:100%}}*,*: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}.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-4)}.splash-logo{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius-md);background:var(--bg-accent);color:var(--text-inverse);font-size:var(--font-2xl);font-weight:var(--font-weight-bold);box-shadow:0 16px 32px #4f7cff40,inset 0 1px #ffffff57}.splash-title{font-size:var(--font-xl);font-weight:var(--font-weight-semibold);color:var(--text-strong);letter-spacing:-.02em}.splash-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}@keyframes spin{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);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.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:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.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}
