:root{--navy:#1a2744;--navy2:#243258;--gold:#c9a84c;--gold2:#e0c068;--bg:#f0f2f7;--surface:#fff;--surface2:#f7f8fb;--border:#dde2ee;--text:#1a2744;--text2:#4a5568;--text3:#8a94a8;--green:#1a7a3a;--green-bg:#eaf5ee;--amber:#b06000;--amber-bg:#fef6e4;--red:#c0392b;--red-bg:#fdf0ee;--r:10px;--rs:6px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);font-size:14px;min-height:100vh}
.hidden{display:none!important}
.page{display:none}.page.active{display:block}

/* SPLASH */
.splash{position:fixed;inset:0;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999;color:#fff}
.splash-logo{width:80px;height:80px;border-radius:50%;border:3px solid var(--gold);margin-bottom:14px;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="%231a2744"/><text x="50" y="58" font-size="28" fill="%23c9a84c" text-anchor="middle" font-family="Georgia" font-weight="900">RSR</text></svg>') center/cover}
.splash-text{font-size:14px;color:rgba(255,255,255,.7)}
.spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--gold);border-radius:50%;animation:spin 0.7s linear infinite;margin-top:14px}
@keyframes spin{to{transform:rotate(360deg)}}

/* NAV */
/* ─── NAV — FULLY RESPONSIVE ─────────────────────────── */
.nav{
  background:var(--navy);
  height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(8px,2vw,16px);
  position:sticky;top:0;
  z-index:100;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
  gap:8px;
  min-width:0;
  overflow:visible;
}
.nav-logo{display:flex;align-items:center;gap:6px;flex-shrink:0;min-width:0}
.nav-logo-circle{height:32px;width:32px;min-width:32px;border-radius:50%;border:2px solid var(--gold);background:url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><circle cx=%2250%22 cy=%2250%22 r=%2248%22 fill=%22%231a2744%22/><text x=%2250%22 y=%2258%22 font-size=%2228%22 fill=%22%23c9a84c%22 text-anchor=%22middle%22 font-family=%22Georgia%22 font-weight=%22900%22>RSR</text></svg>') center/cover;flex-shrink:0}
.nav-logo-text{font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-logo-text span{color:var(--gold)}
/* Search — grows to fill available space */
.gsearch-wrap{flex:1;min-width:0;max-width:400px;position:relative}
#gsearch-input{
  width:100%;box-sizing:border-box;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:20px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:13px;
  font-family:'Inter',sans-serif;
  outline:none;
  min-width:0;
}
#gsearch-input::placeholder{color:rgba(255,255,255,.5)}
/* Nav right — flex, no wrapping, gaps scale with space */
.nav-right{display:flex;align-items:center;gap:clamp(3px,1vw,8px);flex-shrink:0;min-width:0}
/* Icon buttons — consistent size */
.nav-icon-btn{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  border-radius:var(--rs);
  cursor:pointer;
  display:inline-flex;align-items:center;gap:4px;
  padding:5px 8px;
  font-size:12px;
  font-family:'Inter',sans-serif;
  white-space:nowrap;
  flex-shrink:0;
  transition:background .15s;
}
.nav-icon-btn:hover{background:rgba(255,255,255,.2)}
.nav-icon-btn .nav-btn-icon{font-size:14px;line-height:1}
.nav-icon-btn .nav-btn-label{font-size:11px}
.nav-logout{background:rgba(255,255,255,.08)}
.nav-role{background:rgba(201,168,76,.2);color:var(--gold);border:1px solid rgba(201,168,76,.4);padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0}
.nav-uname{color:rgba(255,255,255,.8);font-size:12px;font-weight:500;white-space:nowrap;display:none} /* shown via media query on large screens */
.nav-links{display:flex;gap:2px;flex-shrink:0}
.nav-link{padding:6px 10px;border-radius:var(--rs);font-size:12px;font-weight:500;cursor:pointer;color:rgba(255,255,255,.6);transition:all .15s;white-space:nowrap;background:none;border:none;font-family:'Inter',sans-serif}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.1)}
.nav-link.active{color:var(--gold);background:rgba(201,168,76,.15)}
.btn-out{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.9);padding:5px 10px;border-radius:var(--rs);font-size:12px;cursor:pointer;font-family:'Inter',sans-serif;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center}
.btn-out:hover{background:rgba(255,255,255,.2)}
.bnav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--navy);border-top:1px solid rgba(255,255,255,.1);z-index:100;padding:6px 0 env(safe-area-inset-bottom,8px)}
/* ─── RESPONSIVE BREAKPOINTS ─────────────────────────── */

