@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&display=swap');

/* ============================================================
   TRAMS Finance — Meridia-style design system
   Full rewrite. Maps existing template classes 1:1.
   ============================================================ */
:root{
  --main:#ffffff; --canvas:#ffffff; --side:#f7f8fa; --border:#e8eaed; --border2:#d9dde1;
  --green:#22c55e; --green-d:#16a34a; --green-soft:#e3f5ec; --green-pill:#dcf6e8;
  --navy:#1a2340; --body:#3c4149; --muted:#9aa0a6; --head:#6b7280;
  --gray-pill:#edeff2; --row:#eef0f2;
  --cyan-bg:#d9f1fb; --cyan-tx:#1b9fd1; --blue-bg:#e0eefc; --blue-tx:#3b82f6;
  --amber-bg:#fef3d7; --amber-tx:#b7791f; --red-bg:#fdecec; --red-tx:#d64545;
  --sidebar-w:186px; --sidebar-rail:64px;
  --radius:12px; --shadow:0 1px 2px rgba(16,24,40,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--main); color:var(--body); font-size:13px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
  padding-left:var(--sidebar-w); transition:padding-left .18s ease;
}
a{color:inherit;text-decoration:none}
small{font-size:11px}
h1,h2,h3{color:var(--navy);margin:0}

/* ============================================================
   SIDEBAR  (.topnav)
   ============================================================ */
