body{ margin:0; font-family: "Cairo", Tahoma, Arial, sans-serif; background:var(--bg); color:var(--text); }
a{ color:inherit; text-decoration:none; }
.app-shell{ display:flex; min-height:100vh; }
.sidebar{ width:260px; background:var(--card); border-left:1px solid var(--border); padding:16px; box-sizing:border-box; }
.brand{ font-weight:700; margin-bottom:12px; }
.menu a{ display:block; padding:10px 12px; border-radius:10px; margin:6px 0; transition:.15s; }
.menu a:hover{ background:rgba(37,99,235,.08); }
.content{ flex:1; padding:18px; }
.card{ background:var(--card); border:1px solid var(--border); border-radius:16px; padding:16px; }
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.login-card{ width:360px; max-width:100%; background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px; }
.login-card input{ width:100%; box-sizing:border-box; padding:10px; margin:6px 0 12px; border-radius:10px; border:1px solid var(--border); background:transparent; color:var(--text); }
.login-card button{ width:100%; padding:10px; border-radius:10px; border:0; background:var(--primary); color:white; cursor:pointer; transition:.15s; }
.login-card button:hover{ opacity:.92; }
.msg{ margin-top:10px; color:var(--muted); }
#themeToggle{ width:100%; padding:10px; border-radius:10px; border:1px solid var(--border); background:transparent; color:var(--text); cursor:pointer; }
/* ===== DynamicForm UI ===== */
.mdf-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.mdf-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mdf-title{font-size:16px}
.mdf-input{padding:10px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text)}
.mdf-textarea{width:100%;padding:10px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);box-sizing:border-box}
.mdf-label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px}
.mdf-field{margin-bottom:12px}
.mdf-hint{font-size:12px;color:var(--muted);margin-top:6px}
.mdf-muted{color:var(--muted)}
.mdf-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px}
.mdf-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px}
.mdf-table th,.mdf-table td{padding:10px;border-bottom:1px solid var(--border);text-align:right;vertical-align:middle}
.mdf-table th{background:rgba(0,0,0,.03)}
[data-theme="dark"] .mdf-table th{background:rgba(255,255,255,.04)}
.mdf-pager{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px;flex-wrap:wrap}
.mdf-pager-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mdf-pill{display:inline-block;padding:8px 10px;border:1px solid var(--border);border-radius:10px}

.mdf-btn{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;transition:.15s}
.mdf-btn:hover{background:rgba(37,99,235,.08)}
.mdf-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.mdf-btn-primary:hover{opacity:.92}
.mdf-btn-danger{border-color:rgba(239,68,68,.45);color:#ef4444}
.mdf-btn-danger:hover{background:rgba(239,68,68,.08)}
.mdf-btn-ghost{background:transparent}

.mdf-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;padding:16px;z-index:9999}
.mdf-modal{width:min(860px,100%);background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.2);overflow:hidden}
.mdf-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}
.mdf-modal-title{font-weight:700}
.mdf-modal-body{padding:14px;max-height:70vh;overflow:auto}
.mdf-modal-footer{padding:12px 14px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-start;flex-wrap:wrap}
.mdf-pre{white-space:pre-wrap;border:1px solid var(--border);border-radius:12px;padding:12px;background:rgba(0,0,0,.03)}
[data-theme="dark"] .mdf-pre{background:rgba(255,255,255,.04)}
