/* وثيق — نظام تصميم مشترك (RTL) */
:root{
  --blue:#1f2d54; --green:#0a8f4d; --green2:#37b26b; --green-l:#e7f6ee;
  --accent:#3f7fd0; --orange:#e08a2b; --red:#c0392b;
  --bg:#f4f6f8; --card:#fff; --text:#232a34; --muted:#6b7683; --border:#e2e8ee;
  --shadow:0 3px 16px rgba(31,45,84,.07);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Tajawal',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;font-size:15px}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px}
svg{flex-shrink:0}

/* Top bar */
.topbar{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40;box-shadow:0 1px 8px rgba(31,45,84,.05)}
.topbar .wrap{display:flex;align-items:center;gap:16px;height:60px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;color:var(--blue)}
.logo .mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--blue),var(--green));display:flex;align-items:center;justify-content:center}
.topnav{display:flex;gap:4px;margin-inline-start:auto;align-items:center}
.topnav a{padding:8px 13px;border-radius:8px;color:var(--muted);font-weight:500}
.topnav a:hover,.topnav a.on{background:var(--green-l);color:var(--green)}
.topnav .who{color:var(--muted);font-size:13px;padding:0 6px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff;border:none;border-radius:9px;padding:9px 18px;font-family:inherit;font-size:14.5px;font-weight:700;cursor:pointer;transition:.15s}
.btn:hover{background:#087a41}
.btn.sec{background:#eef2f6;color:var(--blue)}
.btn.sec:hover{background:#e2e8ee}
.btn.danger{background:var(--red)}
.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}
.btn.sm{padding:6px 12px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* Cards */
.card{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px;border:1px solid var(--border)}
.card h2{font-size:19px;color:var(--blue);font-weight:800;margin-bottom:4px}
.card h3{font-size:16px;color:var(--blue);font-weight:700;margin:14px 0 8px}
.muted{color:var(--muted)}
.hint{font-size:13px;color:var(--muted)}

/* Grid */
.grid{display:grid;gap:16px}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* Stat tiles */
.stat{background:var(--card);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);border-inline-start:5px solid var(--green)}
.stat .n{font-size:28px;font-weight:800;color:var(--blue);line-height:1.1}
.stat .l{font-size:13px;color:var(--muted);margin-top:3px}
.stat.b{border-color:var(--accent)}.stat.o{border-color:var(--orange)}.stat.r{border-color:var(--red)}

/* Inputs */
label{display:block;font-size:13.5px;font-weight:600;color:var(--blue);margin:10px 0 5px}
input,select,textarea{width:100%;font-family:inherit;font-size:14.5px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#fbfcfd;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);background:#fff}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Tables */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl thead th{background:var(--blue);color:#fff;text-align:right;padding:11px 13px;font-weight:700;white-space:nowrap;font-size:13.5px}
.tbl tbody td{padding:10px 13px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tbody tr:hover{background:var(--green-l)}
.tbl-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border);background:#fff}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:3px 11px;font-size:12px;font-weight:700}
.badge.draft{background:#eef2f6;color:var(--muted)}
.badge.sent{background:#fcf1e2;color:var(--orange)}
.badge.completed{background:var(--green-l);color:var(--green)}
.badge.voided,.badge.declined{background:#fbeae8;color:var(--red)}
.badge.pending{background:#fcf1e2;color:var(--orange)}
.badge.signed{background:var(--green-l);color:var(--green)}
.badge.admin{background:#e7edf8;color:var(--accent)}
.badge.user{background:#eef2f6;color:var(--muted)}

/* Alerts */
.alert{border-radius:10px;padding:13px 15px;margin:12px 0;border-inline-start:5px solid var(--accent);background:#eef4fb;font-size:14px}
.alert.ok{border-color:var(--green);background:var(--green-l)}
.alert.err{border-color:var(--red);background:#fbeae8}
.alert.warn{border-color:var(--orange);background:#fcf6ec}

/* Auth / centered */
.center-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:24px}
.auth-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:34px;max-width:420px;width:100%;border:1px solid var(--border)}

/* PDF viewer */
.pdf-stage{background:#525659;border-radius:12px;padding:16px;overflow:auto;max-height:75vh}
.pdf-page{position:relative;margin:0 auto 14px;box-shadow:0 2px 12px rgba(0,0,0,.4);background:#fff}
.pdf-page canvas{display:block}
.field-box{position:absolute;border:2px dashed var(--green);background:rgba(10,143,77,.14);cursor:move;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--green);font-weight:700;touch-action:none;box-sizing:border-box}
.field-box .resize-handle{position:absolute;inset-inline-start:-7px;bottom:-7px;width:16px;height:16px;background:var(--green);border:2px solid #fff;border-radius:4px;cursor:nesw-resize;touch-action:none}
.field-box img{width:100%;height:100%;object-fit:contain;pointer-events:none}

/* signature pad */
.sig-pad{border:2px dashed var(--border);border-radius:12px;background:#fff;touch-action:none;width:100%;height:180px;display:block}
.tabs{display:flex;gap:6px;margin-bottom:10px}
.tabs button{flex:1;padding:8px;border:1px solid var(--border);background:#fbfcfd;border-radius:8px;font-family:inherit;cursor:pointer;font-weight:600;color:var(--muted)}
.tabs button.on{background:var(--green-l);color:var(--green);border-color:var(--green)}

.hidden{display:none!important}
.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.foot{text-align:center;color:var(--muted);font-size:12.5px;padding:26px 0}
