/* AZOTH 自有对话框 / 轻提示（azoth-dialog.js · 2026-09-11）
   只用主题变量（--card-bg / --text / --accent / --accent-rgb / --bg），8 个主题自动跟随。
   🔴 锈湖审美红线：彩色左边条卡片全域禁用 —— 语气（成功/警告/错误）只用左侧小圆图标区分。
   层级：对话框 100001 压过云登录页（99999）；轻提示 100002 永远在最上。 */

:root {
    --azd-safe-top: var(--azoth-safe-top, env(safe-area-inset-top, 0px));
    --azd-safe-bottom: calc(env(safe-area-inset-bottom, 0px) / var(--azoth-native-scale, 1));
    --azd-danger: #c94a4a;
    --azd-warning: #c98b2b;
    --azd-success: #3d9970;
}

/* ---------- 对话框 ---------- */
.azd-overlay {
    position: fixed;
    inset: 0;
    z-index: 100001;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    box-sizing: border-box;
    /* 偏上摆放：prompt 弹出软键盘时输入框不被挡 */
    padding: calc(var(--azd-safe-top) + 16vh) 18px calc(var(--azd-safe-bottom) + 18px);
    background: rgba(12, 16, 22, 0.42);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    animation: azd-fade 0.16s ease-out;
}
.azd-overlay.azd-leaving {
    animation: azd-fade-out 0.12s ease-in forwards;
    pointer-events: none;
}
.azd-card {
    width: min(400px, 100%);
    max-height: calc(100% - 8px);
    overflow: auto;
    box-sizing: border-box;
    padding: 20px 20px 14px;
    background: var(--card-bg, #fff);
    color: var(--text, #222);
    border: 1px solid rgba(var(--accent-rgb, 93, 105, 115), 0.22);
    border-radius: 18px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.08);
    animation: azd-pop 0.18s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
.azd-card:focus { outline: none; }   /* 焦点落在卡片上只为接键盘，不画环 */
.azd-title {
    margin: 0 0 6px;
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: 0.01em;
    word-break: break-word;
}
.azd-message {
    margin: 0 0 4px;
    font-size: 0.92rem;
    line-height: 1.6;
    opacity: 0.82;
    white-space: pre-wrap;
    word-break: break-word;
}
.azd-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 14px 0 2px;
    padding: 11px 13px;
    font: inherit;
    font-size: 16px;   /* ≥16px：iOS/部分 WebView 不会因聚焦自动放大页面 */
    line-height: 1.5;
    color: var(--text, #222);
    background: var(--bg, #f5f5f5);
    border: 1px solid rgba(var(--accent-rgb, 93, 105, 115), 0.28);
    border-radius: 12px;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    /* style.css:1058 全局 `* { user-select: none }` —— 不显式放开，APK 里没法在框里选字改字 */
    -webkit-user-select: text;
    user-select: text;
}
textarea.azd-input {
    min-height: 7.5em;
    max-height: 40vh;
    resize: vertical;
}
.azd-input:focus {
    border-color: rgba(var(--accent-rgb, 93, 105, 115), 0.75);
    box-shadow: 0 0 0 3px rgba(var(--accent-rgb, 93, 105, 115), 0.1);
}
/* 白雾 / 锈湖有自己的全局输入框语言（themes/fog.css:145 特异性 (0,3,1)，roots.css:507 更高），
   对话框里的输入框**跟随主题**，不强压 —— 白雾就是墨线框，锈湖就是牛血聚焦边。 */
.azd-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}
.azd-btn {
    min-width: 76px;
    padding: 9px 16px;
    border: 1px solid transparent;
    border-radius: 12px;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: filter 0.15s, background 0.15s, transform 0.08s;
}
.azd-btn:active { transform: scale(0.97); }
.azd-btn:hover { filter: brightness(1.05); }
.azd-btn:focus-visible { outline: 2px solid var(--accent, #5d6973); outline-offset: 2px; }
.azd-btn-ghost {
    background: transparent;
    color: var(--text, #222);
    border-color: rgba(var(--accent-rgb, 93, 105, 115), 0.24);
}
.azd-btn-primary {
    background: var(--accent, #5d6973);
    color: var(--bg, #fff);
}
.azd-btn-danger {
    background: var(--azd-danger);
    color: #fff;
}
body.azd-lock { overflow: hidden; }

/* ---------- 轻提示 ---------- */
.azd-notices {
    position: fixed;
    z-index: 100002;
    top: calc(var(--azd-safe-top) + 12px);
    left: 50%;
    transform: translateX(-50%);
    width: min(460px, calc(100vw - 28px));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    pointer-events: none;
}
.azd-notice {
    pointer-events: auto;
    display: inline-flex;
    align-items: flex-start;
    gap: 9px;
    max-width: 100%;
    box-sizing: border-box;
    padding: 10px 15px 10px 11px;
    background: var(--card-bg, #fff);
    color: var(--text, #222);
    border: 1px solid rgba(var(--accent-rgb, 93, 105, 115), 0.2);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14);
    font-size: 0.86rem;
    line-height: 1.5;
    cursor: pointer;
    animation: azd-drop 0.2s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
.azd-notice.azd-leaving { animation: azd-fade-out 0.18s ease-in forwards; }
.azd-notice-icon {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background: rgba(var(--accent-rgb, 93, 105, 115), 0.8);
}
.azd-tone-success .azd-notice-icon { background: var(--azd-success); }
.azd-tone-warning .azd-notice-icon { background: var(--azd-warning); }
.azd-tone-error .azd-notice-icon { background: var(--azd-danger); }
.azd-notice-text {
    white-space: pre-wrap;
    word-break: break-word;
}

@keyframes azd-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes azd-fade-out { to { opacity: 0; } }
@keyframes azd-pop {
    from { opacity: 0; transform: translateY(8px) scale(0.97); }
    to { opacity: 1; transform: none; }
}
@keyframes azd-drop {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .azd-overlay, .azd-card, .azd-notice { animation: none !important; }
}

/* ---------- 主题特化 ---------- */
/* 墟构：直角 + 实线描边 + 硬投影，与它的按钮/卡片语言一致 */
[data-theme="construct"] .azd-card {
    border-radius: 3px;
    border: 1px solid var(--accent);
    box-shadow: 6px 6px 0 rgba(var(--accent-rgb), 0.14);
}
[data-theme="construct"] .azd-btn,
[data-theme="construct"] .azd-input { border-radius: 2px; }
[data-theme="construct"] .azd-btn-ghost { border-color: var(--accent); color: var(--accent); }
[data-theme="construct"] .azd-notice { border-radius: 3px; border-color: var(--accent); box-shadow: 4px 4px 0 rgba(var(--accent-rgb), 0.12); }
/* 锈湖（深底）：遮罩更沉、投影更重，卡片不至于浮在一片灰里 */
[data-theme="roots"] .azd-overlay { background: rgba(8, 3, 3, 0.58); }
[data-theme="roots"] .azd-card,
[data-theme="roots"] .azd-notice { box-shadow: 0 22px 60px rgba(0, 0, 0, 0.5); }
/* 锈湖 accent 是牛血红，var(--bg) 是深褐 —— 深字压深红看不清，主按钮字改用骨白 */
[data-theme="roots"] .azd-btn-primary { color: var(--text); }

/* ---------- choose：「从列表里选一项」（azoth-select.js · 2026-09-12） ----------
   与确认框同一套：复用 .azd-overlay / .azd-card 及其主题特化（白拿墟构直角硬投影、锈湖深遮罩）。
   窄屏从底部弹出，宽屏（≥720px）居中卡片；行高 ≥48px；列表内部滚动；锈湖红线=无彩色左边条，
   选中态只用勾 + 淡 accent 底色。 */
.azd-choose-overlay {
    align-items: flex-end;
    padding: 24px 0 0;   /* 底部卡片：左右贴边；底部由卡片自己让出 safe-area */
}
.azd-choose-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: 70vh;
    padding: 4px 0 calc(10px + var(--azd-safe-bottom));
    border-radius: 18px 18px 0 0;
    border-bottom: 0;
    overflow: hidden;   /* 滚动只在列表内部，标题/搜索框钉住 */
    animation: azd-sheet-up 0.2s cubic-bezier(0.2, 0.9, 0.3, 1.1);
}
.azd-choose-title {
    flex: 0 0 auto;
    padding: 12px 20px 8px;
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.45;
    word-break: break-word;
}
.azd-choose-search {
    flex: 0 0 auto;
    padding: 0 14px 10px;
}
.azd-choose-search-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px;
    font: inherit;
    font-size: 16px;   /* ≥16px：聚焦不触发页面自动放大 */
    line-height: 1.5;
    color: var(--text, #222);
    background: var(--bg, #f5f5f5);
    border: 1px solid rgba(var(--accent-rgb, 93, 105, 115), 0.28);
    border-radius: 12px;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    -webkit-user-select: text;
    user-select: text;
}
.azd-choose-search-input:focus {
    border-color: rgba(var(--accent-rgb, 93, 105, 115), 0.75);
    box-shadow: 0 0 0 3px rgba(var(--accent-rgb, 93, 105, 115), 0.1);
}
.azd-choose-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 2px 8px 4px;
}
.azd-choose-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    min-height: 48px;
    padding: 10px 12px;
    font: inherit;
    font-size: 0.95rem;
    line-height: 1.4;
    text-align: left;
    color: var(--text, #222);
    background: transparent;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.azd-choose-item:active { background: rgba(var(--accent-rgb, 93, 105, 115), 0.1); }
.azd-choose-item[aria-selected="true"] {
    color: var(--accent, #5d6973);
    background: rgba(var(--accent-rgb, 93, 105, 115), 0.1);
    font-weight: 600;
}
.azd-choose-item[aria-disabled="true"] { opacity: 0.38; cursor: default; }
.azd-choose-item[aria-disabled="true"]:active { background: transparent; }
.azd-choose-item-label { flex: 1 1 auto; word-break: break-word; }
.azd-choose-item-check {
    flex: 0 0 auto;
    visibility: hidden;
    font-weight: 700;
    color: var(--accent, #5d6973);
}
.azd-choose-item[aria-selected="true"] .azd-choose-item-check { visibility: visible; }
.azd-choose-empty {
    padding: 22px 14px;
    text-align: center;
    font-size: 0.9rem;
    opacity: 0.6;
}
/* 宽屏：居中卡片，与确认框一致 */
@media (min-width: 720px) {
    .azd-choose-overlay {
        align-items: flex-start;
        padding: calc(var(--azd-safe-top) + 16vh) 18px calc(var(--azd-safe-bottom) + 18px);
    }
    .azd-choose-card {
        width: min(420px, 100%);
        border-radius: 18px;
        border-bottom: 1px solid rgba(var(--accent-rgb, 93, 105, 115), 0.22);
        animation: azd-pop 0.18s cubic-bezier(0.2, 0.9, 0.3, 1.2);
    }
}
@keyframes azd-sheet-up {
    from { transform: translateY(18px); opacity: 0.4; }
    to { transform: none; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .azd-choose-card { animation: none !important; }
}
/* choose 自有形状的主题特化（卡片/按钮的整体语言已随 .azd-card 白拿）：
   墟构直角；锈湖深遮罩/重投影/骨白字由上面的 .azd-overlay/.azd-card 规则自动覆盖，无需另写 */
[data-theme="construct"] .azd-choose-card { border-radius: 3px 3px 0 0; }
[data-theme="construct"] .azd-choose-item,
[data-theme="construct"] .azd-choose-search-input { border-radius: 2px; }
@media (min-width: 720px) {
    [data-theme="construct"] .azd-choose-card { border-radius: 3px; }
}
