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

#rmsb-app,.rmsb-modal-bg{
--navy:#0b2540;--navy2:#123a63;--acc:#1668c7;--acc-soft:#e8f1fc;
--bg:#f5f7fa;--panel:#ffffff;--line:#e6eaf0;--line2:#eef1f5;
--txt:#182430;--mut:#64748b;--mut2:#94a3b8;
--ok:#188a4c;--ok-soft:#e5f6ec;--warn:#b45309;--warn-soft:#fdf1dc;--bad:#c2333b;--bad-soft:#fceaea;--info:#1e56b0;--info-soft:#e7eefb;
--r:10px;--sh:0 1px 2px rgba(16,32,54,.05),0 1px 3px rgba(16,32,54,.06);
font-family:'Inter','Segoe UI',system-ui,Arial,sans-serif;color:var(--txt);background:var(--bg);
min-height:80vh;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
#rmsb-app *,.rmsb-modal-bg *{box-sizing:border-box}
.rmsb-modal-bg{font-family:'Inter','Segoe UI',system-ui,Arial,sans-serif;color:var(--txt);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
.rmsb-modal h3,.rmsb-modal label{font-family:inherit}
.rmsb-modal input,.rmsb-modal select,.rmsb-modal textarea,.rmsb-modal button{font-family:inherit}
#rmsb-app .rmsb-boot{padding:80px 20px;text-align:center;color:var(--mut)}

/* ============ AUTH ============ */
.rmsb-login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:32px 18px;
background:linear-gradient(180deg,#f7fafd 0%,#eef3f9 60%,#e8eef6 100%)}
.rmsb-auth-col{width:100%;max-width:420px}
.rmsb-auth{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:38px 38px 32px;animation:rmsbFade .35s ease;
box-shadow:0 1px 2px rgba(16,32,54,.04),0 12px 40px -12px rgba(16,42,72,.18)}
.rmsb-auth-head{text-align:center;margin-bottom:26px}
.rmsb-rml-logo{height:74px;width:auto;margin-bottom:12px}
.rmsb-auth-head h1{margin:0;font-size:19px;font-weight:800;color:var(--navy);letter-spacing:-.2px}
.rmsb-auth h2{margin:0 0 4px;color:var(--navy);font-size:16px;font-weight:700;letter-spacing:-.1px}
.rmsb-auth .sub{margin:0 0 20px;color:var(--mut);font-size:13px}

.rmsb-field{margin-bottom:18px}
.rmsb-field label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#1a63c4;margin-bottom:9px;letter-spacing:.1px;line-height:1.4}
.rmsb-field label:before{content:"";width:5px;height:5px;border-radius:50%;background:#2f80ed;flex-shrink:0}
.rmsb-field input,.rmsb-field select,.rmsb-field textarea{width:100%;padding:13px 15px;border:1px solid #e3eaf3;border-radius:10px;
font-size:14px;font-family:inherit;background:#f8fbfe;color:var(--txt);transition:border-color .15s,box-shadow .15s,background .15s;
font-variant-numeric:tabular-nums}
.rmsb-field textarea{padding:12px 15px;line-height:1.55}
.rmsb-field input::placeholder,.rmsb-lines input::placeholder{color:#a9b6c6}
.rmsb-field select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1 5.5 5.5 10 1' stroke='%2364748b' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 15px center}
.rmsb-field input:disabled,.rmsb-lines input:disabled{background:#eef2f7;color:#94a3b8;cursor:not-allowed}
.rmsb-field input[type=file]{padding:14px 15px;border:1px dashed #b9cee8;background:#f4f9ff;cursor:pointer;font-size:13px;color:#5b7086}
.rmsb-field input[type=file]:hover{border-color:#2f80ed;background:#eef5fe}
.rmsb-field input[type=file]::file-selector-button{background:var(--acc);color:#fff;border:none;padding:8px 16px;border-radius:8px;
font-family:inherit;font-size:12.5px;font-weight:600;margin-right:13px;cursor:pointer;transition:background .15s}
.rmsb-field input[type=file]::file-selector-button:hover{background:#1257a8}
.rmsb-field input:hover,.rmsb-field select:hover,.rmsb-field textarea:hover{border-color:#c3d6ee;background:#fbfdff}
.rmsb-field input:focus,.rmsb-field select:focus,.rmsb-field textarea:focus{outline:none;border-color:#2f80ed;background:#fff;box-shadow:0 0 0 3.5px rgba(47,128,237,.13)}

.rmsb-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--navy);color:#fff;border:none;
padding:10px 17px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;letter-spacing:.1px;
transition:background .14s,box-shadow .14s}
.rmsb-btn:hover{background:var(--navy2);box-shadow:0 2px 8px -2px rgba(11,37,64,.3)}
.rmsb-btn:active{background:#092034}
.rmsb-btn:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.rmsb-btn.full{width:100%}
.rmsb-btn.sm{padding:6px 12px;font-size:12.5px;border-radius:7px;box-shadow:none}
.rmsb-btn.ghost{background:#fff;color:var(--navy);border:1px solid #d5dce4;box-shadow:none}
.rmsb-btn.ghost:hover{background:#f2f5f9;border-color:#c3ccd8}
.rmsb-btn.ok{background:var(--ok)}.rmsb-btn.ok:hover{background:#127a41}
.rmsb-btn.warn{background:var(--warn)}
.rmsb-btn.bad{background:#fff;color:var(--bad);border:1px solid #ecc8ca;box-shadow:none}
.rmsb-btn.bad:hover{background:var(--bad-soft)}
.rmsb-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

.rmsb-err{background:var(--bad-soft);color:#8f272d;border:1px solid #f0d2d4;padding:10px 14px;border-radius:9px;font-size:13px;margin-bottom:16px}
.rmsb-ok-msg{background:var(--ok-soft);color:#135f36;border:1px solid #cdeeda;padding:10px 14px;border-radius:9px;font-size:13px;margin-bottom:16px}

.rmsb-auth-row{display:flex;justify-content:flex-end;margin:-6px 0 18px}
.rmsb-auth-row.center{justify-content:center;margin:18px 0 0}
.rmsb-link{color:var(--acc);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none}
.rmsb-link:hover{text-decoration:underline}
.rmsb-otp-input{text-align:center;font-size:26px !important;letter-spacing:10px;font-weight:700;color:var(--navy) !important}

/* Powered by */
.rmsb-powered{margin-top:18px;text-align:center}
.rmsb-powered a{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--mut);text-decoration:none;opacity:.9}
.rmsb-powered a:hover{opacity:1;color:var(--acc)}
.rmsb-ff-logo{height:16px;width:auto;display:block}

/* ============ SHELL ============ */
.rmsb-shell{display:flex;min-height:100vh}
.rmsb-side{width:238px;background:linear-gradient(180deg,#0b2540 0%,#0e2c4c 100%);color:#fff;flex-shrink:0;display:flex;flex-direction:column}
.rmsb-brand{padding:18px;border-bottom:1px solid rgba(255,255,255,.09);display:flex;align-items:center;gap:11px}
.rmsb-brand-logo{height:38px;width:auto;background:#fff;border-radius:9px;padding:3px}
.rmsb-brand b{font-size:13.5px;display:block;letter-spacing:-.1px;line-height:1.25}
.rmsb-brand span{font-size:11px;opacity:.6}
.rmsb-nav{flex:1;padding:12px 10px}
.rmsb-nav a{display:block;padding:10px 14px;margin-bottom:3px;color:rgba(255,255,255,.7);text-decoration:none;font-size:13.5px;
font-weight:500;cursor:pointer;border-radius:9px;transition:all .16s;position:relative}
.rmsb-nav a:hover{background:rgba(255,255,255,.08);color:#fff;padding-left:18px}
.rmsb-nav a.on{background:rgba(255,255,255,.11);color:#fff;font-weight:600;box-shadow:inset 2px 0 0 var(--acc)}
.rmsb-me{padding:14px 18px;border-top:1px solid rgba(255,255,255,.09);font-size:12px}
.rmsb-me b{display:block;font-size:13px;font-weight:600}
.rmsb-me span{opacity:.6;text-transform:capitalize}
.rmsb-me a{color:#8ec2ff;cursor:pointer;font-size:12px;text-decoration:none}
.rmsb-me a:hover{text-decoration:underline}
.rmsb-side .rmsb-powered{margin:0;padding:12px 18px 16px;text-align:left;border-top:1px solid rgba(255,255,255,.09)}
.rmsb-side .rmsb-powered a{color:rgba(255,255,255,.5);font-size:10.5px}
.rmsb-side .rmsb-powered a:hover{color:#fff}
.rmsb-side .rmsb-powered .rmsb-ff-logo{background:#fff;border-radius:4px;padding:2px 3px;height:15px}

.rmsb-main{flex:1;padding:30px 34px;overflow-x:auto;background:var(--bg)}
.rmsb-main h2{margin:0 0 20px;color:var(--navy);font-size:20px;font-weight:700;letter-spacing:-.3px}

/* ============ STATS ============ */
.rmsb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:26px}
.rmsb-stat{background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--navy);border-radius:8px;padding:16px 18px;box-shadow:var(--sh);transition:box-shadow .16s,border-color .16s}
.rmsb-stat:hover{box-shadow:0 4px 16px -6px rgba(16,42,72,.16)}
.rmsb-stat b{font-size:22px;color:var(--navy);display:block;font-weight:700;letter-spacing:-.4px}
.rmsb-stat span{text-transform:uppercase;letter-spacing:.6px;font-size:10.5px;color:#64748b;font-weight:600}
.rmsb-stat span{font-size:12px;color:var(--mut);font-weight:500}

/* ============ CARDS & TABLES ============ */
.rmsb-card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:22px;margin-bottom:20px;box-shadow:var(--sh);overflow-x:auto;-webkit-overflow-scrolling:touch;transition:box-shadow .2s,border-color .2s;animation:rmsbFade .3s ease}
.rmsb-card:hover{box-shadow:0 4px 20px -6px rgba(16,42,72,.14);border-color:#d8dfe8}
.rmsb-card h3{margin:0 0 16px;font-size:14.5px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:9px}
.rmsb-card h3:before{content:"";width:4px;height:16px;background:var(--acc);border-radius:2px;flex-shrink:0}
@keyframes rmsbFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rmsb-table{width:100%;border-collapse:collapse;font-size:13.5px}
.rmsb-table th{text-align:left;padding:10px 12px;color:var(--mut);font-size:11px;font-weight:600;text-transform:uppercase;
letter-spacing:.6px;border-bottom:1px solid var(--line);white-space:nowrap}
.rmsb-table td{padding:12px;border-bottom:1px solid var(--line2);vertical-align:middle}
.rmsb-table tbody tr:last-child td{border-bottom:none}
.rmsb-table td{transition:background .12s}
.rmsb-table tbody tr:hover td{background:#f3f7fc}
.rmsb-cap{font-size:12px;color:var(--mut)}

/* Quantity/weight stepper */
.rmsb-step{display:flex;align-items:stretch;border:1px solid #e3eaf3;border-radius:10px;overflow:hidden;background:#f8fbfe;transition:border-color .15s,box-shadow .15s}
.rmsb-step:focus-within{border-color:#2f80ed;background:#fff;box-shadow:0 0 0 3.5px rgba(47,128,237,.13)}
.rmsb-step input{border:none;background:transparent;text-align:center;font-variant-numeric:tabular-nums;padding:13px 8px;font-size:14px}
.rmsb-step input{flex:1;border:none !important;text-align:center;padding:10px 8px;font-size:14px;font-family:inherit;min-width:0}
.rmsb-step input:focus{outline:none;box-shadow:none !important}
.rmsb-step-btn{width:46px;border:none;background:#eaf2fd;color:#1a63c4;font-size:17px;font-weight:700;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}
.rmsb-step-btn:hover{background:var(--acc);color:#fff}
.rmsb-step-btn:first-child{border-right:1px solid var(--line)}
.rmsb-step-btn:last-child{border-left:1px solid var(--line)}
.rmsb-step input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}

.rmsb-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;border-radius:20px;font-size:11px;font-weight:600;text-transform:capitalize;letter-spacing:.2px}
.rmsb-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.rmsb-badge.pending{background:var(--warn-soft);color:var(--warn)}
.rmsb-badge.confirmed,.rmsb-badge.open,.rmsb-badge.paid,.rmsb-badge.active{background:var(--ok-soft);color:var(--ok)}
.rmsb-badge.cancelled,.rmsb-badge.closed,.rmsb-badge.disabled{background:var(--bad-soft);color:var(--bad)}
.rmsb-badge.unpaid,.rmsb-badge.sailed{background:var(--info-soft);color:var(--info)}

.rmsb-capbar{height:5px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:5px;min-width:90px}
.rmsb-capbar i{display:block;height:100%;background:var(--acc);border-radius:3px}
.rmsb-capbar i.full{background:var(--bad)}

/* Voyage card picker */
.rmsb-voy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.rmsb-voy-empty{grid-column:1/-1;text-align:center;color:var(--mut);padding:26px;background:#f8fafc;border:1px dashed #d5dce4;border-radius:9px;font-size:13px}
.rmsb-voycard{position:relative;border:1px solid var(--line);border-radius:9px;padding:16px 16px 14px;cursor:pointer;background:#fff;overflow:hidden;transition:all .18s cubic-bezier(.4,0,.2,1)}
.rmsb-voycard:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--acc);opacity:0;transition:opacity .16s}
.rmsb-voycard:hover{border-color:#a9bcd2;box-shadow:0 4px 14px -6px rgba(16,42,72,.2)}
.rmsb-voycard:hover:before{opacity:1}
.rmsb-voycard.on{border-color:var(--acc);box-shadow:0 0 0 2.5px rgba(22,104,199,.13)}
.rmsb-voycard.on:before{opacity:1}
.rmsb-voycard.full{opacity:.55;cursor:not-allowed;background:#fafbfc}
.rmsb-voycard .vc-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.rmsb-voycard .vc-top b{font-size:14px;color:var(--navy)}
.rmsb-voycard .vc-voy{font-size:11px;color:var(--mut);font-weight:600}
.rmsb-voycard .vc-route{font-size:13px;font-weight:600;margin:6px 0 2px}
.rmsb-voycard .vc-route span{color:var(--acc)}
.rmsb-voycard .vc-meta{font-size:11.5px;color:var(--mut)}
.rmsb-voycard .vc-teu{margin-top:9px;font-size:11.5px;color:var(--mut)}
.rmsb-voycard .vc-teu span{font-weight:600;color:var(--ok)}
.rmsb-voycard.full .vc-teu span{color:var(--bad)}
.rmsb-voycard .vc-rates{margin-top:8px;font-size:11.5px;color:var(--mut);border-top:1px solid var(--line2);padding-top:8px}
.rmsb-voycard .vc-check{display:none;position:absolute;top:10px;right:12px;background:var(--acc);color:#fff;font-size:10px;font-weight:700;padding:3px 9px;border-radius:12px}
.rmsb-voycard.on .vc-check{display:block}

/* ============ FORMS ============ */
.rmsb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px}
.rmsb-grid .wide{grid-column:1/-1}
.rmsb-actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.rmsb-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.rmsb-toolbar input[type=search]{padding:9px 13px;border:1px solid #d5dce4;border-radius:9px;min-width:230px;font-family:inherit}

/* ============ MODAL ============ */
.rmsb-modal-bg{position:fixed;inset:0;background:rgba(11,29,48,.45);backdrop-filter:blur(2px);z-index:99998;display:flex;align-items:center;justify-content:center;padding:20px}
.rmsb-modal{background:#fff;border-radius:12px;width:100%;max-width:660px;max-height:90vh;overflow-y:auto;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.28);animation:rmsbPop .22s cubic-bezier(.34,1.4,.64,1)}
@keyframes rmsbPop{from{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:none}}
.rmsb-modal h3{margin:0 0 20px;color:var(--navy);font-size:17px;font-weight:800;letter-spacing:-.2px;display:flex;align-items:center;gap:9px}
.rmsb-modal h3:before{content:"";width:4px;height:18px;background:var(--acc);border-radius:2px}
.rmsb-modal > div > label,.rmsb-modal label{color:#334155}
.rmsb-modal .close-x{float:right;cursor:pointer;font-size:22px;color:var(--mut2);background:none;border:none;line-height:1;padding:0}
.rmsb-modal .close-x:hover{color:var(--txt)}

/* ============ INVOICE LINES ============ */
.rmsb-lines{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:8px}
.rmsb-lines table{width:100%;min-width:560px;border-collapse:separate;border-spacing:0 6px;font-size:13px;margin-bottom:8px;table-layout:fixed}

/* Voyage routes editor — POL/POD need the most room, prices the least */
.rmsb-routes table{min-width:720px}
.rmsb-routes col.c-port{width:22%}
.rmsb-routes col.c-type{width:17%}
.rmsb-routes col.c-price{width:16%}
.rmsb-routes col.c-del{width:44px}
.rmsb-routes input,.rmsb-routes select{min-width:0}
.rmsb-routes .rmsb-locked{background:#eef4fb;color:#1a63c4;font-weight:600;cursor:default;border-color:#cddcf0}
.rmsb-lines th{padding:0 6px 2px;text-align:left}
.rmsb-lines td{padding:0 5px;vertical-align:middle}
.rmsb-lines td:first-child{padding-left:0}
.rmsb-lines td:last-child{padding-right:0;width:40px}
.rmsb-lines input,.rmsb-lines select,.rmsb-modal .rmsb-lines select{width:100%;min-width:70px;padding:11px 13px;
border:1px solid #e3eaf3;border-radius:9px;font-family:inherit;font-size:13.5px;background:#f8fbfe;color:var(--txt);
transition:border-color .15s,box-shadow .15s,background .15s;font-variant-numeric:tabular-nums}
.rmsb-lines input:hover,.rmsb-lines select:hover{border-color:#c3d6ee;background:#fbfdff}
.rmsb-lines input:focus,.rmsb-lines select:focus{outline:none;border-color:#2f80ed;background:#fff;box-shadow:0 0 0 3.5px rgba(47,128,237,.13)}
.rmsb-lines input[type=number]{text-align:right}
.rmsb-lines select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1 5.5 5.5 10 1' stroke='%2364748b' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 13px center}
.rmsb-lines thead th{font-size:11px !important;text-transform:uppercase;letter-spacing:.7px;color:#1a63c4 !important;font-weight:700;padding-bottom:7px}
.rmsb-lines .rmsb-btn.sm.bad{width:34px;height:38px;padding:0;justify-content:center;border-radius:8px}
.rmsb-total-row{text-align:right;font-size:13.5px;margin-top:10px;color:var(--mut)}
.rmsb-total-row b{font-size:17px;color:var(--navy)}

/* ============ RESPONSIVE ============ */
@media(max-width:1024px){
.rmsb-side{width:210px}
.rmsb-main{padding:24px 22px}
}

@media(max-width:820px){
.rmsb-shell{flex-direction:column}

/* --- App-style top bar --- */
.rmsb-side{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;position:sticky;top:0;z-index:60;
box-shadow:0 4px 18px rgba(5,20,38,.3);padding:0}
.rmsb-brand{flex:1;padding:11px 14px;border-bottom:none;gap:9px;min-width:0}
.rmsb-brand-logo{height:32px;padding:2px;border-radius:8px}
.rmsb-brand b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rmsb-brand span{display:none}
.rmsb-me{padding:11px 14px;border-top:none;display:flex;align-items:center;gap:10px;font-size:12px}
.rmsb-me b{display:none}
.rmsb-me span{display:none}
.rmsb-me br{display:none}
.rmsb-me a{background:rgba(255,255,255,.12);padding:7px 14px;border-radius:18px;font-size:12px;font-weight:600;color:#fff;transition:background .15s}
.rmsb-me a:active{background:rgba(255,255,255,.22)}

/* --- Pill nav strip --- */
.rmsb-nav{order:3;width:100%;flex:none;display:flex;overflow-x:auto;padding:2px 12px 12px;gap:7px;
-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rmsb-nav::-webkit-scrollbar{display:none}
.rmsb-nav a{white-space:nowrap;flex-shrink:0;margin:0;padding:8px 15px;border-radius:20px;font-size:12.5px;
background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);box-shadow:none}
.rmsb-nav a:hover{padding-left:15px;background:rgba(255,255,255,.14)}
.rmsb-nav a.on{background:var(--acc);color:#fff;font-weight:600}
.rmsb-side .rmsb-powered{display:none}

/* --- Content --- */
.rmsb-main{padding:16px 13px 28px}
.rmsb-main h2{font-size:17px;margin-bottom:14px}
.rmsb-stats{grid-template-columns:1fr 1fr;gap:10px}
.rmsb-stat{padding:13px 14px;border-radius:10px}
.rmsb-stat b{font-size:17px}
.rmsb-stat span{font-size:11px}
.rmsb-card{padding:15px 14px;border-radius:11px;margin-bottom:14px}
.rmsb-card h3{font-size:13.5px;margin-bottom:12px}

/* --- Tables: scroll cleanly, actions wrap --- */
.rmsb-table{min-width:560px}
.rmsb-table th{padding:8px 8px;font-size:10.5px}
.rmsb-table td{padding:10px 8px;font-size:12.5px}
.rmsb-table td[style*="nowrap"]{white-space:normal !important;min-width:150px}
.rmsb-table .rmsb-btn.sm{margin:2px 4px 2px 0}
.rmsb-cap{font-size:11px}

/* --- Forms --- */
.rmsb-grid{grid-template-columns:1fr;gap:11px}
.rmsb-field label{font-size:12px}
.rmsb-field input,.rmsb-field select,.rmsb-field textarea{font-size:16px;padding:13px 14px;border-radius:10px} /* 16px stops iOS zoom */
.rmsb-field label{font-size:12.5px}
.rmsb-lines input,.rmsb-lines select{font-size:16px;padding:12px}
.rmsb-step input{font-size:16px;padding:12px 8px}
.rmsb-step-btn{width:50px;font-size:19px}
.rmsb-btn{padding:12px 18px;font-size:14px;border-radius:10px}
.rmsb-btn.sm{padding:7px 12px;font-size:12px;border-radius:6px}
.rmsb-btn:hover{transform:none}
.rmsb-actions{gap:9px}
.rmsb-actions .rmsb-btn:not(.sm){flex:1;min-width:150px}
.rmsb-voy-grid{grid-template-columns:1fr;gap:10px}
.rmsb-voycard:hover{transform:none}

/* --- Toolbar / pager --- */
.rmsb-toolbar{flex-direction:column;align-items:stretch;gap:8px}
.rmsb-toolbar > div{flex-direction:column;display:flex;gap:8px}
.rmsb-toolbar input[type=search],.rmsb-toolbar select{width:100%;min-width:0;font-size:15px;padding:11px 13px}
.rmsb-toolbar .rmsb-btn{width:100%}
.rmsb-toolbar[style*="center"]{flex-direction:row;justify-content:space-between !important;align-items:center}
.rmsb-toolbar[style*="center"] .rmsb-btn{width:auto}

/* --- Modals: bottom sheet with handle --- */
.rmsb-modal-bg{padding:0;align-items:flex-end}
.rmsb-modal{max-width:100%;border-radius:18px 18px 0 0;max-height:92vh;padding:24px 16px 26px;animation:rmsbSheet .25s cubic-bezier(.32,.72,.35,1)}
.rmsb-modal:before{content:"";display:block;width:42px;height:4px;background:#d5dce4;border-radius:3px;margin:-10px auto 16px}
@keyframes rmsbSheet{from{transform:translateY(40%);opacity:.6}to{transform:none;opacity:1}}

/* --- Approvals cards --- */
.rmsb-appr-head{flex-direction:column;gap:6px}
.rmsb-appr .rmsb-actions .rmsb-btn{flex:1 1 45%;min-width:130px}
.rmsb-sprate{padding:10px}
.rmsb-sprate .rmsb-table{min-width:0}

/* --- Auth --- */
.rmsb-login-wrap{padding:18px 12px;align-items:flex-start;padding-top:7vh}
.rmsb-auth{padding:26px 20px;border-radius:16px}
.rmsb-rml-logo{height:58px}
.rmsb-perms{grid-template-columns:1fr}
}

@media(max-width:400px){
.rmsb-stats{grid-template-columns:1fr 1fr}
.rmsb-otp-input{letter-spacing:7px;font-size:22px !important}
.rmsb-brand b{font-size:12px}
.rmsb-nav a{padding:8px 13px;font-size:12px}
}

/* Service tag on voyage card */
.rmsb-voycard .vc-service{display:inline-block;background:var(--acc-soft);color:var(--acc);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 8px;border-radius:10px;margin-bottom:6px}

/* Approvals */
.rmsb-appr.special{border-left:4px solid var(--warn)}
.rmsb-appr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rmsb-sprate{margin-top:12px;background:var(--warn-soft);border:1px solid #f3ddb5;border-radius:9px;padding:12px 14px}
.rmsb-sprate .sr-title{font-size:12px;font-weight:700;color:var(--warn);letter-spacing:.3px}
.rmsb-sprate .rmsb-table th,.rmsb-sprate .rmsb-table td{background:transparent;border-color:#f0dcb8}

/* Rates row + perms checkboxes */
.rmsb-rates-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:14px}
.rmsb-rates-row b{color:var(--navy);font-size:16px}
.rmsb-perms{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;margin-top:8px;background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:12px 14px}
.rmsb-perms label{font-size:13px;display:flex;align-items:center;gap:7px;cursor:pointer}


/* Extra polish */
.rmsb-toolbar select,.rmsb-toolbar input[type=search]{transition:border-color .15s,box-shadow .15s;font-family:inherit}
.rmsb-toolbar select:focus,.rmsb-toolbar input[type=search]:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(22,104,199,.12)}
.rmsb-link{transition:color .12s}
.rmsb-appr{border-left:4px solid var(--ok)}
.rmsb-appr.special{border-left-color:var(--warn)}
.rmsb-me a:hover{color:#c3ddff}
.rmsb-capbar i{transition:width .4s ease}
::selection{background:rgba(47,128,237,.2)}
.rmsb-main h2{position:relative;padding-bottom:2px}


/* Controls in modals & toolbars share the field language */
.rmsb-toolbar input[type=search],.rmsb-toolbar select{background:#f8fbfe;border:1px solid #e3eaf3;border-radius:10px;padding:11px 14px;font-size:13.5px;font-family:inherit;color:var(--txt)}
.rmsb-toolbar input[type=search]:hover,.rmsb-toolbar select:hover{border-color:#c3d6ee;background:#fbfdff}
.rmsb-toolbar input[type=search]:focus,.rmsb-toolbar select:focus{outline:none;border-color:#2f80ed;background:#fff;box-shadow:0 0 0 3.5px rgba(47,128,237,.13)}
#rmsb-app input[type=checkbox],.rmsb-modal-bg input[type=checkbox]{accent-color:var(--acc);width:16px;height:16px}
textarea{resize:vertical}
.rmsb-table td,.rmsb-stat b{font-variant-numeric:tabular-nums}

/* Permission matrix (View / Edit / Delete) */
.rmsb-permgrid{margin-top:9px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fbfdff}
.rmsb-permgrid table{width:100%;border-collapse:collapse;font-size:13px}
.rmsb-permgrid th{background:#f6f8fb;color:#2e4a6b;font-size:10.5px;font-weight:700;
letter-spacing:.6px;padding:10px 12px;text-align:center;border-bottom:1px solid var(--line)}
.rmsb-permgrid th:first-child{text-align:left}
.rmsb-permgrid td{padding:9px 12px;border-bottom:1px solid #eef2f7;color:var(--txt)}
.rmsb-permgrid tr:last-child td{border-bottom:none}
.rmsb-permgrid tbody tr{transition:background .12s}
.rmsb-permgrid tbody tr:hover{background:#f3f7fc}
.rmsb-permgrid input[type=checkbox]{accent-color:var(--acc);width:16px;height:16px;cursor:pointer}
@media(max-width:820px){
.rmsb-permgrid{overflow-x:auto}
.rmsb-permgrid table{min-width:420px}
.rmsb-permgrid td,.rmsb-permgrid th{padding:8px 9px;font-size:12px}
}


@media(prefers-reduced-motion:reduce){
*,*:before,*:after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}


/* Password field with eye toggle */
.rmsb-pw{position:relative;display:flex;align-items:center}
.rmsb-pw input{width:100%;padding-right:44px !important}
.rmsb-pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;
color:#94a3b8;cursor:pointer;padding:7px;border-radius:7px;display:flex;align-items:center;transition:color .14s,background .14s}
.rmsb-pw-eye:hover{color:var(--acc);background:#eef4fb}
.rmsb-pw-eye:focus-visible{outline:2px solid var(--acc);outline-offset:1px}

/* Chips (rates container types) */
.rmsb-chip{display:inline-flex;align-items:center;gap:5px;background:#eef4fb;border:1px solid #d8e4f2;color:#1a63c4;
padding:5px 12px;border-radius:20px;font-size:12.5px;font-weight:600;margin:0 6px 6px 0}


/* ===== AI Assistant ===== */
.rmsb-ai-fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;
background:var(--navy);color:#fff;box-shadow:0 6px 20px -4px rgba(11,37,64,.5);display:flex;align-items:center;justify-content:center;
z-index:9000;transition:transform .15s,background .15s}
.rmsb-ai-fab:hover{background:var(--navy2);transform:scale(1.06)}
.rmsb-ai-panel{position:fixed;right:24px;bottom:92px;width:380px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 130px);
background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px -12px rgba(11,37,64,.4);
display:flex;flex-direction:column;z-index:9000;overflow:hidden;animation:rmsbPop .2s cubic-bezier(.34,1.4,.64,1)}
.rmsb-ai-head{background:var(--navy);color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between}
.rmsb-ai-title{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px}
.rmsb-ai-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;line-height:1;opacity:.85;padding:0 4px}
.rmsb-ai-close:hover{opacity:1}
.rmsb-ai-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#f7f9fc}
.rmsb-ai-msg{max-width:85%;padding:10px 13px;border-radius:13px;font-size:13.5px;line-height:1.5;word-wrap:break-word}
.rmsb-ai-msg.me{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.rmsb-ai-msg.bot{align-self:flex-start;background:#fff;border:1px solid var(--line);color:var(--txt);border-bottom-left-radius:4px}
.rmsb-ai-msg.rmsb-ai-err{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.rmsb-ai-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.rmsb-ai-chip{background:#fff;border:1px solid #d8e4f2;color:#1a63c4;border-radius:16px;padding:6px 12px;font-size:12px;cursor:pointer;font-family:inherit;transition:background .12s}
.rmsb-ai-chip:hover{background:#eef4fb}
.rmsb-ai-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.rmsb-ai-input input{flex:1;padding:10px 13px;border:1px solid #d7dee6;border-radius:9px;font-size:14px;font-family:inherit;background:#f8fbfe}
.rmsb-ai-input input:focus{outline:none;border-color:var(--acc);background:#fff;box-shadow:0 0 0 3px rgba(22,104,199,.11)}
.rmsb-ai-input .rmsb-btn{padding:10px 16px}
.rmsb-ai-typing{display:flex;gap:4px;align-items:center;padding:14px 15px !important}
.rmsb-ai-typing span{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:rmsbBlink 1.2s infinite both}
.rmsb-ai-typing span:nth-child(2){animation-delay:.2s}
.rmsb-ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes rmsbBlink{0%,80%,100%{opacity:.3}40%{opacity:1}}
@media(max-width:820px){
.rmsb-ai-panel{right:10px;left:10px;width:auto;bottom:84px;height:calc(100vh - 150px)}
.rmsb-ai-fab{right:16px;bottom:76px}
}

/* Idle-logout warning */
.rmsb-idle-warn{position:fixed;inset:0;background:rgba(11,37,64,.4);display:flex;align-items:center;justify-content:center;z-index:9500}
.rmsb-idle-box{background:#fff;border-radius:14px;padding:26px 28px;max-width:340px;text-align:center;box-shadow:0 20px 60px -12px rgba(11,37,64,.5)}
.rmsb-idle-box b{font-size:17px;color:var(--navy)}
.rmsb-idle-box p{color:#64748b;font-size:14px;margin:10px 0 18px}

/* Dashboard alerts / reminders */
.rmsb-alerts { display: flex; flex-direction: column; gap: 8px; margin: 4px 0 18px; }
.rmsb-alert { padding: 11px 16px; border-radius: 10px; font-size: 13.5px; line-height: 1.5;
  background: #eef4f8; border-left: 4px solid var(--acc); color: var(--navy); }
.rmsb-alert b { font-size: 15px; }
.rmsb-alert.warn { background: #fff7e6; border-left-color: #f59e0b; }
.rmsb-alert.bad  { background: #fef2f2; border-left-color: var(--bad); }
.rmsb-alert .rmsb-cap { color: inherit; opacity: .7; }
.rmsb-alert:hover { filter: brightness(.98); }

/* Wide modal — for forms with tables (services, voyage route info) */
.rmsb-modal.wide{max-width:1080px}
.rmsb-modal.wide .rmsb-lines table{width:100%;table-layout:fixed}
.rmsb-modal.wide .rmsb-lines th,.rmsb-modal.wide .rmsb-lines td{padding:6px 6px}
.rmsb-modal.wide .rmsb-lines input,.rmsb-modal.wide .rmsb-lines select{width:100%;min-width:0;padding:8px 9px;font-size:13px}
.rmsb-modal.wide .rmsb-lines th{font-size:10.5px;white-space:normal;line-height:1.3}
@media (max-width:1120px){
  .rmsb-modal.wide{max-width:100%}
  .rmsb-modal.wide .rmsb-lines{overflow-x:auto}
  .rmsb-modal.wide .rmsb-lines table{min-width:820px}
}
