/* 0appz.com - Deferred CSS (below-fold + hidden components).
 * Loaded async via media=print swap (see layout.php). Order after app.css
 * preserves cascade: equal-specificity rules here win, same as before. */
.back-to-top{position:fixed;bottom:80px;right:24px;z-index:900;width:44px;height:44px;background:var(--bg-elevated);border:1px solid var(--border-glass);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);font-size:1.2rem;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s,visibility .3s;box-shadow:var(--shadow-md)}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.toast-container{position:fixed;bottom:100px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--border-glass);color:var(--text);font-size:.88rem;font-family:var(--font);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);pointer-events:auto;font-weight:500;animation:toastIn .3s ease both;max-width:340px}
.toast.toast-out{animation:toastOut 0.25s ease both}
.toast-success{border-color:var(--accent-3);box-shadow:0 4px 20px var(--accent-3-glow)}
.toast-error{border-color:#E53935;box-shadow:0 4px 20px rgba(229,57,53,0.25)}
.toast-update{border-color:#FFD700;box-shadow:0 4px 20px rgba(255,215,0,0.15)}
.toast-update .toast-action-btn{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:4px 12px;font-size:0.82rem;font-weight:600;cursor:pointer;transition:background 0.2s;margin-left:4px}
.toast-update .toast-action-btn:hover{background:#e85a3a}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes toastOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(20px)}}
/* ===== Global Search Palette ===== */
.global-palette{position:fixed;inset:0;z-index:10001;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;opacity:0;pointer-events:none;transition:opacity .2s}
.global-palette.active{opacity:1;pointer-events:auto}
.palette-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5)}
.palette-dialog{position:relative;background:var(--bg);border:1px solid var(--border);border-radius:16px;width:560px;max-width:95vw;box-shadow:0 24px 64px rgba(0,0,0,.35);overflow:hidden}
.palette-input-wrap{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border)}
.palette-search-icon{font-size:1.2rem}
.palette-input{flex:1;border:none;background:none;font-size:1.05rem;color:var(--text);outline:none}
.palette-input::placeholder{color:var(--text-tertiary)}
.palette-input-wrap kbd{font-size:.7rem;padding:2px 8px;border-radius:4px;background:var(--accent-light);color:var(--text-secondary);border:1px solid var(--border)}
.palette-results{max-height:360px;overflow-y:auto}
.palette-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:background .1s}
.palette-item.active,.palette-item:hover{background:var(--accent-light)}
.palette-item-icon{font-size:1.3rem;width:36px;text-align:center;flex-shrink:0}
.palette-item-name{font-weight:600;font-size:.95rem;color:var(--text);flex-shrink:0}
.palette-item-desc{font-size:.8rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette-empty{padding:24px 20px;text-align:center;color:var(--text-tertiary);font-size:.9rem}
.palette-footer{display:flex;gap:20px;padding:10px 20px;border-top:1px solid var(--border);font-size:.75rem;color:var(--text-tertiary)}

/* ===== Debug Bar ===== */
.debug-bar{font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:11px;line-height:1.4}
.debug-bar-content{background:rgba(10,10,20,.92);border-top:1px solid rgba(255,107,74,.3);padding:8px 16px}
.debug-bar-grid{display:flex;flex-wrap:wrap;gap:4px 12px;max-width:1200px;margin:0 auto}
.debug-bar-item{color:#B0B0C0;white-space:nowrap}
.debug-bar-item::before{content:'•';color:#FF6B4A;margin-right:4px}