/* Tablet and below (≤768px) */
@media(max-width:768px){
  .nav-links{display:none} /* bottom nav used instead */
  .nav-uname{display:none} /* save space — role badge enough */
}

/* Mobile (≤640px) */
@media(max-width:640px){
  .bnav{display:flex}
  .wrap{padding-bottom:80px}
  .frow{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .card{padding:14px}
  /* Nav: hide logo text, keep circle */
  .nav-logo-text{display:none}
  .nav{height:52px;gap:6px}
  /* Search fills available space */
  .gsearch-wrap{max-width:none}
  #gsearch-input{padding:6px 10px;font-size:13px}
  /* Backup: icon only */
  #nav-backup-btn .nav-btn-label{display:none}
  #nav-backup-btn{padding:5px 7px}
  /* Logout: compact */
  .nav-logout{padding:5px 8px}
  .nav-role{font-size:10px;padding:2px 6px}
}

/* Small phones (≤400px) */
@media(max-width:400px){
  .nav{height:48px;gap:4px}
  #gsearch-input{font-size:12px;padding:5px 8px}
  .nav-icon-btn{padding:4px 6px}
  .nav-role{font-size:9px;padding:2px 4px}
  .nav-btn-label{font-size:10px}
}

/* Very small phones (≤360px) */
@media(max-width:360px){
  .nav-role{display:none} /* extreme — only circle + search + logout */
  #nav-backup-btn{display:none !important}
}

/* Large screens — show more */
@media(min-width:1024px){
  .nav-logo-text{font-size:16px}
  .gsearch-wrap{max-width:480px}
  #nav-backup-btn .nav-btn-label{display:inline}
  .nav-uname{display:inline;color:rgba(255,255,255,.8);font-size:12px;font-weight:500;white-space:nowrap}
}
.bn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;color:rgba(255,255,255,.4);font-size:10px;font-weight:500;padding:4px 0;background:none;border:none;font-family:'Inter',sans-serif}
.bn.active{color:var(--gold)}.bn-icon{font-size:22px;line-height:1}

