/* AC Technology design system — brand colours sampled from the logo (orange #FF680D on black). */
@font-face { font-family: "Cairo"; font-weight: 400; font-display: swap; src: url("../vendor/fonts/cairo/cairo-arabic-400-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200F, U+060C, U+066A-066C; }
@font-face { font-family: "Cairo"; font-weight: 600; font-display: swap; src: url("../vendor/fonts/cairo/cairo-arabic-600-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200F, U+060C, U+066A-066C; }
@font-face { font-family: "Cairo"; font-weight: 700; font-display: swap; src: url("../vendor/fonts/cairo/cairo-arabic-700-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200F, U+060C, U+066A-066C; }
@font-face { font-family: "Cairo"; font-weight: 800; font-display: swap; src: url("../vendor/fonts/cairo/cairo-arabic-800-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200F, U+060C, U+066A-066C; }
@font-face { font-family: "Cairo"; font-weight: 400; font-display: swap; src: url("../vendor/fonts/cairo/cairo-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cairo"; font-weight: 600; font-display: swap; src: url("../vendor/fonts/cairo/cairo-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cairo"; font-weight: 700; font-display: swap; src: url("../vendor/fonts/cairo/cairo-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cairo"; font-weight: 800; font-display: swap; src: url("../vendor/fonts/cairo/cairo-latin-800-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --ac-orange: #FF680D;
  --ac-orange-dark: #E85A00;
  --ac-orange-soft: #FFF0E4;
  --ac-black: #0A0A0B;
  --ac-surface: #151517;
  --ac-bg: #F4F5F7;
  --ac-radius: 12px;
  --ac-shadow: 0 1px 2px rgba(16,24,40,.05), 0 4px 14px rgba(16,24,40,.05);
  --ac-border: #E5E7EB;
  --ac-text: #111827;
  --ac-muted: #6B7280;
  --ac-success: #16A34A;
  --ac-danger: #DC2626;
  --ac-warning: #F59E0B;
  --bs-primary: var(--ac-orange);
  --bs-link-color: var(--ac-orange-dark); --bs-link-color-rgb: 232, 90, 0; --bs-link-hover-color: var(--ac-orange); --bs-link-hover-color-rgb: 255, 104, 13;
  --bs-primary-rgb: 255, 104, 13;
  --bs-body-bg: var(--ac-bg);
  --bs-body-color: var(--ac-text);
  --bs-border-color: var(--ac-border);
  --bs-link-color: var(--ac-orange-dark);
  --bs-link-hover-color: var(--ac-orange);
  --bs-body-font-size: .92rem;
  --bs-border-radius: .55rem;
  --bs-font-sans-serif: "Cairo", "Segoe UI", Tahoma, system-ui, sans-serif;
}
body { font-family: "Cairo", "Segoe UI", Tahoma, system-ui, -apple-system, sans-serif; background: var(--ac-bg); color: var(--ac-text); line-height: 1.55; -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,.page-title { font-family: "Cairo", "Segoe UI", Tahoma, sans-serif; letter-spacing: 0; }
.btn { --bs-btn-padding-y: .3rem; --bs-btn-padding-x: .75rem; --bs-btn-font-size: .875rem; box-shadow: none !important; }
.btn-primary { --bs-btn-bg: var(--ac-orange); --bs-btn-border-color: var(--ac-orange); --bs-btn-hover-bg: var(--ac-orange-dark); --bs-btn-hover-border-color: var(--ac-orange-dark); --bs-btn-active-bg: var(--ac-orange-dark); --bs-btn-active-border-color: var(--ac-orange-dark); --bs-btn-color:#fff; --bs-btn-hover-color:#fff; --bs-btn-disabled-bg: var(--ac-orange); --bs-btn-disabled-border-color: var(--ac-orange); }
.btn-outline-primary { --bs-btn-color: var(--ac-orange-dark); --bs-btn-border-color: var(--ac-orange); --bs-btn-hover-bg: var(--ac-orange); --bs-btn-hover-border-color: var(--ac-orange); --bs-btn-hover-color:#fff; --bs-btn-active-bg: var(--ac-orange); --bs-btn-active-border-color: var(--ac-orange); }
.form-control, .form-select { font-size: .875rem; padding: .3rem .6rem; }
.form-control:focus, .form-select:focus, .ts-wrapper.focus .ts-control { border-color: var(--ac-orange); box-shadow: 0 0 0 .15rem rgba(255,104,13,.15); }
.form-label { font-size: .8rem; font-weight: 600; margin-bottom: .2rem; color: #374151; }
.form-check-input:checked { background-color: var(--ac-orange); border-color: var(--ac-orange); }
.card { border-color: var(--ac-border); box-shadow: none; }
.card-header { background: #fff; font-weight: 600; padding: .55rem .9rem; }
.table { --bs-table-bg: transparent; font-size: .85rem; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .45rem .6rem; }
.table thead th { background: #F3F4F6; color: #374151; font-weight: 600; white-space: nowrap; border-bottom: 1px solid var(--ac-border); }
.table-responsive { border: 1px solid var(--ac-border); border-radius: var(--bs-border-radius); background: #fff; }
.pagination { --bs-pagination-active-bg: var(--ac-orange); --bs-pagination-active-border-color: var(--ac-orange); --bs-pagination-color: var(--ac-orange-dark); --bs-pagination-font-size: .8rem; }
.nav-tabs .nav-link.active { border-bottom-color: var(--ac-orange); color: var(--ac-text); font-weight: 600; }
.nav-tabs .nav-link { color: var(--ac-muted); font-size: .875rem; padding: .45rem .9rem; }
.badge-soft-success { background:#DCFCE7; color:#166534; } .badge-soft-danger { background:#FEE2E2; color:#991B1B; }
.badge-soft-warning { background:#FEF3C7; color:#92400E; } .badge-soft-muted { background:#F3F4F6; color:#374151; }
.badge-soft-orange { background:#FFEDD5; color:#9A3412; } .badge-soft-info { background:#E0F2FE; color:#075985; }

/* Top navigation */
.ac-topbar { background: var(--ac-black); color: #fff; height: 52px; position: sticky; top: 0; z-index: 1030; }
.ac-topbar .brand { display:flex; align-items:center; gap:.5rem; color:#fff; text-decoration:none; font-weight:800; letter-spacing:.5px; }
.ac-logo { direction:ltr; display:inline-flex; align-items:center; background:#000; border:1px solid #333; border-radius:6px; padding:.1rem .5rem; font-weight:900; font-size:1.05rem; line-height:1.6; }
.ac-logo b { color: var(--ac-orange); } .ac-logo span { color:#fff; font-size:.62rem; letter-spacing:2px; margin-inline-start:.4rem; font-weight:600; }
.ac-topbar .btn-ghost { color:#e5e7eb; background:transparent; border:0; padding:.35rem .55rem; border-radius:6px; }
.ac-topbar .btn-ghost:hover, .ac-topbar .btn-ghost.show { background:#262626; color:#fff; }
.ac-topbar .search { background:#262626; border:1px solid #333; color:#fff; border-radius:6px; font-size:.85rem; }
.ac-topbar .search::placeholder { color:#9ca3af; } .ac-topbar .search:focus { background:#2d2d2d; color:#fff; border-color: var(--ac-orange); }
.ac-topbar .dropdown-menu { font-size:.85rem; }
.ac-modbar { background:#fff; border-bottom:1px solid var(--ac-border); }
.ac-modbar .nav-link { color:#4B5563; font-size:.85rem; padding:.55rem .85rem; border-bottom:2px solid transparent; white-space:nowrap; }
.ac-modbar .nav-link:hover { color: var(--ac-text); }
.ac-modbar .nav-link.active { color: var(--ac-text); border-bottom-color: var(--ac-orange); font-weight:600; }
.ac-modbar .nav { flex-wrap: nowrap; overflow-x:auto; }
.ac-page { padding-top: 1rem; padding-bottom: 2rem; }
.page-title { font-size:1.15rem; font-weight:700; margin:0; }
.empty-state { text-align:center; padding:2.2rem 1rem; color: var(--ac-muted); }
.empty-state i { font-size:2rem; color:#D1D5DB; display:block; margin-bottom:.4rem; }

/* Launcher */
.launcher-hero { background: linear-gradient(135deg,#111 0%,#1C1C1C 60%,#2a1606 100%); color:#fff; border-radius:.6rem; padding:1.4rem 1.6rem; position:relative; overflow:hidden; }
.launcher-hero h1 { font-size:1.4rem; font-weight:800; margin:0 0 .2rem; } .launcher-hero p { margin:0; color:#d1d5db; font-size:.88rem; }
.launcher-hero .hero-icons { position:absolute; inset-inline-end:1.2rem; top:50%; transform:translateY(-50%); color:rgba(255,104,13,.22); font-size:4.6rem; line-height:1; letter-spacing:.6rem; }
.app-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:.75rem; }
.app-card { display:flex; align-items:center; gap:.75rem; padding:.8rem .9rem; background:#fff; border:1px solid var(--ac-border); border-radius:.5rem; text-decoration:none; color:var(--ac-text); transition: border-color .12s, transform .12s; }
a.app-card:hover { border-color: var(--ac-orange); transform: translateY(-1px); color:var(--ac-text); }
.app-card .app-icon { flex:0 0 42px; width:42px; height:42px; border-radius:10px; background:#FFF1E6; color: var(--ac-orange); display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.app-card .app-name { font-weight:700; font-size:.92rem; line-height:1.2; } .app-card .app-desc { font-size:.74rem; color:var(--ac-muted); line-height:1.3; margin-top:.1rem; }
.app-card.disabled { opacity:.55; cursor:not-allowed; } .app-card.disabled .app-icon { background:#F3F4F6; color:#9CA3AF; }
.quick-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.quick-actions .btn { display:inline-flex; align-items:center; gap:.4rem; }
.section-title { font-size:.95rem; font-weight:700; margin:1.2rem 0 .6rem; }


/* Login */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--ac-black); padding:1rem; }
.login-card { width:100%; max-width:380px; background:#fff; border-radius:.6rem; padding:1.6rem; }

/* Tom Select tweaks */
.ts-control { font-size:.875rem; min-height:32px; padding:.2rem .5rem; }

/* Stat tiles */
.stat { background:#fff; border:1px solid var(--ac-border); border-radius:.5rem; padding:.7rem .9rem; }
.stat .v { font-size:1.2rem; font-weight:800; } .stat .l { font-size:.75rem; color:var(--ac-muted); }

@media (max-width: 575.98px) {
  .app-grid { grid-template-columns: repeat(2, 1fr); }
  .app-card { flex-direction:column; align-items:flex-start; gap:.4rem; }
  .launcher-hero .hero-icons { display:none; }
}

/* Numbers (and their minus sign) keep left-to-right order inside right-to-left pages. */
[dir="rtl"] .text-end, [dir="rtl"] .stat .v, [dir="rtl"] .num { unicode-bidi: plaintext; }

/* Pills and other "primary" components follow the black/orange identity instead of Bootstrap's blue. */
.nav-pills { --bs-nav-pills-link-active-bg: var(--ac-orange); --bs-nav-pills-link-active-color: #fff; }
.nav-pills .nav-link { color: var(--ac-orange-dark); }
.nav-pills .nav-link.active { background: var(--ac-orange); color: #fff; }
.form-check-input:checked { background-color: var(--ac-orange); border-color: var(--ac-orange); }
.form-control:focus, .form-select:focus { border-color: var(--ac-orange); box-shadow: 0 0 0 .2rem rgba(255, 104, 13, .18); }

/* ======================================================================= Phase 6 — brand redesign */
.card { border-radius: var(--ac-radius); box-shadow: var(--ac-shadow); border-color: #E8EAEE; }
.card-header { background: #fff; border-bottom-color: #EEF0F3; border-radius: var(--ac-radius) var(--ac-radius) 0 0 !important; font-weight: 700; }
.table-responsive { border-radius: var(--ac-radius); box-shadow: var(--ac-shadow); border-color: #E8EAEE; }
.table thead th { background: #FAFAFB; color: #4B5563; font-size: .78rem; text-transform: none; letter-spacing: 0; border-bottom: 1px solid #E8EAEE; }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: var(--ac-orange-soft); }
.btn { border-radius: 10px; font-weight: 600; }
.btn-primary { box-shadow: 0 2px 8px rgba(255,104,13,.28) !important; }
.btn-outline-secondary { --bs-btn-border-color: #D5D9E0; --bs-btn-color: #374151; --bs-btn-hover-bg: #111; --bs-btn-hover-border-color: #111; --bs-btn-hover-color: #fff; }
.form-control, .form-select { border-radius: 10px; border-color: #D5D9E0; padding: .42rem .75rem; }
.form-label { font-weight: 700; }
.badge { font-weight: 600; border-radius: 999px; padding: .35em .7em; }
.alert { border-radius: 12px; border: 0; }
.page-title { font-size: 1.3rem; font-weight: 800; }
.page-title::after { content: ""; display: block; width: 34px; height: 3px; border-radius: 3px; background: var(--ac-orange); margin-top: .3rem; }
.stat { border-radius: var(--ac-radius); box-shadow: var(--ac-shadow); border-color: #E8EAEE; }
.stat .v { font-size: 1.3rem; }
.dropdown-menu { border-radius: 12px; border-color: #E8EAEE; box-shadow: 0 10px 30px rgba(16,24,40,.14); }
.dropdown-item { border-radius: 8px; }
.dropdown-item:active { background: var(--ac-orange); }
.modal-content { border: 0; border-radius: 16px; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.modal-header { border-bottom-color: #EEF0F3; }

/* Top bar: pure black like the logo, with a thin orange rule */
.ac-topbar { background: var(--ac-black); height: 58px; border-bottom: 2px solid var(--ac-orange); }
.ac-topbar .brand img { height: 38px; width: auto; display: block; }
.ac-topbar .btn-ghost { border-radius: 10px; }
.ac-topbar .btn-ghost:hover, .ac-topbar .btn-ghost.show { background: #1d1d20; }
.ac-topbar .search { background: #151517; border-color: #2a2a2e; border-radius: 10px; }
.ac-topbar .search:focus { background: #1b1b1e; }
.ac-modbar { box-shadow: 0 1px 0 #E8EAEE; }
.ac-modbar .nav-link { font-weight: 600; font-size: .86rem; }
.ac-modbar .nav-link.active { border-bottom-width: 3px; color: var(--ac-orange-dark); }

/* Launcher */
.launcher-hero { background: radial-gradient(900px 300px at 85% -20%, rgba(255,104,13,.30), transparent 60%), linear-gradient(135deg, #0A0A0B 0%, #17171a 100%); border-radius: 20px; padding: 1.8rem 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; box-shadow: 0 12px 32px rgba(10,10,11,.25); }
.launcher-hero::before { content: ""; position: absolute; inset-inline-start: -30px; bottom: -30px; width: 150px; height: 150px; background:
  linear-gradient(#fff 0 0) 0 0/22px 22px no-repeat, linear-gradient(#fff 0 0) 36px 14px/12px 12px no-repeat, linear-gradient(#fff 0 0) 60px 0/10px 10px no-repeat, linear-gradient(#fff 0 0) 14px 44px/14px 14px no-repeat; opacity: .06; }
.launcher-hero h1 { font-size: 1.7rem; font-weight: 800; }
.launcher-hero h1 b { color: var(--ac-orange); }
.launcher-hero p { color: #b8bcc6; font-size: .95rem; }
.launcher-hero .hero-meta { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .9rem; }
.launcher-hero .hero-chip { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); color: #e5e7eb; border-radius: 999px; padding: .2rem .8rem; font-size: .78rem; }
.launcher-hero .hero-logo { height: 120px; width: auto; flex: 0 0 auto; filter: drop-shadow(0 8px 20px rgba(255,104,13,.25)); }
.kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .8rem; margin: 1rem 0 .2rem; }
.kpi { display: flex; align-items: center; gap: .8rem; background: #fff; border: 1px solid #E8EAEE; border-radius: 14px; padding: .85rem 1rem; box-shadow: var(--ac-shadow); text-decoration: none; color: var(--ac-text); }
a.kpi:hover { border-color: var(--ac-orange); color: var(--ac-text); }
.kpi .ico { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-size: 1.2rem; background: var(--ac-orange-soft); color: var(--ac-orange-dark); flex: 0 0 42px; }
.kpi .ico.dark { background: #111; color: var(--ac-orange); } .kpi .ico.warn { background: #FEF3C7; color: #B45309; } .kpi .ico.ok { background: #DCFCE7; color: #15803D; }
.kpi .v { font-weight: 800; font-size: 1.25rem; line-height: 1.15; } .kpi .l { color: var(--ac-muted); font-size: .76rem; }
.app-section { margin-top: 1.4rem; }
.app-section > h2 { font-size: .8rem; font-weight: 800; text-transform: none; color: #6B7280; margin: 0 0 .6rem; display: flex; align-items: center; gap: .5rem; }
.app-section > h2::after { content: ""; flex: 1; height: 1px; background: #E3E6EB; }
.app-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .85rem; }
.app-card { border-radius: 16px; padding: 1rem 1.05rem; box-shadow: var(--ac-shadow); border-color: #E8EAEE; position: relative; overflow: hidden; }
a.app-card:hover { border-color: var(--ac-orange); transform: translateY(-3px); box-shadow: 0 10px 26px rgba(255,104,13,.16); }
a.app-card::after { content: "\F138"; font-family: "bootstrap-icons"; position: absolute; inset-inline-end: .9rem; top: .9rem; color: #C7CBD3; font-size: .8rem; transition: color .15s; }
[dir="rtl"] a.app-card::after { content: "\F12F"; }
a.app-card:hover::after { color: var(--ac-orange); }
.app-card .app-icon { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 14px; background: #111; color: var(--ac-orange); font-size: 1.5rem; transition: background .15s, color .15s; }
a.app-card:hover .app-icon { background: var(--ac-orange); color: #fff; }
.app-card .app-name { font-size: 1rem; font-weight: 800; } .app-card .app-desc { font-size: .78rem; }
.quick-actions .btn { border-radius: 999px; padding: .4rem 1rem; }

/* Login */
.login-split { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; background: var(--ac-black); }
.login-brand { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem; color: #fff; background: radial-gradient(700px 420px at 30% 20%, rgba(255,104,13,.28), transparent 65%), #0A0A0B; overflow: hidden; }
.login-brand img { width: min(360px, 70%); height: auto; }
.login-brand h2 { font-size: 1.5rem; font-weight: 800; margin-top: 1.4rem; } .login-brand p { color: #a3a8b3; max-width: 360px; margin: .4rem auto 0; }
.login-brand .pix { position: absolute; inset-inline-start: 6%; top: 8%; width: 70px; height: 70px; background: linear-gradient(#fff 0 0) 0 0/26px 26px no-repeat, linear-gradient(#fff 0 0) 34px 8px/12px 12px no-repeat, linear-gradient(#fff 0 0) 52px 0/9px 9px no-repeat, linear-gradient(#fff 0 0) 8px 36px/14px 14px no-repeat; opacity: .1; }
.login-form-side { display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: #fff; }
.login-form-side .box { width: 100%; max-width: 380px; }
.login-form-side h1 { font-size: 1.5rem; font-weight: 800; margin-bottom: .2rem; } .login-form-side .sub { color: var(--ac-muted); margin-bottom: 1.2rem; }
.login-form-side .btn-primary { padding: .6rem; font-size: 1rem; }
@media (max-width: 860px) { .login-split { grid-template-columns: 1fr; } .login-brand { padding: 1.6rem 1rem; } .login-brand img { width: 150px; } .login-brand h2, .login-brand p { display: none; } .login-form-side { border-radius: 22px 22px 0 0; margin-top: -10px; } }

@media (max-width: 575.98px) {
  .launcher-hero { padding: 1.2rem; flex-direction: column-reverse; align-items: flex-start; }
  .launcher-hero .hero-logo { height: 64px; } .launcher-hero h1 { font-size: 1.3rem; }
  .app-grid { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
  .app-card { padding: .8rem; } .app-card .app-icon { width: 44px; height: 44px; flex-basis: 44px; font-size: 1.25rem; }
  a.app-card::after { display: none; }
}

.shift-open { max-width: 440px; margin: 2rem auto 0; }
.shift-open .page-title::after { margin-inline: auto; }
.shift-open-art { width: 96px; height: 96px; margin: 0 auto 1rem; border-radius: 24px; background: #0A0A0B; display: grid; place-items: center; box-shadow: 0 12px 28px rgba(10,10,11,.25); position: relative; }
.shift-open-art img { height: 60px; } .shift-open-art i { position: absolute; inset-inline-end: -8px; bottom: -8px; width: 34px; height: 34px; border-radius: 50%; background: var(--ac-orange); color: #fff; display: grid; place-items: center; border: 3px solid var(--ac-bg); }
/* Links inside tables read as text; orange on hover (keeps rows calm) */
.table a:not(.btn):not(.badge) { color: var(--ac-text); font-weight: 600; text-decoration: none; }
.table a:not(.btn):not(.badge):hover { color: var(--ac-orange-dark); }