.topnav{
  position:fixed; top:0; left:0; width:var(--sidebar-w); height:100vh;
  background:var(--side); border-right:1px solid var(--border);
  display:flex; flex-direction:column; padding:16px 12px 12px; z-index:40;
  overflow-y:auto; transition:width .18s ease, transform .18s ease;
}
.topnav::-webkit-scrollbar{width:6px}
.topnav::-webkit-scrollbar-thumb{background:#dfe3e8;border-radius:3px}
.brand{
  padding:4px 8px 6px; font-size:18px; font-weight:600; color:var(--navy);
  letter-spacing:-.4px; line-height:1.05;
}
.brand span{display:block;font-size:12.5px;font-weight:600;color:var(--green-d);margin-top:2px}
.nav-section{
  display:block; font-size:10.5px; font-weight:600; color:var(--muted);
  letter-spacing:.02em; padding:15px 9px 5px;
}
.topnav a{
  display:flex; align-items:center; gap:9px; height:33px; padding:0 10px;
  border-radius:8px; color:var(--body); font-size:12.5px; font-weight:500;
  white-space:nowrap; margin-bottom:1px;
}
.topnav a:hover{background:#eef0f2}
.topnav a.active{background:var(--green-soft);color:var(--navy);font-weight:600}
.nav-spacer{flex:1;min-height:8px}
.user-badge{
  display:flex; align-items:center; gap:9px; border-top:1px solid var(--border);
  padding:11px 8px 6px; margin-top:6px; line-height:1.3;
}
.user-badge .avatar{
  width:30px;height:30px;border-radius:8px;background:var(--green-soft);
  display:grid;place-items:center;font-size:14px;flex:none;
}
.user-badge>span{display:flex;flex-direction:column;font-size:12.5px;font-weight:600;color:var(--navy)}
.user-badge>span small{font-size:10.5px;font-weight:500;color:var(--muted)}
.logout{
  display:block; text-align:left; padding:8px 10px; margin-top:2px;
  font-size:12px; font-weight:500; color:var(--head); border-radius:8px;
}
.logout:hover{background:#eef0f2;color:var(--red-tx)}

/* sidebar toggle button (injected by JS) */
.sidebar-toggle{
  position:fixed; left:calc(var(--sidebar-w) - 13px); top:18px; z-index:60;
  width:26px;height:26px;border-radius:50%; border:1px solid var(--border);
  background:#fff; color:var(--head); cursor:pointer; box-shadow:var(--shadow);
  display:grid;place-items:center;font-size:14px;line-height:1;
  transition:left .18s ease;
}
.sidebar-toggle:hover{color:var(--green-d);border-color:var(--green)}

/* collapsed = mini rail */
body.sidebar-collapsed{padding-left:var(--sidebar-rail)}
body.sidebar-collapsed .topnav{width:var(--sidebar-rail);padding:16px 8px 12px}
body.sidebar-collapsed .brand{font-size:16px;text-align:center;padding:4px 0 6px}
body.sidebar-collapsed .brand span{display:none}
body.sidebar-collapsed .nav-section{display:none}
body.sidebar-collapsed .topnav a{justify-content:center;padding:0;font-size:0;height:36px}
body.sidebar-collapsed .user-badge>span,
body.sidebar-collapsed .logout{display:none}
body.sidebar-collapsed .user-badge{justify-content:center;padding:11px 0 6px}
body.sidebar-collapsed .sidebar-toggle{left:calc(var(--sidebar-rail) - 13px)}

/* ============================================================
   TOP BAR / HEROES
   ============================================================ */
.list-hero{
  display:flex; align-items:center; gap:12px;
  padding:20px 26px 14px;
}
.list-hero>div:first-child{display:flex;align-items:center;gap:11px}
.list-hero h1{font-size:22px;font-weight:600;letter-spacing:-.5px}
.count-pill{
  background:var(--green); color:#fff; font-size:12px; font-weight:600;
  padding:3px 10px; border-radius:999px;
}
.view-tabs{display:flex;background:#eef0f2;border-radius:9px;padding:3px;margin-left:auto}
.view-tabs button{
  border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:600;
  color:var(--head);padding:6px 16px;border-radius:6px;cursor:pointer;
}
.view-tabs button.active{background:#fff;color:var(--green-d);box-shadow:var(--shadow)}

/* editorial hero (overview + project detail) */
.hero{padding:22px 26px 6px}
.hero .eyebrow{
  font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--green-d);margin-bottom:8px;
}
.hero h1{font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.5px}
.hero h1 b{font-weight:600}
.hero p{color:var(--head);max-width:640px;margin:8px 0 0;font-size:13px}
.project-hero{position:relative}
.project-export-actions{position:absolute;top:24px;right:26px;display:flex;gap:9px}

/* ============================================================
   MAIN CONTAINER
   ============================================================ */
main{padding:0 26px 40px;max-width:1500px}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 16px;
  border-radius:999px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.02em;
  cursor:pointer;border:1px solid transparent;white-space:nowrap;
}
.btn.primary{background:var(--green);color:#fff;box-shadow:0 1px 2px rgba(34,197,94,.3)}
.btn.primary:hover{background:#1eb054}
.btn.ghost{background:#fff;color:var(--body);border-color:var(--border2)}
.btn.ghost:hover{border-color:var(--muted)}
.btn.ghost.danger,.btn.danger{color:var(--red-tx);border-color:#f2c9c9}
.btn.ghost.danger:hover{background:var(--red-bg)}
.add-project-btn{margin-left:auto}

/* ============================================================
   PROJECT LIST TABLE  (.plist-row grid)
   ============================================================ */
.project-list-panel{margin-top:2px}
.list-toolbar{display:flex;align-items:flex-end;gap:12px;padding:6px 0 14px}
.filter-bar{display:flex;gap:10px;flex:1;flex-wrap:wrap}
.filter-bar input,.filter-bar select{
  height:34px;border:1px solid var(--border2);border-radius:8px;background:#fff;
  font:inherit;font-size:12.5px;color:var(--body);padding:0 11px;min-width:150px;
}
.filter-bar input::placeholder{color:var(--muted)}
.filter-bar input:focus,.filter-bar select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}

.project-form{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;margin-bottom:12px;
}
.project-form input{height:36px;border:1px solid var(--border2);border-radius:8px;padding:0 11px;font:inherit;font-size:12.5px}
.project-form input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}

.project-list-table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff}
.plist-row{
  display:grid;
  grid-template-columns:2.4fr 1.2fr 1.4fr .9fr 1.1fr 1.1fr 1.1fr .8fr .9fr 70px;
  align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--row);
}
.plist-head{
  background:#fbfcfd;font-size:10.5px;font-weight:600;color:var(--head);
  text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);
}
.plist-head div{white-space:nowrap}
.project-row:hover{background:#fafbfc}
.project-row:last-child{border-bottom:0}
.plist-row>div{min-width:0}
.plist-row b{font-size:12.5px;font-weight:600;color:var(--navy);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plist-row small{display:block;font-size:11px;color:var(--muted);margin-top:1px}
.money-pill,.roi-pill{
  display:inline-flex;align-items:center;border-radius:999px;font-size:11.5px;
  font-weight:600;padding:3px 11px;white-space:nowrap;
}
.money-pill{background:var(--gray-pill);color:var(--navy)}
.roi-pill{background:var(--green-pill);color:var(--green-d)}
.pill{
  display:inline-flex;align-items:center;border-radius:999px;font-size:10.5px;
  font-weight:600;text-transform:uppercase;letter-spacing:.02em;padding:4px 11px;
}
.pill.active{background:var(--green-pill);color:var(--green-d)}
.pill.closing{background:var(--cyan-bg);color:var(--cyan-tx)}
.pill.done{background:var(--gray-pill);color:var(--head)}
.row-actions{display:flex;justify-content:flex-end}
.results-btn{
  display:inline-flex;align-items:center;height:28px;padding:0 14px;border-radius:7px;
  background:var(--navy);color:#fff;font-size:10.5px;font-weight:600;letter-spacing:.04em;
}
.results-btn:hover{background:#2a3557}
.cf-empty{padding:26px 16px;text-align:center;color:var(--muted);font-size:12.5px}

/* ============================================================
   METRIC CARDS  (.metrics / .metric)
   ============================================================ */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:16px 0 4px}
.metric{
  background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;
  position:relative;overflow:hidden;
}
.metric::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:transparent}
.metric.warn::before{background:#e6a817}
.metric.good::before{background:var(--green)}
.metric>span{display:block;font-size:11.5px;color:var(--head);font-weight:500}
.metric>b{display:block;font-size:22px;font-weight:600;color:var(--navy);margin:6px 0 3px;letter-spacing:-.5px}
.metric.warn>b{color:#c98a12}
.metric.good>b{color:var(--green-d)}
.metric>small{color:var(--muted);font-size:11px}

/* ============================================================
   PANELS / SECTIONS
   ============================================================ */
.panel{
  background:#fff;border:1px solid var(--border);border-radius:14px;
  padding:20px 22px;margin:16px 0;
}
.section-head{margin-bottom:14px}
.section-head h2{font-size:16px;font-weight:600;letter-spacing:-.3px}
.section-head p{color:var(--head);font-size:12.5px;margin:4px 0 0}

/* reveal anim */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}
.reveal.in{opacity:1;transform:none}

/* ============================================================
   GENERIC GRID TABLES (term / rab / pnl / roi)
   ============================================================ */
.grid-outline{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.c-num{text-align:right;font-variant-numeric:tabular-nums}
.c-unit{text-align:center}
.c-no{text-align:center;color:var(--muted)}

/* term summary strip */
.term-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}
.term-summary>div{background:#fbfcfd;border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.term-summary span{font-size:11px;color:var(--head)}
.term-summary b{display:block;font-size:16px;font-weight:600;color:var(--navy);margin-top:3px}
.term-summary small{font-size:11px;color:var(--muted)}
.term-summary .warn b{color:#c98a12}
.term-summary .good b{color:var(--green-d)}
.term-alert{background:#fff8e8;border:1px solid #f4e0a8;color:#9a7414;padding:9px 13px;border-radius:9px;font-size:12px;margin:0 0 12px}
.term-alert.danger{background:var(--red-bg);border-color:#f2c9c9;color:var(--red-tx)}
.term-templates{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}

.term-form,.rab-form{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:11px;
  padding:16px;margin-bottom:12px;
}
.rf{display:flex;flex-direction:column;gap:4px}
.rf-wide{grid-column:span 2}
.rf label{font-size:11px;font-weight:600;color:var(--head)}
.rf input,.rf select{height:34px;border:1px solid var(--border2);border-radius:8px;padding:0 10px;font:inherit;font-size:12.5px;background:#fff}
.rf input:focus,.rf select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.rf-actions{flex-direction:row;align-items:flex-end;gap:9px}
.meta-actions{grid-column:1/-1}

.term-table,.rab-table{margin:0}
.term-tr,.rab-tr{
  display:grid;align-items:center;gap:10px;padding:11px 14px;
  border-bottom:1px solid var(--row);font-size:12.5px;
}
.term-tr{grid-template-columns:1.4fr 1.4fr .6fr 1.1fr 1fr 1.1fr 1.1fr .9fr .9fr}
.rab-tr{grid-template-columns:44px 2.4fr .7fr .6fr 1.1fr 1.1fr 1.3fr 1.4fr}
.term-head,.rab-head{
  background:#fbfcfd;font-size:10.5px;font-weight:600;color:var(--head);
  text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);
}
.term-tr:last-child,.rab-tr:last-child{border-bottom:0}
.term-tr b,.rab-tr b{color:var(--navy);font-weight:600}
.term-tr small{display:block;color:var(--muted);font-size:11px}
.c-desc{color:var(--body)}
.c-amount{font-weight:600;color:var(--navy)}
.status-pill{display:inline-flex;background:var(--gray-pill);color:var(--head);border-radius:999px;font-size:10.5px;font-weight:600;padding:3px 10px}
.c-act,.c-nota{display:flex;gap:6px;flex-wrap:wrap}
.c-act button,.c-nota button,.sub-view{
  border:1px solid var(--border2);background:#fff;border-radius:7px;font:inherit;
  font-size:11px;font-weight:600;color:var(--body);padding:4px 9px;cursor:pointer;
}
.c-act button:hover,.c-nota button:hover,.sub-view:hover{border-color:var(--green);color:var(--green-d)}
.c-act .del{color:var(--red-tx);border-color:#f2c9c9}
.c-act .del:hover{background:var(--red-bg)}
.muted-note{color:var(--muted);font-size:11px}
.rab-group{margin-bottom:16px}
.rab-group h3{font-size:13px;font-weight:600;color:var(--navy);margin:0 0 8px;padding-left:2px}
.rab-sub{background:#f6faf7;font-weight:600}
.rab-sub .c-amount{color:var(--green-d)}
.rab-empty div,.term-empty div{color:var(--muted);font-size:12px;padding:4px 0}
.rab-filter{display:flex;gap:10px;padding:12px 14px;margin-bottom:14px;flex-wrap:wrap}
.rab-filter input,.rab-filter select{height:34px;border:1px solid var(--border2);border-radius:8px;padding:0 11px;font:inherit;font-size:12.5px;flex:1;min-width:150px}

/* PNL / ROI tables */
.pnl-tr,.roi-tr{display:grid;gap:10px;padding:11px 16px;border-bottom:1px solid var(--row);font-size:12.5px;align-items:center}
.pnl-tr{grid-template-columns:2.4fr 1.2fr 1fr}
.roi-tr{grid-template-columns:1.4fr 1.8fr 1fr}
.pnl-head,.roi-head{background:#fbfcfd;font-size:10.5px;font-weight:600;color:var(--head);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border)}
.pnl-tr:last-child,.roi-tr:last-child{border-bottom:0}
.neg-row{color:var(--red-tx)}
.pnl-mid{background:#fbfcfd;font-weight:600}
.pnl-net,.roi-hi{background:var(--green-soft)}
.pnl-net b,.roi-hi b{color:var(--green-d)}
.pnl-note{color:var(--head);font-size:11.5px;margin:12px 0 0;line-height:1.6}

/* ============================================================
   OVERVIEW CHARTS
   ============================================================ */
.pie-wrap{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:center}
.pie-label{font-size:11px;font-weight:600;color:var(--head);display:block;margin-bottom:6px}
.pie-select{width:100%;height:36px;border:1px solid var(--border2);border-radius:8px;padding:0 10px;font:inherit;font-size:12.5px;margin-bottom:12px}
.pie-legend{display:flex;flex-direction:column;gap:4px}
.legend-item{display:flex;align-items:center;gap:8px;border:0;background:transparent;font:inherit;font-size:12px;color:var(--body);padding:5px 7px;border-radius:7px;cursor:pointer;text-align:left}
.legend-item:hover{background:#f4f6f9}
.legend-item.off{opacity:.4;text-decoration:line-through}
.legend-item .dot{width:11px;height:11px;border-radius:3px;flex:none}
.legend-item .lg-lab{flex:1}
.legend-item .lg-val{font-weight:600;color:var(--navy)}
.pie-canvas-wrap{max-width:340px;margin:0 auto}
.bar-card{margin-top:22px;border-top:1px solid var(--border);padding-top:18px}
.bar-card h3{font-size:13px;font-weight:600;margin-bottom:10px}

/* activity table */
.table{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.tr{display:grid;grid-template-columns:1.4fr 1fr .8fr 1fr 1.4fr;gap:10px;padding:11px 16px;border-bottom:1px solid var(--row);font-size:12.5px}
.tr.head{background:#fbfcfd;font-size:10.5px;font-weight:600;color:var(--head);text-transform:uppercase;letter-spacing:.03em}
.tr:last-child{border-bottom:0}

/* ============================================================
   MESSAGES
   ============================================================ */
.cf-msg{font-size:12px;margin:8px 0 0;min-height:16px}
.cf-msg.ok{color:var(--green-d)}
.cf-msg.err{color:var(--red-tx)}

/* ============================================================
   MODALS
   ============================================================ */
.modal{position:fixed;inset:0;background:rgba(16,24,40,.45);display:flex;align-items:center;justify-content:center;z-index:80;padding:20px}
.modal-card{background:#fff;border-radius:16px;padding:22px;max-width:760px;width:100%;max-height:88vh;overflow:auto;position:relative;box-shadow:0 20px 50px rgba(16,24,40,.25)}
.modal-x{position:absolute;top:14px;right:16px;border:0;background:#f2f4f7;width:30px;height:30px;border-radius:50%;font-size:18px;color:var(--head);cursor:pointer}
.modal-card h3{font-size:16px;font-weight:600;margin-bottom:10px}
.nota-img{max-width:100%;border-radius:10px;margin:10px 0}
.sub-sub{color:var(--head);font-size:12.5px;margin-bottom:12px}
.sub-table{border:1px solid var(--border);border-radius:10px;overflow:hidden}
.sub-tr{display:grid;grid-template-columns:44px 2fr .8fr .6fr 1.1fr 1.4fr 1.1fr;gap:8px;padding:9px 12px;border-bottom:1px solid var(--row);font-size:12px;align-items:center}
.sub-h{background:#fbfcfd;font-size:10px;font-weight:600;color:var(--head);text-transform:uppercase}
.sub-total{background:var(--green-soft);font-weight:600}
.sub-calc{color:var(--head);font-size:11px}
.sub-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
.sub-pager button{border:1px solid var(--border2);background:#fff;border-radius:8px;padding:6px 12px;font:inherit;font-size:12px;cursor:pointer}
.sub-pager button:disabled{opacity:.4;cursor:not-allowed}
.sub-note{font-size:11.5px;color:var(--head);margin-top:12px;line-height:1.6}

/* ============================================================
   AI CHAT WIDGET
   ============================================================ */
.ai-chat-widget{position:fixed;right:22px;bottom:22px;z-index:70}
.ai-fab{width:54px;height:54px;border-radius:50%;border:0;background:var(--green);color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 8px 24px rgba(34,197,94,.4)}
.ai-panel{width:340px;height:460px;background:#fff;border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px rgba(16,24,40,.22)}
.ai-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}
.ai-head b{font-size:13px;color:var(--navy)}
.ai-head small{display:block;font-size:11px;color:var(--muted)}
.ai-head button{border:0;background:transparent;font-size:20px;color:var(--head);cursor:pointer}
.ai-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:9px}
.ai-msg{max-width:85%;padding:9px 12px;border-radius:12px;font-size:12.5px;line-height:1.5;white-space:pre-wrap}
.ai-msg.bot{background:#f2f4f7;color:var(--body);align-self:flex-start}
.ai-msg.user{background:var(--green);color:#fff;align-self:flex-end}
.ai-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}
.ai-form input{flex:1;height:36px;border:1px solid var(--border2);border-radius:9px;padding:0 12px;font:inherit;font-size:12.5px}
.ai-form button{border:0;background:var(--green);color:#fff;border-radius:9px;padding:0 16px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}

/* ============================================================
   FOOTER
   ============================================================ */
footer{padding:18px 26px;color:var(--muted);font-size:11.5px;border-top:1px solid var(--border);margin-top:20px}

/* ============================================================
   LOGIN
   ============================================================ */
body.login-body{padding-left:0;background:var(--side);display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:34px;width:100%;max-width:380px;box-shadow:0 12px 40px rgba(16,24,40,.1)}
.login-card .brand{text-align:center;padding:0 0 6px}
.login-card h1{font-size:19px;text-align:left;margin-bottom:20px}
.login-card input{width:100%;height:40px;border:1px solid var(--border2);border-radius:9px;padding:0 12px;font:inherit;font-size:13px;margin-bottom:11px}
.login-card input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.login-card .btn{width:100%;justify-content:center}
.login-err{color:var(--red-tx);font-size:12px;text-align:center;margin-bottom:10px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1100px){
  .pie-wrap{grid-template-columns:1fr}
  .plist-row{grid-template-columns:2fr 1fr 1fr .9fr .9fr 70px}
  .plist-row>div:nth-child(6),.plist-row>div:nth-child(7),.plist-row>div:nth-child(8){display:none}
}
@media(max-width:720px){
  body{padding-left:0}
  .topnav{transform:translateX(-100%)}
  body.sidebar-collapsed .topnav{transform:translateX(0);width:var(--sidebar-w);padding:16px 12px 12px}
  .sidebar-toggle{left:10px}
}

/* ============================================================
   PROJECT DETAIL — Results-style tab bar + dataset meta
   ============================================================ */
.result-tabbar{display:flex;gap:2px;padding:0 26px;border-bottom:1px solid var(--border);margin-top:4px}
.result-tabbar .rt{
  padding:11px 16px;font-size:11.5px;font-weight:600;letter-spacing:.04em;
  color:var(--head);border-bottom:2px solid transparent;margin-bottom:-1px;
}
.result-tabbar .rt:hover{color:var(--navy)}
.result-tabbar .rt.active{color:var(--green-d);border-bottom-color:var(--green)}
.dataset-meta{
  display:flex;flex-wrap:wrap;gap:26px;padding:16px 26px;border-bottom:1px solid var(--border);
  background:#fbfcfd;
}
.dataset-meta .dm{display:flex;flex-direction:column;gap:3px}
.dataset-meta .dm span{font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.04em}
.dataset-meta .dm b{font-size:13.5px;font-weight:600;color:var(--navy)}
.dataset-meta .dm b.dm-green{color:var(--green-d)}

/* ============================================================
   LOGIN (split layout classes)
   ============================================================ */
.login-split-body{padding-left:0;background:var(--side);display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0}
.login-shell{display:flex;width:100%;max-width:900px;min-height:520px;background:#fff;border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:0 20px 60px rgba(16,24,40,.12)}
.login-panel{flex:1;padding:40px 44px;display:flex;flex-direction:column}
.login-brand{font-size:22px;font-weight:600;color:var(--navy);letter-spacing:-.5px;margin-bottom:auto}
.login-brand span{color:var(--green-d)}
.login-card-clean{display:flex;flex-direction:column;margin:24px 0}
.login-card-clean h1{font-size:24px;font-weight:600;margin-bottom:4px;text-align:left}
.login-card-clean p{color:var(--head);font-size:13px;margin:0 0 20px}
.login-card-clean label{font-size:11.5px;font-weight:600;color:var(--head);margin-bottom:5px}
.login-card-clean>input{height:42px;border:1px solid var(--border2);border-radius:10px;padding:0 13px;font:inherit;font-size:13px;margin-bottom:14px}
.login-card-clean>input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.remember-row{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--body);margin-bottom:18px}
.remember-row input{width:auto;height:auto;margin:0}
.login-card-clean button{height:44px;border:0;background:var(--green);color:#fff;border-radius:10px;font:inherit;font-size:13px;font-weight:600;letter-spacing:.05em;cursor:pointer}
.login-card-clean button:hover{background:#1eb054}
.forgot-link{display:block;text-align:center;font-size:11px;font-weight:600;color:var(--head);margin-top:14px;letter-spacing:.04em}
.login-card-clean .error{background:var(--red-bg);color:var(--red-tx);font-size:12px;padding:9px 12px;border-radius:9px;margin-bottom:14px;text-align:center}
.login-footer{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:auto;padding-top:20px}
.login-photo{flex:1;background:linear-gradient(135deg,#16a34a,#0f7a37);position:relative}
.login-photo::after{content:"TRAMS Finance";position:absolute;bottom:34px;left:34px;color:rgba(255,255,255,.9);font-size:20px;font-weight:600;letter-spacing:-.3px}
@media(max-width:760px){.login-photo{display:none}.login-shell{max-width:420px}}

/* ============================================================
   MOCK-BASED PROJECTS PAGE  (.app / .sidebar / table)
   This is the layout Ferry approved. Coexists with .topnav pages.
   ============================================================ */
body:has(.app){padding-left:0;background:var(--main)}
.app{display:flex;min-height:100vh}

.sidebar{width:186px;flex:none;background:var(--side);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px 12px;position:sticky;top:0;height:100vh}
.sidebar .logo{padding:4px 8px}
.sidebar .logo b{display:block;font-size:18px;font-weight:600;color:var(--navy);letter-spacing:-.4px;line-height:1}
.sidebar .logo span{display:block;font-size:12.5px;font-weight:600;color:var(--green-d);margin-top:2px}
.nav-group{font-size:10.5px;font-weight:600;color:var(--muted);letter-spacing:.02em;padding:16px 8px 6px}
.nav-item{display:flex;align-items:center;gap:9px;height:33px;padding:0 9px;border-radius:8px;color:#3c4149;font-size:12.5px;font-weight:500;cursor:pointer;position:relative;text-decoration:none}
.nav-item svg{width:16px;height:16px;stroke:#5f6b7a;fill:none;flex:none}
.nav-item:hover{background:#eef0f2}
.nav-item.active{background:var(--green-soft);color:var(--navy);font-weight:600}
.nav-item.active svg{stroke:var(--green-d)}
.nav-item .plus{margin-left:auto;width:18px;height:18px;border-radius:5px;background:var(--green);display:grid;place-items:center;cursor:pointer}
.nav-item .plus svg{width:12px;height:12px;stroke:#fff}
.sidebar .nav-spacer{flex:1}
.sidebar .user{border-top:1px solid var(--border);padding:11px 8px 4px;margin-top:8px;display:flex;align-items:center;gap:9px}
.sidebar .user .who{flex:1;line-height:1.3}
.sidebar .user .who .org{font-size:10.5px;color:var(--muted)}
.sidebar .user .who .nm{font-size:12.5px;font-weight:600;color:var(--navy)}
.sidebar .user .who .rl{font-size:10.5px;color:var(--muted)}
.sidebar .user .lo{width:16px;height:16px;stroke:var(--muted);fill:none}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:14px;padding:18px 22px 16px}
.topbar h1{font-size:22px;font-weight:600;color:var(--navy);letter-spacing:-.5px}
.topbar .count{background:var(--green);color:#fff;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px}
.tb-spacer{flex:1}
.seg{display:flex;background:#eef0f2;border-radius:8px;padding:3px}
.seg button{border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:600;color:#6b7280;padding:5px 15px;border-radius:6px;cursor:pointer}
.seg button.on{background:#fff;color:var(--green-d);box-shadow:0 1px 2px rgba(16,24,40,.08)}
.select-btn{height:36px;border:1px solid var(--border2);border-radius:8px;background:#fff;color:var(--muted);font:inherit;font-size:12.5px;padding:0 12px;display:flex;align-items:center;gap:8px;cursor:pointer}
.select-btn svg{width:14px;height:14px;stroke:var(--muted);fill:none}
.add-btn{height:36px;border:0;border-radius:999px;background:var(--green);color:#fff;font:inherit;font-size:12px;font-weight:600;letter-spacing:.02em;padding:0 18px;display:flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 1px 2px rgba(34,197,94,.3)}
.add-btn svg{width:14px;height:14px;stroke:#fff;fill:none}

.table-wrap{padding:0 22px;flex:1;overflow-x:auto}
.table-wrap table{width:100%;border-collapse:collapse;min-width:940px;table-layout:auto}
.table-wrap thead th{text-align:left;font-size:10.5px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;padding:10px 10px;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle}
.table-wrap thead th.num,.table-wrap tbody td.num{text-align:right}
.table-wrap thead th.num .th{justify-content:flex-end}
.table-wrap thead th .th{display:flex;align-items:center;gap:4px}
.sort{display:inline-flex;line-height:.6;color:#c3c8ce;font-size:9px}
.sort.active{color:var(--green-d)}
.filter-row td{padding:8px 12px 12px;border-bottom:1px solid var(--border)}
.finput{width:100%;height:31px;border:1px solid var(--border2);border-radius:7px;background:#fff;font:inherit;font-size:12px;color:var(--body);padding:0 10px}
.finput::placeholder{color:var(--muted)}
.fsearch{position:relative}
.fsearch svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--muted);fill:none}
.fsearch input{padding-left:30px}
.fselect{position:relative}
.fselect svg{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:12px;height:12px;stroke:var(--muted);fill:none;pointer-events:none}
.fselect select{appearance:none;-webkit-appearance:none;padding-right:26px;cursor:pointer}
.table-wrap tbody td{padding:11px 10px;border-bottom:1px solid var(--row);font-size:12.5px;color:var(--body);vertical-align:middle;white-space:nowrap}
.table-wrap tbody tr{cursor:pointer}
.table-wrap tbody tr:hover{background:#fafbfc}
.pname{font-weight:600;color:var(--navy);white-space:normal;max-width:280px;line-height:1.35}
.pname .pid{color:var(--muted);font-weight:400;font-size:11.5px}
.psub{color:var(--muted);font-size:11px;margin-top:2px}
.table-wrap .pill{display:inline-flex;align-items:center;justify-content:flex-end;border-radius:999px;font-size:11.5px;font-weight:600;padding:4px 11px;white-space:nowrap;text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}
.table-wrap .pill.money{background:var(--gray-pill);color:var(--navy)}
.table-wrap .pill.net{background:var(--green-pill);color:var(--green-d)}
.table-wrap .pill.roi{background:var(--green-pill);color:var(--green-d)}
.st{display:inline-flex;align-items:center;border-radius:999px;font-size:10.5px;font-weight:600;text-transform:uppercase;padding:4px 12px;letter-spacing:.02em}
.st.active,.st.verified{background:var(--green-pill);color:var(--green-d)}
.st.closing,.st.verifying{background:var(--cyan-bg);color:var(--cyan-tx)}
.st.done{background:var(--gray-pill);color:var(--head)}
.st.preparing{background:var(--blue-bg);color:var(--blue-tx)}
.st.review{background:var(--amber-bg);color:var(--amber-tx)}
.row-view .results-btn{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:7px;background:var(--navy);color:#fff;font-size:10px;font-weight:600;letter-spacing:.04em}
.row-view .results-btn:hover{background:#2a3557}

.pager{display:flex;align-items:center;justify-content:center;gap:6px;padding:20px 0 26px}
.pager button{border:0;background:transparent;font:inherit;font-size:13px;color:var(--head);width:30px;height:30px;border-radius:999px;cursor:pointer;display:grid;place-items:center}
.pager button:hover{background:#f2f4f7}
.pager button.on{background:var(--green);color:#fff;font-weight:700;box-shadow:none}
.pager button svg{width:15px;height:15px;stroke:var(--muted);fill:none}

.ov-pad{padding:0 22px 30px}
.main .cf-empty{padding:26px;text-align:center;color:var(--muted)}
.main .project-form{margin:0 22px 8px}
.main .cf-msg{padding:0 22px}

/* ============================================================
   CASHFLOW page
   ============================================================ */
.cf-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}
.cf-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:3px}
.cf-card span{font-size:11.5px;color:var(--muted);font-weight:600}
.cf-card b{font-size:20px;font-weight:600;color:var(--navy);letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.cf-card small{font-size:11px;color:var(--muted)}
.cf-card.in{border-left:3px solid var(--green)}
.cf-card.in b{color:var(--green-d)}
.cf-card.out{border-left:3px solid #ef8a4b}
.cf-card.out b{color:#d9772e}
.table-wrap.flat{padding:0;overflow-x:auto}
.table-wrap.flat table{min-width:820px}
.pill.warn{background:#fdeee2;color:#c76a25}
.cf-bar{height:7px;border-radius:99px;background:#eef0f2;overflow:hidden}
.cf-bar span{display:block;height:100%;background:var(--green);border-radius:99px}
.cf-bar-lbl{font-size:10.5px;color:var(--muted);font-weight:600;margin-top:3px}
.panel .table-wrap.flat{margin-top:4px}

/* ============================================================
   FORM CARD (RAB / termin add) — clearer layout
   ============================================================ */
.form-card{border:1px solid var(--border);border-radius:14px;background:#fff;margin-bottom:14px;overflow:hidden}
.form-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#fafbfc;border-bottom:1px solid var(--border)}
.form-card-head b{display:block;font-size:13.5px;font-weight:600;color:var(--navy)}
.form-card-head span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.add-btn.sm{height:32px;padding:0 14px;font-size:11px}
.field-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px 14px;padding:16px}
.field-grid .rf-wide{grid-column:span 3}
.field-grid .rf-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px solid var(--border);padding-top:14px;margin-top:2px}
.rf label em{color:var(--green-d);font-style:normal}
@media(max-width:900px){.field-grid{grid-template-columns:repeat(2,1fr)}.field-grid .rf-wide{grid-column:span 2}}

/* ============================================================
   PROJECT DETAIL — Meridia "Results" style header
   ============================================================ */
.app > .main{padding:0}
.rtabs{display:flex;gap:4px;padding:14px 26px 0;border-bottom:1px solid #E7E9EE;background:#fff;position:sticky;top:0;z-index:20}
.rtab{display:inline-flex;align-items:center;gap:7px;padding:11px 15px;font-size:12px;font-weight:600;letter-spacing:.4px;color:#8A9099;text-decoration:none;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.rtab svg{width:15px;height:15px;stroke:currentColor}
.rtab:hover{color:#1A2340}
.rtab.active{color:#16A34A;border-bottom-color:#16A34A}

.ds-head{background:#fff;border:1px solid #E7E9EE;border-radius:12px;margin:22px 26px 0;padding:20px 22px;box-shadow:0 1px 3px rgba(16,24,40,.05)}
.ds-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.ds-title{font-size:17px;font-weight:600;color:#1A2340}
.ds-id{color:#16A34A;font-weight:600}
.ds-sub{font-size:12.5px;color:#8A9099;margin-top:4px}
.ds-sub b{color:#3A4048;font-weight:600}
.export-as{display:inline-flex;align-items:center;gap:8px;background:#16A34A;color:#fff;font-size:12px;font-weight:600;letter-spacing:.4px;padding:9px 15px;border-radius:8px;text-decoration:none;white-space:nowrap}
.export-as svg{width:15px;height:15px;stroke:#fff}
.export-as:hover{background:#12833c}
.ds-meta{display:flex;flex-wrap:wrap;gap:26px;margin-top:18px;padding-top:16px;border-top:1px solid #EEF0F3}
.ds-m{display:flex;flex-direction:column;gap:6px}
.ds-m>span{font-size:10px;font-weight:600;letter-spacing:.6px;color:#9AA0A6}
.ds-m>b{font-size:13px;color:#1A2340;font-weight:600}
.pillv{display:inline-flex;align-items:center;gap:6px;background:#F1F3F6;border-radius:6px;padding:4px 9px;font-size:12px}
.pillv svg{width:13px;height:13px;stroke:#6B7280}

.ds-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 26px 0}
.ds-card{background:#fff;border:1px solid #E7E9EE;border-radius:12px;padding:20px 22px;box-shadow:0 1px 3px rgba(16,24,40,.05)}
.ds-card-h{font-size:14.5px;font-weight:600;color:#1A2340;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.ds-card-r{font-size:12.5px;color:#9AA0A6;font-weight:400}
.ds-card-r b{color:#16A34A;font-weight:600}
.ds-card-sub{display:block;font-size:12px;color:#9AA0A6;font-weight:400;margin-top:4px}

.riskbar{display:flex;height:10px;border-radius:5px;overflow:hidden;margin:18px 0 16px;background:#EEF0F3}
.riskbar span{height:100%}
.risk-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rl-item{display:flex;flex-direction:column;gap:8px}
.rl-top{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:600;letter-spacing:.4px;color:#6B7280}
.rl-top i{width:9px;height:9px;border-radius:50%;flex:none}
.rl-num{font-size:19px;font-weight:600;color:#1F2937}
.rl-num small{font-size:11px;color:#9CA3AF;font-weight:500;margin-left:2px;display:block;margin-top:2px}

.recl{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid #EEF0F3}
.recl-c{display:flex;flex-direction:column;gap:8px}
.recl-c>span{font-size:10.5px;font-weight:600;letter-spacing:.4px;color:#6B7280}
.recl-c>b{font-size:16px;font-weight:600;color:#1F2937}
.recl-c>b.pos{color:#16A34A}
.recl-c>b.warnv{color:#EA580C}

.donuts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}
.donut-tile{display:flex;align-items:center;gap:13px;padding:14px;border-radius:10px}
.donut-tile.hot{background:#F5F7F9}
.donut{--val:0;--c:#34D399;width:62px;height:62px;border-radius:50%;flex:none;
  background:conic-gradient(var(--c) calc(var(--val)*1%),#E9ECF1 0);
  display:grid;place-items:center;position:relative}
.donut::before{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%}
.donut-tile.hot .donut::before{background:#F5F7F9}
.donut b{position:relative;font-size:13px;font-weight:600;color:#1F2937}
.donut-cap{min-width:0}
.dc-h{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;letter-spacing:.3px;color:#6B7280;margin-bottom:5px}
.dc-h i{width:8px;height:8px;border-radius:50%;flex:none}
.dc-1{font-size:13.5px;font-weight:600;color:#1A2340;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-2{font-size:11px;color:#9CA3AF;margin-top:2px}

/* metrics/panels below need horizontal padding now they live in .main */
.app > .main > .metrics,.app > .main > .panel,.app > .main > section:not(.ds-head):not(.ds-card){margin-left:26px;margin-right:26px}
.app > .main > footer,footer{padding:18px 26px}

@media(max-width:900px){.ds-cards{grid-template-columns:1fr}.risk-legend,.recl,.donuts{grid-template-columns:1fr 1fr}}

/* ============================================================
   PROJECT DETAIL LAYOUT TIGHTENING — gutters / containment
   ============================================================ */
.project-detail-page .app > .main{
  padding:0 36px 34px;
  background:#fff;
  overflow-x:hidden;
}
.project-detail-page .rtabs{
  margin:0 -36px;
  padding-left:36px;
  padding-right:36px;
}
.project-detail-page .ds-head,
.project-detail-page .ds-cards,
.project-detail-page .app > .main > .ds-card,
.project-detail-page .app > .main > .metrics,
.project-detail-page .app > .main > .panel,
.project-detail-page .app > .main > section:not(.ds-head):not(.ds-card){
  width:100%;
  max-width:1160px;
  margin-left:auto;
  margin-right:auto;
}
.project-detail-page .ds-head{margin-top:22px;padding:22px 24px}
.project-detail-page .ds-cards{margin-top:20px;gap:20px}
.project-detail-page .app > .main > .ds-card{margin-top:20px}
.project-detail-page .metrics{margin-top:20px}
.project-detail-page .panel{margin-top:22px}
.project-detail-page .donuts{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.project-detail-page .donut-tile{
  min-height:96px;
  padding:16px 15px;
  border-radius:11px;
  background:#fff;
}
.project-detail-page .donut-tile.hot{background:#F5F7F9}
.project-detail-page .donut-cap{min-width:0;max-width:100%}
.project-detail-page .dc-1{font-size:13px;white-space:normal;line-height:1.25}
.project-detail-page .ds-card-h{align-items:flex-start;line-height:1.3}
.project-detail-page .ds-card-sub{
  max-width:520px;
  text-align:right;
  line-height:1.35;
}
@media(max-width:1180px){
  .project-detail-page .app > .main{padding-left:28px;padding-right:28px}
  .project-detail-page .rtabs{margin-left:-28px;margin-right:-28px;padding-left:28px;padding-right:28px}
  .project-detail-page .donuts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .project-detail-page .app > .main{padding-left:18px;padding-right:18px}
  .project-detail-page .rtabs{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px;overflow-x:auto}
  .project-detail-page .ds-cards,.project-detail-page .donuts{grid-template-columns:1fr}
  .project-detail-page .ds-card-sub{text-align:left;max-width:none}
}

/* ============================================================
   DASHBOARD TABLE — left aligned project names + filters all cols
   ============================================================ */
.table-wrap{padding:0 24px 0 24px;overflow-x:auto}
.table-wrap table{min-width:1320px;table-layout:fixed}
.table-wrap th:nth-child(1),.table-wrap td:nth-child(1){width:260px;text-align:left}
.table-wrap th:nth-child(2),.table-wrap td:nth-child(2){width:145px}
.table-wrap th:nth-child(3),.table-wrap td:nth-child(3){width:165px}
.table-wrap th:nth-child(4),.table-wrap td:nth-child(4){width:96px}
.table-wrap th:nth-child(5),.table-wrap td:nth-child(5){width:145px}
.table-wrap th:nth-child(6),.table-wrap td:nth-child(6){width:145px}
.table-wrap th:nth-child(7),.table-wrap td:nth-child(7){width:145px}
.table-wrap th:nth-child(8),.table-wrap td:nth-child(8){width:142px}
.table-wrap th:nth-child(9),.table-wrap td:nth-child(9){width:88px}
.table-wrap th:nth-child(10),.table-wrap td:nth-child(10){width:105px}
.table-wrap th:nth-child(11),.table-wrap td:nth-child(11){width:70px}
.pname{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px;max-width:none;line-height:1.25}
.pname-title{display:block;font-weight:650;color:var(--navy);font-size:12.8px;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none}
.pname .pid{display:block;color:#8A9099;font-weight:500;font-size:11.3px;white-space:nowrap}
.filter-row td{padding:8px 8px 12px}
.filter-row .finput{height:30px;font-size:11.3px;padding:0 7px;min-width:0;text-overflow:ellipsis}
.filter-row .fsearch .finput{padding-left:27px}
.filter-row .fselect svg{right:6px;width:13px;height:13px}
.filter-row .fselect select.finput{padding-right:20px;appearance:none}
.row-view{text-align:center}

/* Dashboard sortable headers + range filters */
.table-wrap thead th{ text-align:left !important; cursor:default; }
.table-wrap thead th.sortable{cursor:pointer;user-select:none}
.table-wrap thead th.sortable:hover .th{color:#1A2340}
.table-wrap thead th.num .th,.table-wrap thead th .th{justify-content:flex-start !important;text-align:left}
.table-wrap tbody td.num{text-align:right}
.sort{font-size:9px;margin-left:3px;color:#B9C0C8;transition:.15s}
.sort.active{color:#16A34A}
.range-filter{font-weight:500;color:#3A4048}

/* Dashboard row kebab menu (Meridia-style) */
.table-wrap th:nth-child(11),.table-wrap td:nth-child(11){width:118px}
.row-view{display:flex;align-items:center;justify-content:center;gap:7px;position:relative}
.row-menu{position:relative;display:inline-flex;align-items:center}
.dots-btn{width:28px;height:28px;border:1px solid #E3E7EC;background:#fff;border-radius:7px;color:#7B828D;font-size:13px;line-height:1;letter-spacing:-1px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transform:rotate(90deg)}
.dots-btn:hover{background:#F4F6F8;color:#1A2340;border-color:#D7DDE5}
.mini-menu{position:absolute;right:0;top:34px;z-index:60;width:164px;background:#fff;border:1px solid #E3E7EC;border-radius:10px;box-shadow:0 10px 28px rgba(16,24,40,.13);padding:6px;display:none;text-align:left}
.mini-menu.open{display:block}
.mini-menu a,.mini-menu button{width:100%;border:0;background:transparent;text-decoration:none;color:#303847;font:inherit;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:flex-start;padding:9px 10px;border-radius:7px;cursor:pointer;text-align:left}
.mini-menu a:hover,.mini-menu button:hover{background:#F4F6F8}
.mini-menu .danger{color:#DC2626}
.mini-menu .danger:hover{background:#FEF2F2}
.st.archived{background:#EDEFF2;color:#6B7280}

/* Table grid continuity + filled-shape text contrast */
.table-wrap tbody td{border-bottom:1px solid var(--border) !important}
.table-wrap tbody tr:last-child td{border-bottom:1px solid var(--border) !important}
.row-view{display:table-cell !important;vertical-align:middle;text-align:center;position:relative;white-space:nowrap}
.row-view .results-btn,.row-view .row-menu{display:inline-flex;vertical-align:middle}
.row-view .row-menu{margin-left:7px}
/* colored soft fills: use black text, not colored text */
.pill.roi,.pill.money,.pill.net,.st.active,.st.done,.st.closing,.st.review,.st.archived,.badge-inv{color:#111827 !important}
.pill.roi{background:#EAF7EF !important;border-color:#CBEEDD !important}
.st.active{background:#EAF7EF !important;border-color:#CBEEDD !important}

/* Softer pastel pills/status colors */
:root{
  --pastel-mint:#DFF8EA;
  --pastel-mint-border:#BEEFD2;
  --pastel-mint-dot:#22C55E;
  --pastel-sky:#E4F1FF;
  --pastel-sky-border:#C9E3FF;
  --pastel-sky-dot:#60A5FA;
}
.pill.roi,.st.active,.badge-inv{
  background:var(--pastel-mint) !important;
  border-color:var(--pastel-mint-border) !important;
  color:#111827 !important;
}
.results-btn,.btn-pdf,.export-as,.add-btn{
  background:#22C55E !important;
  color:#fff !important;
}
.results-btn:hover,.btn-pdf:hover,.export-as:hover,.add-btn:hover{background:#16A34A !important}
.donut.dc-4{
  background:conic-gradient(var(--pastel-sky-dot) var(--p),#EEF4FB 0) !important;
}
.donut.dc-4 + .dc-body .dc-dot,
.dc-dot.blue{background:var(--pastel-sky-dot) !important}
.pill.blue,.st.info{
  background:var(--pastel-sky) !important;
  border-color:var(--pastel-sky-border) !important;
  color:#111827 !important;
}

/* Meridia-style RESULTS action + vertical kebab */
.row-view{display:table-cell !important;vertical-align:middle;text-align:right;white-space:nowrap;position:relative}
.row-view .results-btn{
  height:30px !important;
  min-width:74px;
  padding:0 15px !important;
  border-radius:8px !important;
  background:#1B2540 !important;
  color:#fff !important;
  border:0 !important;
  font-size:10.5px !important;
  font-weight:600 !important;
  letter-spacing:.055em !important;
}
.row-view .results-btn:hover{background:#111827 !important}
.row-view .row-menu{display:inline-flex;vertical-align:middle;margin-left:14px;position:relative}
.dots-btn{
  width:24px !important;
  height:30px !important;
  border:0 !important;
  background:transparent !important;
  border-radius:8px !important;
  color:#1B2540 !important;
  font-size:0 !important;
  letter-spacing:0 !important;
  transform:none !important;
  position:relative;
}
.dots-btn::before{
  content:"";
  width:4px;height:4px;border-radius:50%;background:#1B2540;
  box-shadow:0 7px 0 #1B2540,0 -7px 0 #1B2540;
  display:block;
}
.dots-btn:hover{background:#F4F6F8 !important}
.mini-menu{right:0;top:34px}

/* Brighter/lighter pastel + smaller kebab */
:root{
  --pastel-mint:#ECFFF4;
  --pastel-mint-border:#D3F8E1;
  --pastel-mint-dot:#34D399;
  --pastel-sky:#F0F8FF;
  --pastel-sky-border:#D9ECFF;
  --pastel-sky-dot:#93C5FD;
}
.pill.roi,.st.active,.badge-inv{
  background:var(--pastel-mint) !important;
  border-color:var(--pastel-mint-border) !important;
}
.pill.blue,.st.info{
  background:var(--pastel-sky) !important;
  border-color:var(--pastel-sky-border) !important;
}
.donut.dc-4{background:conic-gradient(var(--pastel-sky-dot) var(--p),#F3F7FB 0) !important}
.dots-btn{width:18px !important;height:28px !important;padding:0 !important}
.dots-btn::before{
  width:3px !important;height:3px !important;
  box-shadow:0 6px 0 #1B2540,0 -6px 0 #1B2540 !important;
}
.row-view .row-menu{margin-left:9px !important}

/* Extra-light Meridia pill colors */
:root{
  --pastel-mint:#F2FFF8;
  --pastel-mint-border:#E1F9EA;
  --pastel-mint-dot:#86EFAC;
  --pastel-sky:#F5FBFF;
  --pastel-sky-border:#E3F2FF;
  --pastel-sky-dot:#BFDBFE;
}
.pill.roi,.st.active,.badge-inv{
  background:#F2FFF8 !important;
  border-color:#E1F9EA !important;
  color:#111827 !important;
}
.st.closing,.pill.blue,.st.info{
  background:#F5FBFF !important;
  border-color:#E3F2FF !important;
  color:#111827 !important;
}
.donut.dc-1,.donut.dc-2,.donut.dc-3{background:conic-gradient(#86EFAC var(--p),#F3F7FB 0) !important}
.donut.dc-4{background:conic-gradient(#BFDBFE var(--p),#F3F7FB 0) !important}

/* Vibrant pastel pills — brighter saturation, not pale-white */
:root{
  --pastel-mint:#CFFFE3;
  --pastel-mint-border:#8EF0B2;
  --pastel-mint-dot:#22C55E;
  --pastel-sky:#D6ECFF;
  --pastel-sky-border:#8EC8FF;
  --pastel-sky-dot:#3B82F6;
}
.pill.roi,.st.active,.badge-inv{
  background:#CFFFE3 !important;
  border-color:#8EF0B2 !important;
  color:#111827 !important;
}
.st.closing,.pill.blue,.st.info{
  background:#D6ECFF !important;
  border-color:#8EC8FF !important;
  color:#111827 !important;
}
.donut.dc-1,.donut.dc-2,.donut.dc-3{background:conic-gradient(#22C55E var(--p),#EEF4F8 0) !important}
.donut.dc-4{background:conic-gradient(#3B82F6 var(--p),#EEF4F8 0) !important}

/* ============================================================
   PROJECT DETAIL — Meridia Results exact opening layout
   ============================================================ */
.project-detail-page .main{background:#F6F8FB;padding:0 34px 44px;overflow-x:hidden}
.meridia-project-head,.m-top-cards,.m-issues{max-width:1180px;margin-left:auto;margin-right:auto}
.mhero-title{display:flex;align-items:flex-end;justify-content:space-between;padding:24px 0 14px;gap:18px}
.mhero-title h1{margin:0;color:#141B34;font-size:30px;letter-spacing:-.03em;line-height:1;font-weight:600}
.mhero-title p{margin:6px 0 0;color:#687384;font-size:12.5px}.mhero-title p span{color:#15A05D;font-weight:600}
.m-tabs{display:flex;gap:28px;height:48px;align-items:center;border-bottom:1px solid #E3E8EF;margin-bottom:16px}
.m-tabs a{height:48px;display:flex;align-items:center;text-decoration:none;color:#7B8593;font-size:11px;font-weight:600;letter-spacing:.08em;position:relative}
.m-tabs a.active{color:#111827}.m-tabs a.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:6px;background:#22C55E}
.m-summary-row{display:grid;grid-template-columns:1.1fr 1.1fr 1.1fr 1fr 1.2fr;gap:12px;margin-bottom:18px}
.m-sum{background:#fff;border:1px solid #E4E9F0;border-radius:16px;padding:14px 16px;min-height:72px;display:flex;flex-direction:column;gap:8px;justify-content:center}
.m-sum span{color:#9AA3AF;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.m-sum b{color:#151E2F;font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px}.m-sum svg{width:15px;height:15px;stroke:#22C55E}.m-sum a{margin-left:8px;color:#16A34A;text-decoration:none;font-size:11px;font-weight:600}
.m-top-cards{display:grid;grid-template-columns:1.12fr .88fr;gap:18px;margin-bottom:22px}.m-card{background:#fff;border:1px solid #E4E9F0;border-radius:18px;padding:20px 22px;box-shadow:0 1px 0 rgba(16,24,40,.02)}
.m-card h2{margin:0 0 16px;color:#172033;font-size:15px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;justify-content:space-between;gap:14px}.m-card h2 strong{color:#101828;font-size:12px;font-weight:600}
.m-riskbar{height:8px;border-radius:999px;background:#EEF2F6;display:flex;overflow:hidden;margin:2px 0 18px}.m-riskbar span{height:100%}.m-risk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.m-risk-grid div{min-width:0}.m-risk-grid i,.m-sev i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.m-risk-grid span{display:flex;align-items:center;color:#8A94A3;font-size:10px;font-weight:600;letter-spacing:.08em}.m-risk-grid b{display:block;color:#101828;font-size:19px;font-weight:600;margin-top:8px}.m-risk-grid small{display:block;color:#8A94A3;font-size:11px;font-weight:600;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-graybar{height:8px;border-radius:999px;background:#EEF2F6;margin:2px 0 20px;overflow:hidden}.m-graybar span{display:block;height:100%;background:#8EE7B2;border-radius:999px}.m-reclass-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.m-reclass-grid span{display:block;color:#98A2B3;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.m-reclass-grid b{display:block;color:#101828;font-size:15px;font-weight:600;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-issues{background:#fff;border:1px solid #E4E9F0;border-radius:18px;padding:22px;margin-bottom:22px}.m-issues-head{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:18px}.m-issues-head h2{margin:0;color:#172033;font-size:16px;font-weight:600}.m-issues-head p{margin:7px 0 0;max-width:720px;color:#687384;font-size:12.3px;line-height:1.45}.m-toggle{display:flex;background:#F2F5F8;border:1px solid #E3E8EF;border-radius:12px;padding:3px;white-space:nowrap}.m-toggle button{border:0;background:transparent;padding:9px 12px;border-radius:9px;font-size:10.5px;font-weight:600;color:#7B8593}.m-toggle button.active{background:#22C55E;color:#fff}
.m-issue-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.m-issue-card{border:1px solid #E5EAF1;border-radius:18px;padding:18px 16px;background:#fff;min-height:214px}.m-ring{width:74px;height:74px;border-radius:50%;background:conic-gradient(var(--c) var(--p),#EEF3F7 0);display:grid;place-items:center;margin-bottom:14px}.m-ring:before{content:"";position:absolute}.m-ring b{width:56px;height:56px;border-radius:50%;background:#fff;display:grid;place-items:center;color:#101828;font-size:12px;font-weight:600}.m-sev{display:flex;align-items:center;color:#8A94A3;font-size:10px;font-weight:600;letter-spacing:.08em;margin-bottom:8px}.m-issue-card strong{display:block;color:#101828;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-issue-card span{display:block;color:#7B8593;font-size:12px;margin-top:5px}.m-issue-card small{display:block;color:#8A94A3;font-size:11.5px;font-weight:600;margin-top:16px}
.m-issue-row{display:grid;grid-template-columns:1.6fr auto auto auto auto auto;gap:12px;align-items:center;border:1px solid #E4E9F0;border-radius:15px;padding:13px 14px;background:#fff}.m-issue-row b{display:block;color:#172033;font-size:12.4px}.m-issue-row span:not(.m-badge){display:block;color:#8A94A3;font-size:11.5px;margin-top:3px}.m-issue-row a{text-decoration:none;color:#172033;font-size:10.5px;font-weight:600;white-space:nowrap}.m-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:600;color:#111827;background:#FFD8E2}.m-badge.critical{background:#FFD8E2;border:1px solid #F5A9BB}
@media(max-width:1100px){.m-summary-row{grid-template-columns:repeat(2,1fr)}.m-top-cards{grid-template-columns:1fr}.m-issue-cards{grid-template-columns:repeat(2,1fr)}.m-issue-row{grid-template-columns:1fr;align-items:flex-start}.m-issues-head{flex-direction:column}.m-toggle{white-space:normal}}
@media(max-width:720px){.project-detail-page .main{padding:0 18px 34px}.m-summary-row,.m-issue-cards{grid-template-columns:1fr}.m-risk-grid,.m-reclass-grid{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   PROJECT DETAIL — Usage Analytics style opening
   ============================================================ */
.project-detail-page .main{background:#F6F8FB;padding:0 34px 46px;overflow-x:hidden}
.usage-head,.usage-section{max-width:1180px;margin-left:auto;margin-right:auto}
.usage-topline{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:26px 0 18px}
.usage-topline h1{margin:0;color:#161D2F;font-size:24px;font-weight:600;letter-spacing:-.025em;line-height:1.1}
.usage-controls{display:flex;align-items:center;gap:10px}.usage-dd{height:36px;border:1px solid #DDE4EC;background:#fff;border-radius:12px;padding:0 13px;color:#172033;font-size:12px;font-weight:600;font-family:inherit;box-shadow:0 1px 0 rgba(16,24,40,.02)}.usage-dd span{margin-left:10px;color:#8A94A3}.usage-plan{height:36px;display:flex;align-items:center;gap:12px;border:1px solid #DDE4EC;background:#fff;border-radius:12px;padding:0 13px;color:#172033;font-size:12px;font-weight:600}.usage-plan a{color:#16A34A;text-decoration:none;font-size:11px;font-weight:600}.usage-updated{color:#8B95A5;font-size:11.5px;font-weight:650;white-space:nowrap}
.usage-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.usage-card{background:#fff;border:1px solid #E3E8EF;border-radius:18px;padding:22px 24px 18px;min-height:176px;box-shadow:0 1px 0 rgba(16,24,40,.02)}.usage-card h2{margin:0 0 14px;color:#20283A;font-size:15px;font-weight:600;letter-spacing:-.01em}.usage-card p{margin:0;color:#9AA4B2;font-size:12px;line-height:1.45;font-weight:600}.usage-card strong{display:block;margin-top:18px;color:#111827;font-size:32px;line-height:1;font-weight:600;letter-spacing:-.045em}.usage-card small{display:block;margin-top:20px;color:#8A94A3;font-size:11.5px;font-weight:650}
.usage-section{background:#fff;border:1px solid #E3E8EF;border-radius:20px;padding:22px 22px 24px;box-shadow:0 1px 0 rgba(16,24,40,.02);margin-bottom:24px}.usage-section-head{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:18px}.usage-section-head h2{margin:0;color:#172033;font-size:18px;font-weight:600;letter-spacing:-.02em}.usage-view{display:flex;align-items:center;gap:7px}.usage-view span{font-size:9.5px;color:#98A2B3;font-weight:600;letter-spacing:.09em;margin-right:4px}.usage-view button{border:1px solid #E2E8F0;background:#fff;border-radius:10px;height:30px;padding:0 11px;color:#6E7888;font-size:10.5px;font-weight:600;font-family:inherit}.usage-view button.active{background:#DDF8E9;border-color:#BEEFD2;color:#111827}
.usage-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px}.usage-panel{border:1px solid #E5EAF1;border-radius:18px;background:#fff;padding:20px 22px 18px;min-height:265px}.usage-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.usage-panel h3{margin:0;color:#172033;font-size:15px;font-weight:600}.usage-panel p{margin:7px 0 0;color:#8A94A3;font-size:11.5px;line-height:1.45;max-width:440px}.usage-rem{min-width:94px;border:1px solid #E6EBF1;border-radius:12px;padding:9px 10px;text-align:left;background:#FBFCFD}.usage-rem span{display:block;color:#A1AAB7;font-size:9px;font-weight:600;letter-spacing:.08em}.usage-rem b{display:block;color:#111827;font-size:12px;font-weight:600;margin-top:3px}.usage-big-num{text-align:right;color:#111827;font-size:17px;font-weight:600;letter-spacing:-.015em;margin:25px 0 8px}.usage-stack{height:17px;border-radius:999px;background:#EEF2F7;display:flex;overflow:hidden}.usage-stack span{height:100%;min-width:2px}.usage-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 15px;margin-top:18px}.usage-legend span{display:inline-flex;align-items:center;gap:6px;color:#6F7A8B;font-size:11px;font-weight:600}.usage-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.usage-page{margin-left:auto;color:#1F2937!important;font-weight:600!important}
@media(max-width:1120px){.usage-topline{grid-template-columns:1fr}.usage-cards,.usage-panels{grid-template-columns:1fr}.usage-section-head{align-items:flex-start;flex-direction:column}.usage-view{flex-wrap:wrap}}
@media(max-width:720px){.project-detail-page .main{padding:0 18px 34px}.usage-card strong{font-size:26px}.usage-topline{padding-top:18px}.usage-controls{flex-wrap:wrap}.usage-panel-head{flex-direction:column}.usage-big-num{text-align:left}}

/* ============================================================
   GLOBAL TYPOGRAPHY — match sidebar everywhere
   ============================================================ */
:root{
  --font-ui: Poppins, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
html,body,button,input,select,textarea,a,table,th,td,
.logo,.nav-item,.nav-group,.topbar,.table-wrap,.usage-head,.usage-section,
.panel,.metric,.invoice-shell,.legacy-main,.project-detail-page{
  font-family:var(--font-ui) !important;
  font-synthesis-weight:none;
}
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:geometricPrecision;
}
/* keep text rhythm closer to sidebar */
.sidebar{font-family:var(--font-ui) !important}
.main h1,.main h2,.main h3,.topbar h1,.usage-topline h1,.usage-card h2,.usage-panel h3{
  font-family:var(--font-ui) !important;
  letter-spacing:-.025em;
}
.table-wrap thead th,.nav-group,.usage-view span,.m-sum span{
  letter-spacing:.075em;
}

/* ============================================================
   PROJECT DETAIL — Native TRAMS baseline (Projects-style)
   ============================================================ */
.project-detail-page .main{background:#F7F8FA;padding:0 32px 46px;overflow-x:hidden}
.trams-detail-head,.trams-finance-strip,.trams-snapshot,.project-detail-page .panel,.project-detail-page .metrics{max-width:1180px;margin-left:auto;margin-right:auto}
.trams-detail-head{padding-top:26px}.tdh-main{background:#fff;border:1px solid #E3E8EF;border-radius:20px;padding:24px 26px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;box-shadow:0 1px 0 rgba(16,24,40,.02)}
.tdh-kicker{color:#9AA3AF;font-size:10px;font-weight:600;letter-spacing:.095em;margin-bottom:8px}.tdh-main h1{margin:0;color:#111827;font-size:27px;line-height:1.12;font-weight:600;letter-spacing:-.035em;max-width:780px}.tdh-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:13px;color:#6B7280;font-size:12px;font-weight:650}.tdh-meta span:not(.code-pill){display:inline-flex;align-items:center;height:28px;padding:0 10px;background:#F4F6F8;border:1px solid #E5EAF1;border-radius:999px}.code-pill{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:999px;background:#ECFDF3;border:1px solid #BEEFD2;color:#111827;font-size:11px;font-weight:600;letter-spacing:.02em}.tdh-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.tdh-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}.tdh-card{background:#fff;border:1px solid #E3E8EF;border-radius:18px;padding:18px 18px 16px;min-height:128px}.tdh-card span{display:block;color:#8A94A3;font-size:11px;font-weight:600;letter-spacing:.045em;text-transform:uppercase}.tdh-card b{display:block;margin-top:13px;color:#111827;font-size:24px;line-height:1.05;font-weight:600;letter-spacing:-.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tdh-card small{display:block;margin-top:14px;color:#8A94A3;font-size:11.5px;font-weight:650}.tdh-card.green{background:#F0FFF6;border-color:#BEEFD2}.tdh-card.blue{background:#EEF7FF;border-color:#C9E3FF}.tdh-card.amber{background:#FFF8E8;border-color:#F5DE9B}
.trams-finance-strip{background:#fff;border:1px solid #E3E8EF;border-radius:20px;padding:21px 23px;margin-top:16px}.tfs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.tfs-head h2{margin:0;color:#111827;font-size:16px;font-weight:600;letter-spacing:-.02em}.tfs-head p{margin:5px 0 0;color:#7B8492;font-size:12.2px}.tfs-head strong{display:inline-flex;height:30px;align-items:center;padding:0 12px;border-radius:999px;background:#ECFDF3;border:1px solid #BEEFD2;color:#111827;font-size:11.5px;font-weight:600;white-space:nowrap}.tfs-bar{height:16px;border-radius:999px;background:#EEF2F6;display:flex;overflow:hidden}.tfs-bar span{height:100%;min-width:2px}.tfs-legend{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:16px}.tfs-legend div{min-width:0}.tfs-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.tfs-legend span{color:#8A94A3;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.055em}.tfs-legend b{display:block;margin-top:7px;color:#111827;font-size:12.4px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trams-snapshot{display:grid;grid-template-columns:1.15fr .9fr .95fr;gap:16px;margin-top:16px;margin-bottom:22px}.trams-snapshot article{background:#fff;border:1px solid #E3E8EF;border-radius:20px;padding:20px;min-height:152px}.snap-h{display:flex;align-items:center;justify-content:space-between;gap:12px}.snap-h span{color:#111827;font-size:14px;font-weight:600;letter-spacing:-.01em}.snap-h b{color:#111827;font-size:13px;font-weight:600}.snap-bar{height:12px;background:#EEF2F6;border-radius:999px;overflow:hidden;margin:22px 0 16px}.snap-bar span{display:block;height:100%;background:#34D399;border-radius:999px}.snap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.snap-grid small,.snap-list p{display:block;margin:0;color:#8A94A3;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.055em}.snap-grid b,.snap-list strong{display:block;margin-top:6px;color:#111827;font-size:13px;font-weight:600}.snap-list{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;margin-top:20px;align-items:baseline}.quick-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.quick-actions a{height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border-radius:9px;background:#F4F6F8;border:1px solid #E3E8EF;color:#111827;text-decoration:none;font-size:11.5px;font-weight:600}.quick-actions a:hover{background:#ECFDF3;border-color:#BEEFD2}
@media(max-width:1100px){.tdh-main{flex-direction:column}.tdh-cards{grid-template-columns:repeat(2,1fr)}.tfs-legend{grid-template-columns:repeat(3,1fr)}.trams-snapshot{grid-template-columns:1fr}}
@media(max-width:720px){.project-detail-page .main{padding:0 18px 34px}.tdh-cards,.tfs-legend{grid-template-columns:1fr}.tdh-main h1{font-size:22px}.tdh-card b{font-size:20px}.tfs-head{flex-direction:column}.snap-list{grid-template-columns:1fr}}

/* Remove inner outline from project edit form — outer card enough */
.project-detail-page #meta .grid-outline,
.project-detail-page #meta .meta-form2,
.project-detail-page #meta form{
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
}
.project-detail-page #meta .meta-actions{
  border-top:1px solid #E5EAF1;
  padding-top:16px;
  margin-top:4px;
}


/* Ferry refinements — project detail */
.project-detail-page .tdh-kicker,
.project-detail-page .tdh-card span,
.project-detail-page .tfs-legend span,
.project-detail-page .snap-grid small,
.project-detail-page .snap-list p{
  text-transform:none !important;
  letter-spacing:0 !important;
}
.project-detail-page .code-pill,
.project-detail-page .tdh-meta span:not(.code-pill){
  background:#F4F6F8 !important;
  border:1px solid #E5EAF1 !important;
  color:#6B7280 !important;
  font-weight:650 !important;
}
.project-detail-page .tdh-card,
.project-detail-page .tdh-card.green,
.project-detail-page .tdh-card.blue,
.project-detail-page .tdh-card.amber{
  background:#F0FFF6 !important;
  border-color:#E3E8EF !important;
  box-shadow:0 1px 0 rgba(16,24,40,.02);
}
.project-detail-page .tdh-card b{color:#111827}
.project-detail-page .tdh-card small{color:#6B7280}
.project-detail-page .tfs-bar span{cursor:pointer;transition:filter .18s,transform .18s,opacity .18s}
.project-detail-page .tfs-bar:hover span{opacity:.55}
.project-detail-page .tfs-bar span:hover{opacity:1;filter:saturate(1.2);transform:scaleY(1.15)}
.project-detail-page .tfs-legend div{cursor:pointer;border-radius:10px;padding:8px;margin:-8px;transition:background .18s}
.project-detail-page .tfs-legend div:hover,.project-detail-page .tfs-legend div.active{background:#F4F6F8}
.project-detail-page .tfs-tip{margin-top:12px;color:#6B7280;font-size:12px;font-weight:650}


/* Global Poppins weight tuning — bold but thin/clean */
.main h1,.main h2,.main h3,.topbar h1,.usage-topline h1,.tdh-main h1,
.tdh-card b,.stat .n,.metric .val,.usage-card strong,.rl-num{
  font-weight:700 !important;
}
.btn,.results-btn,.export-as,.add-btn,.quick-actions a,.status-pill,.st,.pill,.pillv,
.tdh-card span,.tdh-kicker,.tfs-legend span,.snap-h span,.snap-h b,
.table-wrap th,.term-tr.term-head,.rf label,.nav-link,.brand,.logo b{
  font-weight:600 !important;
}
body,input,select,textarea,button{font-weight:400}


/* Project metric cards — clean white, bright green accent, no outline */
.project-detail-page .tdh-card,
.project-detail-page .tdh-card.green,
.project-detail-page .tdh-card.blue,
.project-detail-page .tdh-card.amber{
  background:#fff !important;
  border:0 !important;
  box-shadow:0 10px 26px rgba(16,24,40,.06) !important;
}
.project-detail-page .tdh-card span{
  color:#16A34A !important;
}
.project-detail-page .tdh-card b{
  color:#111827 !important;
}
.project-detail-page .tdh-card small{
  color:#6B7280 !important;
}


/* Global clean-card system — white cards, no outline, bright green accents */
:root{--accent-green:#16A34A;--clean-shadow:0 10px 26px rgba(16,24,40,.06)}
.card,.panel,.metric,.stat,.ds-head,.ds-card,.usage-card,.usage-section,.usage-panel,
.form-card,.grid-outline,.term-summary,.term-table,.rab-group,.trams-detail-head .tdh-main,
.trams-finance-strip,.trams-snapshot article,.invoice-shell,.cashflow-card,.project-card,
.table-card,.login-card,.login-card-clean{
  background:#fff !important;
  border:0 !important;
  box-shadow:var(--clean-shadow) !important;
}
.table-wrap table,.term-tr,.rab-tr,.rab-item{
  border-color:#EEF2F6 !important;
}
.section-head h2,.ds-title,.ds-card-h,.usage-section-head h2,.usage-card h2,.usage-panel h3,
.form-card-head b,.snap-h span,.tdh-card span,.metric .lbl,.stat .l,.term-summary span,
.table-wrap thead th,.rab-group-title,.cf-title,.card-title{
  color:var(--accent-green) !important;
}
.btn.primary,.add-btn,.results-btn,.export-as{
  background:var(--accent-green) !important;
  border-color:var(--accent-green) !important;
}
.quick-actions a:hover,.nav-link.active,.rtab.active{
  color:var(--accent-green) !important;
}


/* Finance profit margin pill = Export PDF button style */
.project-detail-page .tfs-head strong{
  background:#16A34A !important;
  border:0 !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(22,163,74,.22) !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
}



/* Restore Ferry preferred clean style — no outline, soft shadow only */
:root{--clean-shadow:0 10px 26px rgba(16,24,40,.06)}
.card,.panel,.metric,.stat,.ds-head,.ds-card,.usage-card,.usage-section,.usage-panel,
.form-card,.term-summary,.trams-detail-head .tdh-main,.trams-finance-strip,.trams-snapshot article,
.invoice-shell,.cashflow-card,.project-card,.table-card,.login-card,.login-card-clean,.tdh-card{
  background:#fff !important;
  border:0 !important;
  box-shadow:var(--clean-shadow) !important;
}
.project-detail-page .tdh-card,
.project-detail-page .tdh-card.green,
.project-detail-page .tdh-card.blue,
.project-detail-page .tdh-card.amber{
  background:#fff !important;
  border:0 !important;
  box-shadow:var(--clean-shadow) !important;
}
.grid-outline,.term-table,.rab-table,.rab-group{
  box-shadow:none !important;
}


/* Form controls keep a thin outline for usability */
input,select,textarea,
.field-grid input,.field-grid select,.field-grid textarea,
.term-form input,.term-form select,.term-form textarea,
.rab-form input,.rab-form select,.rab-form textarea,
.meta-form2 input,.meta-form2 select,.meta-form2 textarea,
.login-card input,.login-card-clean input{
  border:1px solid #DDE4EC !important;
  box-shadow:none !important;
  background:#fff !important;
}
input:focus,select:focus,textarea:focus,
.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus{
  border-color:#16A34A !important;
  box-shadow:0 0 0 3px rgba(22,163,74,.12) !important;
  outline:none !important;
}
.form-card-head,.field-grid .rf-actions{
  border-color:#EEF2F6 !important;
}


/* RAB table style — audit-log-like outline, not card shadow */
.project-detail-page #rab .rab-table.grid-outline{
  background:#fff !important;
  border:1px solid #E1E6EF !important;
  border-radius:14px !important;
  overflow:hidden !important;
  box-shadow:none !important;
}
.project-detail-page #rab .rab-head{
  background:#F7F8FA !important;
  color:#7B8492 !important;
  border-top:0 !important;
  border-bottom:1px solid #E1E6EF !important;
}
.project-detail-page #rab .rab-head div{
  color:#7B8492 !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.025em !important;
  text-transform:none !important;
}
.project-detail-page #rab .rab-tr{
  border-bottom:1px solid #E8EDF4 !important;
}
.project-detail-page #rab .rab-tr:last-child{
  border-bottom:0 !important;
}
.project-detail-page #rab .rab-sub{
  background:#FAFBFC !important;
  border-top:1px solid #E1E6EF !important;
  color:#111827 !important;
}
.project-detail-page #rab .rab-sub .c-amount{
  color:#16A34A !important;
  font-weight:700 !important;
}
.project-detail-page #rab .rab-group{
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}


/* RAB filters align exactly with table width */
.project-detail-page #rab .rab-filter{
  padding:0 !important;
  margin:14px 0 16px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.project-detail-page #rab .rab-filter input,
.project-detail-page #rab .rab-filter select{
  height:38px !important;
  border-radius:10px !important;
}
.project-detail-page #rab .rab-group h3{
  margin-left:0 !important;
  padding-left:0 !important;
}


/* Termin table style — same as RAB/audit-log table */
.project-detail-page #termin .term-table.grid-outline,
.project-detail-page #terms .term-table.grid-outline,
.project-detail-page .term-table.grid-outline{
  background:#fff !important;
  border:1px solid #E1E6EF !important;
  border-radius:14px !important;
  overflow:hidden !important;
  box-shadow:none !important;
}
.project-detail-page #termin .term-head,
.project-detail-page #terms .term-head,
.project-detail-page .term-head{
  background:#F7F8FA !important;
  color:#7B8492 !important;
  border-top:0 !important;
  border-bottom:1px solid #E1E6EF !important;
}
.project-detail-page #termin .term-head div,
.project-detail-page #terms .term-head div,
.project-detail-page .term-head div{
  color:#7B8492 !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.025em !important;
  text-transform:none !important;
}
.project-detail-page #termin .term-tr,
.project-detail-page #terms .term-tr,
.project-detail-page .term-table .term-tr{
  border-bottom:1px solid #E8EDF4 !important;
}
.project-detail-page #termin .term-tr:last-child,
.project-detail-page #terms .term-tr:last-child,
.project-detail-page .term-table .term-tr:last-child{
  border-bottom:0 !important;
}


/* Termin form container needs thin outline */
.project-detail-page #termin #termForm,
.project-detail-page #terms #termForm,
.project-detail-page #termForm.term-form.grid-outline{
  background:#fff !important;
  border:1px solid #E1E6EF !important;
  border-radius:14px !important;
  box-shadow:none !important;
  overflow:hidden !important;
}
.project-detail-page #termForm .rf-actions{
  border-top:1px solid #E8EDF4 !important;
}


/* Unify all section/card whites — no tinted white differences */
.project-detail-page .main,
.card,.panel,.metric,.stat,.ds-head,.ds-card,.usage-card,.usage-section,.usage-panel,
.form-card,.form-card-head,.field-grid,.term-summary,.trams-detail-head .tdh-main,
.trams-finance-strip,.trams-snapshot article,.invoice-shell,.cashflow-card,.project-card,
.table-card,.login-card,.login-card-clean,.tdh-card,
.project-detail-page #rab .rab-table.grid-outline,
.project-detail-page #termin .term-table.grid-outline,
.project-detail-page #terms .term-table.grid-outline,
.project-detail-page #termForm.term-form.grid-outline{
  background:#fff !important;
}
.project-detail-page #rab .rab-head,
.project-detail-page .term-head,
.project-detail-page #rab .rab-sub{
  background:#fff !important;
}
.project-detail-page .tdh-card,
.project-detail-page .tdh-card.green,
.project-detail-page .tdh-card.blue,
.project-detail-page .tdh-card.amber,
.project-detail-page .donut-tile,
.project-detail-page .donut-tile.hot{
  background:#fff !important;
}


/* Correct contrast: page is soft gray, cards/sections are pure white */
body,
.app,
.app > .main,
.project-detail-page .main,
.legacy-main{
  background:#F7F8FA !important;
}
.card,.panel,.metric,.stat,.ds-head,.ds-card,.usage-card,.usage-section,.usage-panel,
.form-card,.form-card-head,.field-grid,.term-summary,.trams-detail-head .tdh-main,
.trams-finance-strip,.trams-snapshot article,.invoice-shell,.cashflow-card,.project-card,
.table-card,.login-card,.login-card-clean,.tdh-card,
.project-detail-page #rab .rab-table.grid-outline,
.project-detail-page #termin .term-table.grid-outline,
.project-detail-page #terms .term-table.grid-outline,
.project-detail-page #termForm.term-form.grid-outline{
  background:#fff !important;
}


/* Softer elegant headings */
.tdh-main h1,
.main h1,
.main h2,
.main h3,
.section-head h2,
.tfs-head h2,
.snap-h span,
.ds-title,
.usage-section-head h2,
.usage-card h2,
.usage-panel h3,
.form-card-head b,
.rab-group h3{
  font-weight:600 !important;
  letter-spacing:-.018em !important;
}
.tdh-card b,
.metric .val,
.stat .n,
.usage-card strong{
  font-weight:600 !important;
}


/* Consistent column alignment: header follows body */
.c-no,.c-unit{ text-align:center !important; }
.c-num,.c-amount{ text-align:right !important; }
.rab-tr > div:nth-child(1),.term-tr > div:nth-child(3),.term-tr > div:nth-child(5),.term-tr > div:nth-child(6),.term-tr > div:nth-child(8),.term-tr > div:nth-child(9){ text-align:center !important; }
.rab-tr > div:nth-child(3),.rab-tr > div:nth-child(5),.rab-tr > div:nth-child(6),
.term-tr > div:nth-child(4),.term-tr > div:nth-child(7){ text-align:right !important; }
.rab-tr > div:nth-child(2),.rab-tr > div:nth-child(7),
.term-tr > div:nth-child(1),.term-tr > div:nth-child(2){ text-align:left !important; }
.rab-head > div:nth-child(1),.term-head > div:nth-child(3),.term-head > div:nth-child(5),.term-head > div:nth-child(6),.term-head > div:nth-child(8),.term-head > div:nth-child(9){ text-align:center !important; }
.rab-head > div:nth-child(3),.rab-head > div:nth-child(5),.rab-head > div:nth-child(6),
.term-head > div:nth-child(4),.term-head > div:nth-child(7){ text-align:right !important; }
.rab-head > div:nth-child(2),.rab-head > div:nth-child(7),
.term-head > div:nth-child(1),.term-head > div:nth-child(2){ text-align:left !important; }
.rab-tr > div:last-child,.term-tr > div:last-child{ text-align:center !important; }
.rab-tr .actions,.term-tr .actions,.actions{ justify-content:center !important; }


/* Status pills fixed size, tidy */
.st,.status-pill,.term-tr .pill,.term-tr .st{
  min-width:112px !important;
  height:30px !important;
  padding:0 12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  line-height:1 !important;
  text-align:center !important;
  border-radius:999px !important;
}

/* Nominal alignment: regular nominal left, totals/subtotals right */
.term-tr > div:nth-child(4),
.term-tr > div:nth-child(7),
.rab-tr > div:nth-child(5){
  text-align:left !important;
}
.rab-tr > div:nth-child(6),
.rab-sub .c-amount,
.term-summary .c-amount,
.c-amount,
.sub-total .c-num:last-child{
  text-align:right !important;
}
.term-head > div:nth-child(4),
.term-head > div:nth-child(7),
.rab-head > div:nth-child(5){
  text-align:left !important;
}
.rab-head > div:nth-child(6){
  text-align:right !important;
}


/* Metric/card rows: gaps should show page gray, not white */
.metrics,
.tdh-cards,
.trams-snapshot,
.ds-cards,
.usage-cards{
  background:transparent !important;
}
.project-detail-page .panel,
.panel{
  background:#fff !important;
}
/* inside panel, metric rows need a little gray separation only when cards sit as separate boxes */
.panel .metrics,
.project-detail-page .panel .metrics{
  background:#F7F8FA !important;
  padding:14px !important;
  border-radius:18px !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.panel .metrics .metric,
.project-detail-page .panel .metrics .metric{
  background:#fff !important;
}


/* Remove visible metric wrapper boundary — only cards should be visible */
.panel .metrics,
.project-detail-page .panel .metrics,
.metrics,
.tdh-cards,
.ds-cards,
.usage-cards{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  border:0 !important;
}
.panel .metrics .metric,
.project-detail-page .panel .metrics .metric,
.metric{
  background:#fff !important;
}


/* Kill any visible parent shell around metric/card grids */
.project-detail-page .main > .panel:has(.metrics),
.project-detail-page .main > section:has(.metrics),
.panel:has(.metrics),
section:has(.metrics){
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.project-detail-page .main > .panel:has(.metrics) > .panel-head,
.panel:has(.metrics) > .panel-head{
  background:transparent !important;
  border:0 !important;
}
.project-detail-page .main > .panel:has(.metrics) .metrics,
.panel:has(.metrics) .metrics{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
}


/* Term summary: no outer white shell, only four child cards */
.project-detail-page .term-summary{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
}
.project-detail-page .term-summary > div{
  background:#fff !important;
  border:0 !important;
  box-shadow:var(--clean-shadow) !important;
  border-radius:14px !important;
}


/* RAB spacing: filters belong to add-card, then space before detail tables */
.project-detail-page #rab .form-card{
  margin-bottom:10px !important;
}
.project-detail-page #rab .rab-filter{
  margin:8px 0 28px !important;
}
.project-detail-page #rab .rab-group{
  margin-top:0 !important;
  margin-bottom:24px !important;
}
.project-detail-page #rab .rab-group h3{
  margin-top:0 !important;
  margin-bottom:12px !important;
}


/* File input alignment — keep native button centered inside outline */
input[type="file"]{
  height:42px !important;
  padding:6px 10px !important;
  line-height:28px !important;
  display:flex !important;
  align-items:center !important;
  box-sizing:border-box !important;
}
input[type="file"]::file-selector-button{
  height:28px !important;
  margin:0 10px 0 0 !important;
  padding:0 12px !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  background:#F7F8FA !important;
  color:#111827 !important;
  font-family:inherit !important;
  font-weight:500 !important;
  cursor:pointer !important;
}
input[type="file"]::-webkit-file-upload-button{
  height:28px !important;
  margin:0 10px 0 0 !important;
  padding:0 12px !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  background:#F7F8FA !important;
  color:#111827 !important;
  font-family:inherit !important;
  font-weight:500 !important;
  cursor:pointer !important;
}


/* File input same height as other inputs */
input[type="file"]{
  height:38px !important;
  padding:5px 9px !important;
  line-height:26px !important;
}
input[type="file"]::file-selector-button,
input[type="file"]::-webkit-file-upload-button{
  height:26px !important;
  padding:0 11px !important;
  border-radius:7px !important;
}


/* RAB nota file input exactly same height as other .rf inputs */
.project-detail-page #rab .rf input[type="file"],
.rf input[type="file"]{
  height:34px !important;
  min-height:34px !important;
  padding:3px 8px !important;
  border-radius:8px !important;
  font-size:12.5px !important;
  line-height:26px !important;
}
.project-detail-page #rab .rf input[type="file"]::file-selector-button,
.rf input[type="file"]::file-selector-button,
.project-detail-page #rab .rf input[type="file"]::-webkit-file-upload-button,
.rf input[type="file"]::-webkit-file-upload-button{
  height:26px !important;
  margin:0 8px 0 0 !important;
  padding:0 10px !important;
  border-radius:7px !important;
  font-size:12.5px !important;
  line-height:24px !important;
}


/* Cashflow redesign — follows RAB visual baseline */
.cashflow-page{background:#F7F8FA!important}
.cashflow-page .ov-pad{max-width:1180px;margin:0 auto;padding:0 0 40px}
.cf-hero{background:#fff;border:0;border-radius:20px;box-shadow:var(--clean-shadow);padding:24px 26px;margin:22px 0 16px}
.cf-hero span{color:#16A34A;font-size:12px;font-weight:600}.cf-hero h2{margin:6px 0 4px;color:#111827;font-size:26px;font-weight:600;letter-spacing:-.02em}.cf-hero p{margin:0;color:#6B7280;font-size:13px}
.cf-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 16px;background:transparent!important;padding:0!important}
.cf-card{background:#fff!important;border:0!important;border-radius:16px;box-shadow:var(--clean-shadow)!important;padding:18px}.cf-card span{display:block;color:#16A34A;font-size:12px;font-weight:600}.cf-card b{display:block;margin-top:9px;color:#111827;font-size:22px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cf-card small{display:block;margin-top:7px;color:#6B7280;font-size:12px}.cf-card.in b{color:#16A34A}.cf-card.out b{color:#DC2626}
.cf-month-panel{background:#fff!important;border:0!important;box-shadow:var(--clean-shadow)!important;border-radius:20px;padding:22px!important;margin-bottom:18px}
.cf-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cf-month{background:#fff;border:1px solid #E1E6EF;border-radius:14px;padding:16px;box-shadow:none}.cf-month-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.cf-month-head b{font-size:16px;font-weight:600;color:#111827}.cf-month-head span{font-size:13px;font-weight:600;color:#16A34A}.cf-month.negative .cf-month-head span{color:#DC2626}.cf-month-bars{display:grid;gap:10px;margin-top:16px}.cf-month-bars label{display:block;color:#6B7280;font-size:11px;font-weight:500}.cf-month-bars em{display:block;color:#111827;font-size:12px;font-style:normal;margin:3px 0 5px}.cf-month-bars i{display:block;height:8px;background:#EEF2F6;border-radius:999px;overflow:hidden}.cf-month-bars u{display:block;height:100%;background:#16A34A;border-radius:999px}.cf-month-bars i.out u{background:#EF4444}.cf-month-actions{margin-top:13px}.cf-month-actions a{color:#16A34A;text-decoration:none;font-size:12px;font-weight:600}
.cf-source-block{margin-top:18px}.cf-source-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.cf-source-title h3{margin:0;color:#111827;font-size:17px;font-weight:600}.cf-source-title span{color:#6B7280;font-size:12px}.cf-source-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cf-source-card{background:#fff;border:1px solid #E1E6EF;border-radius:14px;overflow:hidden}.cf-source-card h4{margin:0;padding:14px 16px;color:#16A34A;font-size:14px;font-weight:600;border-bottom:1px solid #E8EDF4}.cf-mini-table{display:grid}.cf-mini-head,.cf-mini-row{display:grid;grid-template-columns:110px 1fr 150px;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid #E8EDF4}.cf-mini-head{background:#fff;color:#7B8492;font-size:11px;font-weight:600}.cf-mini-row{font-size:12px;color:#111827}.cf-mini-row b{display:block;font-weight:600}.cf-mini-row small{display:block;margin-top:2px;color:#6B7280}.cf-mini-row span:last-child{text-align:left;white-space:nowrap}.cf-mini-empty{padding:14px 16px;color:#6B7280;font-size:12px}
.cf-tablebox{border:1px solid #E1E6EF!important;border-radius:14px!important;overflow:hidden!important;background:#fff!important;box-shadow:none!important;padding:0!important}.cf-tablebox table{min-width:980px!important}.cf-tablebox th{background:#fff!important;color:#7B8492!important;font-weight:600!important;text-transform:none!important}.cf-tablebox td,.cf-tablebox th{border-bottom:1px solid #E8EDF4!important;text-align:left!important}.cf-tablebox tr:last-child td{border-bottom:0!important}
@media(max-width:1000px){.cf-kpi,.cf-month-grid,.cf-source-cols{grid-template-columns:1fr 1fr}.cf-mini-head,.cf-mini-row{grid-template-columns:90px 1fr}}
@media(max-width:720px){.cf-kpi,.cf-month-grid,.cf-source-cols{grid-template-columns:1fr}.cashflow-page .ov-pad{padding-left:16px;padding-right:16px}.cf-mini-head,.cf-mini-row{grid-template-columns:1fr}.cf-mini-row span:last-child{text-align:left}}


/* Fix hidden upload picker: global file input style must not unhide it */
#rowNotaFile{
  display:none !important;
  width:0 !important;
  height:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  position:absolute !important;
  pointer-events:none !important;
}

/* Cashflow table must scroll horizontally, not clip last columns */
.cashflow-page .cf-tablebox,
.cashflow-page .table-wrap.flat.cf-tablebox{
  overflow-x:auto !important;
  overflow-y:hidden !important;
  -webkit-overflow-scrolling:touch !important;
}
.cashflow-page .cf-tablebox table{
  min-width:1180px !important;
  width:max-content !important;
}
.cashflow-page .cf-tablebox th,
.cashflow-page .cf-tablebox td{
  white-space:nowrap !important;
}
.cashflow-page .cf-tablebox::-webkit-scrollbar{height:8px}
.cashflow-page .cf-tablebox::-webkit-scrollbar-thumb{background:#DDE4EC;border-radius:999px}

/* Project list table: equal pill/action sizing, no overlap */
.table-wrap table{table-layout:fixed !important}
.table-wrap th:nth-last-child(3),.table-wrap td:nth-last-child(3){width:96px !important;text-align:center !important}
.table-wrap th:nth-last-child(2),.table-wrap td:nth-last-child(2){width:112px !important;text-align:center !important}
.table-wrap th:nth-last-child(1),.table-wrap td:nth-last-child(1){width:132px !important;text-align:center !important}
.table-wrap .pill.roi,
.table-wrap .st.active,
.table-wrap .st.closing,
.table-wrap .st.done,
.table-wrap .st.review{
  width:86px !important;
  min-width:86px !important;
  height:30px !important;
  justify-content:center !important;
  padding:0 10px !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
}
.row-view{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  white-space:nowrap !important;
}
.row-view .results-btn{
  width:86px !important;
  height:30px !important;
  justify-content:center !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
.row-view .row-menu{margin-left:0 !important;flex:0 0 auto !important}

/* Project table compact pills/buttons, aligned with ROI/status */
.table-wrap .pill.roi,
.table-wrap .st.active,
.table-wrap .st.closing,
.table-wrap .st.done,
.table-wrap .st.review{
  width:76px !important;
  min-width:76px !important;
  height:26px !important;
  padding:0 8px !important;
  font-size:10.5px !important;
  line-height:26px !important;
  vertical-align:middle !important;
}
.row-view{
  display:table-cell !important;
  text-align:center !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}
.row-view .results-btn{
  width:76px !important;
  min-width:76px !important;
  height:26px !important;
  padding:0 !important;
  font-size:10px !important;
  line-height:26px !important;
  vertical-align:middle !important;
}
.row-view .row-menu{
  display:inline-flex !important;
  vertical-align:middle !important;
  margin-left:8px !important;
}
.table-wrap th:nth-last-child(3),.table-wrap td:nth-last-child(3){width:88px !important;text-align:center !important}
.table-wrap th:nth-last-child(2),.table-wrap td:nth-last-child(2){width:96px !important;text-align:center !important}
.table-wrap th:nth-last-child(1),.table-wrap td:nth-last-child(1){width:116px !important;text-align:center !important}

/* Invoice pages — align buttons/cards with TRAMS baseline */
.invoice-shell{background:#F7F8FA !important;font-family:var(--font-ui) !important}
.invoice-hero{background:#fff !important;border:0 !important;border-radius:20px !important;box-shadow:var(--clean-shadow) !important;margin:22px 34px 16px !important;padding:24px 26px !important}
.invoice-hero h1{color:#111827 !important;font-size:26px !important;font-weight:600 !important;letter-spacing:-.02em !important}
.invoice-hero p{color:#6B7280 !important;font-size:13px !important}
.invoice-card,.invoice-form-card,.invoice-preview,.inv-paper{background:#fff !important;border:0 !important;border-radius:20px !important;box-shadow:var(--clean-shadow) !important}
.invoice-card{margin:0 34px 38px !important;overflow-x:auto !important}
.inv-table th{background:#fff !important;color:#16A34A !important;font-weight:600 !important;text-transform:none !important;letter-spacing:0 !important;font-size:11.5px !important;border-bottom:1px solid #E1E6EF !important}
.inv-table td{border-bottom:1px solid #E8EDF4 !important;color:#111827 !important}
.badge-inv{background:#F2FFF8 !important;color:#111827 !important;border:0 !important;height:26px !important;padding:0 10px !important;font-weight:600 !important}
.invoice-actions{display:flex !important;align-items:center !important;gap:8px !important;white-space:nowrap !important}
.invoice-create,.btn-sm,.invoice-shell .btn,.invoice-shell button,.invoice-shell .btn-submit,#add-item-btn{
  height:34px !important;
  border-radius:10px !important;
  padding:0 14px !important;
  font-family:var(--font-ui) !important;
  font-size:12px !important;
  font-weight:600 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  cursor:pointer !important;
  box-sizing:border-box !important;
}
.invoice-create,.btn-sm.btn-pdf,.invoice-shell .btn-pdf,.invoice-shell .btn-submit{
  background:#16A34A !important;
  border:0 !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(22,163,74,.22) !important;
}
.btn-sm.btn-primary,.invoice-shell .btn-back,#add-item-btn{
  background:#fff !important;
  border:1px solid #DDE4EC !important;
  color:#111827 !important;
  box-shadow:none !important;
}
.btn-sm.btn-del,.invoice-shell .btn-del,.item-row .del-btn{
  background:#fff !important;
  border:1px solid #FECACA !important;
  color:#DC2626 !important;
  box-shadow:none !important;
}
.invoice-shell input,.invoice-shell select,.invoice-shell textarea{
  height:34px !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  font-family:var(--font-ui) !important;
  font-size:12.5px !important;
  font-weight:400 !important;
  box-shadow:none !important;
}
.invoice-shell input:focus,.invoice-shell select:focus,.invoice-shell textarea:focus{border-color:#16A34A !important;box-shadow:0 0 0 3px rgba(22,163,74,.12) !important;outline:none !important}
.invoice-shell .total-bar{background:#fff !important;color:#111827 !important;border:1px solid #E1E6EF !important;border-radius:14px !important;box-shadow:none !important}
.invoice-shell .total-bar .val{color:#16A34A !important;font-weight:600 !important}
.action-bar{gap:8px !important;flex-wrap:wrap !important}
@media(max-width:720px){.invoice-hero,.invoice-card{margin-left:16px !important;margin-right:16px !important}.invoice-actions{flex-wrap:wrap}}

/* Invoice list — project-style compact actions + no wrapped total */
.invoice-card .inv-table{
  table-layout:fixed !important;
  min-width:980px !important;
  width:100% !important;
}
.invoice-card .inv-table th:nth-child(1),
.invoice-card .inv-table td:nth-child(1){width:125px !important}
.invoice-card .inv-table th:nth-child(2),
.invoice-card .inv-table td:nth-child(2){width:210px !important}
.invoice-card .inv-table th:nth-child(3),
.invoice-card .inv-table td:nth-child(3){width:130px !important}
.invoice-card .inv-table th:nth-child(4),
.invoice-card .inv-table td:nth-child(4){width:105px !important;text-align:center !important}
.invoice-card .inv-table th:nth-child(5),
.invoice-card .inv-table td:nth-child(5){width:150px !important;text-align:right !important;white-space:nowrap !important}
.invoice-card .inv-table th:nth-child(6),
.invoice-card .inv-table td:nth-child(6){width:125px !important}
.invoice-card .inv-table th:nth-child(7),
.invoice-card .inv-table td:nth-child(7){width:220px !important;text-align:center !important}
.invoice-card .inv-table td:nth-child(2),
.invoice-card .inv-table td:nth-child(3),
.invoice-card .inv-table td:nth-child(6){
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.invoice-card .inv-table .amt,
.invoice-card .inv-table .amt b{
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow:visible !important;
}
.invoice-card .invoice-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  flex-wrap:nowrap !important;
}
.invoice-card .invoice-actions form{display:inline-flex !important;margin:0 !important}
.invoice-card .btn-sm,
.invoice-card .invoice-actions .btn-sm,
.invoice-card .invoice-actions button.btn-sm,
.invoice-card .invoice-actions a.btn-sm{
  width:62px !important;
  min-width:62px !important;
  height:26px !important;
  padding:0 !important;
  border-radius:8px !important;
  font-size:10px !important;
  font-weight:600 !important;
  line-height:26px !important;
  box-shadow:none !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.invoice-card .btn-sm.btn-primary{background:#fff !important;color:#111827 !important;border:1px solid #DDE4EC !important}
.invoice-card .btn-sm.btn-pdf{background:#16A34A !important;color:#fff !important;border:1px solid #16A34A !important}
.invoice-card .btn-sm.btn-del{background:#fff !important;color:#DC2626 !important;border:1px solid #FECACA !important}

/* Invoice detail/view — force same button style as project */
body .action-bar .btn,
body .action-bar a.btn,
body .action-bar button.btn,
.invoice-shell .action-bar .btn,
.invoice-shell .action-bar a.btn,
.invoice-shell .action-bar button.btn{
  height:26px !important;
  min-width:76px !important;
  width:auto !important;
  padding:0 12px !important;
  border-radius:8px !important;
  font-family:var(--font-ui) !important;
  font-size:10px !important;
  font-weight:600 !important;
  line-height:26px !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  box-shadow:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  box-sizing:border-box !important;
}
body .action-bar .btn-back,
.invoice-shell .action-bar .btn-back{
  background:#fff !important;
  color:#111827 !important;
  border:1px solid #DDE4EC !important;
}
body .action-bar .btn-pdf,
.invoice-shell .action-bar .btn-pdf{
  background:#16A34A !important;
  color:#fff !important;
  border:1px solid #16A34A !important;
}
body .action-bar .btn-del,
.invoice-shell .action-bar .btn-del{
  background:#fff !important;
  color:#DC2626 !important;
  border:1px solid #FECACA !important;
}
body .action-bar{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}
body .action-bar form{display:inline-flex !important;margin:0 !important}

/* Invoice detail paper typography/card baseline */
.invoice-detail,.invoice-page,.inv-detail-wrap{font-family:var(--font-ui) !important;background:#F7F8FA !important}
.inv-paper,.invoice-paper,.invoice-detail-card{
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:var(--clean-shadow) !important;
}

/* Global table collision guard — no column text overlap */
.table-wrap,
.invoice-card,
.cf-tablebox,
.rab-table,
.term-table,
.audit-table,
.table-scroll{
  overflow-x:auto !important;
  overflow-y:hidden !important;
  -webkit-overflow-scrolling:touch !important;
}
.table-wrap table,
.invoice-card table,
.cf-tablebox table,
.audit-table table{
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.table-wrap th,.table-wrap td,
.invoice-card th,.invoice-card td,
.cf-tablebox th,.cf-tablebox td,
.audit-table th,.audit-table td{
  padding-left:16px !important;
  padding-right:16px !important;
  box-sizing:border-box !important;
  vertical-align:middle !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.table-wrap td,.invoice-card td,.cf-tablebox td,.audit-table td{
  line-height:1.45 !important;
}
.table-wrap th,.invoice-card th,.cf-tablebox th,.audit-table th{
  line-height:1.25 !important;
  white-space:nowrap !important;
}
/* Text columns can wrap softly when needed */
.table-wrap td:nth-child(1),
.table-wrap td:nth-child(2),
.table-wrap td:nth-child(3),
.invoice-card td:nth-child(2),
.invoice-card td:nth-child(3),
.cf-tablebox td:nth-child(1),
.cf-tablebox td:nth-child(2),
.audit-table td:nth-child(5){
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}
/* Numeric/status/action columns never wrap into neighbours */
.table-wrap td[class*="amt"],.table-wrap th[class*="amt"],
.invoice-card .amt,.invoice-card .amt b,
.cf-tablebox td:nth-child(n+3),
.rab-table .c-price,.rab-table .c-total,.rab-table .c-act,
.term-table .term-nominal,.term-table .term-paid,.term-table .term-action,
.table-wrap .pill,.table-wrap .st,.table-wrap .results-btn,
.invoice-actions,.badge-inv,.status-pill{
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
}
/* Main project table: give descriptive columns breathing room */
.table-wrap table.project-table,
.project-table table,
.table-wrap table:not(.inv-table):not(.cf-tablebox table){
  min-width:1100px !important;
}
.table-wrap td .pname,
.table-wrap td .psub,
.table-wrap td small{
  display:block !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
/* Grid-style RAB/Termin rows: prevent cramped overlap */
.rab-tr,.term-tr{column-gap:14px !important}
.rab-tr > *, .term-tr > *{min-width:0 !important;overflow:hidden;text-overflow:ellipsis}
.rab-tr .c-act,.term-tr .term-action{overflow:visible !important}

/* Project action: clear Detail button */
.row-view .results-btn{
  background:#fff !important;
  color:#111827 !important;
  border:1px solid #DDE4EC !important;
  width:76px !important;
  height:26px !important;
  border-radius:8px !important;
  font-weight:600 !important;
  font-size:10px !important;
  box-shadow:none !important;
}
.row-view .results-btn:hover{background:#F7F8FA !important;border-color:#C9D3DF !important;color:#111827 !important}

/* Salary page */
.salary-page{background:#F7F8FA !important}
.salary-wrap{max-width:1180px;margin:0 auto;padding-bottom:40px}
.salary-form-panel{background:#fff !important;border:0 !important;border-radius:20px !important;box-shadow:var(--clean-shadow) !important;padding:22px !important;margin-bottom:18px}
.salary-form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:end}
.salary-form .wide{grid-column:span 3}
.salary-table{border:1px solid #E1E6EF !important;border-radius:14px !important;background:#fff !important;box-shadow:none !important;overflow-x:auto !important;padding:0 !important}
.salary-table table{min-width:860px !important;width:100% !important;border-collapse:separate !important;border-spacing:0 !important}
.salary-table th{background:#fff !important;color:#16A34A !important;font-size:11.5px !important;font-weight:600 !important;text-transform:none !important;border-bottom:1px solid #E1E6EF !important;text-align:left !important}
.salary-table td{border-bottom:1px solid #E8EDF4 !important;color:#111827 !important;font-size:12px !important;text-align:left !important}
.salary-table td:nth-child(4){white-space:nowrap !important;text-align:left !important}
.salary-table td:last-child{text-align:center !important;overflow:visible !important}
.salary-table form{margin:0;display:inline-flex}
.salary-table .btn-sm.btn-del{width:62px !important;height:26px !important;border-radius:8px !important;font-size:10px !important;background:#fff !important;color:#DC2626 !important;border:1px solid #FECACA !important;box-shadow:none !important}
@media(max-width:900px){.salary-form{grid-template-columns:1fr 1fr}.salary-form .wide{grid-column:span 2}}
@media(max-width:640px){.salary-form{grid-template-columns:1fr}.salary-form .wide{grid-column:span 1}.salary-wrap{padding-left:16px;padding-right:16px}}

/* Project list: Results/Detail removed, restore compact action column */
.table-wrap th:nth-last-child(1),.table-wrap td:nth-last-child(1){width:56px !important;text-align:center !important}
.table-wrap th:nth-last-child(2),.table-wrap td:nth-last-child(2){width:96px !important;text-align:center !important}
.table-wrap th:nth-last-child(3),.table-wrap td:nth-last-child(3){width:88px !important;text-align:center !important}
.row-view{display:table-cell !important;text-align:center !important;vertical-align:middle !important;white-space:nowrap !important}
.row-view .results-btn{display:none !important}
.row-view .row-menu{margin-left:0 !important;display:inline-flex !important;justify-content:center !important;align-items:center !important}
.row-view .dots-btn{width:28px !important;height:28px !important;border:0 !important;background:transparent !important;color:#111827 !important;border-radius:8px !important;line-height:1 !important;padding:0 !important;box-shadow:none !important}
.row-view .dots-btn:hover{background:#F3F4F6 !important}

/* Restore project list action with RESULTS button */
.row-view .results-btn{display:inline-flex !important;background:#111827 !important;color:#fff !important;border:0 !important;width:76px !important;height:26px !important;border-radius:8px !important;font-size:10px !important;font-weight:600 !important;align-items:center !important;justify-content:center !important;text-decoration:none !important;box-shadow:none !important}
.row-view .results-btn:hover{background:#1F2937 !important;color:#fff !important}
.table-wrap th:nth-last-child(1),.table-wrap td:nth-last-child(1){width:116px !important;text-align:center !important}
.row-view .row-menu{margin-left:8px !important}

/* Log Trail + Users margin normalization */
.legacy-main,
.main.legacy-main{background:#F7F8FA !important;padding:0 !important}
.legacy-main > .project-hero,
.main > .project-hero{
  margin:22px 34px 16px !important;
  padding:24px 26px !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:var(--clean-shadow) !important;
  border:0 !important;
}
.legacy-main > main,
.main > main{
  margin:0 34px 40px !important;
  padding:0 !important;
}
.legacy-main .panel,
.main > main .panel{
  margin:0 0 18px !important;
  padding:22px !important;
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:var(--clean-shadow) !important;
}
.filter-bar{
  margin:0 0 14px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.filter-bar input,.filter-bar select{
  height:34px !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  padding:0 12px !important;
  font-size:12.5px !important;
}
.act-table,.user-table{
  border:1px solid #E1E6EF !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#fff !important;
  box-shadow:none !important;
}
.act-table .tr,.user-table .tr{padding-left:16px !important;padding-right:16px !important;column-gap:14px !important}
.user-table input,.user-table select,.meta-form2 input,.meta-form2 select{
  height:34px !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  font-size:12.5px !important;
}
.meta-form2.grid-outline{
  margin:0 !important;
  padding:16px !important;
  border:1px solid #E1E6EF !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:none !important;
}
@media(max-width:720px){.legacy-main > .project-hero,.main > .project-hero,.legacy-main > main,.main > main{margin-left:16px !important;margin-right:16px !important}}

/* Cleaner filter + kebab + spacing */
.filter-bar input#logSearch{max-width:260px !important;width:260px !important}
.row-view{display:table-cell !important;text-align:center !important;vertical-align:middle !important;white-space:nowrap !important}
.row-view .results-btn{margin-right:14px !important}
.row-view .row-menu{margin-left:0 !important;vertical-align:middle !important}
.row-view .dots-btn{
  width:30px !important;
  height:30px !important;
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:3px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:8px !important;
  box-shadow:none !important;
  color:transparent !important;
  font-size:0 !important;
}
.row-view .dots-btn span{
  width:3px !important;
  height:3px !important;
  border-radius:50% !important;
  background:#111827 !important;
  display:block !important;
}
.row-view .dots-btn:hover{background:#F3F4F6 !important}
/* more breathing room in project action area */
.table-wrap th:nth-last-child(1),.table-wrap td:nth-last-child(1){width:132px !important;text-align:center !important}
.table-wrap td{padding-top:14px !important;padding-bottom:14px !important}

/* Project table: no artificial ellipsis between money/date columns */
.project-list,.project-table-wrap,.table-wrap{overflow-x:auto !important;overflow-y:hidden !important}
.table-wrap table{min-width:1280px !important;table-layout:auto !important}
.table-wrap td,.table-wrap th{overflow:visible !important;text-overflow:clip !important;white-space:nowrap !important}
.table-wrap .pill.money,.table-wrap .pill.net,.table-wrap .pill.roi,.table-wrap .st{overflow:visible !important;text-overflow:clip !important;white-space:nowrap !important}
.table-wrap td .pname,.table-wrap td .psub{white-space:normal !important;overflow:hidden !important;text-overflow:ellipsis !important}
.row-view .results-btn{display:inline-flex !important;color:#fff !important;background:#111827 !important;font-size:0 !important}
.row-view .results-btn::before{content:'RESULTS';font-size:10px;font-weight:600;color:#fff}
.row-view .dots-btn{font-size:0 !important;color:transparent !important}

/* Users page: RAB-style compact grid, correct margins */
.main.legacy-main > main .panel:has(#userForm){padding:22px !important}
#userForm.meta-form2.grid-outline{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:14px !important;
  align-items:end !important;
  padding:16px !important;
  margin:0 !important;
  border:1px solid #E1E6EF !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:none !important;
}
#userForm .rf{margin:0 !important;min-width:0 !important}
#userForm .rf-actions{display:flex !important;align-items:end !important;justify-content:flex-start !important}
#userForm .btn.primary,
#userForm button[type="submit"]{
  height:34px !important;
  padding:0 16px !important;
  border-radius:10px !important;
  background:#16A34A !important;
  box-shadow:0 8px 20px rgba(22,163,74,.22) !important;
  font-size:12px !important;
  font-weight:600 !important;
}
.user-table .act-tr{grid-template-columns:1.1fr 1.4fr 1.2fr 1.8fr 1.5fr !important}
@media(max-width:1000px){#userForm.meta-form2.grid-outline{grid-template-columns:1fr 1fr !important}}
@media(max-width:640px){#userForm.meta-form2.grid-outline{grid-template-columns:1fr !important}}

/* Restore project table proportions: project/client roomy, action compact */
.table-wrap table{table-layout:fixed !important;min-width:1120px !important;width:100% !important}
.table-wrap th,.table-wrap td{padding-left:14px !important;padding-right:14px !important}
/* Dashboard project table columns */
.table-wrap table th:nth-child(1),.table-wrap table td:nth-child(1){width:270px !important;white-space:normal !important;overflow:hidden !important;text-overflow:ellipsis !important}
.table-wrap table th:nth-child(2),.table-wrap table td:nth-child(2){width:170px !important;white-space:normal !important;overflow:hidden !important;text-overflow:ellipsis !important}
.table-wrap table th:nth-child(3),.table-wrap table td:nth-child(3){width:120px !important;white-space:normal !important;overflow:hidden !important;text-overflow:ellipsis !important}
.table-wrap table th:nth-child(4),.table-wrap table td:nth-child(4){width:92px !important;white-space:nowrap !important;text-align:center !important}
.table-wrap table th:nth-child(5),.table-wrap table td:nth-child(5),
.table-wrap table th:nth-child(6),.table-wrap table td:nth-child(6),
.table-wrap table th:nth-child(7),.table-wrap table td:nth-child(7){width:150px !important;white-space:nowrap !important}
.table-wrap table th:nth-child(8),.table-wrap table td:nth-child(8){width:135px !important;white-space:nowrap !important}
.table-wrap table th:nth-child(9),.table-wrap table td:nth-child(9){width:88px !important;text-align:center !important;white-space:nowrap !important}
.table-wrap table th:nth-child(10),.table-wrap table td:nth-child(10){width:92px !important;text-align:center !important;white-space:nowrap !important}
.table-wrap table th:nth-child(11),.table-wrap table td:nth-child(11){width:104px !important;text-align:center !important;white-space:nowrap !important}
.table-wrap td .pname,.table-wrap td .psub{white-space:normal !important;overflow:hidden !important;text-overflow:ellipsis !important}
.table-wrap .pill.money,.table-wrap .pill.net{width:auto !important;min-width:0 !important;max-width:100% !important;padding:4px 10px !important}
/* Bring kebab closer to RESULTS */
.row-view .results-btn{margin-right:6px !important}
.row-view .row-menu{margin-left:0 !important}
.row-view .dots-btn{width:24px !important;height:26px !important}
.table-wrap th:nth-last-child(1),.table-wrap td:nth-last-child(1){width:104px !important;text-align:center !important}

/* Sidebar logo slightly bigger */
.logo b{font-size:22px !important;letter-spacing:-.03em !important}
.logo span{font-size:13px !important;font-weight:500 !important}
.logo{padding-top:22px !important;padding-bottom:22px !important}

/* Project action kebab: exactly 3 dots, same height as RESULTS */
.row-view .results-btn{height:26px !important;line-height:26px !important;margin-right:6px !important}
.row-view .dots-btn{
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  min-height:26px !important;
  padding:0 !important;
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:3px !important;
  border-radius:8px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:hidden !important;
}
.row-view .dots-btn span{display:block !important;width:3px !important;height:3px !important;min-width:3px !important;min-height:3px !important;border-radius:50% !important;background:#111827 !important;margin:0 !important;padding:0 !important}
.row-view .dots-btn span:nth-child(n+4){display:none !important}

/* Sidebar plus/add project: same visual scale as nav item */
.nav-item .plus,
#sideAddProject{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  border-radius:10px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-left:auto !important;
  background:#16A34A !important;
  color:#fff !important;
  box-shadow:none !important;
}
.nav-item .plus svg,#sideAddProject svg{width:16px !important;height:16px !important;stroke:#fff !important}

/* Invoice create button follows Add Project style */
.invoice-create{
  height:30px !important;
  min-height:30px !important;
  padding:0 14px !important;
  border-radius:10px !important;
  background:#16A34A !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:600 !important;
  box-shadow:none !important;
  border:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
}
.invoice-create:hover{background:#15803D !important}

/* Invoice create: exact same green as Add Project plus */
.invoice-create{
  background:#16A34A !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:none !important;
}
.invoice-create:hover{background:#15803D !important;color:#fff !important}

/* Invoice PO Number should not be clipped */
.invoice-card .inv-table{min-width:1040px !important;table-layout:fixed !important}
.invoice-card .inv-table th:nth-child(1),
.invoice-card .inv-table td:nth-child(1){width:170px !important;white-space:nowrap !important;overflow:visible !important;text-overflow:clip !important}
.invoice-card .badge-inv{max-width:none !important;white-space:nowrap !important;overflow:visible !important;text-overflow:clip !important}
.invoice-card .inv-table th:nth-child(2),
.invoice-card .inv-table td:nth-child(2){width:190px !important}

/* Sidebar Add Project plus smaller */
.nav-item .plus,
#sideAddProject{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  border-radius:8px !important;
}
.nav-item .plus svg,
#sideAddProject svg{
  width:13px !important;
  height:13px !important;
}

/* Dashboard toolbar controls smaller */
.view-tabs,
.tab-switch,
.segmented{
  min-height:30px !important;
}
.view-tabs button,
.tab-switch button,
.segmented button,
#activeTab,
#archivedTab{
  height:30px !important;
  padding:0 12px !important;
  border-radius:9px !important;
  font-size:11px !important;
  font-weight:600 !important;
}
.col-toggle,
.column-toggle,
#columnToggle,
#colToggle,
.hide-cols-btn{
  height:30px !important;
  padding:0 12px !important;
  border-radius:9px !important;
  font-size:11px !important;
  font-weight:500 !important;
}
.add-project,
.add-btn,
#addProject,
#addProjectBtn,
button[data-add-project],
a[data-add-project]{
  height:30px !important;
  min-height:30px !important;
  padding:0 14px !important;
  border-radius:10px !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
  box-shadow:none !important;
}
.toolbar,
.project-toolbar,
.list-actions{
  gap:10px !important;
  align-items:center !important;
}

/* Invoice create exact same color as Add Project button */
.invoice-create,
a.invoice-create{
  background:#22C55E !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:none !important;
}
.invoice-create:hover,
a.invoice-create:hover{
  background:#16A34A !important;
  color:#fff !important;
}

/* Invoice create matches ADD PROJECT dimensions/style */
.invoice-create,
a.invoice-create{
  height:30px !important;
  min-height:30px !important;
  width:auto !important;
  min-width:0 !important;
  padding:0 14px !important;
  border-radius:10px !important;
  background:#22C55E !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:none !important;
  font-family:var(--font-ui) !important;
  font-size:11px !important;
  font-weight:600 !important;
  line-height:30px !important;
  letter-spacing:.02em !important;
  text-transform:uppercase !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
}
.invoice-create:hover,
a.invoice-create:hover{background:#16A34A !important;color:#fff !important}


/* FINAL: one green for Add Project + Buat Invoice */
:root{--trams-action-green:#22C55E;--trams-action-green-hover:#16A34A}
.add-btn,
button.add-btn,
a.add-btn,
#showProjectForm,
.invoice-create,
a.invoice-create,
.invoice-create.add-btn,
a.invoice-create.add-btn{
  background:var(--trams-action-green) !important;
  background-color:var(--trams-action-green) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 1px 2px rgba(34,197,94,.3) !important;
}
.add-btn:hover,
button.add-btn:hover,
a.add-btn:hover,
#showProjectForm:hover,
.invoice-create:hover,
a.invoice-create:hover,
.invoice-create.add-btn:hover,
a.invoice-create.add-btn:hover{
  background:var(--trams-action-green-hover) !important;
  background-color:var(--trams-action-green-hover) !important;
  color:#fff !important;
}

/* Invoice detail app-theme view (PDF route untouched) */
.invoice-view-page{background:#F7F8FA !important}
.invoice-view-wrap{max-width:1180px;margin:0 auto;padding:22px 0 42px}
.invoice-view-actions{margin:0 0 16px !important;gap:8px !important}
.invoice-view-actions form{margin:0 !important;display:inline-flex !important}
.invoice-view-actions .btn{height:26px !important;min-width:76px !important;border-radius:8px !important;padding:0 12px !important;font-size:10px !important;font-weight:600 !important;line-height:26px !important;box-shadow:none !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;text-decoration:none !important;border:1px solid transparent !important}
.invoice-view-actions .btn-back{background:#fff !important;color:#111827 !important;border-color:#DDE4EC !important}
.invoice-view-actions .btn-pdf{background:#22C55E !important;color:#fff !important;border-color:#22C55E !important}
.invoice-view-actions .btn-del{background:#fff !important;color:#DC2626 !important;border-color:#FECACA !important}
.invoice-summary-panel,.invoice-items-panel,.invoice-footer-panel{background:#fff !important;border:0 !important;border-radius:20px !important;box-shadow:var(--clean-shadow) !important;padding:22px !important;margin:0 0 18px !important}
.invoice-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.invoice-info-grid.two{grid-template-columns:1fr 1fr}.invoice-info-grid>div{border:1px solid #E1E6EF;border-radius:14px;padding:14px 16px;background:#fff}.invoice-info-grid span{display:block;color:#16A34A;font-size:12px;font-weight:600;margin-bottom:6px}.invoice-info-grid b{display:block;color:#111827;font-size:14px;font-weight:600;line-height:1.4}.invoice-info-grid small{display:block;margin-top:5px;color:#6B7280;font-size:12px}
.invoice-view-table{border:1px solid #E1E6EF !important;border-radius:14px !important;overflow-x:auto !important;background:#fff !important;box-shadow:none !important;padding:0 !important}.invoice-view-table table{min-width:820px !important;width:100% !important;border-collapse:separate !important;border-spacing:0 !important}.invoice-view-table th{background:#fff !important;color:#16A34A !important;font-size:11.5px !important;font-weight:600 !important;text-transform:none !important;border-bottom:1px solid #E1E6EF !important;text-align:left !important}.invoice-view-table td{border-bottom:1px solid #E8EDF4 !important;color:#111827 !important;font-size:12px !important;text-align:left !important;padding:13px 16px !important}.invoice-view-table td:first-child,.invoice-view-table th:first-child{text-align:center !important;width:56px !important}.invoice-view-table td:nth-child(5),.invoice-view-table th:nth-child(5){white-space:nowrap !important;text-align:left !important}.invoice-view-table td small{display:block;color:#6B7280;font-size:11px;margin-top:3px}.invoice-total-line td{background:#fff !important;font-weight:600 !important}.invoice-total-line td:first-child,.invoice-grand-line td:first-child{text-align:right !important}.invoice-grand-line td{background:#F7F8FA !important;font-weight:600 !important;color:#111827 !important}.invoice-words-line td{background:#FFFBEB !important;color:#92400E !important;font-style:italic !important}.invoice-created-note{text-align:right;color:#6B7280;font-size:12px;margin:14px 0 0}
@media(max-width:900px){.invoice-info-grid,.invoice-info-grid.two{grid-template-columns:1fr}.invoice-view-wrap{padding-left:16px;padding-right:16px}}

/* Better date/month inputs */
input[type="date"],input[type="month"]{
  height:34px !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  padding:0 10px !important;
  font-family:var(--font-ui) !important;
  font-size:12.5px !important;
  color:#111827 !important;
  background:#fff !important;
  box-shadow:none !important;
  color-scheme:light !important;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator{
  opacity:.75;cursor:pointer;padding:4px;border-radius:6px;background-color:#F3F4F6;
}
input[type="date"]::-webkit-calendar-picker-indicator:hover,
input[type="month"]::-webkit-calendar-picker-indicator:hover{background-color:#E5E7EB}
.salary-form{grid-template-columns:repeat(4,1fr) !important}.salary-form .wide{grid-column:span 3 !important}.salary-filter{display:flex;align-items:end;gap:10px;margin:0 0 14px}.salary-filter .rf{width:180px;margin:0}.salary-filter .btn{height:34px;border-radius:8px;padding:0 14px;font-size:12px;font-weight:600}.salary-table table{min-width:1040px !important}.salary-table th:nth-child(4),.salary-table td:nth-child(4){white-space:nowrap !important}.salary-table th:nth-child(5),.salary-table td:nth-child(5){text-align:center !important}.salary-table .status-pill{width:112px !important;height:26px !important;justify-content:center !important;white-space:nowrap !important}.salary-status-form{margin:0 !important;display:flex !important;justify-content:center !important}.salary-status-form select{height:26px;width:128px;border:0;border-radius:999px;background:var(--gray-pill);color:var(--head);font-size:10.5px;font-weight:600;text-align:center;text-align-last:center;padding:0 8px;outline:none;cursor:pointer}.salary-table th:nth-child(7),.salary-table td:nth-child(7){white-space:normal !important;overflow-wrap:anywhere !important;word-break:normal !important;line-height:1.35 !important;max-width:220px !important}
@media(max-width:900px){.salary-form{grid-template-columns:1fr 1fr !important}.salary-form .wide{grid-column:span 2 !important}.salary-filter{flex-wrap:wrap}}
@media(max-width:640px){.salary-form{grid-template-columns:1fr !important}.salary-form .wide{grid-column:span 1 !important}}

/* Invoice form/edit — align with Salary/RAB baseline */
.legacy-main .form-card,
#inv-form.form-card{
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:var(--clean-shadow) !important;
  padding:22px !important;
  margin:0 0 28px !important;
}
#inv-form .form-section{
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
}
#inv-form .form-section h3{
  margin:0 0 14px !important;
  padding:0 0 10px !important;
  border-bottom:1px solid #E8EDF4 !important;
  color:#16A34A !important;
  font-size:14px !important;
  font-weight:600 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}
#inv-form label{
  display:block !important;
  color:#374151 !important;
  font-size:12px !important;
  font-weight:600 !important;
  margin:0 0 6px !important;
}
#inv-form .form-row.three{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:14px !important}
#inv-form .form-row.full{display:grid !important;grid-template-columns:1fr !important;margin-top:14px !important}
#inv-form input,
#inv-form textarea{
  width:100% !important;
  min-width:0 !important;
  border:1px solid #DDE4EC !important;
  border-radius:8px !important;
  background:#fff !important;
  color:#111827 !important;
  font-family:var(--font-ui) !important;
  font-size:12.5px !important;
  font-weight:400 !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
}
#inv-form input{height:34px !important;padding:0 10px !important}
#inv-form textarea{min-height:72px !important;padding:9px 10px !important;resize:vertical !important}
#inv-form input:focus,#inv-form textarea:focus{outline:none !important;border-color:#16A34A !important;box-shadow:0 0 0 3px rgba(22,163,74,.12) !important}
#inv-form .item-header,
#items-container .item-row{
  display:grid !important;
  grid-template-columns:54px 1.35fr 1.35fr 112px 82px 140px 34px !important;
  gap:10px !important;
  align-items:center !important;
}
#inv-form .item-header{
  background:#fff !important;
  color:#6B7280 !important;
  font-size:11px !important;
  font-weight:600 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  padding:0 0 8px !important;
  border-bottom:1px solid #E8EDF4 !important;
  margin-bottom:10px !important;
}
#items-container{display:grid !important;gap:10px !important}
#items-container .item-row{padding:0 !important;background:transparent !important;border:0 !important}
#items-container .del-btn{
  width:30px !important;height:30px !important;border-radius:8px !important;
  background:#fff !important;border:1px solid #FECACA !important;color:#DC2626 !important;
  font-size:14px !important;font-weight:600 !important;padding:0 !important;box-shadow:none !important;
}
#add-item-btn{
  height:30px !important;border-radius:8px !important;background:#fff !important;color:#111827 !important;
  border:1px solid #DDE4EC !important;box-shadow:none !important;font-size:12px !important;font-weight:600 !important;
  padding:0 12px !important;margin:14px 0 0 !important;
}
#inv-form .total-bar{
  margin-top:16px !important;background:#fff !important;color:#111827 !important;border:1px solid #E1E6EF !important;
  border-radius:14px !important;box-shadow:none !important;padding:14px 16px !important;
}
#inv-form .total-bar .lbl{color:#6B7280 !important;font-size:12px !important;font-weight:600 !important}
#inv-form .total-bar .val{color:#16A34A !important;font-size:20px !important;font-weight:600 !important}
#inv-form .btn-submit{
  height:34px !important;border-radius:10px !important;background:#16A34A !important;color:#fff !important;border:0 !important;
  box-shadow:0 8px 20px rgba(22,163,74,.22) !important;font-size:12px !important;font-weight:600 !important;
  padding:0 18px !important;width:auto !important;min-width:140px !important;margin-top:0 !important;
}
.legacy-main > h2{color:#111827 !important;font-size:22px !important;font-weight:600 !important;margin:0 0 16px !important;letter-spacing:-.02em !important}
@media(max-width:900px){#inv-form .form-row.three{grid-template-columns:1fr !important}#inv-form .item-header,#items-container .item-row{grid-template-columns:1fr !important}}

/* Invoice form title breathing space */
.legacy-main > h2{
  margin-top:18px !important;
  margin-bottom:18px !important;
}
main.legacy-main[style*="max-width:900px"]{
  padding-top:46px !important;
}

/* Invoice detail totals align with Sub Total column */
.invoice-view-table .invoice-total-line td,
.invoice-view-table .invoice-grand-line td{
  text-align:left !important;
}
.invoice-view-table .invoice-total-line td:first-child,
.invoice-view-table .invoice-grand-line td:first-child{
  text-align:left !important;
  padding-left:16px !important;
}
.invoice-view-table .invoice-total-line td:last-child,
.invoice-view-table .invoice-grand-line td:last-child{
  text-align:left !important;
  padding-left:16px !important;
  white-space:nowrap !important;
}
.invoice-view-table .invoice-words-line td{
  background:#F2FFF8 !important;
  color:#16A34A !important;
  font-style:italic !important;
  font-weight:600 !important;
  text-align:left !important;
  padding-left:16px !important;
}

/* Invoice detail summary rows: align label/amount to Unit/Sub Total columns */
.invoice-view-table .invoice-total-line td:nth-child(2),
.invoice-view-table .invoice-grand-line td:nth-child(2){
  text-align:center !important;
  font-weight:600 !important;
  color:#111827 !important;
}
.invoice-view-table .invoice-total-line td:nth-child(3),
.invoice-view-table .invoice-grand-line td:nth-child(3){
  text-align:left !important;
  font-weight:600 !important;
  white-space:nowrap !important;
}
.invoice-view-table .invoice-total-line td:first-child,
.invoice-view-table .invoice-grand-line td:first-child{
  background:inherit !important;
}

/* Invoice summary: labels in first column, amounts in Sub Total column */
.invoice-view-table .invoice-total-line td,
.invoice-view-table .invoice-grand-line td{font-weight:600 !important}
.invoice-view-table .invoice-total-line td:first-child,
.invoice-view-table .invoice-grand-line td:first-child{
  text-align:center !important;
  color:#111827 !important;
  white-space:nowrap !important;
}
.invoice-view-table .invoice-total-line td:nth-child(5),
.invoice-view-table .invoice-grand-line td:nth-child(5){
  text-align:left !important;
  padding-left:16px !important;
  white-space:nowrap !important;
}
.invoice-view-table .invoice-total-line td:nth-child(2),
.invoice-view-table .invoice-grand-line td:nth-child(2),
.invoice-view-table .invoice-total-line td:nth-child(3),
.invoice-view-table .invoice-grand-line td:nth-child(3),
.invoice-view-table .invoice-total-line td:nth-child(4),
.invoice-view-table .invoice-grand-line td:nth-child(4){
  text-align:left !important;
}

/* Invoice totals final cleanup */
.invoice-view-table .invoice-grand-line td{
  background:#fff !important;
}
.invoice-view-table .invoice-total-line td:first-child,
.invoice-view-table .invoice-grand-line td:first-child{
  text-align:left !important;
  padding-left:16px !important;
  color:#111827 !important;
}
.invoice-view-table .invoice-total-line td:nth-child(5),
.invoice-view-table .invoice-grand-line td:nth-child(5){
  background:#fff !important;
}

/* Project kebab: exact 3 small vertical dots + floating menu */
.dots-btn{
  width:26px !important;height:26px !important;min-width:26px !important;
  padding:0 !important;border-radius:8px !important;
  display:inline-flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;
  gap:2px !important;background:#fff !important;border:1px solid #111827 !important;line-height:1 !important;font-size:0 !important;
}
.dots-btn span{
  display:block !important;width:3px !important;height:3px !important;min-width:3px !important;min-height:3px !important;
  max-width:3px !important;max-height:3px !important;border-radius:999px !important;background:#111827 !important;
  padding:0 !important;margin:0 !important;border:0 !important;box-shadow:none !important;line-height:0 !important;
}
.mini-menu.floating-menu{position:fixed !important;z-index:9999 !important;overflow:visible !important}

/* FINAL hard override: kebab 3 dots only, no pseudo extra dot, no rotation */
body .row-view .row-menu > button.dots-btn,
body button.dots-btn{
  transform:none !important;
  width:26px !important;height:26px !important;min-width:26px !important;max-width:26px !important;
  padding:0 !important;margin:0 !important;
  border:1px solid #111827 !important;border-radius:8px !important;background:#fff !important;
  display:inline-flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;
  gap:2px !important;font-size:0 !important;line-height:0 !important;letter-spacing:0 !important;color:transparent !important;overflow:hidden !important;
}
body .row-view .row-menu > button.dots-btn::before,
body .row-view .row-menu > button.dots-btn::after,
body button.dots-btn::before,
body button.dots-btn::after{
  content:none !important;display:none !important;width:0 !important;height:0 !important;box-shadow:none !important;background:transparent !important;
}
body .row-view .row-menu > button.dots-btn span,
body button.dots-btn span{
  display:block !important;width:3px !important;height:3px !important;min-width:3px !important;min-height:3px !important;
  max-width:3px !important;max-height:3px !important;border-radius:999px !important;background:#111827 !important;
  flex:0 0 3px !important;padding:0 !important;margin:0 !important;border:0 !important;box-shadow:none !important;
}
body button.dots-btn span:nth-of-type(n+4){display:none !important}
body .mini-menu.floating-menu{position:fixed !important;z-index:2147483647 !important;overflow:visible !important}

/* FINAL visual: kebab has no box, dots only */
body .row-view .row-menu > button.dots-btn,
body button.dots-btn{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  width:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  height:26px !important;
  padding:0 !important;
  margin:0 !important;
  outline:0 !important;
  cursor:pointer !important;
  overflow:visible !important;
}
body .row-view .row-menu > button.dots-btn:hover,
body button.dots-btn:hover{background:transparent !important;border:0 !important;box-shadow:none !important}
body .row-view .row-menu > button.dots-btn span,
body button.dots-btn span{
  width:4px !important;height:4px !important;min-width:4px !important;min-height:4px !important;max-width:4px !important;max-height:4px !important;
  background:#111827 !important;border-radius:999px !important;display:block !important;flex:0 0 4px !important;
}
body .mini-menu{position:fixed !important;z-index:2147483647 !important;transform:none !important}
body .mini-menu.open{display:block !important;visibility:visible !important;opacity:1 !important}

/* Kebab thinner dots */
body .row-view .row-menu > button.dots-btn,
body button.dots-btn{
  width:14px !important;
  min-width:14px !important;
  max-width:14px !important;
  height:24px !important;
  gap:2px !important;
}
body .row-view .row-menu > button.dots-btn span,
body button.dots-btn span{
  width:2.5px !important;
  height:2.5px !important;
  min-width:2.5px !important;
  min-height:2.5px !important;
  max-width:2.5px !important;
  max-height:2.5px !important;
  flex:0 0 2.5px !important;
}

/* Floating menu: let inline JS coords win completely */
body .mini-menu.floating-menu{
  right:auto !important;
  bottom:auto !important;
  margin:0 !important;
}

/* Hard hide closed project menus */
body .mini-menu[hidden]{display:none !important;visibility:hidden !important;opacity:0 !important;pointer-events:none !important}

/* Archived badge same footprint as Active + no overlap with Results */
.table-wrap th:nth-child(10),
.table-wrap td:nth-child(10){
  width:96px !important;
  min-width:96px !important;
  white-space:nowrap !important;
}
.table-wrap th:nth-child(11),
.table-wrap td:nth-child(11){
  width:132px !important;
  min-width:132px !important;
  white-space:nowrap !important;
}
.table-wrap .st{
  min-width:72px !important;
  justify-content:center !important;
  text-align:center !important;
  padding:4px 12px !important;
  box-sizing:border-box !important;
}

/* Termin status: keep long label visible (Belum jatuh tempo) */
.project-detail-page .term-tr{
  grid-template-columns:1.35fr 1.3fr .55fr 1.05fr .95fr minmax(124px,1.25fr) 1.05fr .85fr .85fr !important;
}
.project-detail-page .term-tr > div:nth-child(6){
  min-width:124px !important;
  white-space:nowrap !important;
}
.project-detail-page .term-tr .status-pill{
  min-width:112px !important;
  justify-content:center !important;
  white-space:nowrap !important;
  overflow:visible !important;
  padding:4px 10px !important;
  box-sizing:border-box !important;
}


/* Permission UX: same layout for non-admin; sensitive info blurred */
.is-blurred{filter:blur(5px) !important; user-select:none !important; pointer-events:none !important}
.no-access{opacity:.92; cursor:not-allowed !important}
.no-access-flash{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;border-radius:12px;padding:10px 14px;font:600 12px Poppins,Arial;z-index:2147483647;box-shadow:0 12px 30px rgba(15,23,42,.22)}

/* Termin realization workflow */
.project-detail-page .term-tr{grid-template-columns:1.25fr 1.25fr .55fr 1fr .9fr 1fr 1fr 1fr 1fr .85fr 1fr!important}
.realization-wrap{margin-top:18px;display:grid;gap:14px}
.section-head.compact{margin-top:8px;margin-bottom:0}
.section-head.compact h3{margin:0;color:var(--navy);font-size:18px}
.real-card{background:#fff;border-radius:16px;overflow:hidden}
.real-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid #EEF2F6}
.real-head b{display:block;color:var(--navy);font-weight:600}
.real-head span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.real-group-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:12px 16px;background:#fbfcfd;border-bottom:1px solid #EEF2F6}
.real-group-row span{font-size:12px;color:var(--muted)}
.real-group-row b{float:right;color:var(--navy);font-weight:600}
.real-tr{display:grid;grid-template-columns:1fr 1.7fr 1fr .85fr 1.2fr .9fr;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid #EEF2F6;font-size:13px}
.real-headrow{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--head);font-weight:600;background:#fff}
.real-empty{color:var(--muted)}
.modal-overlay[hidden]{display:none!important}
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:center;justify-content:center;z-index:2147483000;padding:24px}
.modal-box{width:min(720px,96vw);background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.22);padding:18px}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.modal-head b{color:var(--navy);font-size:18px}
.modal-head button{border:0;background:#f3f6f8;border-radius:10px;width:32px;height:32px;font-size:20px;cursor:pointer}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
@media(max-width:1100px){.project-detail-page .term-tr,.real-tr{grid-template-columns:1fr;align-items:start}.c-num{text-align:left!important}.real-head{align-items:flex-start;flex-direction:column}}

/* Termin Realization Dashboard */
.termin-dash{margin-top:18px}
.tdash-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.tdash-summary article{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.tdash-summary span{display:block;font-size:11px;color:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.tdash-summary b{display:block;color:var(--navy);font-size:18px;margin-top:5px;font-weight:700}
.tdash-summary small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.tdash-summary .good b{color:var(--green-d)}
.tdash-summary .warn b{color:#c98a12}
.tdash-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.tdash-filters .fselect{min-width:210px;background:#fff}
.tdash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.tdash-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:0 10px 30px rgba(15,23,42,.05)}
.tdash-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.tdash-card-head b{display:block;color:var(--navy);font-size:16px;font-weight:700}
.tdash-card-head span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.tdash-card-head strong{color:var(--green-d);font-size:14px;white-space:nowrap}
.tdash-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.tdash-metrics div{background:#F8FAFC;border:1px solid #EEF2F6;border-radius:12px;padding:10px}
.tdash-metrics span{display:block;color:var(--muted);font-size:11px}
.tdash-metrics b{display:block;color:var(--navy);font-size:13px;margin-top:3px}
.tdash-bars{display:grid;gap:9px;margin:8px 0 14px}
.tdash-bars label span{display:flex;justify-content:space-between;color:var(--head);font-size:12px;margin-bottom:5px}
.tdash-bars i{display:block;height:10px;background:#EAF7F1;border-radius:999px;overflow:hidden}
.tdash-bars i em{display:block;height:100%;background:var(--green);border-radius:999px}
.tdash-bars i.used{background:#FEF3C7}
.tdash-bars i.used em{background:#F59E0B}
.tdash-allocation{display:grid;gap:8px}
.tdash-allocation div{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #EEF2F6;padding-top:8px;color:var(--muted);font-size:12px}
.tdash-allocation b{color:var(--navy);font-weight:600}
.tdash-empty{grid-column:1/-1;color:var(--muted);background:#fff;border:1px dashed var(--border);border-radius:14px;padding:18px;text-align:center}
@media(max-width:760px){.tdash-card-head{flex-direction:column}.tdash-metrics{grid-template-columns:1fr}.tdash-filters .fselect{width:100%}}

/* Better Termin Dashboard filters: segmented chips */
.tdash-filterbar{display:grid;gap:10px;margin:0 0 18px;padding:12px;background:#F8FAFC;border:1px solid #EEF2F6;border-radius:18px}
.tdash-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tdash-filter-row input[type=date]{min-height:38px;padding:7px 10px;border:1px solid #DCE3EA;border-radius:10px;background:#fff;color:var(--navy)}
#rAmount[readonly]{background:#F3F7F4;color:#16803A;font-weight:700;cursor:not-allowed}
#rAmount[readonly]::placeholder{font-weight:400;color:#94A3B8}
.expense-dashboard{margin-top:18px;border:1px solid #E2E8F0;border-radius:18px;background:#fff;overflow:hidden}.expense-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 20px;border-bottom:1px solid #EEF2F6}.expense-dashboard-head h3{margin:0 0 4px;color:var(--green);font-size:18px}.expense-dashboard-head p{margin:0;color:#7B8794;font-size:12px}.expense-dashboard-stats{display:flex;gap:10px}.expense-dashboard-stats span{min-width:145px;padding:10px 12px;border:1px solid #E5EBF0;border-radius:12px;background:#F8FAFC}.expense-dashboard-stats small{display:block;color:#8B97A3;font-size:10px;text-transform:uppercase;font-weight:700}.expense-dashboard-stats b{display:block;margin-top:3px;color:var(--navy);font-size:15px}.expense-dashboard-table{overflow-x:auto}.expense-tr{display:grid;grid-template-columns:120px 130px minmax(170px,1fr) minmax(240px,1.4fr) 150px;min-width:850px;border-bottom:1px solid #EEF2F6}.expense-tr>div{padding:11px 13px}.expense-head{background:#F4F7F9;color:#7B8794;font-size:10px;font-weight:700;text-transform:uppercase}.expense-row{color:#293746;font-size:12px}.expense-row:hover{background:#FBFDFC}.expense-empty{padding:24px;text-align:center;color:#94A3B8}.expense-empty[hidden]{display:none}@media(max-width:760px){.expense-dashboard-head{flex-direction:column}.expense-dashboard-stats{width:100%}.expense-dashboard-stats span{min-width:0;flex:1}}
.expense-date-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 20px;background:#F8FAFC;border-bottom:1px solid #EEF2F6}.expense-date-filter>span{margin-right:6px;color:var(--head);font-size:11px;font-weight:700;text-transform:uppercase}.expense-date-filter input[type=date]{min-height:38px;padding:7px 10px;border:1px solid #DCE3EA;border-radius:10px;background:#fff;color:var(--navy)}.expense-date-filter .disabled{opacity:.45;pointer-events:none}.expense-dashboard-placeholder{padding:38px 20px;text-align:center;color:#94A3B8}.expense-dashboard-content[hidden],.expense-dashboard-placeholder[hidden]{display:none}.expense-dashboard-content>.expense-dashboard-stats{padding:14px 20px;border-bottom:1px solid #EEF2F6}
.tdash-filter-row>span{min-width:112px;color:var(--head);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.tdash-chip{border:1px solid #DDE7E2;background:#fff;color:#53605B;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:600;line-height:1;cursor:pointer;transition:.16s ease;box-shadow:0 2px 8px rgba(15,23,42,.03)}
.tdash-chip:hover{border-color:#B8D8C7;color:var(--green-d);transform:translateY(-1px)}
.tdash-chip.active{background:linear-gradient(135deg,#16A34A,#0F8A3D);border-color:#16A34A;color:#fff;box-shadow:0 8px 20px rgba(22,163,74,.20)}
.tdash-chip.active:hover{color:#fff;transform:none}
.tdash-filters{display:none!important}
@media(max-width:760px){.tdash-filter-row>span{width:100%;min-width:0}.tdash-chip{padding:8px 11px}}

/* Cash carry-over line */
.tdash-flow{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:10px 0 12px;padding:10px 12px;border:1px solid #E6EEF5;border-radius:14px;background:#F8FAFC;color:#475569;font-size:12px}
.tdash-flow span,.tdash-flow b{background:#fff;border:1px solid #E5E7EB;border-radius:999px;padding:5px 9px;white-space:nowrap}
.tdash-flow b{color:#047857;border-color:#A7F3D0;background:#ECFDF5}
.tdash-flow i{font-style:normal;color:#94A3B8;font-weight:800}

/* RAB-like styling for Realisasi Biaya per Termin */
.realization-wrap{margin-top:18px;display:grid;gap:18px}
.real-card{background:#fff;border:1px solid #E6EBF1;border-radius:20px;overflow:hidden;box-shadow:0 12px 34px rgba(15,23,42,.055)}
.real-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:18px 20px;background:linear-gradient(180deg,#FFFFFF 0%,#F8FAFC 100%);border-bottom:1px solid #E6EBF1}
.real-head b{display:block;color:var(--navy);font-weight:750;font-size:17px;letter-spacing:-.02em}
.real-head span{display:block;color:#64748B;font-size:12.5px;margin-top:5px;line-height:1.45}
.real-head .mini-btn{background:#fff;border:1px solid #CDEDDD;color:#047857;border-radius:999px;padding:8px 13px;font-size:11.5px;font-weight:700;box-shadow:0 6px 16px rgba(16,185,129,.10)}
.real-head .mini-btn:hover{background:#ECFDF5;border-color:#86EFAC}
.real-group-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px 18px;background:#F8FAFC;border-bottom:1px solid #E6EBF1}
.real-group-row div{background:#fff;border:1px solid #E5EAF0;border-radius:14px;padding:12px 13px;box-shadow:0 4px 14px rgba(15,23,42,.035)}
.real-group-row span{display:block;font-size:11px;color:#64748B;font-weight:700;text-transform:uppercase;letter-spacing:.025em;line-height:1.3}
.real-group-row b{display:block;float:none;color:#0F172A;font-weight:750;margin-top:7px;font-size:14px}
.real-table{padding:0 18px 16px;background:#fff}
.real-tr{display:grid;grid-template-columns:1.05fr 1.55fr .95fr .85fr 1.15fr .85fr;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #EDF2F7;font-size:12.5px;color:#1F2937}
.real-tr:not(.real-headrow):hover{background:#F8FAFC;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;border-radius:12px}
.real-headrow{position:sticky;top:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.055em;color:#94A3B8;font-weight:800;background:#fff;padding-top:14px;padding-bottom:10px}
.real-tr .c-num{font-weight:750;color:#0F172A}
.real-empty{margin:14px 0 16px;padding:18px;border:1px dashed #CBD5E1;border-radius:14px;background:#F8FAFC;color:#64748B;text-align:center;font-size:12.5px}
.real-tr .mini-btn{border-radius:999px;padding:6px 10px;font-size:11px;background:#fff}
.real-tr .mini-btn.danger{color:#DC2626;border-color:#FECACA;background:#FFF7F7}
@media(max-width:1100px){.real-group-row{grid-template-columns:1fr}.real-table{padding:0 14px 14px}.real-tr{grid-template-columns:1fr;gap:6px}.real-head{align-items:flex-start;flex-direction:column}.real-tr:not(.real-headrow):hover{margin:0;padding-left:0;padding-right:0}}

/* Make realization section match RAB table style */
.realization-wrap{margin-top:28px;display:block}
.realization-wrap>.section-head{margin-bottom:14px}
.realization-wrap>.section-head h2{color:var(--green-d);font-size:22px;font-weight:800;letter-spacing:-.03em;margin:0 0 5px}
.real-add-card{margin:0 0 18px}
.real-card{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;margin:24px 0 28px}
.real-head{padding:0!important;background:transparent!important;border:0!important;margin:0 0 10px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.real-head b{display:block;color:#0F172A!important;font-size:18px!important;font-weight:800!important;letter-spacing:-.025em}
.real-head span{display:block;color:#64748B!important;font-size:12.5px!important;margin-top:4px;line-height:1.45}
.real-head .btn.ghost.sm{border:1px solid #D1D5DB;background:#fff;color:#0F172A;border-radius:10px;padding:8px 12px;font-weight:700;font-size:11.5px}
.real-group-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 12px;padding:0!important;background:transparent!important;border:0!important}
.real-group-row div{background:#fff;border:1px solid #E6EBF1;border-radius:14px;padding:12px 14px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.real-group-row span{display:block;color:#64748B;font-size:11.5px;font-weight:700;text-transform:none;letter-spacing:0;line-height:1.35}
.real-group-row b{display:block;margin-top:7px;color:#0F172A;font-size:15px;font-weight:800}
.real-table.grid-outline{background:#fff;border:1px solid #E6EBF1;border-radius:18px;overflow:hidden;padding:0!important;box-shadow:0 10px 28px rgba(15,23,42,.045)}
.real-tr{display:grid;grid-template-columns:1.1fr 1.7fr 1fr .9fr 1.25fr .9fr;gap:14px;align-items:center;padding:14px 18px!important;border-bottom:1px solid #EEF2F6;font-size:12.7px;color:#111827;background:#fff;margin:0!important;border-radius:0!important}
.real-headrow{background:#FAFBFC!important;color:#64748B!important;font-size:11px!important;text-transform:none!important;letter-spacing:0!important;font-weight:800!important;padding:13px 18px!important}
.real-tr:not(.real-headrow):hover{background:#FBFDFB!important}
.real-tr:last-child{border-bottom:0}
.real-tr .c-num{font-weight:800;color:#0F172A;text-align:right}
.real-tr .c-act{display:flex;gap:6px;justify-content:flex-start;flex-wrap:wrap}
.real-tr .c-act button{border:1px solid #D1D5DB;background:#fff;border-radius:10px;padding:6px 10px;font-size:11.2px;font-weight:700;color:#374151}
.real-tr .c-act button.del{border-color:#FECACA;background:#FFF7F7;color:#DC2626}
.real-empty{display:block!important;margin:0!important;padding:18px!important;border:0!important;border-top:1px solid #EEF2F6!important;border-radius:0!important;background:#fff!important;color:#64748B;text-align:center;font-size:12.5px}
@media(max-width:1100px){.real-group-row{grid-template-columns:1fr}.real-head{align-items:flex-start;flex-direction:column}.real-tr{grid-template-columns:1fr}.real-tr .c-num{text-align:left}}

/* Realization table columns equal RAB */
.real-tr{grid-template-columns:.35fr 1.8fr .45fr .45fr 1fr 1fr 1.15fr 1fr!important}
.real-tr small{display:block;color:#64748B;font-size:11.2px;margin-top:3px;line-height:1.35}
.real-tr>div:first-child{color:#64748B;font-weight:700}
.real-headrow>div:first-child{color:#64748B}
@media(max-width:1100px){.real-tr{grid-template-columns:1fr!important}}

/* Realisasi grouped by cost component, same visual language as RAB */
.real-subgroup{margin:24px 0 28px}
.real-subgroup h3{margin:0 0 12px;color:#0F172A;font-size:18px;font-weight:800;letter-spacing:-.025em}
.real-rab-table.sub-table{background:#fff;border:1px solid #E6EBF1;border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(15,23,42,.045)}
.real-rab-table .sub-tr{display:grid;grid-template-columns:44px 1.75fr 1fr .45fr .45fr 1fr 1fr 1.2fr 1fr;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid #EEF2F6;font-size:12.5px;color:#111827}
.real-rab-table .sub-head{background:#FAFBFC;color:#64748B;font-weight:800;font-size:11px;text-transform:none;letter-spacing:0}
.real-rab-table .sub-tr:last-child{border-bottom:0}
.real-rab-table .sub-tr:not(.sub-head):hover{background:#FBFDFB}
.real-rab-table .c-num{text-align:right}
.real-rab-table small{display:block;color:#64748B;font-size:11.2px;margin-top:3px}
.real-rab-table .c-act{display:flex;gap:6px;flex-wrap:wrap}
.real-rab-table .c-act button{border:1px solid #D1D5DB;background:#fff;border-radius:10px;padding:6px 10px;font-size:11.2px;font-weight:700;color:#374151}
.real-rab-table .c-act button.del{border-color:#FECACA;background:#FFF7F7;color:#DC2626}
.real-rab-table .real-empty{display:block!important;background:#fff!important;color:#64748B;text-align:center}
@media(max-width:1100px){.real-rab-table .sub-tr{grid-template-columns:1fr}.real-rab-table .c-num{text-align:left}}

/* Final: realisasi must inherit exact RAB table layout */
.realization-wrap .section-head h2{font-size:inherit!important;color:var(--green-d)!important;font-weight:inherit!important;letter-spacing:inherit!important}
.realization-wrap .section-head{margin-bottom:14px!important}
.real-rab-group{margin:22px 0!important}
.real-rab-group h3{margin:0 0 12px!important;color:#0F172A!important;font-size:18px!important;font-weight:800!important;letter-spacing:-.025em!important}
.real-rab-group .rab-table{border:1px solid var(--border)!important;border-radius:10px!important;overflow:hidden!important;box-shadow:none!important;background:#fff!important}
.real-rab-group .rab-tr{gap:8px!important;padding:9px 12px!important;border-bottom:1px solid var(--row)!important;font-size:12px!important;align-items:center!important;background:#fff!important}
.real-rab-group .rab-head{background:#F4F6FA!important}
.real-rab-group .rab-item:hover{background:#FBFDFB!important}
.real-rab-group .c-desc small{display:block;color:#64748B;font-size:11px;margin-top:3px;font-weight:500}
/* Header identik RAB + Realisasi, dan row highlight penuh selebar tabel */
.project-detail-page #rab .rab-head,.real-rab-group .rab-head{background:#F4F6FA!important;border-bottom:1px solid #E1E6EF!important}
.project-detail-page #rab .rab-head>div,.real-rab-group .rab-head>div{color:#6B7280!important;font-size:11px!important;font-weight:700!important;letter-spacing:.02em!important;text-transform:uppercase!important}
.project-detail-page #rab .rab-item,.real-rab-group .rab-item{background:#fff!important}
.project-detail-page #rab .rab-item:hover,.real-rab-group .rab-item:hover{background:#F3F8F4!important}
.project-detail-page #rab .rab-tr,.real-rab-group .rab-tr{width:1484px!important}
/* Tanggal center, Keterangan kiri, header Aksi tetap punya background */
.project-detail-page #rab .rab-tr>.c-date,.real-rab-group .rab-tr>.c-date{align-items:center!important;text-align:center!important}
.project-detail-page #rab .rab-head>.c-date,.real-rab-group .rab-head>.c-date{justify-content:center!important}
.project-detail-page #rab .rab-tr>.c-note,.real-rab-group .rab-tr>.c-note{align-items:flex-start!important;text-align:left!important}
.project-detail-page #rab .rab-head>.c-act,.real-rab-group .rab-head>.c-act{justify-content:flex-start!important}
.project-detail-page #rab .rab-head,.real-rab-group .rab-head{background:#F4F6FA!important;width:1484px!important}
/* Fill warna sampai cell paling kanan, termasuk AKSI */
.project-detail-page #rab .rab-head>div,.real-rab-group .rab-head>div{background:#F4F6FA!important;align-self:stretch!important}
.project-detail-page #rab .rab-item>div,.real-rab-group .rab-item>div{background:inherit!important;align-self:stretch!important}
.project-detail-page #rab .rab-item:hover>div,.real-rab-group .rab-item:hover>div,.project-detail-page #rab .rab-item:focus-within>div,.real-rab-group .rab-item:focus-within>div{background:#F3F8F4!important}
.project-detail-page #rab .rab-sub>div,.real-rab-group .rab-sub>div{background:inherit!important;align-self:stretch!important}
/* Table block fill full: no grid gaps, full-height dividers per column */
.project-detail-page #rab .rab-tr,.real-rab-group .rab-tr{gap:0!important;padding:0!important;overflow:hidden!important}
.project-detail-page #rab .rab-tr>div,.real-rab-group .rab-tr>div{min-height:44px!important;padding:10px 12px!important;box-sizing:border-box!important;border-right:1px solid #E5E7EB!important;border-bottom:1px solid #E8EDF4!important}
.project-detail-page #rab .rab-tr>div:last-child,.real-rab-group .rab-tr>div:last-child{border-right:0!important}
.project-detail-page #rab .rab-head>div,.real-rab-group .rab-head>div{min-height:40px!important;border-bottom:1px solid #DDE3EC!important}
.project-detail-page #rab .rab-table.grid-outline .rab-tr:last-child>div,.real-rab-group .rab-table.grid-outline .rab-tr:last-child>div{border-bottom:0!important}
.real-rab-group .c-act{display:flex;gap:6px;flex-wrap:wrap}
.real-rab-group .c-act button{border:1px solid #D1D5DB;background:#fff;border-radius:10px;padding:6px 10px;font-size:11.2px;font-weight:700;color:#374151}
.real-rab-group .c-act button.del{border-color:#FECACA;background:#FFF7F7;color:#DC2626}
@media(max-width:1100px){.real-rab-group .c-num{text-align:right!important}}

/* Fix realisasi typography + exact RAB table layout */
.realization-wrap .section-head h2{font-size:16px!important;font-weight:600!important;letter-spacing:-.3px!important;color:var(--green-d)!important;margin:0!important}
.realization-wrap .section-head p{color:var(--head)!important;font-size:12.5px!important;margin:4px 0 0!important;font-weight:400!important}
.realization-wrap .form-card-head b{font-size:inherit!important;font-weight:600!important;color:var(--green-d)!important}
.real-rab-group .rab-table{margin:0!important;border:1px solid var(--border)!important;border-radius:10px!important;overflow:hidden!important;background:#fff!important;box-shadow:none!important}
.real-rab-group .rab-tr{display:grid!important;gap:10px!important;padding:11px 14px!important;border-bottom:1px solid var(--row)!important;font-size:12px!important;align-items:center!important;background:#fff!important}
.real-rab-group .rab-head{background:#F4F6FA!important}
.real-rab-group .c-no{color:inherit!important;font-weight:inherit!important}
.real-rab-group .c-desc{font-weight:400!important;color:inherit!important}
.real-rab-group .c-desc small{display:block!important;color:var(--head)!important;font-size:11px!important;margin-top:2px!important;font-weight:400!important}
.real-rab-group .c-amount{font-weight:700!important;color:var(--text)!important}
.real-rab-group .c-nota .muted-note{color:var(--muted)!important}
.real-rab-group .c-act{display:flex!important;gap:6px!important;align-items:center!important;flex-wrap:wrap!important}
.real-rab-group .c-act button{border:1px solid #D1D5DB!important;background:#fff!important;border-radius:10px!important;padding:6px 10px!important;font-size:11.2px!important;font-weight:700!important;color:#374151!important}
.real-rab-group .c-act button.del{border-color:#FECACA!important;background:#FFF7F7!important;color:#DC2626!important}
@media(max-width:1100px){.real-rab-group .c-num{text-align:right!important}}

/* Final corrections: realisasi group heading same as RAB + termin filter */
.real-rab-group h3{font-size:13px!important;font-weight:600!important;color:var(--navy)!important;margin:0 0 8px!important;padding-left:2px!important;letter-spacing:normal!important}
.real-filter{padding:0!important;margin:0 0 14px!important}
.real-filter select{max-width:260px;flex:0 0 260px}

/* Lighter dashboard filter chip typography */
.tdash-filter-label{font-weight:600!important;letter-spacing:.03em!important}
.tdash-chip{font-weight:500!important}
.tdash-chip.active{font-weight:600!important}

/* Realisasi modal fixes */
.real-modal .rf label{color:#0F172A!important;font-weight:600!important;font-size:12px!important;display:block!important;margin-bottom:6px!important}
.real-modal input,.real-modal select{background:#fff!important;color:#0F172A!important;border:1px solid #D1D5DB!important}
.real-modal #rDesc{min-height:38px!important}
/* Rapikan grid modal realisasi: 2 kolom, uraian & catatan full width */
.real-modal .field-grid{grid-template-columns:1fr 1fr!important;gap:14px 16px!important}
.real-modal .field-grid .rf-wide{grid-column:1/-1!important}
.real-modal .field-grid .rf{min-width:0!important}
.real-modal .field-grid input,.real-modal .field-grid select{width:100%!important;height:40px!important;box-sizing:border-box!important;border-radius:9px!important}
@media(max-width:560px){.real-modal .field-grid{grid-template-columns:1fr!important}.real-modal .field-grid .rf-wide{grid-column:1!important}}
/* Kembali ke rasa tabel lama: ringkas, card putih, tanpa spreadsheet lebar */
.modal-overlay{align-items:flex-start!important;overflow:auto!important;padding:18px!important}
.modal-box.real-modal{width:min(760px,96vw)!important;max-height:calc(100vh - 36px)!important;overflow:auto!important;padding:18px!important}
.real-modal .field-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px 14px!important;padding:0!important;box-shadow:none!important;border:0!important;background:transparent!important}
.real-modal .field-grid .rf-wide{grid-column:1/-1!important}
.real-modal .modal-actions{position:sticky!important;bottom:0!important;background:#fff!important;padding-top:12px!important;margin-top:14px!important;border-top:1px solid #E5E7EB!important}
@media(max-width:760px){.real-modal .field-grid{grid-template-columns:1fr!important}.real-modal .field-grid .rf-wide{grid-column:1!important}}
.project-detail-page #rab .rab-table,.real-rab-group .rab-table{overflow:visible!important;display:block!important;width:100%!important;border:1px solid var(--border)!important;border-radius:12px!important;background:#fff!important;padding:0!important;box-shadow:none!important}
.project-detail-page #rab .rab-tr,.real-rab-group .rab-tr{display:grid!important;grid-template-columns:44px 1.25fr 2.35fr .7fr .65fr 1.15fr 1.15fr 1.2fr 1.45fr!important;gap:10px!important;align-items:center!important;padding:11px 14px!important;border-bottom:1px solid var(--row)!important;font-size:12px!important;min-width:0!important;overflow:visible!important;background:#fff!important}
.project-detail-page #rab .rab-tr>*,.real-rab-group .rab-tr>*{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:normal!important;line-height:1.3!important}
.project-detail-page #rab .rab-head,.real-rab-group .rab-head{background:#F8FAFC!important;color:#6B7280!important;text-transform:uppercase!important;font-size:10px!important;font-weight:700!important;letter-spacing:.035em!important}
.project-detail-page #rab .c-desc,.real-rab-group .c-desc{font-weight:500!important;color:#111827!important}
.project-detail-page #rab .c-desc small,.real-rab-group .c-desc small{display:block!important;margin-top:3px!important;color:#7B8492!important;font-size:10.5px!important;font-weight:500!important;white-space:normal!important}
.project-detail-page #rab .c-num,.real-rab-group .c-num{text-align:right!important;white-space:nowrap!important;font-variant-numeric:tabular-nums!important;color:#111827!important;overflow:visible!important}
.project-detail-page #rab .c-amount,.real-rab-group .c-amount{font-weight:700!important;color:#0F172A!important}
.project-detail-page #rab .c-act,.real-rab-group .c-act{display:flex!important;gap:6px!important;flex-wrap:wrap!important;overflow:visible!important;justify-content:flex-start!important}
.project-detail-page #rab .c-act button,.real-rab-group .c-act button{height:26px!important;padding:0 8px!important;border-radius:8px!important;font-size:10.5px!important;white-space:nowrap!important;background:#fff!important}
.project-detail-page #rab .c-nota,.real-rab-group .c-nota{font-size:12px!important;color:#94A3B8!important;overflow:visible!important}
.project-detail-page #rab .rab-sub{background:#FCFDFE!important;font-weight:700!important}
.project-detail-page #rab .rab-sub-label{grid-column:1/7!important;white-space:nowrap!important;overflow:visible!important}
.project-detail-page #rab .rab-sub-amount{grid-column:7/8!important;color:#16A34A!important;font-weight:800!important}
.project-detail-page #rab .rab-sub .c-nota{grid-column:8/9!important}
.project-detail-page #rab .rab-empty,.real-rab-group .rab-empty{display:grid!important;grid-template-columns:1fr!important}
/* Modal realisasi final: lengkap, scrollable, align rapi */
.modal-overlay{align-items:center!important;justify-content:center!important;overflow:auto!important;padding:22px!important}
.modal-box.real-modal{width:min(860px,calc(100vw - 36px))!important;max-height:calc(100vh - 44px)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;padding:0!important;border-radius:18px!important;background:#fff!important}
.real-modal .modal-head{position:sticky!important;top:0!important;z-index:3!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:18px 20px!important;margin:0!important;border-bottom:1px solid #E5E7EB!important;background:#fff!important}
.real-modal .modal-head b{font-size:16px!important;font-weight:700!important;color:#0F172A!important;text-align:left!important}
.real-modal .modal-head button{width:32px!important;height:32px!important;border-radius:10px!important;display:grid!important;place-items:center!important}
.real-modal .field-grid{overflow:auto!important;padding:18px 20px!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px 16px!important;align-items:start!important;background:#fff!important;border:0!important;box-shadow:none!important}
.real-modal .field-grid .rf{display:flex!important;flex-direction:column!important;gap:6px!important;min-width:0!important;text-align:left!important}
.real-modal .field-grid .rf-wide{grid-column:1/-1!important}
.real-modal .rf label{font-size:12px!important;font-weight:700!important;color:#0F172A!important;line-height:1.2!important;text-align:left!important;margin:0!important}
.real-modal input,.real-modal select{width:100%!important;height:42px!important;border:1px solid #D5DCE7!important;border-radius:10px!important;background:#fff!important;color:#111827!important;padding:0 12px!important;font-size:13px!important;box-sizing:border-box!important;text-align:left!important}
.real-modal input:focus,.real-modal select:focus{outline:none!important;border-color:#16A34A!important;box-shadow:0 0 0 3px rgba(22,163,74,.13)!important}
.real-modal #rDesc,.real-modal #rNote{min-height:42px!important}
.real-modal .modal-actions{position:sticky!important;bottom:0!important;z-index:3!important;display:flex!important;justify-content:flex-end!important;gap:10px!important;margin:0!important;padding:14px 20px!important;border-top:1px solid #E5E7EB!important;background:#fff!important}
.real-modal .cf-msg{padding:0 20px 12px!important;text-align:left!important;min-height:18px!important}
@media(max-width:720px){.modal-overlay{align-items:flex-start!important;padding:12px!important}.modal-box.real-modal{width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px)!important}.real-modal .field-grid{grid-template-columns:1fr!important}.real-modal .field-grid .rf-wide{grid-column:1!important}.real-modal .modal-actions{justify-content:stretch!important}.real-modal .modal-actions .btn{flex:1!important}}
/* RAB final: form tidak kepotong, tabel menampilkan semua field form */
#itemForm.rab-form{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px 16px!important;overflow:visible!important;padding:16px!important}
#itemForm.rab-form .rf{min-width:0!important;display:flex!important;flex-direction:column!important;gap:6px!important}
#itemForm.rab-form .rf-wide{grid-column:span 2!important}
#itemForm.rab-form input,#itemForm.rab-form select{width:100%!important;box-sizing:border-box!important}
.project-detail-page #rab .rab-table,.real-rab-group .rab-table{overflow-x:auto!important;overflow-y:hidden!important;max-width:100%!important;-webkit-overflow-scrolling:touch!important;padding-bottom:8px!important}
.project-detail-page #rab .rab-tr,.real-rab-group .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 170px 120px 170px!important;min-width:1484px!important;gap:10px!important;align-items:center!important}
.project-detail-page #rab .rab-head,.real-rab-group .rab-head{position:sticky!important;top:0!important;z-index:2!important}
.project-detail-page #rab .rab-tr>*,.real-rab-group .rab-tr>*{overflow:visible!important;text-overflow:clip!important;white-space:normal!important}
.project-detail-page #rab .c-num,.real-rab-group .c-num{white-space:nowrap!important}
.project-detail-page #rab .rab-sub-label{grid-column:1/9!important}
.project-detail-page #rab .rab-sub-amount{grid-column:9/10!important}
.project-detail-page #rab .rab-sub .c-nota{grid-column:11/12!important}
@media(max-width:900px){#itemForm.rab-form{grid-template-columns:1fr 1fr!important}#itemForm.rab-form .rf-wide{grid-column:1/-1!important}}
@media(max-width:560px){#itemForm.rab-form{grid-template-columns:1fr!important}#itemForm.rab-form .rf-wide{grid-column:1!important}}
/* Force horizontal drag/scroll for complete RAB/Realisasi table */
.project-detail-page #rab .rab-table.grid-outline,.real-rab-group .rab-table.grid-outline{display:flex!important;flex-direction:column!important;overflow-x:scroll!important;overflow-y:hidden!important;max-width:100%!important;width:100%!important;touch-action:pan-x!important;scrollbar-gutter:stable!important;padding-bottom:10px!important}
.project-detail-page #rab .rab-table.grid-outline .rab-tr,.real-rab-group .rab-table.grid-outline .rab-tr{width:1484px!important;min-width:1484px!important;max-width:none!important;flex:0 0 auto!important;box-sizing:border-box!important;align-items:stretch!important}
.project-detail-page #rab .rab-table.grid-outline::-webkit-scrollbar,.real-rab-group .rab-table.grid-outline::-webkit-scrollbar{height:12px!important}
.project-detail-page #rab .rab-table.grid-outline::-webkit-scrollbar-track,.real-rab-group .rab-table.grid-outline::-webkit-scrollbar-track{background:#F1F5F9!important;border-radius:999px!important}
.project-detail-page #rab .rab-table.grid-outline::-webkit-scrollbar-thumb,.real-rab-group .rab-table.grid-outline::-webkit-scrollbar-thumb{background:#94A3B8!important;border-radius:999px!important;border:3px solid #F1F5F9!important}
/* Alignment konsisten header + isi: teks kiri, satuan tengah, angka kanan */
.project-detail-page #rab .rab-tr>div,.real-rab-group .rab-tr>div{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;text-align:left!important}
.project-detail-page #rab .rab-tr>.c-no,.real-rab-group .rab-tr>.c-no{align-items:center!important;text-align:center!important}
.project-detail-page #rab .rab-tr>.c-unit,.real-rab-group .rab-tr>.c-unit{align-items:center!important;text-align:center!important}
.project-detail-page #rab .rab-tr>.c-num,.real-rab-group .rab-tr>.c-num{align-items:flex-end!important;text-align:right!important}
.project-detail-page #rab .rab-head>div,.real-rab-group .rab-head>div{flex-direction:row!important;white-space:nowrap!important}
.project-detail-page #rab .rab-head>.c-no,.real-rab-group .rab-head>.c-no{justify-content:center!important}
.project-detail-page #rab .rab-head>.c-unit,.real-rab-group .rab-head>.c-unit{justify-content:center!important}
.project-detail-page #rab .rab-head>.c-num,.real-rab-group .rab-head>.c-num{justify-content:flex-end!important}
.project-detail-page #rab .rab-tr>.c-desc small,.real-rab-group .rab-tr>.c-desc small{align-self:flex-start!important;text-align:left!important}
.project-detail-page #rab .rab-tr>.c-act,.real-rab-group .rab-tr>.c-act{flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;flex-wrap:wrap!important}

/* FINAL OVERRIDE — table fill + dividers must win over older RAB rules */
/* RAB no nota, Realisasi has nota */
.project-detail-page #rab .rab-table.grid-outline .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 170px 170px!important;width:1362px!important;min-width:1362px!important}
.project-detail-page .real-rab-group .rab-table.grid-outline .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 120px 170px 120px 170px!important;width:1602px!important;min-width:1602px!important}

.project-detail-page #rab .rab-table.grid-outline,.real-rab-group .rab-table.grid-outline{display:flex!important;flex-direction:column!important;overflow-x:scroll!important;overflow-y:hidden!important;width:100%!important;max-width:100%!important}
.project-detail-page #rab .rab-table.grid-outline .rab-tr,.real-rab-group .rab-table.grid-outline .rab-tr{display:grid!important;grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 170px 120px 170px!important;width:1484px!important;min-width:1484px!important;max-width:none!important;gap:0!important;padding:0!important;align-items:stretch!important;box-sizing:border-box!important;overflow:hidden!important;background:#fff!important}
.project-detail-page #rab .rab-table.grid-outline .rab-head,.real-rab-group .rab-table.grid-outline .rab-head{background:#F4F6FA!important}
.project-detail-page #rab .rab-table.grid-outline .rab-head>div,.real-rab-group .rab-table.grid-outline .rab-head>div{background:#F4F6FA!important;color:#6B7280!important;font-size:11px!important;font-weight:700!important;text-transform:uppercase!important}
.project-detail-page #rab .rab-table.grid-outline .rab-tr>div,.real-rab-group .rab-table.grid-outline .rab-tr>div{min-height:44px!important;padding:10px 12px!important;box-sizing:border-box!important;border-right:1px solid #E5E7EB!important;border-bottom:1px solid #E8EDF4!important;background:inherit!important;align-self:stretch!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.project-detail-page #rab .rab-table.grid-outline .rab-tr>div:last-child,.real-rab-group .rab-table.grid-outline .rab-tr>div:last-child{border-right:0!important}
.project-detail-page #rab .rab-table.grid-outline .rab-item:hover,.real-rab-group .rab-table.grid-outline .rab-item:hover,.project-detail-page #rab .rab-table.grid-outline .rab-item:focus-within,.real-rab-group .rab-table.grid-outline .rab-item:focus-within{background:#F3F8F4!important}
.project-detail-page #rab .rab-table.grid-outline .rab-item:hover>div,.real-rab-group .rab-table.grid-outline .rab-item:hover>div,.project-detail-page #rab .rab-table.grid-outline .rab-item:focus-within>div,.real-rab-group .rab-table.grid-outline .rab-item:focus-within>div{background:#F3F8F4!important}
.project-detail-page #rab .rab-table.grid-outline .c-date,.real-rab-group .rab-table.grid-outline .c-date{align-items:center!important;text-align:center!important}
.project-detail-page #rab .rab-table.grid-outline .c-note,.real-rab-group .rab-table.grid-outline .c-note{align-items:flex-start!important;text-align:left!important}
.project-detail-page #rab .rab-table.grid-outline .c-num,.real-rab-group .rab-table.grid-outline .c-num{align-items:flex-end!important;text-align:right!important}
.project-detail-page #rab .rab-table.grid-outline .c-unit,.real-rab-group .rab-table.grid-outline .c-unit{align-items:center!important;text-align:center!important}
/* FINAL COLUMN COUNTS — RAB 11 kolom, Realisasi 13 kolom */
.project-detail-page #rab .rab-table.grid-outline .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 170px 170px!important;width:1362px!important;min-width:1362px!important}
.project-detail-page .real-rab-group .rab-table.grid-outline .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 120px 170px 120px 170px!important;width:1602px!important;min-width:1602px!important}
/* Alignment request: ROI/P&L/RAB */
.project-detail-page #roi .roi-tr>div:nth-child(3){text-align:center!important;justify-content:center!important;align-items:center!important}
.project-detail-page #pnl .pnl-tr>div:nth-child(2){text-align:left!important;justify-content:flex-start!important;align-items:flex-start!important}
.project-detail-page #pnl .pnl-tr>div:nth-child(3){text-align:center!important;justify-content:center!important;align-items:center!important}
.invoice-input-row{display:flex!important;gap:8px!important;align-items:center!important}.invoice-input-row input{flex:1!important}.invoice-input-row .mini-plus{flex:0 0 30px!important;width:30px!important;height:30px!important}.invoice-cell{display:flex!important;gap:6px!important;align-items:center!important;justify-content:space-between!important}.mini-plus{width:26px!important;height:26px!important;border-radius:999px!important;background:#16A34A!important;color:#fff!important;border:0!important;font-size:22px!important;font-weight:500!important;line-height:28px!important;padding:0!important;text-align:center!important;box-shadow:none!important}.term-invoice-modal{max-width:980px!important;width:min(980px,96vw)!important}.inv-mini-table{overflow:auto;border:1px solid #E5E7EB;border-radius:14px;margin:10px 0;background:#fff}.inv-mini-head,.inv-mini-row{display:grid;grid-template-columns:52px 1.5fr 1.2fr 120px 90px 150px 42px;gap:0;min-width:820px}.inv-mini-head>div{background:#F4F6FA;color:#6B7280;font-size:11px;font-weight:800;text-transform:uppercase;padding:10px;border-right:1px solid #E5E7EB}.inv-mini-row>*{border:0;border-right:1px solid #E5E7EB;border-top:1px solid #E8EDF4;border-radius:0!important;padding:9px 10px!important}.inv-total{display:flex;justify-content:space-between;align-items:center;margin:12px 0;padding:14px 16px;border:1px solid #E5E7EB;border-radius:14px;background:#F8FAFC}.inv-total span{font-size:12px;font-weight:800;color:#6B7280}.inv-total b{color:#16A34A;font-size:20px}
.project-detail-page #rab .rab-table.grid-outline .rab-tr>div:nth-child(4),.real-rab-group .rab-table.grid-outline .rab-tr>div:nth-child(4),
.project-detail-page #rab .rab-table.grid-outline .rab-tr>div:nth-child(5),.real-rab-group .rab-table.grid-outline .rab-tr>div:nth-child(5),
.project-detail-page #rab .rab-table.grid-outline .rab-tr>div:nth-child(6),.real-rab-group .rab-table.grid-outline .rab-tr>div:nth-child(6),
.project-detail-page #rab .rab-table.grid-outline .rab-tr>div:nth-child(7),.real-rab-group .rab-table.grid-outline .rab-tr>div:nth-child(7){align-items:center!important;text-align:center!important}
/* Subtotal row merged: label kiri, jumlah kanan, View di samping */
.project-detail-page #rab .rab-table.grid-outline .rab-sub,.real-rab-group .rab-table.grid-outline .rab-sub{background:#F8FAFC!important;font-weight:800!important}
.project-detail-page #rab .rab-table.grid-outline .rab-sub>div:not(.rab-sub-label):not(.rab-sub-amount):not(.c-nota),.real-rab-group .rab-table.grid-outline .rab-sub>div:not(.rab-sub-label):not(.rab-sub-amount):not(.c-nota){display:none!important}
.project-detail-page #rab .rab-table.grid-outline .rab-sub-label,.real-rab-group .rab-table.grid-outline .rab-sub-label{grid-column:1/9!important;align-items:flex-start!important;text-align:left!important;color:#0F172A!important}
.project-detail-page #rab .rab-table.grid-outline .rab-sub-amount,.real-rab-group .rab-table.grid-outline .rab-sub-amount{grid-column:9/10!important;align-items:flex-end!important;text-align:right!important;color:#16A34A!important;font-weight:900!important;white-space:nowrap!important}
.project-detail-page #rab .rab-table.grid-outline .rab-sub>.c-nota,.real-rab-group .rab-table.grid-outline .rab-sub>.c-nota{grid-column:10/12!important;align-items:flex-start!important;text-align:left!important}
.project-detail-page #rab .rab-table.grid-outline .rab-sub>.c-nota button,.real-rab-group .rab-table.grid-outline .rab-sub>.c-nota button{height:30px!important;padding:0 14px!important;border-radius:9px!important;border:1px solid #CBD5E1!important;background:#fff!important;color:#0F172A!important;font-size:12px!important;font-weight:800!important}


/* Pengajuan RAB */
.rab-request-panel{margin:18px 0 20px;padding:18px;border:1px solid #E5E7EB;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.rab-req-form{display:grid;grid-template-columns:1.1fr 1.4fr .8fr;gap:12px}.rab-req-form .rf{display:flex;flex-direction:column;gap:6px}.rab-req-form label{font-size:12px;font-weight:800;color:#64748B}.rab-req-form input,.rab-req-form select{height:38px;border:1px solid #E5E7EB;border-radius:10px;padding:0 11px;font:inherit;background:#fff}.rr-table{grid-column:1/-1;overflow:auto;border:1px solid #E5E7EB;border-radius:14px;background:#fff}.rr-head,.rr-row{display:grid;grid-template-columns:150px 160px 220px 86px 90px 92px 108px 135px 135px 170px 44px;min-width:1390px}.rr-head>div{background:#F4F6FA;color:#64748B;font-size:11px;font-weight:900;text-transform:uppercase;padding:10px;border-right:1px solid #E5E7EB}.rr-row>*{border:0;border-right:1px solid #E5E7EB;border-top:1px solid #E8EDF4;border-radius:0!important;padding:9px 10px!important;min-height:42px;box-sizing:border-box}.rr-amount{text-align:right;font-weight:800;color:#111827}.rr-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px;justify-content:flex-end}.rr-total{margin-right:auto;display:flex;gap:12px;align-items:center;border:1px solid #E5E7EB;border-radius:14px;padding:10px 14px;background:#F8FAFC}.rr-total span{font-size:12px;font-weight:900;color:#64748B}.rr-total b{font-size:18px;color:#16A34A}.rr-list{grid-column:1/-1;display:grid;gap:8px;margin-top:12px}.rr-card{display:grid;grid-template-columns:1fr 110px 150px 74px;gap:10px;align-items:center;border:1px solid #E5E7EB;border-radius:14px;padding:10px 12px;background:#FBFCFD}.rr-card small{display:block;color:#64748B;margin-top:3px}.rr-card span{justify-self:start;background:#DCFCE7;color:#166534;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.rr-card strong{text-align:right;color:#111827}
@media(max-width:900px){.rab-req-form{grid-template-columns:1fr}.rr-actions{align-items:stretch;flex-direction:column}.rr-total{margin-right:0;width:100%;justify-content:space-between}.rr-card{grid-template-columns:1fr}}


/* Pengajuan RAB page v2 */
.rab-request-page .rab-request-panel{margin:18px 0 20px;padding:18px;border:1px solid #E5E7EB;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.rab-request-page .rab-req-form{display:grid;grid-template-columns:1.1fr 1.4fr .8fr;gap:12px}.rab-request-page .rab-req-form .rf{display:flex;flex-direction:column;gap:6px}.rab-request-page .rab-req-form label{font-size:12px;font-weight:800;color:#64748B}.rab-request-page .rab-req-form input,.rab-request-page .rab-req-form select{height:38px;border:1px solid #E5E7EB;border-radius:10px;padding:0 11px;font:inherit;background:#fff}
.rab-request-page .rr-form-table{grid-column:1/-1;overflow:auto;border:1px solid #E5E7EB;border-radius:14px;background:#fff}.rab-request-page .rr-head,.rab-request-page .rr-row{display:grid;grid-template-columns:150px 160px 220px 86px 90px 92px 108px 135px 135px 125px 170px 44px;min-width:1515px}.rab-request-page .rr-head>div{background:#F4F6FA;color:#64748B;font-size:11px;font-weight:900;text-transform:uppercase;padding:10px;border-right:1px solid #E5E7EB}.rab-request-page .rr-row>*{border:0;border-right:1px solid #E5E7EB;border-top:1px solid #E8EDF4;border-radius:0!important;padding:9px 10px!important;min-height:42px;box-sizing:border-box}.rab-request-page .rr-amount{text-align:right;font-weight:800;color:#111827}.rab-request-page .rr-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px;justify-content:flex-end}.rab-request-page .rr-total{margin-right:auto;display:flex;gap:12px;align-items:center;border:1px solid #E5E7EB;border-radius:14px;padding:10px 14px;background:#F8FAFC}.rab-request-page .rr-total span{font-size:12px;font-weight:900;color:#64748B}.rab-request-page .rr-total b{font-size:18px;color:#16A34A}.rab-request-page .rab-req-list{display:grid;gap:16px}.rab-request-page .rab-req-detail{border:1px solid #E5E7EB;border-radius:18px;padding:14px;background:#fff}.rab-request-page .rab-req-title{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;margin-bottom:12px}.rab-request-page .rab-req-title h3{margin:0;font-size:16px}.rab-request-page .rab-req-title p{margin:3px 0 0;color:#64748B;font-size:12px}.rab-request-page .rab-req-title span{background:#DCFCE7;color:#166534;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.rab-request-page .rab-req-title strong{font-size:16px;color:#16A34A}.rab-request-page .rab-req-group{margin-top:16px}.rab-request-page .rab-req-group h4{margin:0 0 8px;font-size:14px;color:#111827}.rab-request-page .rab-req-group .rab-table{overflow:auto}.rab-request-page .rab-req-group .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px 120px!important;min-width:1142px!important}.rab-request-page .rab-req-group .rab-subtotal{grid-template-columns:repeat(10, minmax(0,1fr))!important;min-width:1142px!important}.rab-request-page .rab-req-group .rab-sub-label{grid-column:1/8!important}.rab-request-page .rab-req-group .rab-sub-amount{grid-column:8/10!important}.rab-request-page .rab-req-group .c-nota{grid-column:10/11!important}
@media(max-width:900px){.rab-request-page .rab-req-form{grid-template-columns:1fr}.rab-request-page .rr-actions{align-items:stretch;flex-direction:column}.rab-request-page .rr-total{margin-right:0;width:100%;justify-content:space-between}.rab-request-page .rab-req-title{grid-template-columns:1fr}}


/* Pengajuan RAB page v3: no tanggal, lighter header, simple total */
.rab-request-page .rr-head,.rab-request-page .rr-row{grid-template-columns:150px 160px 220px 86px 90px 92px 108px 135px 135px 170px 44px!important;min-width:1390px!important}.rab-request-page .rr-head>div{font-weight:700!important;letter-spacing:.01em!important;color:#6B7280!important;background:#F7F8FA!important}.rab-request-page .rab-req-group .rab-head>div{font-weight:700!important;letter-spacing:.01em!important;color:#6B7280!important;background:#F7F8FA!important}.rab-request-page .rr-total{margin-right:auto;border:0!important;background:transparent!important;border-radius:0!important;padding:0!important;gap:8px!important}.rab-request-page .rr-total span{font-size:12px;font-weight:700;color:#64748B}.rab-request-page .rr-total b{font-size:16px;color:#16A34A}.rab-request-page .rab-req-group .rab-tr{grid-template-columns:42px 150px 220px 72px 88px 78px 102px 135px 135px!important;min-width:1022px!important}.rab-request-page .rab-req-group .rab-subtotal{grid-template-columns:repeat(9, minmax(0,1fr))!important;min-width:1022px!important}.rab-request-page .rab-req-group .rab-sub-label{grid-column:1/7!important}.rab-request-page .rab-req-group .rab-sub-amount{grid-column:7/9!important}.rab-request-page .rab-req-group .c-nota{grid-column:9/10!important}


/* Pengajuan RAB page v4: project metadata */
.rab-request-page .rab-req-form .rr-wide{grid-column:span 2}.rab-request-page .rab-req-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 14px}.rab-request-page .rab-req-meta>div{border:1px solid #E5E7EB;border-radius:12px;background:#F8FAFC;padding:9px 11px}.rab-request-page .rab-req-meta small{display:block;color:#64748B;font-size:11px;font-weight:700;margin-bottom:3px}.rab-request-page .rab-req-meta b{display:block;color:#111827;font-size:13px;font-weight:700;line-height:1.35}@media(max-width:900px){.rab-request-page .rab-req-form .rr-wide{grid-column:auto}.rab-request-page .rab-req-meta{grid-template-columns:1fr}}


/* Pengajuan RAB page v5: lighter totals */
.rab-request-page .rab-req-title strong{font-size:15px!important;font-weight:600!important;color:#16A34A!important}.rab-request-page .rab-req-group .c-money.strong{font-weight:600!important}.rab-request-page .rab-req-group .rab-sub-amount{font-weight:600!important;color:#16A34A!important}.rab-request-page .rr-amount{font-weight:600!important}.rab-request-page .rr-total b{font-weight:600!important}


/* Pengajuan RAB list/detail clean layout */
.rab-request-page .rab-request-list{display:grid;gap:12px}.rab-request-page .rab-request-card{background:#fff;border:1px solid #E5E7EB;border-radius:16px;padding:16px 18px;box-shadow:0 6px 18px rgba(15,23,42,.04)}.rab-request-page .rab-request-main{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center}.rab-request-page .rab-request-main h3{margin:0;font-size:15px;font-weight:600}.rab-request-page .rab-request-main p{margin:4px 0 0;color:#64748B;font-size:12px}.rab-request-page .rab-request-main strong{font-size:14px;font-weight:600;color:#16A34A;white-space:nowrap}.rab-request-page .rab-status{font-size:11px;font-weight:600;color:#166534;background:#DCFCE7;padding:6px 10px;border-radius:999px;white-space:nowrap}.rab-request-page .rab-request-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0;padding-top:12px;border-top:1px solid #F0F2F4}.rab-request-page .rab-request-summary span{font-size:12px;color:#374151;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rab-request-page .rab-request-summary small{display:block;color:#9CA3AF;font-size:10px;margin-bottom:3px}.rab-request-page .rab-request-actions{display:flex;justify-content:flex-end;gap:8px;align-items:center}.rab-request-page .rab-request-actions .btn{padding:8px 12px;font-size:12px}.rab-detail-page .topbar{gap:10px}.rab-detail-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px}.rab-detail-head h1{margin:5px 0;font-size:22px;font-weight:600}.rab-detail-head p{margin:0;color:#64748B}.eyebrow{color:#16A34A;font-size:11px;font-weight:700;letter-spacing:.08em}.rab-detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.rab-detail-meta>div{background:#fff;border:1px solid #E5E7EB;border-radius:12px;padding:11px 13px}.rab-detail-meta small{display:block;color:#9CA3AF;font-size:10px;margin-bottom:3px}.rab-detail-meta b{font-size:13px;font-weight:600;color:#1F2937}.rab-detail-group{padding:18px;margin:14px 0}.rab-detail-group h2{font-size:15px;font-weight:600;margin:0 0 12px;color:#1F2937}.detail-table{overflow:auto;border:1px solid #E5E7EB;border-radius:12px}.detail-row{display:grid;grid-template-columns:42px 150px minmax(220px,1fr) 75px 85px 85px 100px 140px 140px;min-width:1037px}.detail-row>div{padding:10px;border-right:1px solid #EDF0F2;border-bottom:1px solid #EDF0F2;font-size:12px}.detail-row small{display:block;color:#9CA3AF;font-size:10px;margin-top:3px}.detail-head>div{background:#F7F8FA;color:#6B7280;font-size:10px;text-transform:uppercase;font-weight:600}.detail-row .money{text-align:right;white-space:nowrap}.detail-row .amount{font-weight:600}.detail-total{display:flex;justify-content:space-between;padding:12px 14px;color:#166534;font-size:12px;font-weight:600;background:#F8FAF9}.detail-total b,.detail-grand b{font-weight:600}.detail-grand-table{margin-top:16px;border:1px solid #E5E7EB;border-radius:12px;overflow:hidden}.detail-grand-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#F3FAF5}.detail-grand-row span{font-size:12px;font-weight:600;color:#166534;text-transform:uppercase;letter-spacing:.02em}.detail-grand-row b{font-weight:600;color:#16A34A;font-size:16px}@media(max-width:800px){.rab-request-page .rab-request-main{grid-template-columns:1fr auto}.rab-request-page .rab-request-main strong{grid-column:1}.rab-request-page .rab-request-summary{grid-template-columns:repeat(2,1fr)}.rab-request-page .rab-request-actions{justify-content:flex-start;flex-wrap:wrap}.rab-detail-meta{grid-template-columns:1fr 1fr}.rab-detail-head{align-items:flex-start;gap:12px;flex-direction:column}}@media(max-width:500px){.rab-detail-meta{grid-template-columns:1fr}}

.rab-request-page .rab-request-panel:nth-of-type(2){overflow:visible}
.rab-request-page .rab-request-main .rab-status{order:2}.rab-request-page .rab-request-main strong{order:3}
.rab-request-page .rab-request-actions{margin-top:2px}
.rab-request-page .rab-request-card .del{margin-left:4px}
.rab-request-page .rab-request-card .btn{white-space:nowrap}
.rab-request-page .rab-request-card a{text-decoration:none}
.rab-request-page .rab-request-card .rab-status + strong{font-weight:600}
.rab-request-page .rab-request-main>div:first-child{min-width:0}
.rab-request-page .rab-request-main h3,.rab-request-page .rab-request-main p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* RAB detail v3: total inside same table */
.rab-detail-page .detail-section-row{min-width:1037px;padding:10px 12px;background:#FAFBFC;border-bottom:1px solid #E5E7EB;color:#166534;font-size:12px;font-weight:600}.rab-detail-page .detail-row.detail-subtotal,.rab-detail-page .detail-row.detail-grand-total{grid-template-columns:1fr 180px;min-width:1037px}.rab-detail-page .detail-row.detail-subtotal>div,.rab-detail-page .detail-row.detail-grand-total>div{padding:12px 14px;border-bottom:1px solid #E5E7EB}.rab-detail-page .detail-row.detail-subtotal>div:first-child,.rab-detail-page .detail-row.detail-grand-total>div:first-child{font-weight:600;color:#166534}.rab-detail-page .detail-row.detail-subtotal{background:#F8FAF9}.rab-detail-page .detail-row.detail-grand-total{background:#ECFDF3;border-top:1px solid #BBF7D0}.rab-detail-page .detail-row.detail-grand-total>div{font-size:13px}.rab-detail-page .detail-row.detail-grand-total .money{font-weight:600;color:#16A34A}


/* RAB Proposal list metadata wrap + bold labels */
.rab-request-page .rab-request-summary span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.35}.rab-request-page .rab-request-summary small{font-weight:700!important;color:#4B5563!important;text-transform:none}.rab-request-page .rab-request-summary{align-items:start}


/* RAB Proposal list metadata font size bump */
.rab-request-page .rab-request-summary span{font-size:13px!important}.rab-request-page .rab-request-summary small{font-size:11px!important;margin-bottom:4px!important}


/* Project list title: slightly thinner */
.table-wrap .pname-title{font-weight:560!important}


/* ============================================================
   ADAPTIVE LARGE-DESKTOP SCALE
   Laptop viewport stays 1:1. Larger monitor viewports receive a
   restrained whole-interface scale so proportions remain unchanged.
   ============================================================ */
@media (min-width:1600px) and (min-height:850px){
  html{zoom:1.06}
}
@media (min-width:1900px) and (min-height:900px){
  html{zoom:1.12}
}
@media (min-width:2400px) and (min-height:1100px){
  html{zoom:1.20}
}
@media (min-width:3200px) and (min-height:1400px){
  html{zoom:1.28}
}

/* Keep print/PDF rendering at its original physical scale. */
@media print{
  html{zoom:1}
}