/* LOGIN */
.login-bg{min-height:100vh;background:var(--navy);display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--surface);border-radius:16px;padding:36px 32px;width:100%;max-width:420px;box-shadow:0 8px 32px rgba(0,0,0,.25)}
.login-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:28px}
.login-logo .lg-img{width:80px;height:80px;border-radius:50%;border:3px solid var(--gold);margin-bottom:10px;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="%231a2744"/><text x="50" y="58" font-size="28" fill="%23c9a84c" text-anchor="middle" font-family="Georgia" font-weight="900">RSR</text></svg>') center/cover}
.login-name{font-size:20px;font-weight:700;color:var(--navy)}.login-name span{color:var(--gold)}
.login-sub{font-size:12px;color:var(--text3);margin-top:2px;text-transform:uppercase;letter-spacing:.05em;font-weight:500}
.rtabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px}
.rtab{padding:14px 10px;border:2px solid var(--border);border-radius:var(--r);text-align:center;cursor:pointer;background:var(--surface2);font-family:'Inter',sans-serif}
.rtab.active{border-color:var(--navy);background:var(--navy);color:#fff}
.rtab-icon{font-size:22px;margin-bottom:4px}.rtab-label{font-size:13px;font-weight:600}.rtab-sub{font-size:11px;opacity:.6;margin-top:2px}
.lerr{color:var(--red);font-size:13px;text-align:center;margin-top:10px;padding:8px;background:var(--red-bg);border-radius:var(--rs);display:none}

/* FORMS */
.fg{margin-bottom:14px}
.fg label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em}
.fg input,.fg select,.fg textarea{width:100%;padding:10px 12px;font-size:14px;font-family:'Inter',sans-serif;border:1.5px solid var(--border);border-radius:var(--rs);background:var(--surface);color:var(--text);outline:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--navy)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:500px){.frow{grid-template-columns:1fr}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;font-size:13px;font-family:'Inter',sans-serif;font-weight:600;border-radius:var(--rs);cursor:pointer;border:1.5px solid var(--border);background:var(--surface);color:var(--text);transition:all .15s;white-space:nowrap}
.btn:hover{background:var(--surface2)}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}.btn-navy:hover{background:var(--navy2)}
.btn-gold{background:var(--gold);color:var(--navy);border-color:#a8883a}.btn-gold:hover{background:var(--gold2)}
.btn-sm{padding:6px 12px;font-size:12px}.btn-full{width:100%;justify-content:center;padding:12px}
.btn:disabled{opacity:.4;cursor:not-allowed}

/* CARDS */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px;margin-bottom:12px;box-shadow:0 1px 4px rgba(26,39,68,.07)}
.card-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:12px}
.card-title{font-size:15px;font-weight:700;color:var(--navy)}
.card-sub{font-size:12px;color:var(--text3);margin-top:3px}
.card-acts{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
@media(max-width:600px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:var(--r);padding:16px}
.stat-lbl{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.stat-val{font-size:22px;font-weight:700;color:var(--navy)}
.stat-sub{font-size:11px;color:var(--text3);margin-top:3px}

/* BADGE */
.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px}
.bg-green{background:var(--green-bg);color:var(--green)}.bg-amber{background:var(--amber-bg);color:var(--amber)}
.bg-red{background:var(--red-bg);color:var(--red)}.bg-navy{background:rgba(26,39,68,.1);color:var(--navy)}
.bg-gold{background:rgba(201,168,76,.15);color:#7a5200}

/* PROGRESS */
.prog{margin-bottom:9px}
.prog-lbl{display:flex;justify-content:space-between;font-size:12px;color:var(--text2);margin-bottom:4px}
.prog-track{height:7px;background:var(--border);border-radius:4px;overflow:hidden}
.prog-fill{height:100%;border-radius:4px;transition:width .4s}
.pf-navy{background:var(--navy)}.pf-green{background:var(--green)}.pf-amber{background:var(--amber)}.pf-red{background:var(--red)}

/* FIELD ROWS */
.fr{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.fr:last-child{border-bottom:none}.fl{color:var(--text2)}.fv{font-weight:700;color:var(--navy)}

/* TABLE */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:2px solid var(--border);background:var(--surface2);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}
tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface2)}

/* SECTION TITLE */
.st{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}

/* MODAL */
.mov{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
.mov.open{display:flex}
.mbox{background:var(--surface);border-radius:14px;padding:28px;width:100%;max-width:580px;box-shadow:0 4px 24px rgba(0,0,0,.15);margin:auto;border-top:4px solid var(--gold)}
.mhdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.mhdr h2{font-size:17px;font-weight:700;color:var(--navy)}
.mx{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text3)}

