/* shared app UI (modals, toasts, buttons) */
:root{
  --ui-saffron:#FF9933; --ui-green:#138808; --ui-navy:#0a0f1a;
  --ui-slate:#1a2235; --ui-card:#141b2d; --ui-text:#e8eaf0;
  --ui-muted:#8892a6; --ui-line:rgba(255,255,255,0.08); --ui-pro:#c9a3e8;
}
.uimodal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.65);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(2px)}
.uimodal-overlay.show{opacity:1;pointer-events:auto}
.uimodal{background:var(--ui-card);border:1px solid var(--ui-line);border-radius:18px;width:100%;max-width:380px;padding:24px;transform:translateY(12px) scale(.98);transition:transform .2s ease;box-shadow:0 20px 60px -20px rgba(0,0,0,0.7)}
.uimodal-overlay.show .uimodal{transform:translateY(0) scale(1)}
.uimodal-icon{width:48px;height:48px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:24px}
.uimodal-icon.info{background:rgba(255,153,51,0.14);color:var(--ui-saffron)}
.uimodal-icon.warn{background:rgba(255,153,51,0.14);color:var(--ui-saffron)}
.uimodal-icon.error{background:rgba(226,75,74,0.14);color:#e24b4a}
.uimodal-icon.success{background:rgba(19,136,8,0.16);color:#4ade80}
.uimodal-icon.pro{background:rgba(201,163,232,0.14);color:var(--ui-pro)}
.uimodal h3{font-size:17px;font-weight:700;text-align:center;margin-bottom:8px;color:var(--ui-text);font-family:inherit}
.uimodal p{font-size:14px;color:var(--ui-muted);text-align:center;line-height:1.5;margin-bottom:20px}
.uimodal-actions{display:flex;gap:10px}
.uimodal-btn{flex:1;padding:13px;border-radius:12px;border:none;cursor:pointer;font-size:14px;font-weight:600;font-family:inherit;transition:.15s}
.uimodal-btn:active{transform:scale(.97)}
.uimodal-btn.primary{background:linear-gradient(135deg,var(--ui-saffron),var(--ui-green));color:#fff}
.uimodal-btn.ghost{background:var(--ui-slate);border:1px solid var(--ui-line);color:var(--ui-muted)}
.uimodal-btn.ghost:hover{border-color:var(--ui-saffron);color:var(--ui-saffron)}
.uitoast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(10px);background:var(--ui-card);border:1px solid var(--ui-line);color:var(--ui-text);font-size:13px;font-weight:500;padding:12px 18px;border-radius:14px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:1100;box-shadow:0 10px 30px -10px rgba(0,0,0,0.6);max-width:90vw;text-align:center}
.uitoast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.uibtn{padding:13px 18px;border-radius:12px;border:none;cursor:pointer;font-size:14px;font-weight:600;font-family:inherit;transition:.15s;background:linear-gradient(135deg,var(--ui-saffron),var(--ui-green));color:#fff}
.uibtn:active{transform:scale(.98)}
.uibtn.ghost{background:var(--ui-slate);border:1px solid var(--ui-line);color:var(--ui-text)}
.uibtn.ghost:hover{border-color:var(--ui-saffron)}