/* ══════════════════════════════════════════════
   InfraRedy Portal — Professional Theme
   ══════════════════════════════════════════════ */
:root {
  --sidebar-w: 230px;
  --banner-h: 52px;
  --navy: #0f1923;
  --navy-light: #1a2736;
  --amber: #f0a500;
  --amber-hover: #d99200;
  --amber-glow: rgba(240,165,0,.12);
  --steel: #2a3a4a;
  --bg: #f0f2f5;
  --card: #fff;
  --border: #dfe3e8;
  --text: #1a1a2e;
  --muted: #6b7785;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}

/* ── Banner ── */
.banner{height:var(--banner-h);background:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;position:fixed;top:0;left:0;right:0;z-index:1100}
.banner-left{display:flex;align-items:center;gap:.75rem}
.banner-logo{height:36px;filter:invert(1);mix-blend-mode:screen}
.banner-title{color:#fff;font-size:1.05rem;font-weight:700;letter-spacing:.4px}
.banner-title span{color:var(--amber);font-weight:400;font-size:.85rem;margin-left:.5rem}
.banner-right{display:flex;align-items:center;gap:1rem}
.banner-right a{color:#94a3b8;font-size:.8rem;text-decoration:none;transition:color .15s}
.banner-right a:hover{color:#fff}
.banner-right .user-badge{color:var(--amber);font-weight:600;font-size:.8rem}
.banner-right .sep{color:#334155;font-size:.7rem}

/* ── Sidebar ── */
.sidebar{width:var(--sidebar-w);background:var(--navy-light);position:fixed;top:var(--banner-h);bottom:0;left:0;z-index:1000;overflow-y:auto;border-right:1px solid rgba(255,255,255,.04)}
.sidebar-nav{list-style:none;padding:.5rem 0;margin:0}
.sidebar-nav li a{display:flex;align-items:center;gap:.6rem;padding:.5rem 1.1rem;color:#8899aa;text-decoration:none;font-size:.82rem;border-left:3px solid transparent;transition:all .12s}
.sidebar-nav li a:hover{color:#cdd6e0;background:rgba(255,255,255,.03)}
.sidebar-nav li a.active{color:var(--amber);border-left-color:var(--amber);background:var(--amber-glow)}
.sidebar-nav li a i{font-size:1rem;width:20px;text-align:center}
.sidebar-section{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:#4a5a6a;padding:.85rem 1.1rem .3rem;font-weight:600}

/* ── Main ── */
.main{margin-left:var(--sidebar-w);margin-top:var(--banner-h);min-height:calc(100vh - var(--banner-h))}
.content-area{padding:1.25rem 1.5rem}

/* ── Cards ── */
.card{border:1px solid var(--border);border-radius:.45rem;background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.04)}
.card-header{background:#f8f9fb;font-weight:600;font-size:.82rem;border-bottom:1px solid var(--border);padding:.6rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}

/* ── Stat Cards ── */
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:.45rem;padding:1.1rem;display:flex;align-items:center;gap:.85rem;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.stat-icon{width:44px;height:44px;border-radius:.4rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff}
.stat-value{font-size:1.4rem;font-weight:700;line-height:1}
.stat-label{font-size:.72rem;color:var(--muted)}

/* ── Tables ── */
.table-ir{font-size:.82rem}
.table-ir th{background:#f8f9fb;font-weight:600;white-space:nowrap;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#4a5568;padding:.55rem .75rem;border-bottom:2px solid var(--border)}
.table-ir td{vertical-align:middle;padding:.5rem .75rem;border-bottom:1px solid #eef0f3}
.table-ir tbody tr:hover{background:#f8fafc}

/* ── Badges ── */
.badge-status{font-size:.7rem;font-weight:600;padding:.25em .6em;border-radius:3px;text-transform:uppercase;letter-spacing:.03em}
.badge-DRAFT,.badge-ORDERED{background:#e8eaed;color:#374151}
.badge-SCHEDULED,.badge-SENT{background:#dbeafe;color:#1e40af}
.badge-IN_PROGRESS{background:#fef3c7;color:#92400e}
.badge-COMPLETE,.badge-PAID,.badge-RECEIVED{background:#d1fae5;color:#065f46}
.badge-INVOICED{background:#e0e7ff;color:#3730a3}
.badge-OVERDUE{background:#fee2e2;color:#991b1b}
.badge-CANCELLED,.badge-RETURNED{background:#f3f4f6;color:#6b7280;text-decoration:line-through}

/* ── Buttons ── */
.btn-ir{background:var(--amber);color:#000;border:none;font-weight:600;font-size:.82rem}
.btn-ir:hover{background:var(--amber-hover);color:#000}
.btn-ir-outline{border:1px solid var(--amber);color:var(--amber);background:transparent;font-size:.82rem}
.btn-ir-outline:hover{background:var(--amber);color:#000}
.btn-export{background:var(--steel);color:#fff;border:none;font-size:.75rem;padding:.3rem .65rem}
.btn-export:hover{background:#3a4a5a;color:#fff}

/* ── Data Sheet Sections ── */
.form-section{border:1px solid var(--border);border-radius:.45rem;margin-bottom:.85rem;overflow:hidden}
.form-section-title{background:var(--navy);color:var(--amber);font-size:.78rem;font-weight:600;padding:.45rem .9rem;text-transform:uppercase;letter-spacing:.05em}
.form-section-body{padding:.75rem;background:#fff}
.ds-section{margin-bottom:.85rem}
.ds-section-title{background:var(--navy);color:var(--amber);font-size:.78rem;font-weight:600;padding:.4rem .85rem;border-radius:.35rem .35rem 0 0;text-transform:uppercase;letter-spacing:.05em}
.ds-section-body{border:1px solid var(--border);border-top:none;border-radius:0 0 .35rem .35rem;padding:.65rem;background:#fff}

/* ── DS Tables ── */
.ds-table{width:100%;border-collapse:collapse;font-size:.8rem}
.ds-table th,.ds-table td{border:1px solid #ccc;padding:.25rem .4rem}
.ds-table th{background:#e5e7eb;font-weight:600;text-align:center}
.ds-table .label-cell{background:#f3f4f6;font-weight:600;white-space:nowrap}

/* ── Forms ── */
label.form-label{font-size:.78rem;font-weight:600;color:#374151}
.chk-inline{display:inline-flex;align-items:center;gap:3px;margin-right:10px;font-size:.8rem;font-weight:600}
.chk-inline input[type="checkbox"]{width:16px;height:16px;margin:0}

/* ── Page Header ── */
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.page-header h4{font-weight:700;margin:0;font-size:1.15rem;color:var(--navy)}
.page-header .actions{display:flex;gap:.4rem;align-items:center}

/* ── Export Bar ── */
.export-bar{display:flex;gap:.35rem;align-items:center}
.export-bar .btn{font-size:.72rem;padding:.2rem .55rem}

/* ── Print ── */
@media print{.sidebar,.banner,.no-print{display:none!important}.main{margin:0!important}.content-area{padding:0!important}}

/* ── Mobile ── */
@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.show{transform:translateX(0)}.main{margin-left:0}.mobile-toggle{display:block!important}}
.mobile-toggle{display:none}

/* ── Login ── */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f1923 0%,#1a2736 50%,#0f1923 100%)}
.login-card{background:#fff;border-radius:.6rem;padding:2.25rem;width:100%;max-width:380px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.login-card .login-logo{width:150px;margin-bottom:1.25rem}
