/* Ajustements NotaPro par-dessus le thème Vuexy (core.css) */
:root { --np-font: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans Arabic", "Segoe UI Arabic", Tahoma, sans-serif; }
body, .btn, .form-control, .form-select, .table, .menu, .navbar { font-family: var(--np-font); }
html[dir="rtl"] body { font-family: "Segoe UI Arabic", "Segoe UI", Tahoma, "Noto Sans Arabic", system-ui, sans-serif; }
.num, .money { font-variant-numeric: tabular-nums; }
span.num, span.money, a.num, strong.num, small.num { unicode-bidi: isolate; direction: ltr; display: inline-block; white-space: nowrap; }
td.num, td.money, th.money { unicode-bidi: plaintext; }
.nav-pills .nav-link, .nav-tabs .nav-link { text-transform: none; }
.table .text-money { text-align: end; white-space: nowrap; }
.card-header .card-title { margin-bottom: 0; }
.status-dot { width: .6rem; height: .6rem; border-radius: 50%; display: inline-block; margin-inline-end: .4rem; }
.step-list { list-style: none; margin: 0; padding: 0; }
.step-item { position: relative; display: flex; gap: 1rem; padding-bottom: 1.25rem; }
.step-item:not(:last-child)::before { content: ""; position: absolute; inset-inline-start: 1.05rem; top: 2.2rem; bottom: 0; width: 2px; background: var(--bs-border-color); }
.step-badge { flex: 0 0 2.1rem; height: 2.1rem; border-radius: 50%; display: grid; place-items: center; font-weight: 600; background: var(--bs-secondary-bg); color: var(--bs-body-color); z-index: 1; }
.step-item.done .step-badge { background: var(--bs-success); color: #fff; }
.step-item.current .step-badge { background: var(--bs-primary); color: #fff; box-shadow: 0 0 0 .3rem var(--bs-primary-bg-subtle); }
.step-item.blocked .step-badge { background: var(--bs-danger); color: #fff; }
.step-item.skipped .step-badge { opacity: .5; }
.step-body { flex: 1; min-width: 0; }
.board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 1rem; overflow-x: auto; padding-bottom: .5rem; }
.board-col { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .75rem; min-height: 10rem; }
.board-card { background: var(--bs-paper-bg, #fff); border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .65rem .75rem; margin-top: .6rem; }
.perm-table td, .perm-table th { vertical-align: middle; }
.kpi-icon { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border-radius: .5rem; }
.row-actions { white-space: nowrap; }
.form-hint { font-size: .8rem; color: var(--bs-secondary-color); }
.login-lang { position: absolute; top: 1rem; inset-inline-end: 1rem; z-index: 5; }
@media print { .layout-menu, .layout-navbar, .content-footer, .no-print { display: none !important; } .layout-page { padding: 0 !important; } }
.agenda-week { display: grid; grid-template-columns: repeat(7, minmax(150px, 1fr)); gap: .75rem; overflow-x: auto; }
.agenda-day { background: var(--bs-paper-bg, #fff); border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .6rem; min-height: 12rem; }
.agenda-day.is-today { border-color: var(--bs-primary); box-shadow: 0 0 0 1px var(--bs-primary); }
.agenda-day-head { border-bottom: 1px solid var(--bs-border-color); padding-bottom: .4rem; margin-bottom: .4rem; font-size: .9rem; }
.agenda-item { padding: .4rem .5rem; margin-bottom: .5rem; background: var(--bs-body-bg); border-radius: .35rem; font-size: .88rem; }
.btn-xs { --bs-btn-padding-y: .1rem; --bs-btn-padding-x: .4rem; --bs-btn-font-size: .75rem; }
@media (max-width: 991px) { .agenda-week { grid-template-columns: 1fr; } }

/* --- v1.3 : logo, fonctionnalités, paramètres --- */
.np-brand-logo { max-height: 34px; max-width: 46px; object-fit: contain; }
.brand-preview { min-height: 120px; border: 1px dashed var(--bs-border-color); border-radius: .5rem; display: flex; align-items: center; justify-content: center; padding: 12px;
  background: repeating-conic-gradient(rgba(127,127,127,.08) 0 25%, transparent 0 50%) 0 0/16px 16px; }
.brand-preview img { max-height: 140px; max-width: 100%; object-fit: contain; }
.feature-card { cursor: pointer; transition: box-shadow .15s, border-color .15s; border: 1px solid transparent; }
.feature-card.is-on { border-color: rgba(var(--bs-primary-rgb), .35); }
.feature-card:hover { box-shadow: var(--bs-box-shadow); }
.menu-header .menu-header-text { letter-spacing: .06em; }

/* --- documents --- */
.np-dropzone { border: 2px dashed var(--bs-border-color); border-radius: .75rem; padding: 26px 16px; text-align: center; cursor: pointer;
  transition: border-color .15s, background-color .15s; }
.np-dropzone:hover, .np-dropzone:focus, .np-dropzone.is-over { border-color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .05); outline: none; }
.np-thumb { width: 48px; height: 48px; border-radius: .375rem; object-fit: cover; border: 1px solid var(--bs-border-color); display: inline-flex;
  align-items: center; justify-content: center; background: var(--bs-body-bg); }
.np-thumb-icon i { font-size: 26px; color: var(--bs-secondary-color); }
.np-thumb-icon.is-pdf i { color: #e5484d; }
.np-preview-body { min-height: 70vh; background: #525659; display: flex; align-items: center; justify-content: center; }
.np-preview-frame { width: 100%; height: 78vh; border: 0; background: #fff; }
.np-preview-img { max-width: 100%; max-height: 78vh; object-fit: contain; }
.np-camera { position: relative; background: #111; border-radius: .5rem; overflow: hidden; aspect-ratio: 4 / 3; }
.np-camera video { width: 100%; height: 100%; object-fit: contain; display: block; }
.np-camera-frame { position: absolute; inset: 6% 10%; border: 2px dashed rgba(255,255,255,.55); border-radius: .5rem; pointer-events: none; }
.np-camera-msg { position: absolute; inset: auto 12px 12px 12px; background: rgba(0,0,0,.72); color: #fff; padding: 10px 12px; border-radius: .375rem; font-size: .875rem; }
.np-camera.flash::after { content: ""; position: absolute; inset: 0; background: #fff; opacity: .7; }
.np-pages { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; max-height: 46vh; overflow: auto; padding: 2px; }
.np-page { position: relative; border: 1px solid var(--bs-border-color); border-radius: .375rem; overflow: hidden; background: var(--bs-body-bg); }
.np-page img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }
.np-page-n { position: absolute; top: 4px; inset-inline-start: 4px; background: var(--bs-primary); color: #fff; border-radius: 10px; font-size: 11px; padding: 0 7px; }
.np-page-bar { display: flex; justify-content: space-between; padding: 4px; gap: 2px; }
.np-qr svg { width: 240px; height: 240px; border-radius: .5rem; border: 1px solid var(--bs-border-color); }

/* --- agenda (calendrier) --- */
.np-agenda .np-cal-title { text-transform: capitalize; }
.np-calendar .fc .fc-daygrid-day.fc-day-today, .np-calendar .fc .fc-timegrid-col.fc-day-today { background: rgba(var(--bs-primary-rgb), .06); }
.np-calendar .fc-event { cursor: pointer; border: 0; padding: 1px 4px; }
.np-calendar .fc-event.np-ev-fait { opacity: .6; }
.np-calendar .fc-event.np-ev-annule { opacity: .45; text-decoration: line-through; }
.np-calendar .fc-timegrid-slot { height: 1.9em; }
.np-calendar .fc-col-header-cell-cushion, .np-calendar .fc-list-day-text, .np-calendar .fc-list-day-side-text { text-transform: capitalize; }
.np-view-switch .btn { min-width: 76px; }
.np-year { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.np-ym { border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: 10px 12px; }
.np-ym-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.np-ym-head .btn-link { text-transform: capitalize; color: var(--bs-heading-color); text-decoration: none; }
.np-yg { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; }
.np-yh { font-size: 11px; color: var(--bs-secondary-color); }
.np-yd { font-size: 12px; border: 0; border-radius: 6px; padding: 4px 0; background: transparent; color: var(--bs-body-color); }
.np-yd.empty { visibility: hidden; }
.np-yd:hover { outline: 1px solid var(--bs-primary); }
.np-yd.lvl1 { background: rgba(var(--bs-primary-rgb), .16); }
.np-yd.lvl2 { background: rgba(var(--bs-primary-rgb), .38); }
.np-yd.lvl3 { background: var(--bs-primary); color: #fff; }
.np-yd.today { box-shadow: inset 0 0 0 2px var(--bs-warning); font-weight: 700; }
.np-ev-details li { padding: 4px 0; }
.np-toast { position: fixed; bottom: 20px; inset-inline-end: 20px; z-index: 2000; min-width: 260px; }

/* --- notifications --- */
.np-notif-count { position: absolute; top: -8px; inset-inline-end: -9px; font-size: 10px; min-width: 18px; padding: 3px 5px; }
.np-notif-menu { width: 380px; max-width: 95vw; }
.np-notif-menu [data-notif-list] { max-height: 380px; overflow-y: auto; }
.np-notif-item { display: flex; gap: 12px; text-decoration: none; color: inherit; }
.np-notif-item.unread { background: rgba(var(--bs-primary-rgb), .05); }
.np-notif-item .np-notif-text { font-size: .875rem; line-height: 1.35; }
#np-notif > .nav-link { overflow: visible; }
#np-notif .np-notif-count { top: -10px; inset-inline-end: -12px; }

/* onglets du cabinet : volets dans le <form> (pas enfants directs de .tab-content) */
.np-settings-tabs .tab-pane:not(.active) { display: none; }
