/* assets/css/main.css - Forsan ERP Unified Theme */
:root {
    color-scheme: dark;
    --page-bg: #0f172a;
    --page-bg-secondary: #1e293b;
    --bg-gradient: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    --surface-bg: #172033;
    --surface-bg-2: #1e293b;
    --surface-hover: rgba(255,255,255,.045);
    --glass-bg: rgba(255,255,255,.035);
    --glass-bg-strong: rgba(15,23,42,.88);
    --glass-border: rgba(255,255,255,.09);
    --glass-shadow: rgba(0,0,0,.34);
    --text-primary: #f8fafc;
    --text-secondary: #e4c76a;
    --text-muted: #d8bd67;
    --input-bg: rgba(255,255,255,.045);
    --input-hover-bg: rgba(255,255,255,.065);
    --input-border: rgba(255,255,255,.11);
    --table-head-bg: rgba(255,255,255,.035);
    --table-row-hover: rgba(59,130,246,.07);
    --modal-backdrop: rgba(2,6,23,.72);
    --accent-color: #d4af37;
    --accent-hover: #f0cf67;
    --accent-soft: rgba(59,130,246,.14);
    --success: #10b981;
    --success-soft: rgba(16,185,129,.14);
    --warning: #f59e0b;
    --warning-soft: rgba(245,158,11,.14);
    --danger: #ef4444;
    --danger-soft: rgba(239,68,68,.14);
    --info: #06b6d4;
    --info-soft: rgba(6,182,212,.14);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --focus-ring: 0 0 0 3px rgba(59,130,246,.18);

    --sidebar-bg: rgba(15,23,42,.96);
    --sidebar-border: rgba(255,255,255,.08);
    --sidebar-shadow: rgba(0,0,0,.30);
    --sidebar-text: #e4c76a;
    --sidebar-text-strong: #f8fafc;
    --sidebar-text-muted: #d8bd67;
    --sidebar-item-bg: rgba(255,255,255,.025);
    --sidebar-item-border: rgba(255,255,255,.07);
    --sidebar-item-open-bg: rgba(255,255,255,.045);
    --sidebar-item-open-border: rgba(59,130,246,.18);
    --sidebar-hover-bg: rgba(59,130,246,.13);
    --sidebar-user-bg: rgba(255,255,255,.045);
    --sidebar-divider: rgba(255,255,255,.08);
    --sidebar-active-bg: linear-gradient(135deg,#d4af37,#b88b16);
    --sidebar-active-shadow: 0 8px 22px rgba(37,99,235,.24);
    --sidebar-scroll-thumb: rgba(255,255,255,.22);
    --sidebar-scroll-thumb-hover: rgba(255,255,255,.36);
    --danger-soft-bg: rgba(239,68,68,.12);
}

[data-theme="light"] {
    color-scheme: light;
    --page-bg: #f1f5f9;
    --page-bg-secondary: #e2e8f0;
    --bg-gradient: linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);
    --surface-bg: #ffffff;
    --surface-bg-2: #f8fafc;
    --surface-hover: rgba(15,23,42,.035);
    --glass-bg: rgba(255,255,255,.78);
    --glass-bg-strong: rgba(255,255,255,.94);
    --glass-border: rgba(15,23,42,.10);
    --glass-shadow: rgba(15,23,42,.09);
    --text-primary: #172033;
    --text-secondary: #324a68;
    --text-muted: #64748b;
    --input-bg: rgba(255,255,255,.92);
    --input-hover-bg: #ffffff;
    --input-border: rgba(15,23,42,.14);
    --table-head-bg: rgba(15,23,42,.035);
    --table-row-hover: rgba(37,99,235,.055);
    --modal-backdrop: rgba(15,23,42,.48);
    --accent-color: #9c760b;
    --accent-hover: #765a08;
    --accent-soft: rgba(37,99,235,.10);
    --success-soft: rgba(5,150,105,.11);
    --warning-soft: rgba(217,119,6,.11);
    --danger-soft: rgba(220,38,38,.10);
    --info-soft: rgba(8,145,178,.10);

    --sidebar-bg: rgba(255,255,255,.96);
    --sidebar-border: rgba(15,23,42,.10);
    --sidebar-shadow: rgba(15,23,42,.10);
    --sidebar-text: #475569;
    --sidebar-text-strong: #0f172a;
    --sidebar-text-muted: #64748b;
    --sidebar-item-bg: rgba(248,250,252,.82);
    --sidebar-item-border: rgba(15,23,42,.08);
    --sidebar-item-open-bg: rgba(239,246,255,.94);
    --sidebar-item-open-border: rgba(37,99,235,.20);
    --sidebar-hover-bg: rgba(37,99,235,.09);
    --sidebar-user-bg: rgba(248,250,252,.96);
    --sidebar-divider: rgba(15,23,42,.09);
    --sidebar-active-bg: linear-gradient(135deg,#d4af37,#b88b16);
    --sidebar-active-shadow: 0 8px 20px rgba(37,99,235,.20);
    --sidebar-scroll-thumb: rgba(71,85,105,.28);
    --sidebar-scroll-thumb-hover: rgba(71,85,105,.45);
    --danger-soft-bg: rgba(239,68,68,.09);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--page-bg); scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    direction: rtl;
    overflow-x: hidden;
    background: var(--bg-gradient);
    color: var(--text-primary);
    font-family: Tahoma, Arial, sans-serif;
    transition: background .25s ease,color .25s ease;
}
button,input,select,textarea { font: inherit; }
a { color: var(--accent-color); }
img { max-width: 100%; }
::selection { background: var(--accent-color); color: #fff; }

.app-container { display:flex; width:100%; min-height:100vh; align-items:stretch; }
.main-content { margin-right:284px; width:calc(100% - 284px); min-height:100vh; padding:32px 28px 40px; transition:margin .3s ease,width .3s ease; }
.page-content { width:100%; }
.global-back-nav{display:flex;justify-content:flex-start;margin:-18px 0 18px}.global-back-button{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:9px 15px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--text-primary);font:700 14px Tahoma,Arial,sans-serif;cursor:pointer;box-shadow:0 5px 18px var(--glass-shadow);transition:.2s}.global-back-button:hover{background:var(--accent-color);border-color:var(--accent-color);color:#fff;transform:translateX(2px)}
.document-action-generated{display:inline-flex!important;align-items:center;justify-content:center;gap:7px}@media print{.document-action-generated{display:none!important}}

/* Unified responsive typography: complete words stay visible on every screen. */
html{font-size:clamp(14px,.25vw + 13px,16px)}
body{font-size:1rem;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1{font-size:clamp(1.35rem,1.1vw + 1rem,2rem);line-height:1.35}h2{font-size:clamp(1.15rem,.75vw + .9rem,1.6rem);line-height:1.4}h3{font-size:clamp(1rem,.45vw + .88rem,1.3rem);line-height:1.45}
h1,h2,h3,h4,h5,h6,p,label,a,button,span,strong,small,th,td,li,option{
    overflow-wrap:normal!important;
    word-wrap:normal!important;
    word-break:keep-all!important;
    hyphens:none!important;
}
.card,.panel,.glass-card,[class*="-card"],[class*="-panel"],.stat-card,.metric-card,.fin-stat{min-width:0}
.btn-primary,.btn-success,.btn-danger,.btn-warning,.btn-secondary,.btn-info,button[class*="btn-"],a[class*="btn"],.menu-link{height:auto!important;min-height:40px;white-space:normal!important;line-height:1.4;text-align:center}
.sidebar .menu-link{font-size:.93rem}.sidebar .menu-link span{min-width:0;white-space:normal;line-height:1.45}
.custom-table th,.custom-table td,table th,table td{font-size:.9rem;line-height:1.5;white-space:normal;max-width:32rem}
input,select,textarea{font-size:1rem;line-height:1.45;min-width:0}
.topbar-title,.topbar-title h1,.page-title,.section-title{min-width:0;max-width:100%}
.badge,[class*="badge"],[class*="status"]{white-space:normal;line-height:1.35;text-align:center}

.glass-card,.card,.panel,.content-card,.form-card,.modal-content,.dropdown-menu {
    background: var(--glass-bg);
    color: var(--text-primary);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 32px var(--glass-shadow);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.form-card { padding:25px; margin-bottom:25px; }

.top-navbar { width:100%; min-height:110px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 28px; margin-bottom:32px; }
.topbar-right,.topbar-actions,.user-profile { display:flex; align-items:center; }
.topbar-right { gap:18px; min-width:0; }
.topbar-actions { gap:12px; flex-shrink:0; }
.topbar-title { min-width:0; }
.topbar-title h1,.top-navbar h1 { margin:0; color:var(--text-primary); }
.topbar-title h1 { font-size:28px; font-weight:700; }
.topbar-date { display:block; margin-top:5px; color:var(--text-secondary); font-size:13px; }
.user-profile { gap:10px; }
.user-avatar { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--accent-soft); color:var(--accent-color); }
.user-profile-info { display:flex; flex-direction:column; line-height:1.4; }
.user-profile-info strong { font-size:13px; color:var(--text-primary); }
.user-profile-info span { font-size:11px; color:var(--text-secondary); }

.theme-toggle-btn,.sidebar-toggle-btn,.topbar-icon-btn {
    min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
    border:1px solid var(--glass-border); border-radius:10px; background:var(--glass-bg);
    color:var(--text-primary); cursor:pointer; transition:.2s ease;
}
.theme-toggle-btn:hover,.sidebar-toggle-btn:hover,.topbar-icon-btn:hover { background:var(--accent-color); color:#fff; border-color:var(--accent-color); }
.sidebar-toggle-btn { display:none; }
.topbar-icon-btn { position:relative; }
.notification-dot { position:absolute; top:7px; left:7px; width:7px; height:7px; background:var(--danger); border-radius:50%; }

.sidebar {
    width:260px; position:fixed; inset-block:12px; right:12px; height:auto; min-height:0;
    display:flex; flex-direction:column; justify-content:flex-start; padding:20px; overflow:hidden; z-index:100;
    background:var(--sidebar-bg)!important; border:1px solid var(--sidebar-border)!important;
    box-shadow:0 12px 36px var(--sidebar-shadow)!important; color:var(--sidebar-text-strong);
    transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .25s,border-color .25s;
}
.sidebar.glass-card { backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.sidebar .brand { flex:0 0 auto; margin-bottom:12px; padding-bottom:18px; border-bottom:1px solid var(--sidebar-divider); color:var(--sidebar-text-strong); font-size:22px; font-weight:700; text-align:center; }
.sidebar .menu-link { display:flex; align-items:center; gap:12px; min-height:43px; padding:10px 13px; color:var(--sidebar-text); text-decoration:none; border-radius:10px; transition:.2s ease; }
.sidebar .menu-link:hover { background:var(--sidebar-hover-bg); color:var(--sidebar-text-strong); }
.sidebar .menu-link.active { background:var(--sidebar-active-bg); color:#fff; box-shadow:var(--sidebar-active-shadow); }
.sidebar-footer { flex:0 0 auto; margin-top:10px; padding-top:12px; background:transparent; border-top:1px solid var(--sidebar-divider); }

.page-title { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:25px; }
.section-title { margin:0 0 16px; color:var(--text-primary); font-size:18px; font-weight:700; }
.text-primary { color:var(--text-primary)!important; }
.text-secondary,.text-muted { color:var(--text-secondary)!important; }

.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin-bottom:32px; }
.stat-card { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:8px; padding:24px; }
.stat-title { color:var(--text-secondary); font-size:14px; }
.stat-value { font-size:28px; font-weight:700; }
.stat-icon { position:absolute; left:20px; bottom:20px; font-size:36px; opacity:.2; }
.dashboard-grid { display:grid; grid-template-columns:2fr 1fr; gap:24px; }

.table-container { width:100%; padding:20px; overflow-x:auto; }
.custom-table,table { width:100%; border-collapse:collapse; color:var(--text-primary); }
.custom-table th,.custom-table td,table th,table td { padding:12px 16px; border-bottom:1px solid var(--glass-border); vertical-align:middle; }
.custom-table th,table th { background:var(--table-head-bg); color:var(--text-secondary); font-weight:700; white-space:nowrap; }
.custom-table tbody tr:hover,table tbody tr:hover { background:var(--table-row-hover); }
.custom-table td,table td { color:var(--text-primary); }

input:not([type="checkbox"]):not([type="radio"]),select,textarea,.custom-select,.form-control {
    width:100%; padding:11px 13px; border:1px solid var(--input-border); border-radius:10px;
    background:var(--input-bg); color:var(--text-primary); outline:none; transition:.2s ease;
}
input:hover,select:hover,textarea:hover,.custom-select:hover,.form-control:hover { background:var(--input-hover-bg); }
input:focus,select:focus,textarea:focus,.custom-select:focus,.form-control:focus { border-color:var(--accent-color); box-shadow:var(--focus-ring); }
input::placeholder,textarea::placeholder { color:var(--text-muted); opacity:1; }
select option { background:var(--surface-bg); color:var(--text-primary); }
label { color:var(--text-secondary); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-group,.input-group { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.form-group label,.input-group label { font-weight:600; font-size:14px; }
textarea { min-height:120px; resize:vertical; }

.btn-primary,.btn-success,.btn-danger,.btn-warning,.btn-secondary,.btn-info,button[class*="btn-"] {
    display:inline-flex; align-items:center; justify-content:center; gap:8px; width:auto; min-height:40px;
    padding:9px 15px; border:0; border-radius:9px; color:#fff; cursor:pointer; text-decoration:none;
    font-weight:700; transition:transform .15s ease,filter .2s ease,background .2s ease;
}
.btn-primary { background:var(--accent-color); }
.btn-primary:hover { background:var(--accent-hover); }
.btn-success { background:var(--success); }
.btn-danger { background:var(--danger); }
.btn-warning { background:var(--warning); }
.btn-info { background:var(--info); }
.btn-secondary { background:var(--text-secondary); }
.btn-primary:hover,.btn-success:hover,.btn-danger:hover,.btn-warning:hover,.btn-info:hover,.btn-secondary:hover { filter:brightness(.96); transform:translateY(-1px); }
button:disabled,.btn-primary:disabled { opacity:.55; cursor:not-allowed; transform:none; }

.badge { display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border-radius:7px; font-size:12px; font-weight:700; }
.badge-success { background:var(--success-soft); color:#34d399; }
.badge-warning { background:var(--warning-soft); color:#fbbf24; }
.badge-danger { background:var(--danger-soft); color:#fca5a5; }
.badge-info { background:var(--info-soft); color:#22d3ee; }
[data-theme="light"] .badge-success { color:#047857; }
[data-theme="light"] .badge-warning { color:#b45309; }
[data-theme="light"] .badge-danger { color:#b91c1c; }
[data-theme="light"] .badge-info { color:#0e7490; }

.alert,.success-msg,.error-msg { padding:12px 15px; margin-bottom:18px; border-radius:10px; border:1px solid var(--glass-border); }
.alert-success,.success-msg { background:var(--success-soft); border-color:rgba(16,185,129,.35); color:var(--success); }
.alert-danger,.error-msg { background:var(--danger-soft); border-color:rgba(239,68,68,.35); color:var(--danger); }
.alert-warning { background:var(--warning-soft); border-color:rgba(245,158,11,.35); color:var(--warning); }

.modal { color:var(--text-primary); }
.modal-backdrop,.modal-overlay { background:var(--modal-backdrop); }
.modal-content { background:var(--glass-bg-strong); }
hr { border:0; border-top:1px solid var(--glass-border); }
code,pre { background:var(--surface-bg-2); color:var(--text-primary); border:1px solid var(--glass-border); border-radius:7px; }
code { padding:2px 6px; }
pre { padding:14px; overflow:auto; }

.pagination { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.pagination a,.pagination span { min-width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; padding:0 10px; border:1px solid var(--glass-border); border-radius:8px; background:var(--glass-bg); color:var(--text-primary); text-decoration:none; }
.pagination a:hover,.pagination .active { background:var(--accent-color); color:#fff; border-color:var(--accent-color); }

/* Compatibility layer for legacy pages with hard-coded light colors. */
[data-theme="dark"] [style*="background: white" i],
[data-theme="dark"] [style*="background:white" i],
[data-theme="dark"] [style*="background: #fff" i],
[data-theme="dark"] [style*="background:#fff" i],
[data-theme="dark"] [style*="background: #ffffff" i],
[data-theme="dark"] [style*="background:#ffffff" i],
:root:not([data-theme="light"]) [style*="background: white" i],
:root:not([data-theme="light"]) [style*="background:white" i],
:root:not([data-theme="light"]) [style*="background: #fff" i],
:root:not([data-theme="light"]) [style*="background:#fff" i] { background:var(--surface-bg)!important; }

[data-theme="dark"] [style*="color: #000" i],
[data-theme="dark"] [style*="color:#000" i],
[data-theme="dark"] [style*="color: black" i],
[data-theme="dark"] [style*="color:black" i],
:root:not([data-theme="light"]) [style*="color: #000" i],
:root:not([data-theme="light"]) [style*="color:#000" i] { color:var(--text-primary)!important; }

.sidebar-overlay { display:none; }

@media (max-width:992px) {
    .sidebar { top:0; right:0; bottom:0; inset-block:0; width:min(280px,86vw); border-radius:0; transform:translateX(105%); }
    .sidebar.active { transform:translateX(0); }
    .main-content { margin-right:0; width:100%; padding:20px; }
    .sidebar-toggle-btn { display:inline-flex; }
    .top-navbar { min-height:auto; padding:16px; }
    .topbar-title h1 { font-size:20px; }
    .topbar-actions .user-profile { display:none; }
    .theme-toggle-btn span { display:none; }
    .dashboard-grid { grid-template-columns:1fr; }
    .sidebar-overlay { position:fixed; inset:0; z-index:90; background:rgba(0,0,0,.55); backdrop-filter:blur(3px); }
    .sidebar-overlay.active { display:block; }
    body.sidebar-open { overflow:hidden; }
}

@media (max-width:700px) {
    .form-grid { grid-template-columns:1fr; }
    .page-title { align-items:flex-start; flex-direction:column; }
    .stats-grid { grid-template-columns:1fr; }
}

@media (max-width:600px) {
    .main-content { padding:14px; }
    .top-navbar { align-items:flex-start; gap:10px; }
    .topbar-actions { gap:6px; }
    .topbar-icon-btn,.sidebar-toggle-btn,.theme-toggle-btn { width:38px; min-width:38px; height:38px; padding:0; }
    .topbar-title h1,.top-navbar h1 { font-size:17px!important; }
    .table-container { padding:12px; }
    .custom-table th,.custom-table td,table th,table td { padding:10px; }
    html{font-size:14px}.sidebar .menu-link{font-size:.92rem}.topbar-title h1,.top-navbar h1{line-height:1.35!important}.custom-table th,.custom-table td,table th,table td{font-size:.84rem;padding:8px}.btn-primary,.btn-success,.btn-danger,.btn-warning,.btn-secondary,.btn-info,button[class*="btn-"],a[class*="btn"]{font-size:.9rem;padding:8px 11px}
}

@media print {
    .sidebar,.top-navbar,.sidebar-overlay,.no-print,.theme-toggle-btn { display:none!important; }
    .main-content { margin:0!important; width:100%!important; padding:0!important; }
    body { background:#fff!important; color:#000!important; }
    .glass-card,.card,.panel { box-shadow:none!important; backdrop-filter:none!important; border:1px solid #ccc!important; background:#fff!important; color:#000!important; }
}

/* Forsan ERP unified typography and readable text colors in both themes. */
html,body,button,input,select,textarea,table,.sidebar,.top-navbar,.main-content,
.page-content,.card,.panel,.glass-card,.modal-content,.dropdown-menu {
    font-family:Tahoma,Arial,sans-serif!important;
}
body,h1,h2,h3,h4,h5,h6,p { color:var(--text-primary); }
label,.text-secondary,.text-muted,.help-text,.form-text { color:var(--text-secondary)!important; }
a:not([class*="btn"]):not(.menu-link) { color:var(--accent-color); }
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea { color:#f8fafc!important; }
[data-theme="light"] input,[data-theme="light"] select,[data-theme="light"] textarea { color:#172033!important; }
:root{--project-progress-color:#16a34a;--project-progress-color-dark:#15803d}
.prj-progress-track span,.pv-progress-track span,.pd-master-progress div,.pd-progress div,.ph-progress i,.pm-progress b,.pm-detail-progress b{background:linear-gradient(90deg,var(--project-progress-color-dark),var(--project-progress-color))!important}
.pv-progress-number,.pd-progress-value,.ph-percent,.pm-progress em{color:var(--project-progress-color-dark)!important}

/* V48.1: never split an Arabic or English word between two lines. */
.sidebar,.top-navbar,.main-content,.page-content,.card,.panel,.glass-card,
.sp-page,.sp-card,.dashboard-panel,.metric-card,table,th,td,
button,a,label,span,strong,small,p,h1,h2,h3,h4,h5,h6{
    overflow-wrap:normal!important;
    word-break:keep-all!important;
    hyphens:none!important;
}
table{display:table}
.table-container,.sp-card{overflow-x:auto}