/* ALERT */
.alert{padding:12px 14px;border-radius:var(--rs);font-size:13px;margin-bottom:12px;border:1px solid;font-weight:500}
.al-green{background:var(--green-bg);color:var(--green);border-color:#b8dfc0}
.al-amber{background:var(--amber-bg);color:var(--amber);border-color:#f5d5a0}
.al-red{background:var(--red-bg);color:var(--red);border-color:#f0bdb8}
.al-navy{background:rgba(26,39,68,.06);color:var(--navy);border-color:var(--border)}

/* CALC BOX */
.calc{background:var(--surface2);border:1px solid var(--border);border-left:4px solid var(--gold);border-radius:var(--rs);padding:12px 14px;margin-bottom:14px}

/* BOQ ROW */
.brow{display:grid;grid-template-columns:2fr 70px 80px 90px 26px;gap:6px;margin-bottom:6px;align-items:center}
.brow input{padding:7px 9px;font-size:12px;border:1px solid var(--border);border-radius:var(--rs);background:var(--surface);color:var(--text);font-family:'Inter',sans-serif;width:100%}
.bdel{background:none;border:none;cursor:pointer;color:var(--text3);font-size:16px}
.bdel:hover{color:var(--red)}

/* VER ROW */
.vrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.vrow:last-child{border-bottom:none}
.vdesc{flex:1;font-size:13px}.vmeta{font-size:11px;color:var(--text3);min-width:80px;text-align:right}
.vinput{width:85px;padding:6px 8px;font-size:13px;border:1.5px solid var(--border);border-radius:var(--rs);text-align:right;font-weight:600;font-family:'Inter',sans-serif}
.vinput:focus{border-color:var(--navy);outline:none}

/* PHOTOS */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
@media(max-width:480px){.pgrid{grid-template-columns:repeat(2,1fr)}}
.pitem{aspect-ratio:4/3;border-radius:var(--rs);overflow:hidden;background:var(--surface2);border:1px solid var(--border);position:relative;cursor:pointer}
.pitem img{width:100%;height:100%;object-fit:cover}
.pcap{position:absolute;bottom:0;left:0;right:0;background:rgba(26,39,68,.75);color:#fff;font-size:9px;padding:3px 5px;line-height:1.3}
.padd{aspect-ratio:4/3;border-radius:var(--rs);border:2px dashed var(--border);background:var(--surface2);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--text3);font-size:12px;gap:4px}
.padd:hover,.padd:active{border-color:var(--gold);color:#7a5200}.padd-icon{font-size:26px}

/* GPS TAG */
.gps-tag{font-size:10px;color:var(--text3);background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:2px 6px;margin-top:4px;display:inline-flex;align-items:center;gap:4px}
.gps-tag.got{color:var(--green);border-color:#b8dfc0;background:var(--green-bg)}
.gps-tag.fail{color:var(--amber);border-color:#f5d5a0;background:var(--amber-bg)}

/* PHOTO REQUIRED INDICATOR */
.photo-req{background:var(--red-bg);border:1px solid #f0bdb8;border-radius:var(--rs);padding:10px 14px;font-size:13px;color:var(--red);font-weight:600;margin-bottom:10px;display:none}
.photo-req.show{display:block}

/* MOBILE TOUCH IMPROVEMENTS */
@media(max-width:640px){
  .btn{padding:10px 16px;font-size:13px}
  .btn-full{padding:14px;font-size:15px}
  .vinput{width:75px;font-size:14px}
  .vrow{gap:6px}
  .ppill{padding:14px}
  .card-hdr{flex-direction:column;gap:10px}
  .card-acts{width:100%;justify-content:flex-start}
  table{font-size:12px}
  th,td{padding:8px 6px}
  .stats{grid-template-columns:1fr 1fr;gap:8px}
  .stat{padding:12px}
  .stat-val{font-size:18px}
  .modal-footer-mobile{flex-direction:column}
  .modal-footer-mobile .btn{width:100%;justify-content:center}
}

/* MISC */
.empty{text-align:center;padding:48px 20px}
.empty-icon{font-size:40px;margin-bottom:12px}.empty-text{font-size:14px;color:var(--text3);font-weight:500}
.ppill{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:18px;margin-bottom:10px;cursor:pointer;transition:all .2s}
.ppill:hover{border-color:var(--gold);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.int-val{color:var(--amber);font-weight:700}
.wrap{max-width:960px;margin:0 auto;padding:clamp(14px,3vw,24px) clamp(12px,4vw,20px)}
.pg-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}
.pg-title{font-size:20px;font-weight:700;color:var(--navy)}

/* TOAST */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#1a2744;color:#fff;padding:12px 22px;border-radius:8px;font-size:14px;font-weight:500;z-index:9999;opacity:0;transition:all 0.3s;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.3);max-width:90vw;text-align:center}

/* REFRESH BTN */
.refresh-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:5px 10px;border-radius:var(--rs);cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:4px}
.refresh-btn:hover{background:rgba(255,255,255,.2)}
.refresh-btn.spin svg{animation:spin 0.7s linear infinite}

/* BUSY OVERLAY */
.busy{position:fixed;top:70px;right:16px;background:var(--navy);color:#fff;padding:8px 14px;border-radius:6px;font-size:12px;font-weight:600;z-index:300;display:none;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.busy.show{display:flex}
.busy-sp{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 0.7s linear infinite}

./* DAYBOOK CALENDAR */
.cal-wrap{margin-bottom:0}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-title{font-size:16px;font-weight:700;color:var(--navy)}
.cal-nav{display:flex;gap:6px}
.cal-nav button{background:none;border:1px solid var(--border);border-radius:var(--rs);padding:5px 12px;cursor:pointer;font-size:14px;color:var(--text2)}
.cal-nav button:hover{background:var(--surface2);color:var(--navy)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-day-name{text-align:center;font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;padding:4px 0}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:13px;font-weight:600;cursor:default;position:relative;transition:transform .1s}
.cal-day.empty{background:transparent}
.cal-day.future{background:var(--surface2);color:var(--text3);font-weight:400}
.cal-day.today-marker{outline:2px solid var(--navy);outline-offset:1px}
.cal-day.uploaded{background:#eaf5ee;color:#1a7a3a;cursor:pointer}
.cal-day.uploaded:hover{transform:scale(1.1)}
.cal-day.missing{background:#fdf0ee;color:#c0392b;cursor:pointer}
.cal-day.missing:hover{transform:scale(1.08)}
.cal-day.no-data{background:var(--surface2);color:var(--text3)}
.cal-legend{display:flex;gap:16px;margin-top:10px;font-size:12px;flex-wrap:wrap}
.cal-legend-item{display:flex;align-items:center;gap:6px}
.cal-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}

.pw{position:relative}.pw input{padding-right:40px}
.pw-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;color:var(--text3)}

/* ACTION MENU (3-dot) */
.amenu-wrap{position:relative;display:inline-block}
.amenu-btn{background:none;border:1px solid var(--border);border-radius:var(--rs);padding:4px 8px;cursor:pointer;font-size:16px;color:var(--text3);line-height:1}
.amenu-btn:hover{background:var(--surface2);color:var(--navy)}
.amenu{position:absolute;right:0;top:110%;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);box-shadow:0 4px 16px rgba(0,0,0,.12);min-width:160px;z-index:150;display:none}
.amenu.open{display:block}
.amenu-item{display:block;width:100%;padding:10px 14px;font-size:13px;font-family:'Inter',sans-serif;font-weight:500;background:none;border:none;cursor:pointer;text-align:left;color:var(--text)}
.amenu-item:hover{background:var(--surface2)}
.amenu-item.danger{color:var(--red)}.amenu-item.danger:hover{background:var(--red-bg)}
.amenu-item.success{color:var(--green)}.amenu-item.success:hover{background:var(--green-bg)}

/* ALERT BANNERS */
.alert-banner{border-radius:var(--rs);padding:10px 14px;font-size:12px;font-weight:600;margin-bottom:6px;border:1px solid;display:flex;align-items:center;gap:8px;cursor:pointer}
.ab-red{background:var(--red-bg);color:var(--red);border-color:#f0bdb8}
.ab-amber{background:var(--amber-bg);color:var(--amber);border-color:#f5d5a0}
.ab-navy{background:rgba(26,39,68,.06);color:var(--navy);border-color:var(--border)}

/* SETTLE */
.btn-green{background:#1a7a3a;color:#fff;border-color:#145e2c}.btn-green:hover{background:#22994a}
.settle-row{background:var(--green-bg);border-radius:var(--rs);padding:10px 14px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;font-size:13px;border:1px solid #b8dfc0}

/* UPDATE REVIEW ACTIONS */
.upd-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.btn-reject{background:var(--red-bg);color:var(--red);border:1px solid #f0bdb8;border-radius:var(--rs);padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif}
.btn-reject:hover{background:#fce8e6}
/* ── DOCUMENT VAULT ── */
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:640px){.doc-grid{grid-template-columns:1fr}}
.doc-slot{background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--rs);padding:14px;transition:border-color .2s}
.doc-slot-filled{border-color:rgba(26,122,58,.3);background:var(--green-bg)}
.doc-slot-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.doc-slot-icon{font-size:22px;flex-shrink:0;margin-top:1px}
.doc-slot-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:2px}
.doc-slot-note{font-size:11px;color:var(--text3);line-height:1.3}
.doc-uploaded{background:var(--surface);border-radius:var(--rs);padding:10px;margin-top:8px;border:1px solid rgba(26,122,58,.2)}
.doc-upload-btn{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--rs);font-size:13px;font-weight:600;color:var(--navy);transition:all .2s}
.doc-upload-btn:hover{border-color:var(--gold);background:rgba(201,168,76,.05)}

/* ── PROJECT STATUS BADGE ── */
.status-active{background:var(--green-bg);color:var(--green);border:1px solid #b8dfc0}
.status-onhold{background:rgba(120,140,160,.12);color:#4a6080;border:1px solid #b8c8d8}
.status-completed{background:rgba(26,39,68,.08);color:var(--text2);border:1px solid var(--border)}

/* ── INTEREST TAB ── */
.int-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px;margin-bottom:12px}
.int-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap;gap:8px}
.compound-log{background:var(--surface2);border-radius:var(--rs);padding:10px 14px;margin-top:8px;font-size:12px;border-left:3px solid var(--gold)}

/* ── HEALTH CHECK SPINNER ── */
.spinner{width:24px;height:24px;border:3px solid rgba(26,39,68,.2);border-top-color:var(--navy);border-radius:50%;animation:spin 0.7s linear infinite;display:inline-block}

/* Anomaly modal always on top */
#modal-anomaly{ z-index:10000 !important; }

/* Calendar day hover */
.cal-day-cell:hover{ transform: scale(1.12) !important; }

/* ─── v21c ADDITIONS ──────────────────────────────── */

/* Offline queue badge */
#offline-queue-badge {
  display: none;
  position: absolute;
  top: -4px; right: -4px;
  background: var(--amber);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  border: 1.5px solid var(--navy);
}

/* Alert banner types */
.ab-info { background: #e8f0fe; color: #1a56db; border-left: 3px solid #1a56db; }
.ab-red  { background: #fef2f2; color: var(--red); border-left: 3px solid var(--red); }
.ab-amber{ background: #fffbeb; color: #92400e; border-left: 3px solid var(--amber); }
.ab-green{ background: #f0fdf4; color: #166534; border-left: 3px solid var(--green); }

/* Dashboard filter bar pills */
#dash-filter-bar button:hover {
  border-color: var(--navy) !important;
  color: var(--navy) !important;
}

/* Timeline dot ring */
.tl-dot {
  position: absolute;
  left: -22px;
  width: 22px; height: 22px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #fff; font-weight: 700;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.15);
}

/* Receipt row highlight in tally table */
.receipt-row { background: #f0faf0; }

/* Pending badge on card */
.pend-badge {
  background: var(--red);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
}

/* Archive section */
.archive-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: var(--surface2);
  border-radius: var(--rs);
  margin-bottom: 8px;
  gap: 8px;
  flex-wrap: wrap;
}

/* ─── SAFE AREA INSETS (notched phones, foldables) ───── */
.nav{
  padding-left:max(clamp(8px,2vw,16px), env(safe-area-inset-left));
  padding-right:max(clamp(8px,2vw,16px), env(safe-area-inset-right));
}
.bnav{
  padding-bottom:max(8px, env(safe-area-inset-bottom));
  padding-left:max(0px, env(safe-area-inset-left));
  padding-right:max(0px, env(safe-area-inset-right));
}
.wrap{
  padding-left:max(clamp(12px,4vw,20px), env(safe-area-inset-left));
  padding-right:max(clamp(12px,4vw,20px), env(safe-area-inset-right));
}
