.app-message,.app-confirm,.app-button { font-family:Vazirmatn,Tahoma,sans-serif; box-sizing:border-box; }
.app-notifications { position:fixed; z-index:10000; inset-block-start:max(20px,env(safe-area-inset-top)); inset-inline-end:20px; width:min(420px,calc(100vw - 32px)); display:grid; gap:10px; pointer-events:none; max-height:85dvh; overflow:auto; }
.app-message { --message-color:#286482; --message-bg:#f0f7fc; display:flex; align-items:flex-start; gap:12px; padding:16px; margin-bottom:16px; background:var(--message-bg); color:#263f52; border:1px solid #d9e5ed; border-inline-start:4px solid var(--message-color); border-radius:10px; direction:rtl; font-size:13px; line-height:1.9; overflow-wrap:anywhere; text-align:right; }
.app-notifications .app-message { pointer-events:auto; margin:0; box-shadow:0 8px 28px #152e481c; }
.app-message-error { --message-color:#aa354a; --message-bg:#fff5f6; border-color:#f1d9df; }
.app-message-success { --message-color:#217a57; --message-bg:#f1faf5; border-color:#d6eade; }
.app-message-warning { --message-color:#93601b; --message-bg:#fff9ed; border-color:#eedfbf; }
.app-message-icon { border:1px solid currentColor; color:var(--message-color); width:25px; height:25px; border-radius:50%; display:grid; place-items:center; flex:none; font-weight:700; font-family:Tahoma,sans-serif; margin-top:2px; }
.app-message-content { flex:1; min-width:0; }
.app-message-content strong { display:block; font-size:12px; color:var(--message-color); }
.app-message-content p { margin:4px 0 0; white-space:pre-line; }
.app-message-close { border:0; background:transparent; color:var(--message-color); cursor:pointer; min-width:44px; min-height:44px; padding:0; margin:-8px -5px; font-size:25px; flex:none; }
.app-confirm { width:min(460px,calc(100vw - 24px)); padding:28px; border:1px solid #d8e4ed; border-radius:16px; background:#fff; color:#284357; direction:rtl; text-align:right; box-shadow:0 24px 80px #10273e40; max-height:90dvh; overflow:auto; }
.app-confirm::backdrop { background:#122b44aa; }
.app-confirm-symbol { width:44px; height:44px; display:grid; place-items:center; background:#fff3df; color:#94621a; border-radius:12px; font-size:24px; font-weight:700; }
.app-confirm h2 { font-size:18px; margin:18px 0 8px; }
.app-confirm p { font-size:13px; line-height:2.1; white-space:pre-line; overflow-wrap:anywhere; margin:0 0 24px; }
.app-confirm-actions { display:flex; justify-content:flex-end; gap:10px; }
.app-button { min-height:44px; border:1px solid transparent; border-radius:8px; padding:10px 16px; background:#087f87; color:white; cursor:pointer; font-size:13px; }
.app-button-secondary { background:#edf3f7; border-color:#dce6ed; color:#31576d; }
.app-button-danger { background:#ab3549; }
.app-button:focus-visible,.app-message-close:focus-visible { outline:3px solid #e3ad42; outline-offset:3px; }
.app-field-error { display:block; font-size:12px; color:#ad3046; line-height:1.9; margin:6px 0 12px; }
.app-field-error[hidden] { display:none!important; }
.alert.app-message { background:var(--message-bg); color:#263f52; border-inline-start:4px solid var(--message-color); }
.field-invalid { border-color:#ba4055!important; }
html.app-js [data-app-popup] { display:none; }
.app-message-info { --message-color:#286482; --message-bg:#f0f7fc; }
html:has(.app-confirm[open]) { overflow:hidden; }
.app-popup { border-block-start:5px solid var(--message-color); padding-block-start:30px; }
.app-popup .app-confirm-symbol { background:var(--message-bg); color:var(--message-color); }
.app-popup h2 { color:var(--message-color); padding-inline-end:24px; }
.app-popup-heading { display:flex; align-items:center; gap:12px; padding-inline-end:36px; margin-bottom:14px; }
.app-popup-heading .app-confirm-symbol { flex:none; }
.app-popup .app-popup-heading h2 { min-width:0; margin:0; padding:0; line-height:1.6; overflow-wrap:anywhere; }
.app-popup-close { position:absolute; inset-inline-end:12px; top:10px; min-width:44px; min-height:44px; border:0; border-radius:8px; background:transparent; color:#526a7b; font:26px Tahoma,sans-serif; cursor:pointer; }
.app-popup-close:focus-visible { outline:3px solid #e3ad42; outline-offset:2px; }
.app-confirm { margin:auto; max-width:calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)); max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overscroll-behavior:contain; }
@media(max-width:600px) { .app-notifications { inset-inline-end:16px; inset-block-start:max(12px,env(safe-area-inset-top)); } .app-message { padding:13px; gap:9px; } .app-confirm { padding:22px; } .app-confirm-actions>* { flex:1; } }
@media(prefers-reduced-motion:no-preference) { .app-notifications>.app-message,.app-confirm[open] { animation:app-message-enter .18s ease-out; } @keyframes app-message-enter { from { opacity:.5;transform:translateY(-5px); } to { opacity:1;transform:translateY(0); } } }
