/* Tailwind 之外的少量样式 */
html, body { height: 100%; -webkit-tap-highlight-color: transparent; overscroll-behavior: none; }
.safe-top { padding-top: max(env(safe-area-inset-top), 0px); height: auto; min-height: 3rem; }
.safe-bottom { padding-bottom: env(safe-area-inset-bottom); }
#editor:not(.hidden) { display: flex; }
#loading:not(.hidden) { display: flex; }

.shadow-glow { box-shadow: 0 10px 30px -8px rgba(245, 194, 107, .55); }

/* 首页图标：几何光圈 */
.logo-ring {
  width: 112px; height: 112px; border-radius: 50%;
  background: conic-gradient(from 200deg, #f5c26b, #ff8f6b, #b07cff, #6bc6ff, #f5c26b);
  display: grid; place-items: center;
  animation: spin 18s linear infinite;
}
.logo-core { width: 78px; height: 78px; border-radius: 50%; background: #0e0e10; box-shadow: inset 0 0 0 6px rgba(255,255,255,.06); }
@keyframes spin { to { transform: rotate(360deg); } }

.icon-btn {
  width: 40px; height: 40px; border-radius: 9999px;
  display: inline-flex; align-items: center; justify-content: center;
  color: #e5e5e5; transition: transform .1s, opacity .1s;
}
.icon-btn:active { transform: scale(.92); }
.icon-btn:disabled { opacity: .3; }

/* 底部 tab */
.tab-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; height: 56px; font-size: 11px; color: #9a9aa5; }
.tab-btn .fa { font-size: 18px; }
.tab-btn.active { color: #f5c26b; }

/* 横向滚动条隐藏 */
.hscroll { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.hscroll::-webkit-scrollbar { display: none; }

/* 滑杆 */
input[type=range].slider { -webkit-appearance: none; appearance: none; width: 100%; height: 28px; background: transparent; }
input[type=range].slider::-webkit-slider-runnable-track { height: 3px; border-radius: 3px; background: linear-gradient(to right, #f5c26b var(--fill, 50%), #3a3a44 var(--fill, 50%)); }
input[type=range].slider::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -9.5px; border-radius: 50%; background: #fff; box-shadow: 0 1px 6px rgba(0,0,0,.5); }
input[type=range].slider::-moz-range-track { height: 3px; border-radius: 3px; background: #3a3a44; }
input[type=range].slider::-moz-range-progress { height: 3px; background: #f5c26b; }
input[type=range].slider::-moz-range-thumb { width: 22px; height: 22px; border: 0; border-radius: 50%; background: #fff; }

/* 参数/滤镜等小卡片 */
.chip { flex: none; display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 60px; padding: 6px 4px; font-size: 11px; color: #a3a3ad; }
.chip .chip-icon { width: 40px; height: 40px; border-radius: 9999px; display: grid; place-items: center; background: #1f1f25; font-size: 16px; position: relative; }
.chip.active { color: #f5c26b; }
.chip.active .chip-icon { background: #2a2a32; box-shadow: 0 0 0 1.5px #f5c26b; }
.chip .dot { position: absolute; top: 2px; right: 2px; width: 6px; height: 6px; border-radius: 50%; background: #f5c26b; }

.toast-item { padding: 8px 14px; border-radius: 16px; background: rgba(31,31,37,.95); font-size: 13px; color: #eee; box-shadow: 0 6px 20px rgba(0,0,0,.4); margin-top: 6px; white-space: pre-line; max-width: 88vw; text-align: center; line-height: 1.45; animation: toast-in .2s ease-out; }
.toast-item.error { color: #ffb4a8; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-6px); } }
