:root{--navy:#0f2747;--blue:#1f4e8c;--accent:#c9a227;--bg:#f4f6fa;--card:#fff;
  --text:#1c2733;--muted:#7b8794;--danger:#c0392b;--ok:#1e8449;--border:#e2e8f0}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:14px}
.hidden{display:none!important}
.muted{color:var(--muted)}
.error{color:var(--danger);margin-top:8px;min-height:18px}
button{cursor:pointer;border:none;border-radius:8px;padding:9px 16px;
  background:var(--blue);color:#fff;font-weight:600}
button:hover{background:var(--navy)}
button.link{background:none;color:var(--muted);padding:4px;font-weight:500}
button.sm{padding:5px 10px;font-size:12px}
button.danger{background:var(--danger)}
input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--border);
  border-radius:8px;margin:6px 0;font-size:14px;background:#fff}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--navy),var(--blue))}
.login-card{background:#fff;padding:40px;border-radius:16px;width:340px;
  box-shadow:0 20px 50px rgba(0,0,0,.3)}
.login-card h1{font-size:22px;color:var(--navy)}
.login-card p{margin-bottom:18px}
.login-card button{width:100%;margin-top:8px}

/* Layout */
#app-view{display:flex;min-height:100vh}
.sidebar{width:230px;background:var(--navy);color:#cdd9e5;display:flex;flex-direction:column;
  position:fixed;height:100vh}
.brand{padding:22px 20px;font-size:18px;font-weight:700;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.1)}
#nav{flex:1;padding:10px 0;overflow:auto}
#nav a{display:block;padding:11px 22px;color:#cdd9e5;text-decoration:none;cursor:pointer}
#nav a:hover{background:rgba(255,255,255,.08)}
#nav a.active{background:var(--blue);color:#fff;border-left:3px solid var(--accent)}
.user-box{padding:16px 20px;border-top:1px solid rgba(255,255,255,.1);font-size:13px}
.content{margin-left:230px;flex:1;display:flex;flex-direction:column}
.topbar{background:#fff;padding:16px 28px;border-bottom:1px solid var(--border)}
.topbar h2{color:var(--navy)}
#page{padding:24px 28px}

/* Cards / KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.kpi{background:var(--card);border-radius:12px;padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.kpi .num{font-size:26px;font-weight:700;color:var(--navy)}
.kpi .lbl{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.section-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}

/* Table */
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.06)}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border)}
th{background:#f8fafc;color:var(--muted);font-size:12px;text-transform:uppercase}
tr:last-child td{border-bottom:none}
.badge{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700}
.b-open,.b-NEW,.b-SCHEDULED,.b-ISSUED{background:#e8f0fe;color:var(--blue)}
.b-CLOSED,.b-WON,.b-PAID,.b-APPROVED,.b-RESOLVED{background:#e6f5ec;color:var(--ok)}
.b-OVERDUE,.b-HIGH,.b-EXPIRED,.b-LOST{background:#fdecea;color:var(--danger)}

/* Modal */
.modal-bg{position:fixed;inset:0;background:rgba(15,39,71,.5);display:flex;
  align-items:center;justify-content:center;z-index:50}
.modal{background:#fff;border-radius:14px;padding:26px;width:440px;max-height:90vh;overflow:auto}
.modal h3{color:var(--navy);margin-bottom:14px}
.modal .row{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
label{font-size:12px;color:var(--muted);font-weight:600}
