/* ROS STAFF PORTAL MASTER STYLESHEET */
:root{--ros-green:#0A6E3F;--ros-green-dark:#085730;--ros-green-light:#e8f4ed;--ros-gold:#C8981E;--ros-gold-light:#fdf3dc;--sidebar-w:240px;--topnav-h:58px;--body-bg:#f0f2f5;--card-shadow:0 1px 4px rgba(0,0,0,.08);--border-color:#e0ddd8}
*{box-sizing:border-box}body{font-family:'Segoe UI',Roboto,'Helvetica Neue',sans-serif;font-size:13.5px;background:var(--body-bg);color:#212529;margin:0}a{text-decoration:none}
.ros-sidebar{position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;background:var(--ros-green);display:flex;flex-direction:column;z-index:1040;overflow-y:auto;overflow-x:hidden;transition:transform .25s}
.ros-sidebar::-webkit-scrollbar{width:4px}.ros-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:2px}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:15px 16px 13px;border-bottom:1px solid rgba(255,255,255,.12);flex-shrink:0}
.sidebar-crest{width:38px;height:38px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px;font-weight:800;color:var(--ros-green);letter-spacing:-.5px}
.sidebar-brand-text .top{font-size:12.5px;font-weight:700;color:#fff;line-height:1.2}.sidebar-brand-text .sub{font-size:9.5px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.6px}
.sidebar-section{padding:13px 16px 3px;font-size:9.5px;font-weight:700;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.9px}
.sidebar-divider{height:1px;background:rgba(255,255,255,.1);margin:5px 0}
.sidebar-link{display:flex;align-items:center;gap:9px;padding:9px 16px;color:rgba(255,255,255,.78);font-size:13px;cursor:pointer;transition:all .15s;position:relative;white-space:nowrap;border:none;background:none;width:100%;text-align:left}
.sidebar-link:hover{background:rgba(255,255,255,.1);color:#fff}.sidebar-link.active{background:rgba(255,255,255,.16);color:#fff;font-weight:500}
.sidebar-link.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ros-gold);border-radius:0 2px 2px 0}
.sidebar-link i{width:16px;text-align:center;font-size:13px;flex-shrink:0;opacity:.85}.sidebar-link.active i{opacity:1}
.sbadge{margin-left:auto;background:rgba(255,255,255,.18);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 7px;min-width:20px;text-align:center}
.sbadge.red{background:#e74c3c}.sbadge.amber{background:#e67e22}.sbadge.gold{background:var(--ros-gold)}
.ros-topnav{position:fixed;top:0;left:var(--sidebar-w);right:0;height:var(--topnav-h);background:#fff;border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 20px;gap:12px;z-index:1030;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.topnav-title{font-size:15px;font-weight:700;color:var(--ros-green);letter-spacing:.1px}
.topnav-spacer{flex:1}
.tn-search{display:flex;align-items:center;background:#f4f6f9;border:1px solid var(--border-color);border-radius:6px;padding:0 10px;height:34px;gap:7px;min-width:220px}
.tn-search input{border:none;background:transparent;outline:none;font-size:13px;color:#333;width:170px;font-family:inherit}.tn-search input::placeholder{color:#aaa}
.tn-icon-btn{width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .15s;position:relative;border:none;background:none}
.tn-icon-btn:hover{background:#f4f6f9;color:var(--ros-green)}.notif-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:#e74c3c;border-radius:50%;border:2px solid #fff}
.user-menu-btn{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s;border:none;background:none}
.user-menu-btn:hover{background:#f4f6f9}
.u-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.u-avatar.gold{background:var(--ros-gold)}.u-avatar.green{background:var(--ros-green)}.u-avatar.blue{background:#2980b9}.u-avatar.purple{background:#6f42c1}.u-avatar.teal{background:#0d9488}
.u-name{font-size:12.5px;font-weight:500;color:#333}.u-role{font-size:11px;color:#888}
.main-content{margin-left:var(--sidebar-w);padding-top:var(--topnav-h);min-height:100vh}
.page-content{padding:22px}
.ctrl-panel{background:#fff;border-bottom:1px solid var(--border-color);padding:0 22px;position:sticky;top:var(--topnav-h);z-index:20}
.ctrl-panel .ctrl-actions{flex-shrink:0}
.ctrl-panel .ctrl-actions .btn,.ctrl-panel .ctrl-actions .dropdown>.btn{
  flex-shrink:0;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.25rem;
  font-size:13px;
  font-weight:500;
  line-height:1.35;
  border-radius:5px;
  padding:7px 16px;
}
.ctrl-top{display:flex;align-items:center;height:50px;gap:10px}
.ctrl-bc{display:flex;align-items:center;gap:5px;font-size:13px;color:#888}.ctrl-bc a{color:var(--ros-green)}.ctrl-bc .sep{color:#ccc}.ctrl-bc .cur{color:#333;font-weight:500}
.ctrl-spacer{flex:1}
.ctrl-bottom{display:flex;align-items:center;gap:8px;padding-bottom:10px;flex-wrap:wrap}
.filter-input{display:flex;align-items:center;border:1px solid #ccc;border-radius:5px;padding:0 10px;height:32px;background:#fff;gap:7px;min-width:240px}
.filter-input input{border:none;outline:none;font-size:12.5px;font-family:inherit;color:#333;width:180px}.filter-input i{color:#aaa;font-size:12px}
.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:14px;font-size:12px;cursor:pointer}
.filter-chip.green{background:var(--ros-green-light);color:var(--ros-green);border:1px solid #c3e6cb}
.filter-chip.amber{background:#fff3cd;color:#856404;border:1px solid #ffc107}
.filter-chip.red{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}
.ctrl-dd{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #ccc;border-radius:5px;font-size:12.5px;color:#495057;cursor:pointer;background:#fff}
.ctrl-dd:hover{background:#f8f7f4}.results-count{margin-left:auto;font-size:12px;color:#888}
.statusbar{display:flex;background:#f8f7f4;border:1px solid var(--border-color);border-radius:6px;overflow:hidden;margin-bottom:14px}
.sb-s{display:flex;align-items:center;padding:9px 20px 9px 14px;font-size:12px;color:#aaa;cursor:pointer;position:relative;white-space:nowrap;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
.sb-s:first-child{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}.sb-s:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,12px 50%);padding-right:16px}
.sb-s.done{background:#d4edda;color:#155724}.sb-s.current{background:var(--ros-green);color:#fff;font-weight:500}
.ros-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--card-shadow);overflow:hidden;margin-bottom:16px}
.ros-card-header{padding:12px 16px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:#333}
.ros-card-header i{color:var(--ros-green)}.ros-card-body{padding:16px}
.stat-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:16px;display:flex;align-items:flex-start;gap:12px;box-shadow:var(--card-shadow);transition:transform .15s}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.stat-card--active{border-color:var(--ros-green);box-shadow:0 0 0 1px var(--ros-green)}
.stat-icon{width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.stat-icon.green{background:var(--ros-green-light);color:var(--ros-green)}.stat-icon.gold{background:var(--ros-gold-light);color:var(--ros-gold)}.stat-icon.red{background:#fde8e8;color:#e74c3c}.stat-icon.blue{background:#e3f0fb;color:#2980b9}.stat-icon.amber{background:#fff3cd;color:#e67e22}
.stat-label{font-size:12px;color:#888;margin-bottom:3px}.stat-value{font-size:26px;font-weight:700;color:#1a1a1a;line-height:1}
.stat-trend{font-size:11.5px;margin-top:5px}.stat-trend.up{color:var(--ros-green)}.stat-trend.down{color:#e74c3c}
.stat-btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.stat-btn{display:flex;flex-direction:column;padding:7px 14px;border:1px solid #ccc;border-radius:6px;background:#fff;cursor:pointer;min-width:90px;transition:all .15s;text-align:center}
.stat-btn:hover{border-color:var(--ros-green);background:var(--ros-green-light)}
.stat-btn .sbc{font-size:20px;font-weight:700;color:var(--ros-green);line-height:1.2}.stat-btn .sbc.gold{color:var(--ros-gold)}.stat-btn .sbc.red{color:#e74c3c}
.stat-btn .sbl{font-size:11px;color:#888;white-space:nowrap}
.bdg{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:11.5px;font-weight:600;white-space:nowrap}
.bdg-green{background:var(--ros-green-light);color:var(--ros-green)}.bdg-gold{background:var(--ros-gold-light);color:#8a6400}
.bdg-success{background:#d4edda;color:#155724}.bdg-warning{background:#fff3cd;color:#856404}
.bdg-danger{background:#f8d7da;color:#721c24}.bdg-info{background:#d1ecf1;color:#0c5460}
.bdg-secondary{background:#e2e0dc;color:#4a4845}.bdg-primary{background:#cce5ff;color:#004085}
.ros-table{width:100%;border-collapse:collapse;font-size:13px}
.ros-table thead th{background:#f8f7f4;padding:10px 13px;font-weight:600;font-size:12px;color:#6c757d;border-bottom:2px solid var(--border-color);white-space:nowrap;cursor:pointer;user-select:none}
.ros-table thead th:hover{color:var(--ros-green)}
.ros-table tbody td{padding:10px 13px;border-bottom:1px solid #f0eee8;vertical-align:middle;color:#333}
.ros-table tbody tr:hover td{background:#f8f7f4}.ros-table tbody tr.sla-breach{border-left:3px solid #e74c3c}
.ros-table tbody tr.sla-breach td:first-child{padding-left:10px}.ros-table tbody tr.row-warn td{background:#fffaed}
.form-section-hdr{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#888;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:6px;line-height:1.35}
.form-section-hdr.mt-1{margin-top:.25rem}
.form-section-hdr i{color:var(--ros-green);flex-shrink:0;font-size:1rem;line-height:1}
.form-section-desc{font-size:12.5px;line-height:1.45;color:#6c757d;margin:-2px 0 16px;padding:0 0 0 calc(1rem + 6px)}
.mf-form-fields .section_break{width:100%}
.mf-form-fields .section_break .form-section-hdr:first-child{margin-top:0}
.mf-form-fields .section_break + .mf-form-fields-row,.mf-form-fields .mf-form-fields-row + .section_break{margin-top:0}
.mf-form-fields .declaration-field{width:100%}
.mf-form-fields .declaration-field .form-check-label{cursor:pointer;font-weight:400;line-height:1.5}
.mf-form-fields .declaration-field .mf-declaration-input{flex-shrink:0;margin-top:.2rem}
.mf-form-fields .declaration-field .mf-declaration-text{display:inline}
.mf-form-fields .declaration-field .mf-declaration-name{font-weight:600}
.ros-label{display:block;font-size:12.5px;font-weight:500;color:#444;margin-bottom:4px}.ros-label .req{color:#e74c3c;margin-left:2px}
.form-control:not(.mf-intl-tel-input),.form-select{font-size:13px!important;border-color:#ccc!important;border-radius:5px!important;padding:7px 10px!important;color:#333!important}
.mf-intl-tel-field .iti input.mf-intl-tel-input.form-control{font-size:13px!important;border-color:#ccc!important;border-radius:5px!important;padding-top:7px!important;padding-right:10px!important;padding-bottom:7px!important;color:#333!important}
.form-control:focus,.form-select:focus{border-color:var(--ros-green)!important;box-shadow:0 0 0 2px rgba(10,110,63,.12)!important}
.form-control[readonly]{background:#f8f9fa!important;color:#6c757d!important}
.btn-ros{background:var(--ros-green);border:1px solid var(--ros-green);color:#fff;font-weight:500;font-size:13px;border-radius:5px;padding:7px 16px;transition:all .15s}
.btn-ros:hover{background:var(--ros-green-dark);border-color:var(--ros-green-dark);color:#fff}
.btn-ros-outline{background:#fff;border:1px solid var(--ros-green);color:var(--ros-green);font-weight:500;font-size:13px;border-radius:5px;padding:7px 16px;transition:all .15s}
.btn-ros-outline:hover{background:var(--ros-green);color:#fff}
.btn-gold{background:var(--ros-gold);border:1px solid var(--ros-gold);color:#fff;font-weight:500;font-size:13px;border-radius:5px;padding:7px 16px;transition:all .15s}
.btn-gold:hover{background:#a97d18;color:#fff}
.chatter{border-top:1px solid var(--border-color);padding-top:0}
.chatter-head{display:flex;gap:0;border-bottom:1px solid var(--border-color);background:#f8f7f4;padding:0 16px}
.chatter-tab{padding:10px 14px;font-size:12.5px;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;border-top:none;border-left:none;border-right:none;background:none}
.chatter-tab.active{color:var(--ros-green);border-bottom-color:var(--ros-green);font-weight:500}
.chatter-compose{padding:14px 16px;border-bottom:1px solid var(--border-color)}
.chatter-compose textarea{font-size:13px;border:1px solid #ccc;border-radius:5px;resize:none;width:100%;padding:8px 10px;font-family:inherit}
.chatter-compose textarea:focus{outline:none;border-color:var(--ros-green);box-shadow:0 0 0 2px rgba(10,110,63,.1)}
.chat-messages{padding:6px 16px}
.chat-msg{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #f5f4f0}.chat-msg:last-child{border-bottom:none}
.chat-av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;margin-top:2px}
.chat-av.green{background:var(--ros-green)}.chat-av.gold{background:var(--ros-gold)}.chat-av.blue{background:#2980b9}.chat-av.sys{background:#e9e6e2;color:#888}
.chat-author{font-size:12.5px;font-weight:600;color:#333}.chat-time{font-size:11px;color:#aaa;margin-left:6px}
.chat-text{font-size:13px;color:#555;line-height:1.55;margin-top:2px}
.chat-sys{display:flex;gap:8px;padding:7px 0;border-bottom:1px solid #f5f4f0;align-items:flex-start}
.chat-sys-icon{width:24px;height:24px;border-radius:50%;background:var(--ros-green-light);border:1px solid #c3e6cb;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-sys-icon i{font-size:10px;color:var(--ros-green)}.chat-sys-text{font-size:12px;color:#777;line-height:1.5}
.client-strip{background:var(--ros-green);color:#fff;padding:9px 22px;display:flex;align-items:center;gap:16px;font-size:13px;flex-wrap:wrap}
.client-strip .c-name{font-weight:600}.client-strip .c-info{opacity:.85;font-size:12.5px}.client-strip .c-change{color:var(--ros-gold);cursor:pointer;font-size:12px;text-decoration:underline;margin-left:auto}
.fee-card{border:2px solid var(--ros-gold);border-radius:8px;background:var(--ros-gold-light);padding:14px 16px}
.fee-card .fc-title{font-size:11px;font-weight:700;color:#8a6400;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.fee-card .fc-amount{font-size:30px;font-weight:800;color:var(--ros-gold);line-height:1}.fee-card .fc-tier{font-size:12px;color:#8a6400;margin-top:4px}
.wizard-steps{display:flex;align-items:center;margin-bottom:20px}
.wz-step{display:flex;align-items:center;gap:7px;font-size:12px;color:#aaa}
.wz-num{width:26px;height:26px;border-radius:50%;background:#e0ddd8;color:#888;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wz-step.done .wz-num{background:var(--ros-green);color:#fff}.wz-step.active .wz-num{background:var(--ros-green);color:#fff;box-shadow:0 0 0 3px rgba(10,110,63,.2)}
.wz-step.active{color:var(--ros-green);font-weight:600}.wz-step.done{color:#555}
.wz-line{flex:1;height:2px;background:#e0ddd8;min-width:20px;max-width:50px}.wz-line.done{background:var(--ros-green)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.svc-tile{background:#fff;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .18s;overflow:hidden;box-shadow:var(--card-shadow)}
.svc-tile:hover{border-color:var(--ros-green);box-shadow:0 4px 12px rgba(10,110,63,.15);transform:translateY(-2px)}
.svc-tile-top{height:5px}.svc-tile-body{padding:14px}
.svc-tile-name{font-weight:600;font-size:13.5px;color:#333;margin-bottom:4px}
.svc-tile-fee{font-size:15px;font-weight:700;color:var(--ros-gold);margin-bottom:3px}.svc-tile-ref{font-size:11px;color:#aaa}
.ref-link{color:var(--ros-green);font-weight:600;cursor:pointer}.ref-link:hover{text-decoration:underline}
.avatar-row{display:flex;align-items:center;gap:7px}
.mini-av{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}
.mini-av.green{background:var(--ros-green)}.mini-av.gold{background:var(--ros-gold)}.mini-av.blue{background:#2980b9}.mini-av.purple{background:#6f42c1}.mini-av.teal{background:#0d9488}
.sla-ok{color:#155724;font-weight:600;font-size:12px}.sla-warn{color:#856404;font-weight:600;font-size:12px}.sla-breach{color:#e74c3c;font-weight:700;font-size:12px}
.alert-ros-info{background:#e8f4ed;border:1px solid #c3e6cb;color:#155724;border-radius:6px;padding:10px 14px;font-size:13px}
.alert-ros-warn{background:#fff3cd;border:1px solid #ffc107;color:#856404;border-radius:6px;padding:10px 14px;font-size:13px}
.alert-ros-danger{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;border-radius:6px;padding:10px 14px;font-size:13px}
.alert-ros-success{background:#d4edda;border:1px solid #c3e6cb;color:#155724;border-radius:6px;padding:10px 14px;font-size:13px}
.ros-tabs{border-bottom:2px solid var(--border-color);display:flex;gap:0;background:#f8f7f4;padding:0 16px}
.ros-tab{padding:10px 16px;font-size:13px;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap;border-top:none;border-left:none;border-right:none;background:none}
.ros-tab:hover{color:#333}.ros-tab.active{color:var(--ros-green);border-bottom-color:var(--ros-green);font-weight:500;background:#fff}
.ros-tab .tab-c{background:#e0ddd8;color:#555;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;margin-left:5px}
.ros-tab.active .tab-c{background:var(--ros-green);color:#fff}
.ros-tab-pane{display:none;padding:16px}.ros-tab-pane.active{display:block}
.receipt-card{border:2px solid var(--border-color);border-radius:8px;padding:20px;font-size:13px}
.receipt-hdr{text-align:center;border-bottom:2px dashed #ccc;padding-bottom:12px;margin-bottom:12px}
.receipt-row{display:flex;justify-content:space-between;padding:3px 0}.receipt-total{border-top:2px dashed #ccc;margin-top:8px;padding-top:8px;font-weight:700;font-size:15px}
.ros-pages{display:flex;align-items:center;gap:3px}
.ros-page-item{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:5px;cursor:pointer;font-size:12.5px;color:#495057;border:none;background:none}
.ros-page-item:hover{background:#f0eeeb}.ros-page-item.active{background:var(--ros-green);color:#fff;font-weight:600}.ros-page-item.disabled{color:#ccc;cursor:default}
.verif-track{display:flex;gap:12px;margin:16px 0}
.verif-slot{flex:1;border:2px solid var(--border-color);border-radius:8px;padding:14px;text-align:center}
.verif-slot.done{border-color:var(--ros-green);background:var(--ros-green-light)}.verif-slot.pending{border-color:#ffc107;background:#fff3cd}.verif-slot.empty{border-style:dashed}
.verif-slot .vs-icon{font-size:24px;margin-bottom:6px}.verif-slot.done .vs-icon{color:var(--ros-green)}.verif-slot.pending .vs-icon{color:#e67e22}
.verif-slot .vs-name{font-size:12.5px;font-weight:600;color:#333}.verif-slot .vs-role{font-size:11px;color:#888}.verif-slot .vs-date{font-size:11px;color:var(--ros-green);margin-top:4px}
.doc-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #f5f4f0}.doc-item:last-child{border-bottom:none}
.doc-status-icon{font-size:16px;width:20px;flex-shrink:0}.doc-info{flex:1}.doc-name{font-weight:600;font-size:13px;color:#333}.doc-note{font-size:11.5px;color:#888}
.chart-ph{background:#f8f7f4;border:1px dashed #ccc;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#aaa;font-size:13px;gap:8px}
.chart-ph i{font-size:28px;color:#ccc}
.int-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:16px;text-align:center;box-shadow:var(--card-shadow)}
.int-status{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:4px 12px;border-radius:20px;margin:8px 0}
.int-status.connected{background:#d4edda;color:#155724}.int-status.degraded{background:#fff3cd;color:#856404}
.int-status.disconnected{background:#f8d7da;color:#721c24}.int-status.unconfigured{background:#e2e0dc;color:#555}
.login-page{background:linear-gradient(135deg,var(--ros-green) 0%,var(--ros-green-dark) 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border-radius:12px;padding:36px 40px;width:100%;max-width:420px;box-shadow:0 8px 40px rgba(0,0,0,.22)}
.login-crest{width:58px;height:58px;background:var(--ros-green);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:22px;font-weight:800;color:#fff}
.gazette-editor{border:1px solid #ccc;border-radius:5px;padding:14px;font-size:13px;min-height:160px;line-height:1.7;color:#333;background:#fffef5;font-family:'Times New Roman',serif}
.bond-tab-btn{flex:1;padding:12px 16px;text-align:center;cursor:pointer;border:none;background:#f8f7f4;font-size:13.5px;font-weight:600;color:#888;border-bottom:2px solid transparent;transition:all .15s}
.bond-tab-btn.active{background:#fff;color:var(--ros-green);border-bottom-color:var(--ros-green)}
.bond-tab-sub{font-size:11px;font-weight:400;color:#aaa;display:block}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}
@media(max-width:992px){.ros-sidebar{transform:translateX(-100%)}.ros-sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.ros-topnav{left:0}.service-grid{grid-template-columns:repeat(2,1fr)}}

/* Dashboard page */
.sidebar-link{text-decoration:none}
.page-welcome-title{font-size:20px;font-weight:700;color:#1a1a1a;margin:0}
.page-welcome-meta{color:#888;font-size:13px;margin:3px 0 0}
.btn-action{padding:8px 16px;border-radius:6px}
.alert-ros-danger--breach{border-left:4px solid #e74c3c}
.alert-ros-danger__link{color:#721c24;text-decoration:underline;font-weight:600}
.stat-value--md{font-size:20px}
.bar-chart{display:flex;flex-direction:column;gap:8px}
.bar-row{display:flex;align-items:center;gap:10px}
.bar-label{width:120px;font-size:12px;color:#555;text-align:right;flex-shrink:0}
.bar-track{flex:1;background:#f0eeeb;border-radius:4px;height:22px}
.bar-fill{border-radius:4px;height:100%;display:flex;align-items:center;padding:0 8px}
.bar-fill span{font-size:11px;color:#fff;font-weight:600}
.bar-fill--green{background:var(--ros-green)}
.bar-fill--blue{background:#2980b9}
.bar-fill--gold{background:var(--ros-gold)}
.bar-fill--purple{background:#6f42c1}
.bar-fill--red{background:#e74c3c}
.bar-fill--teal{background:#0d9488}
.bar-fill--gray{background:#95a5a6}
.status-legend{display:flex;flex-direction:column;gap:10px}
.legend-row{font-size:12.5px}
.legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.legend-swatch--approved{background:#d4edda}
.legend-swatch--review{background:#fff3cd}
.legend-swatch--legal{background:#d1ecf1}
.legend-swatch--payment{background:#e2e0dc}
.legend-swatch--rejected{background:#f8d7da}
.sla-compliance{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-color)}
.sla-compliance__label{font-size:11.5px;color:#888}
.sla-compliance__value{font-size:22px;font-weight:700;color:var(--ros-green)}
.text-approved{color:var(--ros-green)}
.text-review{color:#856404}
.text-legal{color:#0c5460}
.text-muted-strong{color:#555}
.text-rejected{color:#721c24}
.btn-sm-ros{padding:4px 12px;font-size:12px;border-radius:5px}
.btn-xs-ros{padding:3px 10px;font-size:12px;border-radius:4px}
.due-today{color:#e74c3c;font-weight:600}
.tn-icon-lg{font-size:18px}
.tn-icon-md{font-size:16px}
.tn-chevron{font-size:10px;color:#888}
.dropdown-menu--ros{font-size:14px;min-width:200px;padding:.4rem 0;z-index:1060}
.dropdown-menu--ros .dropdown-item{font-size:14px;padding:.5rem 1rem;line-height:1.45;font-weight:500;color:#333}
.dropdown-menu--ros .dropdown-item i{font-size:15px;vertical-align:-.1em}
.dropdown-menu--ros .dropdown-item:hover,.dropdown-menu--ros .dropdown-item:focus{background:var(--ros-green-light);color:var(--ros-green)}
/* Applications list: overflow visible + row z-index so action menus sit above the table */
.page-content:has(#appsTable),.page-content:has(#tasksTable),.main-content:has(#appsTable),.main-content:has(#tasksTable){overflow:visible}
.ros-card--apps-list{overflow:visible!important;margin-bottom:24px}
.ros-card--apps-list.app-tabs-card{overflow:visible!important}
.ros-card--apps-list>.ros-card-header,.ros-card--apps-list>.ros-card-body,.ros-card--apps-list>.ros-card-body.p-0{overflow:visible!important}
.ros-card--apps-list .apps-table-scroll{overflow:visible!important}
.ros-card--apps-list .ros-table{min-width:960px}
.ros-card--apps-list .ros-table tbody tr{position:relative;z-index:1}
.ros-card--apps-list .ros-table tbody tr:has(.dropdown-menu.show){z-index:1050}
.ros-card--apps-list .apps-table-actions .dropdown{position:static}
.ros-card--apps-list .apps-table-actions .dropdown-menu{position:absolute;top:100%;right:0;left:auto;margin-top:2px;z-index:1055}
.ros-card--apps-list .apps-table-actions .dropdown-menu.show{display:block}
.icon-ros-green{color:var(--ros-green)}
.user-menu-text{text-align:left}
.user-menu-btn.dropdown-toggle{display:flex;align-items:center;gap:8px;border:none;background:none;padding:4px 8px;border-radius:6px;cursor:pointer}
.tn-icon-help{font-size:15px}

/* Dashboard print */
.dashboard-print-only{display:none}
@media print{
  body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ros-sidebar,#ros-topnav,.dashboard-no-print,.alert{display:none!important}
  .main-content{margin-left:0!important;padding-top:0!important}
  .page-content{padding:12px!important}
  .stat-card,.ros-card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}
  .bar-fill,.legend-swatch,.bdg{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ros-table{font-size:11px}
  .ros-table thead th{background:#eee!important}
  .btn-ros,.btn-ros-outline,.btn-xs-ros{display:none!important}
  a.ref-link{color:#000!important;text-decoration:none!important}
  .dashboard-print-only{display:block!important;margin-bottom:12px;font-size:12px;color:#555}
  #dashboard-print-root{width:100%}
}

/* Backend application detail view */
.application-view-page{margin:-22px}
.application-view-body{padding:22px}
.application-view-page .ctrl-panel{margin:0}
.application-view-page .js-workflow-action-trigger.disabled,
.application-view-page .js-requires-workflow-comment.disabled{opacity:.55;pointer-events:none;cursor:not-allowed}
.application-view-page .js-workflow-action-trigger:not(.disabled):focus-visible,
.application-view-page .js-requires-workflow-comment:not(.disabled):focus-visible{outline:2px solid var(--ros-green);outline-offset:2px}
.application-view-page .ros-card .form-bordered .form-group{margin-bottom:12px}
.application-view-page .ros-card .panel{margin-bottom:0;border:none;box-shadow:none}
.application-view-page .ros-card .panel-heading{background:transparent;border-bottom:1px solid var(--border-color);padding:0 0 10px}
.application-view-page .ros-card .panel-body{padding:0}
.application-view-page .ros-tab{text-decoration:none;color:inherit}
.application-view-page .stat-btn{border:none;background:#fff;cursor:pointer}
.application-view-page .stat-btn:hover{border-color:var(--ros-green);box-shadow:0 2px 8px rgba(10,110,63,.1)}
@media (max-width:991px){
  .application-view-page .ros-card[style*="sticky"]{position:static!important}
}

/* Application view refinements */
.app-view-header{padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}
.app-applicant-panel{padding:1rem 1.25rem;background:#fff;border-radius:8px;border:1px solid var(--border-color)}
.app-applicant-avatar{object-fit:cover;border:2px solid var(--border-color)}
.workflow-remarks-strip{padding:12px 0 14px;border-top:1px solid var(--border-color)}
.workflow-remarks-strip textarea{font-size:13px;resize:vertical;min-height:56px}
.statusbar--filter .sb-s{text-decoration:none;color:#aaa}
.statusbar--filter a.sb-s:visited{color:#aaa}
.statusbar--filter .sb-s:hover{background:#eee;color:#333}
.statusbar--filter .sb-s.current,.statusbar--filter a.sb-s.current,.statusbar--filter a.sb-s.current:visited{background:var(--ros-green);color:#fff;font-weight:500}
.statusbar--filter{overflow-x:auto;flex-wrap:nowrap}
.statusbar--filter .sb-s{flex-shrink:0}
/* Position classes set in indexSuccess.php (avoids :first/:last-child vs whitespace). */
.statusbar--filter .sb-s--first{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);padding-right:20px}
.statusbar--filter .sb-s--last{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,12px 50%);padding-right:16px}
.statusbar--filter .sb-s--middle{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%);padding-right:20px}
.statusbar--filter .sb-s--only{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);padding:9px 16px 9px 14px}
.statusbar--progress{align-items:stretch;background:transparent;border:none;border-radius:0;overflow:visible;gap:0;padding-bottom:12px}
.statusbar--progress .sb-s{flex:1;border-radius:6px;border:1px solid var(--border-color);clip-path:none;padding:9px 12px;margin:0;background:#fff}
.statusbar--progress .sb-s:first-child,.statusbar--progress .sb-s:last-child{clip-path:none;padding:9px 12px}
.statusbar--progress .sb-s.pending{color:#888;background:#fafafa}
.statusbar--progress .sb-s.done{background:var(--ros-green-light);color:var(--ros-green);border-color:#c3e6cb}
.statusbar--progress .sb-s.current{background:var(--ros-green);color:#fff;border-color:var(--ros-green)}
.statusbar-connector{width:20px;align-self:center;height:2px;background:#e0ddd8;flex-shrink:0}
.statusbar-connector.done{background:var(--ros-green)}
.ros-tabs--scroll{overflow-x:auto;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.ros-tabs--scroll .ros-tab{flex-shrink:0}
.app-detail-table .app-detail-label{width:35%;color:#666;font-weight:500;vertical-align:top;padding:.55rem .75rem .55rem 0}
.app-detail-table .app-detail-value{padding:.55rem 0;color:#222;vertical-align:top}
.app-detail-table tr+tr .app-detail-label,.app-detail-table tr+tr .app-detail-value{border-top:1px solid #f0eee8}
.app-billing-table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#666}
.app-billing-total-row{background:var(--ros-green-light)!important}
.app-billing-total-row td{border-top:2px solid var(--border-color)!important}
.app-billing-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.app-billing-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:7px 16px;font-size:13px;line-height:1.35;white-space:nowrap;border-radius:6px}
.app-billing-actions .btn i{font-size:14px;line-height:1}
.app-billing-actions .btn-icon{padding:7px 10px;min-width:36px}
@media (max-width:575.98px){.app-billing-actions{justify-content:flex-start}.app-billing-actions .btn{flex:1 1 auto}.app-billing-actions .btn-icon{flex:0 0 auto}}
.doc-list-row{transition:background .15s,box-shadow .15s}
.doc-list-row:hover td{background:#f8f7f4!important}
.app-timeline-list{position:relative;padding-left:4px}
.app-timeline-item{display:flex;gap:12px;padding:0 0 16px 0;position:relative}
.app-timeline-item:not(:last-child)::before{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:#e8e6e2}
.app-timeline-marker{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;z-index:1}
.app-timeline-marker--stage{background:var(--ros-gold-light);color:#8a6400;border:1px solid #e6c96e}
.app-timeline-marker--system{background:var(--ros-green-light);color:var(--ros-green);border:1px solid #c3e6cb}
.app-timeline-marker--selection{background:#d1e7dd;color:#198754;border:1px solid #a3cfbb}
.app-timeline-title{font-size:13px;font-weight:600;color:#333}
.app-timeline-meta{font-size:11.5px;color:#888;display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.application-view-page .ros-card .panel-group{margin-bottom:0}
.application-view-page .ros-card .panel{border:none;box-shadow:none;margin-bottom:0}
.application-view-page .ros-card .panel-heading{background:transparent;border-bottom:1px solid var(--border-color);padding:12px 16px}
.application-view-page .ros-card .panel-body{padding:16px}

/* Modern application tabs */
.app-tabs-card{overflow:hidden}
.app-view-tabs{display:flex;flex-wrap:nowrap;gap:.35rem;padding:1rem 1rem .75rem;margin:0;border-bottom:1px solid var(--border-color);background:#fafafa;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.app-view-tabs .nav-item{flex-shrink:0}
.app-view-tabs .nav-link{color:#666;font-size:13px;font-weight:500;padding:.45rem .9rem;border-radius:999px;border:1px solid transparent;white-space:nowrap;transition:all .15s}
.app-view-tabs .nav-link:hover{color:var(--ros-green);background:#fff;border-color:#dfe3e8}
.app-view-tabs .nav-link.active{color:#fff;background:var(--ros-green);border-color:var(--ros-green);box-shadow:0 2px 8px rgba(10,110,63,.2)}
.app-tab-content{padding-top:1.25rem!important}

/* Review history scroll cards */
.review-scroll-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;min-height:360px;max-height:480px}
.review-scroll-card-header{padding:.75rem 1rem;font-size:13px;font-weight:600;color:#333;background:#f8f7f4;border-bottom:1px solid var(--border-color);flex-shrink:0}
.review-scroll-card-body{flex:1;overflow-y:auto;padding:1rem;-webkit-overflow-scrolling:touch}
.review-scroll-card-body .panel,.review-scroll-card-body .table{margin-bottom:0}

/* Review history — Bootstrap 5 accordion */
.review-history{display:flex;flex-direction:column;gap:0}
.review-history-accordion{--bs-accordion-border-color:#ebe9e4;--bs-accordion-btn-bg:#f8f7f4;--bs-accordion-active-bg:#f3fbf6;--bs-accordion-active-color:#1a1a1a}
.review-history-accordion .accordion-item{border-radius:6px!important;overflow:hidden;margin-bottom:10px;border:1px solid #ebe9e4!important}
.review-history-accordion .accordion-item:last-child{margin-bottom:0}
.review-history-accordion .accordion-button{padding:.65rem .85rem;box-shadow:none;font-size:13px}
.review-history-accordion .accordion-button:not(.collapsed){box-shadow:none}
.review-history-accordion .accordion-button::after{margin-left:auto;flex-shrink:0}
.review-acc-btn{display:flex!important;align-items:flex-start;gap:10px;text-align:left}
.review-acc-av{width:28px;height:28px;font-size:10px;flex-shrink:0;margin-top:1px}
.review-acc-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.review-acc-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;line-height:1.35}
.review-acc-line--sub{font-size:11.5px;color:#888}
.review-acc-name{font-weight:600;color:#2a2a2a}
.review-acc-sep{color:#ccc}
.review-acc-dept{color:#555;font-weight:500}
.review-acc-date{color:#888}
.review-acc-date i{font-size:10px}
.review-acc-task{margin-left:auto}
.review-history-accordion .accordion-body{padding:.75rem .85rem;background:#fff}
.review-acc-actions .btn{font-size:13px;padding:.5rem .75rem}
.review-acc-actions .btn.flex-fill{min-width:0}
.review-entry-fields .ros-label{font-size:12px}
.review-entry-fields .form-control{font-size:12.5px}
.review-entry-fields .form-section-hdr{margin-top:.25rem}
.review-item{border:1px solid var(--border-color);border-radius:10px;background:#fff;overflow:hidden}
.review-item-head{display:flex;align-items:flex-start;gap:10px;padding:.65rem .8rem;background:#faf9f6;border-bottom:1px solid var(--border-color)}
.review-avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;background:var(--ros-green-light,#e6f4ec);color:var(--ros-green,#198754)}
.review-head-main{min-width:0;flex:1}
.review-name{display:inline-block;font-size:13px;font-weight:600;color:#2a2a2a;text-decoration:none;line-height:1.2}
.review-name:hover{color:var(--ros-green,#198754);text-decoration:underline}
.review-sub{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:3px;font-size:11.5px;color:#8a8a8a}
.review-sub i{font-size:11px;margin-right:2px}
.review-badge{flex-shrink:0;align-self:center;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}
.review-badge--done{background:#d1e7dd;color:#0f5132}
.review-badge--pending{background:#fff3cd;color:#664d03}
.review-badge--danger{background:#f8d7da;color:#842029}
.review-item-body{padding:.75rem .9rem;font-size:13px;color:#333}
.review-note{font-size:12.5px;color:#444}
.review-note--muted{color:#9a9a9a}
.review-empty{text-align:center;color:#9a9a9a;padding:2.25rem 1rem}
.review-empty i{font-size:1.8rem;display:block;margin-bottom:.4rem;opacity:.5}
/* Captured answers */
.review-detail{margin:0;display:flex;flex-direction:column;gap:.55rem}
.review-detail-section{font-size:12px;font-weight:700;color:#1a1a1a;text-transform:uppercase;letter-spacing:.03em;margin:.35rem 0 .1rem;padding-bottom:.25rem;border-bottom:1px solid #eee}
.review-detail-row{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:.25rem 1rem;align-items:start}
.review-detail-row dt{font-weight:600;color:#666;font-size:12px;word-break:break-word}
.review-detail-row dd{margin:0;color:#222;font-size:12.5px;word-break:break-word;overflow-wrap:anywhere}
.review-detail-row dd img{max-width:100%;height:auto}
@media (max-width:575.98px){.review-detail-row{grid-template-columns:1fr;gap:0}.review-detail-row dt{color:#888}}

/* Billing + documents side panels */
.app-side-panel{display:flex;flex-direction:column}
.app-side-panel-body{flex:1;overflow:auto;max-height:420px;-webkit-overflow-scrolling:touch}
.app-side-panel .app-billing-table{font-size:12px}
.app-side-panel .ros-table{font-size:12px}

/* Application details form layout */
.app-details-card .form-control[readonly]{background:#f8f9fa;border-color:#dee2e6;color:#333;cursor:default}
.app-details-card .form-control[readonly]:focus{box-shadow:none;border-color:#dee2e6}
.app-details-col{padding:0 .5rem}
.app-details-divider{width:1px;background:var(--border-color);margin:16px 0;align-self:stretch;min-height:120px}
.app-details-fields{padding-bottom:.25rem}
.app-detail-name-list{display:flex;flex-direction:column;gap:.5rem}
.app-detail-name-item{display:flex;flex-direction:column;gap:.2rem}
.app-detail-name-index{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.03em}
.app-detail-html-value{height:auto;min-height:calc(1.5em + .75rem + 2px);background:#f8f9fa;overflow:auto}
.app-detail-html-value ol,.app-detail-html-value ul{margin:.25rem 0 0;padding-left:1.25rem}
.app-detail-html-value li{padding:.15rem 0}
.app-detail-html-value table{width:100%;font-size:12.5px;margin-bottom:0}
.app-detail-html-value a{color:var(--ros-green);word-break:break-all}
.snp-approved-banner{border-color:rgba(25,135,84,.25)!important;background:#f3fbf6!important}
.snp-selection-meta span{display:inline-block}
.snp-select-btn{white-space:nowrap;flex-shrink:0}
.snp-comments-notice{margin-bottom:.75rem}
.snp-entry-name-list__approved{list-style:none;margin-left:0;padding-left:0}
.snp-select-field .form-check-label{font-size:13px;line-height:1.4}
@media (max-width:575px){
  .snp-select-btn{width:100%}
}
@media (max-width:991px){
  .app-details-col{padding:0}
  .app-details-col + .app-details-col{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}
}
@media (max-width:991px){
  .review-scroll-card{max-height:320px;margin-bottom:.5rem}
  .app-side-panel-body{max-height:none}
}

/* ===== Task view (modal-free review workflow) ===== */
.task-review-card{position:sticky;top:calc(var(--topnav-h) + 90px)}
@media (max-width:991px){.task-review-card{position:static}}
.task-review-body{position:relative}
.task-meta-grid{display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;font-size:12.5px;margin-bottom:1rem}
.task-meta-grid dt{color:#888;font-weight:500;white-space:nowrap}
.task-meta-grid dd{margin:0;color:#222;font-weight:500;text-align:right}
/* Normalise the dynamically-loaded MachForm / fee markup inside the review card */
.task-review-body .form-group{margin-bottom:.85rem}
.task-review-body label[class^="col-"],.task-review-body label[class*=" col-"]{float:none;width:100%;display:block;padding:0 0 .25rem;font-weight:500;font-size:12.5px;color:#444;text-align:left}
.task-review-body div[class^="col-"],.task-review-body div[class*=" col-"]{float:none;width:100%;padding:0}
.task-review-body input[type=text],.task-review-body input[type=number],.task-review-body textarea,.task-review-body select{max-width:100%}
.task-review-body .select2-container{width:100%!important}
.task-review-body #main_bodys.integrated{margin:.25rem 0 0;padding:0;background:transparent}
.task-review-body #main_bodys.integrated .form_description{display:none}
.task-review-body #main_bodys.integrated .mf-embed-card{box-shadow:0 .125rem .375rem rgba(0,0,0,.08)!important}
.task-review-body #main_bodys.integrated .mf-form-actions{border-top:1px solid #e8e6e1!important;padding-top:.75rem!important;margin-top:.5rem!important}
.task-review-body #main_bodys.integrated #li_buttons input[type=submit]{visibility:visible;opacity:1}
/* Submit loading overlay */
.task-submit-overlay{position:absolute;inset:0;background:rgba(255,255,255,.82);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;z-index:30;border-radius:8px;opacity:0;visibility:hidden;transition:opacity .2s ease}
.task-submit-overlay.is-active{opacity:1;visibility:visible}
.task-submit-overlay .spinner-border{color:var(--ros-green)}
.task-submit-overlay .task-submit-msg{font-size:13px;color:#555;font-weight:500}
/* Completed success state */
.task-complete{text-align:center;padding:1.25rem .5rem .5rem}
.task-complete-icon{width:64px;height:64px;border-radius:50%;background:var(--ros-green-light);color:var(--ros-green);display:inline-flex;align-items:center;justify-content:center;font-size:34px;margin-bottom:.75rem}
.task-complete h4{font-size:1.05rem;font-weight:600;color:#1a1a1a;margin-bottom:.25rem}
.task-next-actions .btn{justify-content:center}
.app-timeline-marker--pending{background:#f1f0ec;color:#aaa;border:1px solid #e0ddd6}

/* ===== Conversation / chat thread (messages + memos) ===== */
.ros-chat{display:flex;flex-direction:column}
.ros-chat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}
.ros-chat-toolbar-title{font-size:12px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.04em}
.ros-chat-thread{display:flex;flex-direction:column;gap:14px;max-height:440px;overflow-y:auto;padding:4px 6px 10px;-webkit-overflow-scrolling:touch}
.ros-chat-empty{text-align:center;color:#9a9a9a;padding:2.5rem 1rem}
.ros-chat-empty i{font-size:1.9rem;display:block;margin-bottom:.4rem;opacity:.5}
.ros-chat-msg{display:flex;gap:10px;max-width:84%}
.ros-chat-msg--in{align-self:flex-start}
.ros-chat-msg--out{align-self:flex-end;flex-direction:row-reverse}
.ros-chat-avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;background:#e2e0dc;color:#5a5750}
.ros-chat-msg--out .ros-chat-avatar{background:var(--ros-green-light);color:var(--ros-green)}
.ros-chat-body{min-width:0}
.ros-chat-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.ros-chat-msg--out .ros-chat-meta{flex-direction:row-reverse}
.ros-chat-name{font-size:12.5px;font-weight:600;color:#333}
.ros-chat-time{font-size:11px;color:#aaa}
.ros-chat-bubble{padding:9px 13px;border-radius:12px;font-size:13px;line-height:1.55;color:#333;background:#f1f0ec;border:1px solid #e8e6e2;word-wrap:break-word;overflow-wrap:anywhere}
.ros-chat-msg--in .ros-chat-bubble{border-top-left-radius:3px}
.ros-chat-msg--out .ros-chat-bubble{background:var(--ros-green-light);border-color:#c3e6cb;border-top-right-radius:3px}
.ros-chat-bubble p:last-child{margin-bottom:0}
.ros-chat-bubble img{max-width:100%;height:auto}
.ros-chat-composer{margin-top:14px;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:#fff}
.ros-chat-composer textarea{border:0;resize:vertical;width:100%;padding:12px;font-size:13px;min-height:90px;color:#333}
.ros-chat-composer textarea:focus{outline:none;box-shadow:none}
.ros-chat-composer-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:8px 10px;border-top:1px solid var(--border-color);background:#fafafa}
.fade-slide-in{animation:taskFadeSlide .35s ease both}
@keyframes taskFadeSlide{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Bootstrap 5 modal compatibility (post BS3 → BS5 migration) */
.modal{z-index:1060}
.modal-backdrop{z-index:1055}
.modal.in,.modal.show{display:block}
.modal-backdrop.in,.modal-backdrop.show{opacity:var(--bs-backdrop-opacity,.5)}
.modal.fade .modal-dialog{transition:transform .3s ease-out}
.modal.in .modal-dialog,.modal.show .modal-dialog{transform:none}
.modal-header .close,.modal-header .btn-close{margin:0;padding:.5rem}

/* Attachment preview modal (staff + client application views) */
#appFilePreviewModal.modal{z-index:12050!important}
#appFilePreviewModal.modal.show{opacity:1!important;visibility:visible!important;pointer-events:none}
#appFilePreviewModal.modal.show .modal-dialog{transform:none!important;opacity:1!important;pointer-events:auto}
#appFilePreviewModal.modal .modal-dialog{z-index:12051}
body.app-file-preview-open .modal-backdrop{z-index:12040!important}
body.app-file-preview-open .modal-backdrop.show{opacity:var(--bs-backdrop-opacity,.5)}
body.app-file-preview-open .select2-container,
body.app-file-preview-open .select2-dropdown,
body.app-file-preview-open .gj-picker-bootstrap,
body.app-file-preview-open .iti__dropdown-content,
body.app-file-preview-open .uploadifive-button input[type="file"]{z-index:1!important}
.app-attachment-list{display:flex;flex-direction:column;gap:.65rem}
.app-attachment-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.75rem .9rem;border:1px solid #edf0f5;border-radius:.65rem;background:#fafbfc}
.app-attachment-item__meta{display:flex;align-items:center;min-width:0;flex:1 1 220px}
.app-attachment-item__name{word-break:break-word}
.app-attachment-item__actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}
.app-file-preview-dialog{width:96vw;max-width:96vw;margin:1rem auto}
.app-file-preview-content{min-height:88vh}
.app-file-preview-toolbar{background:#fafbfc}
.app-file-preview-toolbar .btn{white-space:nowrap}
.app-file-preview-frame{width:100%;height:calc(88vh - 8rem);border:0;display:block;background:#f8f9fa}
.app-file-preview-image-wrap{display:flex;align-items:center;justify-content:center;min-height:calc(88vh - 8rem);padding:1rem;background:#f8f9fa}
.app-file-preview-image-wrap img{max-width:100%;max-height:calc(88vh - 10rem);object-fit:contain}
.app-file-preview-fallback{min-height:calc(88vh - 8rem);display:flex;align-items:center;justify-content:center}
a.entry_link.app-file-preview-trigger{cursor:pointer;text-decoration:none}
a.entry_link.app-file-preview-trigger:hover{text-decoration:underline}

/* ===== Staff portal button system (backend /karibu/) ===== */
.ros-staff-portal .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  font-size:13px;
  font-weight:500;
  line-height:1.35;
  border-radius:5px;
  padding:7px 16px;
  min-height:36px;
  box-shadow:none;
  text-shadow:none;
  letter-spacing:.01em;
  transition:color .15s ease,background-color .15s ease,border-color .15s ease,opacity .15s ease;
}
.ros-staff-portal .btn .fa,.ros-staff-portal .btn .bi,.ros-staff-portal .btn [class*="fa-"]{
  font-size:14px;
  line-height:1;
}
.ros-staff-portal .btn-sm,.ros-staff-portal .btn-xs{
  --bs-btn-padding-y:0.4375rem;
  --bs-btn-padding-x:1rem;
  --bs-btn-font-size:0.8125rem;
  --bs-btn-border-radius:5px;
  padding:7px 16px!important;
  font-size:13px!important;
  font-weight:500!important;
  line-height:1.35!important;
  border-radius:5px!important;
  min-height:36px;
}
.ros-staff-portal .btn-lg{
  padding:9px 20px!important;
  font-size:14px!important;
  min-height:42px;
}
.ros-staff-portal .btn-primary{
  --bs-btn-color:#fff;
  --bs-btn-bg:var(--ros-green);
  --bs-btn-border-color:var(--ros-green);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--ros-green-dark);
  --bs-btn-hover-border-color:var(--ros-green-dark);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:var(--ros-green-dark);
  --bs-btn-active-border-color:var(--ros-green-dark);
  --bs-btn-disabled-color:#fff;
  --bs-btn-disabled-bg:var(--ros-green);
  --bs-btn-disabled-border-color:var(--ros-green);
  color:#fff;
  background-color:var(--ros-green);
  border-color:var(--ros-green);
}
.ros-staff-portal .btn-primary:hover,.ros-staff-portal .btn-primary:focus,.ros-staff-portal .btn-primary:active{
  color:#fff;
  background-color:var(--ros-green-dark);
  border-color:var(--ros-green-dark);
}
.ros-staff-portal .btn-success{
  --bs-btn-color:#fff;
  --bs-btn-bg:#198754;
  --bs-btn-border-color:#198754;
  --bs-btn-hover-bg:#157347;
  --bs-btn-hover-border-color:#146c43;
  color:#fff;
  background-color:#198754;
  border-color:#198754;
}
.ros-staff-portal .btn-success:hover,.ros-staff-portal .btn-success:focus{
  color:#fff;
  background-color:#157347;
  border-color:#146c43;
}
.ros-staff-portal .btn-danger{
  --bs-btn-color:#fff;
  --bs-btn-bg:#dc3545;
  --bs-btn-border-color:#dc3545;
  --bs-btn-hover-bg:#bb2d3b;
  --bs-btn-hover-border-color:#b02a37;
  color:#fff;
  background-color:#dc3545;
  border-color:#dc3545;
}
.ros-staff-portal .btn-danger:hover,.ros-staff-portal .btn-danger:focus{
  color:#fff;
  background-color:#bb2d3b;
  border-color:#b02a37;
}
.ros-staff-portal .btn-warning{
  --bs-btn-color:#212529;
  --bs-btn-bg:var(--ros-gold);
  --bs-btn-border-color:var(--ros-gold);
  --bs-btn-hover-color:#212529;
  --bs-btn-hover-bg:#a97d18;
  --bs-btn-hover-border-color:#a97d18;
  color:#212529;
  background-color:var(--ros-gold);
  border-color:var(--ros-gold);
}
.ros-staff-portal .btn-warning:hover,.ros-staff-portal .btn-warning:focus{
  color:#fff;
  background-color:#a97d18;
  border-color:#a97d18;
}
.ros-staff-portal .btn-info{
  --bs-btn-color:#fff;
  --bs-btn-bg:#2980b9;
  --bs-btn-border-color:#2980b9;
  --bs-btn-hover-bg:#2471a3;
  --bs-btn-hover-border-color:#21618c;
  color:#fff;
  background-color:#2980b9;
  border-color:#2980b9;
}
.ros-staff-portal .btn-info:hover,.ros-staff-portal .btn-info:focus{
  color:#fff;
  background-color:#2471a3;
  border-color:#21618c;
}
.ros-staff-portal .btn-dark{
  --bs-btn-color:#fff;
  --bs-btn-bg:#212529;
  --bs-btn-border-color:#212529;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#1a1e21;
  --bs-btn-hover-border-color:#1a1e21;
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:#1a1e21;
  --bs-btn-active-border-color:#1a1e21;
  color:#fff;
  background-color:#212529;
  border-color:#212529;
}
.ros-staff-portal .btn-dark:hover,.ros-staff-portal .btn-dark:focus,.ros-staff-portal .btn-dark:active{
  color:#fff;
  background-color:#1a1e21;
  border-color:#1a1e21;
}
.ros-staff-portal .btn-outline-dark{
  --bs-btn-color:#212529;
  --bs-btn-border-color:#212529;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#212529;
  --bs-btn-hover-border-color:#212529;
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:#1a1e21;
  --bs-btn-active-border-color:#1a1e21;
  color:#212529;
  border-color:#212529;
  background-color:transparent;
}
.ros-staff-portal .btn-outline-dark:hover,.ros-staff-portal .btn-outline-dark:focus,.ros-staff-portal .btn-outline-dark:active{
  color:#fff;
  background-color:#212529;
  border-color:#212529;
}
.ros-staff-portal .btn-secondary,.ros-staff-portal .btn-default,.ros-staff-portal .btn-white{
  --bs-btn-color:#333;
  --bs-btn-bg:#fff;
  --bs-btn-border-color:#ced4da;
  --bs-btn-hover-color:var(--ros-green);
  --bs-btn-hover-bg:#f8f9fa;
  --bs-btn-hover-border-color:var(--ros-green);
  color:#333;
  background-color:#fff;
  border-color:#ced4da;
}
.ros-staff-portal .btn-secondary:hover,.ros-staff-portal .btn-secondary:focus,
.ros-staff-portal .btn-default:hover,.ros-staff-portal .btn-default:focus,
.ros-staff-portal .btn-white:hover,.ros-staff-portal .btn-white:focus{
  color:var(--ros-green);
  background-color:#f8f9fa;
  border-color:var(--ros-green);
}
.ros-staff-portal .btn-outline-primary{
  --bs-btn-color:var(--ros-green);
  --bs-btn-border-color:var(--ros-green);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--ros-green);
  --bs-btn-hover-border-color:var(--ros-green);
  color:var(--ros-green);
  border-color:var(--ros-green);
}
.ros-staff-portal .btn-outline-primary:hover,.ros-staff-portal .btn-outline-primary:focus{
  color:#fff;
  background-color:var(--ros-green);
  border-color:var(--ros-green);
}
.ros-staff-portal .btn-outline-secondary{
  color:#495057;
  border-color:#ced4da;
}
.ros-staff-portal .btn-outline-secondary:hover,.ros-staff-portal .btn-outline-secondary:focus{
  color:var(--ros-green);
  background-color:#f8f9fa;
  border-color:var(--ros-green);
}
.ros-staff-portal .btn-outline-danger{
  color:#dc3545;
  border-color:#dc3545;
}
.ros-staff-portal .btn-outline-danger:hover,.ros-staff-portal .btn-outline-danger:focus{
  color:#fff;
  background-color:#dc3545;
  border-color:#dc3545;
}
.ros-staff-portal .btn-primary-alt{
  color:#fff;
  background-color:var(--ros-green);
  border-color:var(--ros-green);
}
.ros-staff-portal .btn-primary-alt:hover,.ros-staff-portal .btn-primary-alt:focus{
  color:#fff;
  background-color:var(--ros-green-dark);
  border-color:var(--ros-green-dark);
}
.ros-staff-portal .btn-info-alt{
  color:#fff;
  background-color:#2980b9;
  border-color:#2980b9;
}
.ros-staff-portal .btn-info-alt:hover,.ros-staff-portal .btn-info-alt:focus{
  color:#fff;
  background-color:#2471a3;
  border-color:#21618c;
}
.ros-staff-portal .btn-link{
  min-height:auto;
  padding-left:0;
  padding-right:0;
  font-weight:500;
  color:var(--ros-green);
  text-decoration:none;
}
.ros-staff-portal .btn-link:hover,.ros-staff-portal .btn-link:focus{
  color:var(--ros-green-dark);
  text-decoration:underline;
}
.ros-staff-portal .btn-group>.btn,.ros-staff-portal .btn-group-vertical>.btn{
  min-height:36px;
}
.ros-staff-portal .btn-invoice .btn,.ros-staff-portal .text-right.btn-invoice .btn{
  margin-left:6px;
}
.ros-staff-portal .panel .panel-heading .btn,.ros-staff-portal .ros-card-header .btn{
  min-height:36px;
}
.ros-staff-portal .dataTables_wrapper .btn,.ros-staff-portal .dataTables_wrapper .paginate_button{
  min-height:auto;
}
.ros-staff-portal .dataTables_wrapper .paginate_button{
  padding:.375rem .75rem!important;
  font-size:13px!important;
}
.ros-staff-portal .mf-form-fields .btn-sm,.ros-staff-portal .uploadifive-button{
  min-height:auto;
}
.ros-staff-portal .btn-close{
  min-height:auto;
  padding:.5rem;
}

/* Society registry — client portal visual parity */
.society-registry{
  --sr-border:#edf0f5;
  --sr-primary:var(--ros-green);
  --sr-primary-light:var(--ros-green-light);
  --sr-fs-14:14px;
  --sr-fs-13:13px;
  --sr-fs-12:12px;
  --sr-fs-11:11px;
  font-size:var(--sr-fs-14);
  line-height:1.5;
}
.society-registry h4,.society-registry h5,.society-registry h6{
  font-family:Sora,'Segoe UI',sans-serif;
}
.society-registry h4{font-size:18px}
.society-registry h6{font-size:var(--sr-fs-14);font-weight:700}
.society-registry .sr-text-14{font-size:var(--sr-fs-14)}
.society-registry .sr-text-13{font-size:var(--sr-fs-13)}
.society-registry .sr-text-12{font-size:var(--sr-fs-12)}
.society-registry .sr-text-11{font-size:var(--sr-fs-11)}
.society-registry .sr-label{
  font-size:var(--sr-fs-11);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#6b7280;
  margin-bottom:2px;
}
.society-registry .sr-status-badge{
  font-size:var(--sr-fs-12);
  padding:4px 10px;
  border-radius:20px;
  font-weight:600;
}
.society-registry .sr-meta-badge{
  font-size:var(--sr-fs-11);
}
.society-registry .table{font-size:var(--sr-fs-14)}
.society-registry .table thead th{font-size:var(--sr-fs-11);letter-spacing:.06em}
.society-registry .list-group-item{font-size:var(--sr-fs-14)}
.society-registry .btn{font-size:var(--sr-fs-13)}
.society-registry .card{
  border:1px solid var(--sr-border);
  border-radius:10px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  background:#fff;
}
.society-registry .card-hover{
  transition:box-shadow .15s,border-color .15s;
  cursor:pointer;
  text-decoration:none;
  color:inherit;
}
.society-registry .card-hover:hover{
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  border-color:rgba(10,110,63,.22)!important;
}
.society-registry .service-icon{
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.society-registry .badge-active{background:#DCFCE7;color:#166534}
.society-registry .badge-approved{background:#DCFCE7;color:#166534}
.society-registry .badge-processing{background:#DBEAFE;color:#1e40af}
.society-registry .badge-pending{background:#FEF3C7;color:#92400e}
.society-registry .badge-rejected{background:#FEE2E2;color:#991b1b}
.society-registry .badge-suspended{background:#FEE2E2;color:#991b1b}
.society-registry .badge-deregistered,.society-registry .badge-dissolved{background:#F3F4F6;color:#4B5563}
.society-registry .status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px}
.society-registry .dot-active,.society-registry .dot-approved{background:#22c55e}
.society-registry .dot-processing{background:#3b82f6}
.society-registry .dot-pending{background:#f59e0b}
.society-registry .dot-rejected,.society-registry .dot-suspended{background:#ef4444}
.society-registry .dot-deregistered,.society-registry .dot-dissolved,.society-registry .dot-expired{background:#9ca3af}
.society-registry .sr-filter-card .form-control,.society-registry .sr-filter-card .form-select{
  border-color:var(--sr-border);
  border-radius:8px;
  font-size:var(--sr-fs-14);
}
.society-registry .sr-pagination{
  font-size:var(--sr-fs-12);
}
.society-registry .sr-pagination .btn{
  border-radius:8px;
  min-height:34px;
  font-size:var(--sr-fs-13);
}
