/* MGIoT Professional Dashboard UI/UX layer
   Practical, clean, RTL-first. Backend/data logic untouched. */

:root{
  --sidebar-width:260px;
  --mg-primary:var(--primary,#174a92);
  --mg-primary-2:var(--accent,#f28c28);
  --mg-success:#16a34a;
  --mg-warning:#f59e0b;
  --mg-danger:#dc2626;
  --mg-bg:#f5f7fb;
  --mg-surface:#ffffff;
  --mg-surface-2:#f8fafc;
  --mg-border:#e6eaf0;
  --mg-border-2:#d9e0ea;
  --mg-text:#172033;
  --mg-muted:#667085;
  --mg-soft:#eef2f7;
  --mg-radius:14px;
  --mg-radius-sm:10px;
  --mg-shadow:0 10px 30px rgba(16,24,40,.06);
  --mg-shadow-sm:0 4px 16px rgba(16,24,40,.05);
  --mg-ring:0 0 0 3px rgba(23,74,146,.12);
}

*{box-sizing:border-box}
html,body{min-height:100%;direction:rtl;background:var(--mg-bg)!important;color:var(--mg-text);font-family:Tahoma,Arial,sans-serif!important}
body{margin:0;overflow-x:hidden;font-size:14px;line-height:1.6}
button,input,select,textarea{font-family:inherit}
a{text-decoration:none;color:inherit}

/* Auth split */
.login-page:not(.active),.app-page:not(.active){display:none!important}
.login-page.active{display:flex!important;min-height:100vh;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#f8fafc 0%,#eef3f9 100%)!important}
.app-page.active{display:block!important;min-height:100vh;background:var(--mg-bg)}
body.mgiot-authenticated .login-page{display:none!important}
body.mgiot-guest .app-page{display:none!important}

/* Login */
.login-card{width:min(420px,100%);background:var(--mg-surface)!important;border:1px solid var(--mg-border)!important;border-radius:22px!important;box-shadow:0 22px 60px rgba(16,24,40,.10)!important;padding:34px 30px!important;text-align:center;position:relative;overflow:hidden}
.login-card:before{content:"";position:absolute;top:0;inset-inline:0;height:4px;background:linear-gradient(90deg,var(--mg-primary),var(--mg-primary-2))}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}
.brand-mark{width:88px;height:auto;object-fit:contain}.brand-title,.brand-title-ar{font-size:24px!important;line-height:1.35;margin:0;color:var(--mg-primary)!important;font-weight:800!important}
.login-card input{height:46px;width:100%;border:1px solid var(--mg-border)!important;border-radius:12px!important;background:#fff!important;color:var(--mg-text)!important;padding:0 14px!important;margin:0 0 12px!important;box-shadow:none!important;outline:none;text-align:right;direction:rtl}
.login-card input[dir="ltr"]{direction:ltr;text-align:left}
.login-card input:focus{border-color:var(--mg-primary)!important;box-shadow:var(--mg-ring)!important}
.login-card>button:not(.lang-toggle-header button),.login-card button[onclick="doLogin()"]{height:46px;border:0!important;border-radius:12px!important;background:var(--mg-primary)!important;color:#fff!important;font-weight:800;cursor:pointer;box-shadow:var(--mg-shadow-sm)}
.login-error{min-height:22px;color:var(--mg-danger);font-weight:700;margin:12px 0 0}
.lang-toggle-header{display:flex!important;gap:6px;justify-content:center;margin:0 0 18px!important;background:var(--mg-surface-2);border:1px solid var(--mg-border);padding:4px;border-radius:999px;width:max-content;margin-inline:auto!important}
.lang-toggle-header button{width:auto!important;height:32px!important;padding:0 12px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--mg-muted)!important;font-weight:700;box-shadow:none!important}
.lang-toggle-header button:hover{background:#fff!important;color:var(--mg-primary)!important}

/* Layout */
.app-page.active>.sidebar,.sidebar{position:fixed!important;top:0!important;right:0!important;left:auto!important;width:var(--sidebar-width)!important;height:100vh!important;background:#fff!important;border-left:1px solid var(--mg-border)!important;border-right:0!important;z-index:40!important;overflow-y:auto!important;overflow-x:hidden!important;box-shadow:0 10px 30px rgba(16,24,40,.06);transform:none!important}
.app-page.active>.main,.main{min-height:100vh!important;width:calc(100% - var(--sidebar-width))!important;margin-right:var(--sidebar-width)!important;margin-left:0!important;padding:0!important;background:var(--mg-bg)!important;overflow-x:hidden!important}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:90;backdrop-filter:blur(1px)}

/* Sidebar */
.sidebar-header{padding:22px 18px 16px!important;border-bottom:1px solid var(--mg-border)!important;text-align:center;background:#fff}
.sidebar-logo-box{width:76px;height:58px;border-radius:16px;background:var(--mg-surface-2);border:1px solid var(--mg-border);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;overflow:hidden}
.sidebar-logo-box img{max-width:66px;max-height:48px;object-fit:contain}.sidebar-header h2{margin:0;color:var(--mg-primary);font-size:19px;font-weight:900}.sidebar-header p{margin:4px 0 0;color:var(--mg-muted);font-size:12px}
.sidebar-nav{padding:14px 12px 92px!important}.nav-section{margin-bottom:10px}.nav-section-hdr{height:38px;display:flex!important;align-items:center;gap:8px;padding:0 10px;border-radius:11px;color:#334155;font-size:12px;font-weight:900;cursor:pointer;background:#f8fafc;border:1px solid transparent}.nav-section-hdr:hover{border-color:var(--mg-border);background:#fff}.section-arrow{font-size:10px;color:var(--mg-muted);transition:.2s}.nav-section.collapsed .section-arrow{transform:rotate(90deg)}.section-label{flex:1;text-align:right}.nav-section-body{display:block;padding-top:6px}.nav-section.collapsed .nav-section-body{display:none!important}
.nav-item{min-height:42px;display:flex!important;align-items:center;gap:10px;padding:9px 11px!important;margin:2px 0;border-radius:12px;color:#475569;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease;border:1px solid transparent;position:relative}.nav-item:hover{background:#f8fafc;color:var(--mg-primary);border-color:var(--mg-border)}.nav-item.active{background:rgba(23,74,146,.08)!important;color:var(--mg-primary)!important;border-color:rgba(23,74,146,.12)!important}.nav-item.active:before{content:"";position:absolute;right:0;top:10px;bottom:10px;width:3px;border-radius:4px;background:var(--mg-primary)}.nav-item .icon{width:23px;text-align:center;display:inline-flex;justify-content:center;filter:saturate(.9)}.nav-text{flex:1;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-footer{position:fixed;right:0;bottom:0;width:var(--sidebar-width);background:#fff;border-left:1px solid var(--mg-border);border-top:1px solid var(--mg-border);padding:12px;z-index:45}.footer-brand{display:flex;align-items:center;gap:10px}.footer-logo{width:38px;height:30px;object-fit:contain}.footer-meta{flex:1;min-width:0}.footer-role,.footer-copy{display:block;font-size:11px;color:var(--mg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer-logout{width:36px;height:36px;border-radius:10px;border:1px solid var(--mg-border);background:#fff;color:var(--mg-danger);display:grid;place-items:center;cursor:pointer}

/* Main header */
.main-header{position:sticky;top:0;z-index:30;min-height:74px;background:rgba(245,247,251,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--mg-border);padding:15px 24px!important;display:flex!important;align-items:center;gap:14px}.main-header h1,.main-header #viewTitle{margin:0;font-size:24px;font-weight:900;color:var(--mg-text);line-height:1.25}.main-header p,.main-header #viewDesc{margin:4px 0 0;color:var(--mg-muted);font-size:13px}.sidebar-toggle{display:none!important;width:42px;height:42px;border:1px solid var(--mg-border)!important;border-radius:12px;background:#fff!important;color:var(--mg-primary)!important;box-shadow:var(--mg-shadow-sm);align-items:center;justify-content:center}.wh-switcher,#whSwitcher{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.wh-btn{height:36px;display:inline-flex;align-items:center;padding:0 13px;border:1px solid var(--mg-border);border-radius:999px;background:#fff;color:var(--mg-muted);font-weight:800;font-size:12px;cursor:pointer}.wh-btn.active{background:var(--mg-primary);color:#fff;border-color:var(--mg-primary)}

/* Views */
.view{display:none;padding:24px!important}.view.active{display:block}.mg-page{display:flex;flex-direction:column;gap:18px}.mg-loading,.loading{background:#fff;border:1px solid var(--mg-border);border-radius:var(--mg-radius);padding:28px;text-align:center;color:var(--mg-muted);box-shadow:var(--mg-shadow-sm)}

/* Cards and stats */
.card,.mg-card,.panel,.box,.section-card{background:#fff!important;border:1px solid var(--mg-border)!important;border-radius:var(--mg-radius)!important;box-shadow:var(--mg-shadow-sm)!important;padding:18px!important}.mg-card-head,.card-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.mg-card-title,.card-title{font-size:16px;font-weight:900;color:var(--mg-text);margin:0}.mg-card-subtitle{font-size:12px;color:var(--mg-muted)}
.mg-stat-grid,.stats-grid,.dashboard-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important;margin-bottom:2px}.mg-stat,.stat-card{background:#fff!important;border:1px solid var(--mg-border)!important;border-radius:16px!important;padding:18px!important;box-shadow:var(--mg-shadow-sm)!important;min-height:104px;position:relative;overflow:hidden}.mg-stat:before,.stat-card:before{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:var(--mg-primary)}.mg-stat--success:before{background:var(--mg-success)}.mg-stat--warn:before{background:var(--mg-warning)}.mg-stat--danger:before{background:var(--mg-danger)}.mg-stat--info:before{background:#0284c7}.mg-stat-value,.stat-value{font-size:27px!important;font-weight:900!important;color:var(--mg-text);letter-spacing:-.5px;line-height:1.15}.mg-stat-label,.stat-label{font-size:13px!important;color:var(--mg-muted)!important;font-weight:800;margin-top:7px}

/* Toolbars */
.mg-toolbar,.toolbar,.filters,.filter-bar{background:#fff;border:1px solid var(--mg-border);border-radius:var(--mg-radius);box-shadow:var(--mg-shadow-sm);padding:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.mg-toolbar>*{margin:0!important}.spacer{flex:1}

/* Forms */
input,select,textarea{border:1px solid var(--mg-border)!important;border-radius:11px!important;background:#fff!important;color:var(--mg-text)!important;min-height:40px;padding:9px 12px!important;font-size:13px;outline:none;box-shadow:none!important;text-align:right;direction:rtl}input[type="number"],input[type="email"],input[type="tel"],input[dir="ltr"]{direction:ltr;text-align:left}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--mg-primary)!important;box-shadow:var(--mg-ring)!important}label{font-size:12px;font-weight:900;color:#344054;margin-bottom:6px;display:block}.form-row,.mg-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-group,.mg-form-group{display:flex;flex-direction:column;gap:6px}.modal-card input,.modal-card select,.modal-card textarea{width:100%}

/* Buttons */
button,.btn,.mg-btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:11px!important;border:1px solid var(--mg-border)!important;background:#fff!important;color:var(--mg-text)!important;padding:8px 13px!important;font-weight:900!important;font-size:13px!important;line-height:1.2;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease,border-color .12s ease;text-decoration:none!important;box-shadow:none!important}button:hover,.btn:hover,.mg-btn:hover{transform:translateY(-1px);box-shadow:var(--mg-shadow-sm)!important;border-color:var(--mg-border-2)!important}.btn-primary,.mg-btn-primary,button.primary,.primary-btn{background:var(--mg-primary)!important;border-color:var(--mg-primary)!important;color:#fff!important}.btn-success,.mg-btn-success{background:var(--mg-success)!important;border-color:var(--mg-success)!important;color:#fff!important}.btn-danger,.mg-btn-danger,.danger{background:#fff!important;border-color:#fecaca!important;color:var(--mg-danger)!important}.btn-warning,.mg-btn-warning{background:#fff7ed!important;border-color:#fed7aa!important;color:#c2410c!important}.icon-btn,.action-btn{width:36px!important;height:36px!important;padding:0!important;border-radius:10px!important}.btn-sm,.mg-btn-sm{min-height:32px!important;padding:6px 10px!important;font-size:12px!important}

/* Tables */
.table-wrap,.mg-table-wrap,.table-container{width:100%;overflow:auto;background:#fff;border:1px solid var(--mg-border);border-radius:var(--mg-radius);box-shadow:var(--mg-shadow-sm)}table,.mg-table{width:100%;border-collapse:separate!important;border-spacing:0!important;background:#fff!important;min-width:760px}thead th,table th,.mg-table th{position:sticky;top:0;z-index:1;background:#f8fafc!important;color:#475467!important;font-size:12px!important;font-weight:900!important;text-align:right!important;padding:13px 14px!important;border-bottom:1px solid var(--mg-border)!important;white-space:nowrap}tbody td,table td,.mg-table td{padding:13px 14px!important;border-bottom:1px solid #eef2f6!important;color:var(--mg-text)!important;vertical-align:middle!important;font-size:13px!important;text-align:right!important}tbody tr:hover{background:#fbfdff!important}tbody tr:last-child td{border-bottom:0!important}.mg-cell-strong{font-weight:900;color:var(--mg-text)}.mg-cell-mid,.muted{color:var(--mg-muted)!important;font-size:12px}.mg-table-actions{display:flex;align-items:center;gap:6px;justify-content:flex-start;flex-wrap:wrap}

/* Badges */
.badge,.mg-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:11px!important;font-weight:900!important;border:1px solid var(--mg-border);background:#f8fafc;color:#475569;white-space:nowrap}.mg-badge--success,.badge-success{background:#ecfdf3!important;border-color:#bbf7d0!important;color:#15803d!important}.mg-badge--warn,.badge-warning{background:#fffbeb!important;border-color:#fde68a!important;color:#b45309!important}.mg-badge--danger,.badge-danger{background:#fef2f2!important;border-color:#fecaca!important;color:#b91c1c!important}.mg-badge--info,.badge-info{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important}

/* Modals */
.modal-bg{position:fixed!important;inset:0!important;background:rgba(15,23,42,.45)!important;z-index:200!important;display:none!important;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(2px)}.modal-bg.show{display:flex!important}.modal-card{background:#fff!important;border:1px solid var(--mg-border)!important;border-radius:20px!important;box-shadow:0 30px 90px rgba(15,23,42,.22)!important;padding:22px!important;width:min(100%,var(--modal-w,560px));max-height:calc(100vh - 36px);overflow:auto;text-align:right}.modal-card h2,.modal-card h3{margin:0 0 16px!important;color:var(--mg-text);font-weight:900}.modal-actions,.modal-footer{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--mg-border)}.modal-close{position:absolute;top:12px;left:12px}

/* Empty states */
.empty,.mg-empty{background:#fff;border:1px dashed var(--mg-border-2);border-radius:var(--mg-radius);padding:34px 18px;text-align:center;color:var(--mg-muted);font-weight:700}.empty:before,.mg-empty:before{content:"";display:block;width:42px;height:42px;border-radius:50%;background:var(--mg-surface-2);margin:0 auto 12px}

/* Active customer cards if used */
.customer-card,.active-customer-card{background:#fff;border:1px solid var(--mg-border);border-radius:var(--mg-radius);box-shadow:var(--mg-shadow-sm);padding:16px;margin-bottom:14px}.customer-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--mg-border);padding-bottom:12px;margin-bottom:12px}.customer-card-title{font-weight:900;font-size:16px;color:var(--mg-text)}

/* Toasts if present */
.toast,.mg-toast{border-radius:12px!important;border:1px solid var(--mg-border)!important;box-shadow:var(--mg-shadow)!important;background:#fff!important;color:var(--mg-text)!important}

/* Responsive */
@media (max-width:1180px){.mg-stat-grid,.stats-grid,.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.view{padding:20px!important}.main-header{padding:14px 20px!important}}
@media (max-width:768px){
  :root{--sidebar-width:280px}
  .app-page.active>.sidebar,.sidebar{z-index:100!important;transform:translateX(105%)!important;box-shadow:-20px 0 60px rgba(15,23,42,.20)!important}
  body.sidebar-open .app-page.active>.sidebar,body.sidebar-open .sidebar{transform:translateX(0)!important}
  body.sidebar-open .sidebar-backdrop{display:block!important}
  .app-page.active>.main,.main{width:100%!important;margin-right:0!important}
  .sidebar-footer{width:var(--sidebar-width)}
  .sidebar-toggle{display:inline-flex!important;flex:0 0 auto}
  .main-header{min-height:66px;padding:12px 14px!important}.main-header h1,.main-header #viewTitle{font-size:20px}.main-header p,.main-header #viewDesc{font-size:12px}.view{padding:14px!important}.mg-stat-grid,.stats-grid,.dashboard-stats{grid-template-columns:1fr!important;gap:10px!important}.mg-stat,.stat-card{min-height:auto;padding:15px!important}.mg-stat-value,.stat-value{font-size:23px!important}.mg-toolbar,.toolbar,.filters,.filter-bar{padding:12px;gap:8px}.mg-toolbar input,.mg-toolbar select,.toolbar input,.toolbar select,.filters input,.filters select{width:100%}.form-row,.mg-form-row{grid-template-columns:1fr}.modal-card{border-radius:16px!important;padding:18px!important}.modal-actions,.modal-footer{flex-direction:column-reverse;align-items:stretch}.modal-actions button,.modal-footer button{width:100%}table,.mg-table{min-width:720px}.login-card{padding:28px 22px!important}
}
@media (max-width:480px){.main-header{align-items:flex-start}.main-header-titles{min-width:0}.wh-switcher,#whSwitcher{width:100%}.wh-btn{height:34px}.view{padding:12px!important}.card,.mg-card,.panel,.box,.section-card{padding:14px!important}.table-wrap,.mg-table-wrap,.table-container{border-radius:12px}}

/* Print */
@media print{.sidebar,.main-header,.sidebar-backdrop,.no-print{display:none!important}.main{margin:0!important;width:100%!important}.view{padding:0!important}.card,.mg-card,.table-wrap,.mg-table-wrap{box-shadow:none!important}}
