:root {
    --zhuse: #3d5a80;
    --zhuse-shen: #2b4162;
    --qiangdiao: #e07a5f;
    --qiangdiao-shen: #c4613f;
    --chenggong: #3d7a68;
    --jinggao: #d4956b;
    --weixian: #c44536;
    --wenzi: #1c2526;
    --wenzi-fu: #4a5557;
    --wenzi-dan: #8a9194;
    --beijing: #f0f1f3;
    --beijing-qian: #f7f8f9;
    --qiaopian: #ffffff;
    --biankuang: #d1d5da;
    --biankuang-qian: #e3e6ea;
    --shenlan: #1c2a3a;
    --yuanguo: 8px;
    --guodu: all 0.2s ease;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 15px;
    color: var(--wenzi);
    background: var(--beijing);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--qiangdiao); text-decoration: none; }

/* Toast */
.ui-toast {
    position: fixed; top: 60px; left: 50%; transform: translateX(-50%);
    z-index: 9999; opacity: 0; transition: opacity 0.3s;
}
.ui-toast.show { opacity: 1; }
.ui-toast__inner {
    background: rgba(28,37,58,0.9); color: #fff; padding: 10px 20px;
    border-radius: var(--yuanguo); font-size: 14px; max-width: 300px; text-align: center;
}

/* Modal */
.ui-modal { position: fixed; inset: 0; z-index: 9000; display: none; }
.ui-modal.is-open { display: block; }
.ui-modal__mask { position: absolute; inset: 0; background: rgba(0,0,0,0.45); opacity: 0; transition: opacity 0.3s; }
.ui-modal.show .ui-modal__mask { opacity: 1; }
.ui-modal__panel {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%) scale(0.95);
    background: var(--qiaopian); border-radius: 12px; width: 90%; max-width: 400px;
    opacity: 0; transition: all 0.3s;
}
.ui-modal.show .ui-modal__panel { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.ui-modal__hd { padding: 16px 20px 0; display: flex; justify-content: space-between; align-items: center; }
.ui-modal__title { font-size: 16px; font-weight: 600; }
.ui-modal__close { background: none; border: none; font-size: 20px; color: var(--wenzi-dan); cursor: pointer; }
.ui-modal__bd { padding: 12px 20px; }
.ui-modal__ft { padding: 12px 20px 16px; display: flex; gap: 8px; justify-content: flex-end; }
.ui-btn { padding: 8px 16px; border: none; border-radius: var(--yuanguo); font-size: 14px; cursor: pointer; }
.ui-btn--ghost { background: var(--beijing-qian); color: var(--wenzi-fu); }
.ui-btn--primary { background: var(--qiangdiao); color: #fff; }