@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{--ink:#202636;--soft:#687589;--red:#dd3847;--red-dark:#ae2532;--navy:#151d2c;--navy2:#1f2a3d;--paper:#f4f6f9;--line:#e3e8ef;--green:#168657;--orange:#a76310;--shadow:0 12px 35px rgba(21,34,56,.035)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:'Plus Jakarta Sans','DM Sans',sans-serif;letter-spacing:-.035em}p{line-height:1.56}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--navy);color:#d9e0ee;width:255px;min-width:255px;padding:25px 17px 21px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:20}.logo-row{padding:3px 12px 21px;border-bottom:1px solid #354051}.logo-row img{width:170px;height:57px;object-fit:contain;object-position:left}.workspace-label{font-size:11px;font-weight:800;letter-spacing:.12em;color:#f7f8fd;padding:23px 14px 22px}.workspace-label span{display:block;font-size:10px;font-weight:500;color:#8994aa;margin-top:7px;letter-spacing:.10em}.menu-heading{font-size:10px;font-weight:800;color:#718099;letter-spacing:.13em;padding:15px 13px 9px}.nav-menu{display:flex;flex-direction:column;gap:3px}.nav-link{display:flex;align-items:center;gap:13px;border-radius:11px;padding:12px 12px;font-size:13px;color:#bec9db;font-weight:650;transition:background .18s}.nav-link:hover{background:#293549;color:#fff}.nav-link.selected{background:linear-gradient(90deg,#da3544,#bb2c3a);box-shadow:0 8px 20px #9f243242;color:#fff}.nav-icon{width:24px;flex:0 0 24px;font-size:18px;text-align:center;font-weight:800}.sidebar-bottom{margin-top:auto;border-top:1px solid #364257;padding:20px 11px 0;color:#d0deeb;font-size:12px;line-height:1.65}.sidebar-bottom small{color:#7f8da8;font-size:11px}.security-dot{display:inline-block;width:9px;height:9px;background:#6ae7ae;border-radius:50%;margin-right:8px}.content-shell{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:73px;padding:0 35px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.breadcrumb{font-size:12px;color:#8290a1}.breadcrumb strong{color:#2b3446;font-weight:800}.breadcrumb span{padding:0 12px;color:#bfc6d2}.topbar-right{display:flex;align-items:center;gap:12px}.system-indicator{font-size:11px;color:var(--green);background:#eaf8f1;padding:8px 12px;border-radius:40px;font-weight:800;margin-right:10px}.avatar{width:34px;height:34px;border-radius:11px;background:#e7edf8;color:#344a73;display:grid;place-items:center;font-weight:800}.user-caption{display:flex;flex-direction:column;gap:3px;font-size:11px;max-width:150px}.user-caption b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-caption small{color:#8490a2}.logout-form{margin:0}.logout{border:0;background:#f5f6f8;font-size:22px;color:#7e8a9c;padding:4px 10px;border-radius:9px}.nav-toggle{display:none;border:0;background:transparent;font-size:19px}.main-content{padding:35px;max-width:1700px;width:100%;margin:0 auto;flex:1}.page-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:29px}.eyebrow{font-size:10px;color:var(--red);font-weight:900;letter-spacing:.16em}.page-header h1{font-size:30px;margin:7px 0 5px;font-weight:800}.page-header p{color:#8590a2;margin:0;font-size:13px}.header-actions{display:flex;gap:10px}.footer{border-top:1px solid var(--line);padding:15px 35px;color:#9da5b3;font-size:10px;text-align:right;background:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:23px}.stat-card{position:relative;overflow:hidden;background:white;border:1px solid var(--line);border-radius:17px;padding:20px 21px;box-shadow:var(--shadow);min-height:133px}.stat-card .stat-label{font-size:11px;color:#8593a3;font-weight:750}.stat-card .stat-num{font:800 31px 'Plus Jakarta Sans',sans-serif;margin:13px 0 5px;letter-spacing:-.05em}.stat-card .stat-sub{font-size:11px;color:#9aa6b3}.stat-icon{position:absolute;right:17px;top:19px;color:#cdd7e4;font-size:22px}.stat-card.attention .stat-num{color:var(--red)}.grid-2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.card{background:#fff;border-radius:16px;border:1px solid var(--line);padding:21px;margin-bottom:20px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.card-head h3,.card h3{font-size:15px;margin:0;font-weight:800}.card-head p{margin:4px 0 0;color:#8590a1;font-size:11px}.card h2{font-size:20px;margin:0 0 14px}.card p.muted{color:var(--soft)}.table-wrap{overflow-x:auto;width:100%}table{border-collapse:collapse;width:100%;font-size:12px;min-width:620px}th,td{text-align:left;border-bottom:1px solid #edf0f4;padding:13px 10px;vertical-align:middle}th{text-transform:uppercase;color:#8490a2;letter-spacing:.07em;font-size:9px;font-weight:900;background:#fbfcfe;white-space:nowrap}tr:last-child td{border-bottom:none}tbody tr:hover{background:#fcfdff}td strong{font-weight:800}.table-link{color:#ca2d3d;font-weight:800;white-space:nowrap}.small{font-size:11px}.muted{color:#8792a3}.nowrap{white-space:nowrap}.align-right{text-align:right}.num{font-variant-numeric:tabular-nums;font-weight:750}.negative{color:#bd3040}.positive{color:#1d8c62}.pill{display:inline-block;font-size:10px;line-height:1.4;padding:5px 9px;font-weight:800;border-radius:6px;white-space:nowrap}.pill.success{background:#e5f7ee;color:#197852}.pill.warning{background:#fff3de;color:#a76617}.pill.danger{background:#fce8eb;color:#c53648}.pill.neutral{background:#eaf0f6;color:#65748c}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:1px solid transparent;border-radius:10px;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap;transition:filter .2s,transform .2s}.btn:hover{filter:brightness(.96);transform:translateY(-1px)}.btn.primary{background:var(--red);color:white}.btn.secondary{background:#fff;color:#475365;border-color:#dae1ea}.btn.light{background:#f4f6f9;color:#48556b}.btn.dark{background:#222f43;color:#fff}.btn.ghost{background:transparent;color:var(--red);border-color:#f2cdd2}.btn.danger{background:#fff;color:#c72f3e;border-color:#f0c7cc}.btn.small-btn{font-size:11px;padding:7px 10px}.btn.block{width:100%;padding:13px}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.inline-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stack-form{display:grid;gap:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid.third{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field span{font-size:11px;color:#6d7786;font-weight:800}.field input,.field select,.field textarea,input.table-input,select.table-input,.search-box,input[type=file],textarea{border:1px solid #dce3ed;background:#fff;padding:11px 12px;border-radius:9px;outline:0;color:#253247;width:100%;min-height:40px;font-size:12px}.field input:focus,.field select:focus,.field textarea:focus,input.table-input:focus,select.table-input:focus{border-color:#df6670;box-shadow:0 0 0 3px #e83a4c17}.field textarea{resize:vertical;min-height:76px}.field select,select.table-input{cursor:pointer}.action-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:17px}.action-row.spread{justify-content:space-between}.divider{height:1px;background:var(--line);margin:21px 0}.alert{border-radius:11px;padding:13px 16px;margin-bottom:15px;border:1px solid #d9e7ee;color:#4a647b;background:#f1f7fb;line-height:1.5;font-size:12px}.alert.error{border-color:#f1bec5;background:#fff0f1;color:#ad3040}.alert.success{border-color:#bee4cf;background:#effaf4;color:#16784d}.alert.warning{border-color:#f0dbac;background:#fffaea;color:#976010}.info-panel{background:#f4f7fb;border:1px solid #e3eaf3;border-radius:11px;padding:13px 15px;font-size:12px;color:#5d6d83;line-height:1.6;margin:13px 0}.info-panel.critical{background:#fff6f4;border-color:#f3d4d0;color:#a74645}.document-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.doc-number{font-size:21px;font-weight:900;font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:-.04em;margin-bottom:5px}.meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:19px}.meta-item small{display:block;font-size:10px;color:#8b96a5;font-weight:800;margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.meta-item b{font-size:12px;overflow-wrap:anywhere}.stepper{display:flex;gap:7px;overflow-x:auto;padding:5px 0 19px}.step{background:#f1f3f7;color:#9fa9b6;padding:9px 14px;border-radius:7px;font-size:11px;font-weight:800;white-space:nowrap}.step.past{background:#e5f6ed;color:#25875f}.step.current{background:var(--red);color:#fff}.step-arrow{align-self:center;color:#c3ccd7}.item-line{display:grid;grid-template-columns:minmax(180px,2fr) minmax(85px,.65fr) minmax(145px,1.45fr) auto;align-items:end;gap:12px;padding:13px;background:#fafbfd;border:1px solid #e7ebf1;border-radius:12px;margin-bottom:9px}.item-line.receiving-line{grid-template-columns:minmax(180px,3fr) minmax(95px,1fr) auto}.item-line .field{margin:0}.line-remove{border:1px solid #f0d4d8;background:#fff;color:#c53e4b;border-radius:9px;padding:10px 12px}.section-label{font-weight:900;font-size:12px;margin:4px 0 12px}.empty{text-align:center;padding:25px 15px;color:#909dad;font-size:12px;background:#fafbfe;border-radius:11px}.empty strong{display:block;color:#5c6980;margin-bottom:4px}.list-pill{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 0;border-bottom:1px solid #edf0f4;font-size:12px}.list-pill:last-child{border:0}.list-pill b{font-weight:800}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric-row>div{border-radius:12px;background:#f8fafc;padding:15px}.metric-row strong{display:block;font-size:20px;margin:7px 0}.metric-row small{color:#8792a0;font-size:10px}.search-box{max-width:250px;border-radius:9px}.attachment{display:flex;align-items:center;gap:11px;flex-wrap:wrap;border-top:1px solid #f0f2f6;padding:12px 0;font-size:12px}.attachment a{color:#b93343;font-weight:800}.attachment span{margin-left:auto}.legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.note{font-size:12px;color:#79869a;line-height:1.65;margin:10px 0}.highlight{background:#fff6ec;color:#956112;padding:2px 7px;border-radius:6px}.toolbar{display:flex;justify-content:space-between;gap:13px;flex-wrap:wrap;align-items:center;margin-bottom:15px}.toolbar .left,.toolbar .right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ref-line{font-size:11px;color:#a7b0bd}.ref-line b{color:#354157}.tag{background:#f3f5f9;padding:5px 8px;border-radius:8px;color:#68758a;font-size:10px;font-weight:800}.thin-card{border:1px solid var(--line);border-radius:12px;padding:15px;margin:13px 0}.page-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:17px}.audit-diff{font-weight:900}.audit-diff.plus{color:#148158}.audit-diff.minus{color:#bb3540}.workflow-card{background:#fff;border:1px solid #e3e9f2;border-radius:13px;padding:21px;margin-bottom:14px}.workflow-card h3{font-size:15px;margin:0 0 9px}.workflow-card p{font-size:12px;color:#68788c;margin:0}.workflow-steps{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.workflow-steps span{background:#f4f6fa;padding:9px 11px;border-radius:9px;color:#526278;font-size:11px;font-weight:750}.workflow-steps b{align-self:center;color:#c4cbd5}.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#999}.login-body{min-height:100vh;background:radial-gradient(ellipse at 83% 8%,#3f4d65 0,transparent 45%),linear-gradient(120deg,#151a29,#232e42);display:grid;place-items:center;padding:25px}.login-wrap{width:100%;max-width:435px}.login-brand{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.login-brand img{width:137px;height:auto}.login-brand span{color:#8795a7;font-size:9px;font-weight:900;letter-spacing:.13em}.login-panel{background:white;border-radius:19px;padding:36px;box-shadow:0 30px 70px #0a0f1d55}.login-panel h1{font-size:30px;margin:8px 0}.login-panel>p{color:#7f8a9b;font-size:12px;margin:6px 0 27px}.login-panel .field input{padding:13px}.login-notice{text-align:center;color:#9da7b5;font-size:10px;margin-top:21px;line-height:1.7}.login-footer{text-align:center;color:#76869b;font-size:10px;font-weight:900;letter-spacing:.12em;margin-top:25px}.logout:hover{background:#eaeef3}.mono{font-family:ui-monospace,monospace}.danger-zone{border:1px solid #f1d8dc;border-radius:12px;padding:17px;background:#fffbfb}.danger-zone h3{color:#bd3645}.checklist{padding-left:20px;line-height:2;color:#53657b;font-size:12px}.hide{display:none!important}
@media(max-width:1320px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.topbar{padding:0 22px}.main-content{padding:25px}}@media(max-width:920px){.sidebar{position:fixed;left:-265px;transition:left .2s;box-shadow:0 3px 30px #0004}.sidebar.visible{left:0}.nav-toggle{display:block}.main-content{padding:20px}.system-indicator{display:none}.topbar{height:63px}.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}@media(max-width:600px){.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px;min-height:106px}.stat-card .stat-num{font-size:25px}.page-header h1{font-size:24px}.page-header{align-items:flex-start}.header-actions{display:none}.user-caption{display:none}.card{padding:15px;border-radius:12px}.meta-grid{grid-template-columns:1fr 1fr;gap:13px}.form-grid,.form-grid.third{grid-template-columns:1fr}.item-line,.item-line.receiving-line{grid-template-columns:1fr 1fr}.item-line .field:first-child{grid-column:1/-1}.item-line .line-remove{grid-column:2}.login-panel{padding:22px}.metric-row{grid-template-columns:1fr 1fr 1fr}.metric-row strong{font-size:15px}.toolbar .search-box{max-width:100%}.footer{font-size:9px;text-align:center;padding:16px}.doc-number{font-size:17px}}@media print{.sidebar,.topbar,.footer,.btn,.action-row,.header-actions,.inline-form,.nav-toggle,.search-box,.alert{display:none!important}.main-content{padding:5px}body,.content-shell{background:#fff}.card{box-shadow:none;break-inside:avoid}}

/* RS8 2026: company branding, responsive navigation and account controls */
.brand-wordmark { display:block;max-width:185px;width:100%;height:58px;object-fit:contain;object-position:left center; }
.brand-label { display:block;color:#a3b3cc;font-weight:900;letter-spacing:.14em;font-size:9px;margin-top:-3px; }
.logo-row { padding-bottom:16px; }
.login-brand img { width:190px;height:74px;object-fit:contain;object-position:left; }
.login-brand { gap:12px; }
.account-shortcut { display:flex;align-items:center;gap:11px;padding:5px 9px 5px 5px;border-radius:12px;transition:background .15s;min-width:0; }
.account-shortcut:hover,.account-shortcut:focus-visible { background:#f1f4f8;outline-color:#d73344; }
.account-shortcut .avatar { flex:none; }
.sidebar-backdrop { display:none; }
.link-button { padding:5px;border:0;background:transparent;font-size:12px;cursor:pointer; }
.link-button:hover { text-decoration:underline; }
.rs8-modal-trigger { max-width:100%; white-space:normal; min-height:41px; }
.admin-edit-launch,.modal-template-card { display:none!important; }
.account-hero { position:relative;background:linear-gradient(115deg,#1a2538,#2d3c55);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:28px 32px; }
.account-hero-body { display:flex;align-items:center;gap:21px;min-width:0; }
.account-hero .eyebrow { color:#ff7884; }
.account-hero h2 { margin:7px 0 4px;letter-spacing:-.03em;font-size:24px;overflow-wrap:anywhere; }
.account-hero p { margin:0;font-size:13px;color:#c3d0e1;overflow-wrap:anywhere; }
.account-avatar { width:84px;height:84px;flex:none;border-radius:24px;background:linear-gradient(135deg,#f24a5b,#c02230);display:grid;place-items:center;color:#fff;font-size:38px;font-weight:900;box-shadow:0 14px 28px #0003; }
.account-status { padding:9px 12px;color:#c5efd6;background:#1a805239;border-radius:30px;font-size:11px;font-weight:800;white-space:nowrap; }
.account-settings-grid .card { min-width:0; }
.settings-item { display:flex;gap:15px;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f4;padding:14px 0; }
.settings-item span { color:#7a8696;font-size:12px; }
.settings-item b { font-size:12px;text-align:right;overflow-wrap:anywhere; }
.account-settings-grid .note { margin:17px 0; }
.security-feature { display:flex;gap:14px;padding:17px;background:#f5f7fb;border:1px solid #e9edf3;border-radius:13px;margin-bottom:13px; }
.security-feature-icon { display:grid;place-items:center;font-size:24px;color:#d63343;width:39px;height:39px;flex:none;background:#ffe9ec;border-radius:11px; }
.security-feature p { margin:5px 0 0;color:#788597;font-size:12px; }
/* SweetAlert2 itself holds the real posted form, including file inputs and CSRF. */
.rs8-swal-form-popup { border-radius:20px!important;max-height:calc(100dvh - 24px);overflow:hidden!important;box-shadow:0 32px 85px #0e19334f!important; }
.rs8-swal-form-popup .swal2-title { font-family:'Plus Jakarta Sans','DM Sans',sans-serif;font-size:20px!important;text-align:left!important;margin:0 28px 13px 2px!important; }
.rs8-swal-form-popup .swal2-close { top:13px!important;right:12px!important;font-size:27px!important;color:#64748b!important; }
.rs8-swal-form-content { padding:0 2px 10px!important;margin:0!important;max-height:calc(100dvh - 115px);overflow-y:auto!important;text-align:left!important; }
.rs8-dialog-form { display:grid!important;gap:14px;min-width:0;width:100%;text-align:left;font-size:13px; }
.rs8-dialog-form.inline-form { display:flex!important;flex-wrap:wrap;align-items:flex-end; }
.rs8-dialog-form.inline-form .field { flex:1 1 180px; }
.rs8-dialog-form input,.rs8-dialog-form select,.rs8-dialog-form textarea { font-size:14px;min-height:44px; }
.rs8-dialog-form textarea { min-height:92px; }
.rs8-dialog-form > .btn[type=submit],.rs8-dialog-form > .action-row .btn[type=submit] { min-height:45px; }
.rs8-dialog-form .table-wrap { max-width:100%; }
.rs8-dialog-form .table-wrap table { min-width:580px; }
.rs8-dialog-form .item-line { width:100%; }
.rs8-swal-confirm-popup { border-radius:18px!important;font-family:'DM Sans',sans-serif; }
.rs8-swal-confirm-popup .swal2-title { font-size:21px; }
.swal2-container { z-index:99999!important; }
/* Offline CDN fallback uses <dialog> instead of window.confirm/alert. */
.rs8-fallback-dialog { width:min(690px,calc(100vw - 20px));max-height:calc(100dvh - 24px);overflow:auto;border:0;border-radius:18px;padding:22px;box-shadow:0 36px 110px #151c346e; }
.rs8-fallback-dialog::backdrop { background:#080e1baa; }
.rs8-fallback-head { display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #e6ebf2;padding-bottom:14px;margin-bottom:12px; }
.rs8-fallback-head h2 { margin:0;font-size:21px; }
.rs8-fallback-actions { display:flex;justify-content:flex-end;gap:11px;margin-top:18px; }
.rs8-fallback-body > p { margin:14px 0;color:#586b80; }
.rs8-fallback-body form { max-height:calc(100dvh - 150px);overflow:auto; }
@media(max-width:920px){
 .sidebar { width:265px;min-width:265px;z-index:80; }
 .sidebar-backdrop { display:none;position:fixed;inset:0;background:#090e1b9b;z-index:79; }
 .sidebar-backdrop.visible { display:block; }
 .sidebar-is-open { overflow:hidden; }
 .nav-toggle { min-width:42px;min-height:42px;border:1px solid #e3e8ef;border-radius:11px; }
}
@media(max-width:720px){
 html,body { width:100%;max-width:100%;overflow-x:hidden; }
 .content-shell { width:100%; }
 .main-content { padding:16px 12px 22px; }
 .page-header { margin-bottom:18px; }
 .page-header h1 { font-size:22px; }
 .page-header p { font-size:12px; }
 .topbar { padding:0 12px; }
 .breadcrumb span { padding:0 5px; }
 .breadcrumb { white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
 .topbar-right { gap:6px; }
 .account-shortcut { padding:4px; }
 .stats-grid { gap:9px; }
 .stat-card { padding:14px 12px;min-height:112px; }
 .stat-card .stat-num { font-size:23px; }
 .stat-card .stat-sub { font-size:10px; }
 .grid-2,.grid-3 { display:grid;grid-template-columns:1fr!important;gap:0; }
 .card { margin-bottom:13px;padding:15px 13px; }
 .card-head { flex-wrap:wrap; }
 .card-head input.search-box { min-width:100%; }
 .table-wrap { overflow-x:auto; }
 /* Summary tables become self-labelled cards. Form and print tables retain tabular layout. */
 .mobile-cards { width:100%;min-width:0;display:block; }
 .mobile-cards thead { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
 .mobile-cards tbody { display:grid;gap:10px; }
 .mobile-cards tbody tr { display:block;background:white;border:1px solid #e4e9f1;border-radius:12px;padding:8px 12px;box-shadow:0 3px 10px #1320360a; }
 .mobile-cards tbody tr[hidden] { display:none!important; }
 .mobile-cards tbody tr td { display:flex;align-items:flex-start;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #eff2f5;width:100%!important;max-width:100%!important;min-width:0!important;text-align:right;word-break:break-word; }
 .mobile-cards tbody tr td:last-child { border-bottom:0; }
 .mobile-cards tbody tr td::before { content:attr(data-label);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#8391a2;font-weight:800;flex:0 1 39%;text-align:left; }
 .mobile-cards tbody tr td .ref-line { width:100%; }
 .mobile-cards tbody tr td .inline-form { justify-content:flex-end; }
 .mobile-cards tbody tr td[colspan] { text-align:left; }
 .mobile-cards tbody tr td[colspan]::before { display:none; }
 .toolbar,.page-actions { flex-wrap:wrap; }
 .btn { white-space:normal;overflow-wrap:anywhere;min-height:41px; }
 .form-grid,.form-grid.third { grid-template-columns:minmax(0,1fr); }
 .field input,.field select,.field textarea { min-height:45px;font-size:14px; }
 .account-hero { padding:20px;align-items:flex-start;flex-direction:column; }
 .account-hero h2 { font-size:20px; }
 .account-avatar { width:58px;height:58px;font-size:28px;border-radius:17px; }
 .account-hero-body { gap:12px; }
 .account-status { margin-left:70px; }
 .login-brand { gap:10px; }
 .login-brand img { width:156px;height:64px; }
 .login-brand span { font-size:8px;text-align:right; }
 .rs8-swal-form-popup { width:calc(100vw - 14px)!important;padding:15px 10px!important;border-radius:14px!important; }
 .rs8-swal-form-popup .swal2-title { font-size:17px!important;margin:0 23px 12px 0!important; }
 .rs8-swal-form-content { max-height:calc(100dvh - 85px); }
 .rs8-dialog-form.inline-form { display:grid!important;grid-template-columns:1fr; }
 .rs8-dialog-form.inline-form .field { flex:auto; }
 .rs8-dialog-form .item-line,.rs8-dialog-form .item-line.receiving-line { grid-template-columns:1fr 1fr; }
 .rs8-dialog-form .item-line .field:first-child { grid-column:1/-1; }
}
@media(max-width:360px){ .stats-grid { grid-template-columns:1fr!important; } .account-hero-body { align-items:flex-start; } }
@media print { .rs8-modal-trigger,.sidebar-backdrop,.rs8-fallback-dialog,.account-shortcut {display:none!important;} .mobile-cards,.mobile-cards tbody,.mobile-cards tbody tr,.mobile-cards tbody tr td {display:table!important;} }

[data-modal-form][hidden],[data-flash][hidden] {display:none!important;}
@media(max-width:720px){.stats-grid[style] { grid-template-columns:repeat(2,minmax(0,1fr))!important; }}
@media(max-width:360px){.stats-grid[style] {grid-template-columns:1fr!important;}}

@media(max-width:720px){
 .rs8-dialog-form .table-wrap table.mobile-cards {min-width:0!important;}
 .mobile-cards tbody tr td.has-form-input {display:block!important;text-align:left!important;}
 .mobile-cards tbody tr td.has-form-input::before {display:block;margin-bottom:7px;max-width:100%;}
 .mobile-cards tbody tr td.has-form-input input,.mobile-cards tbody tr td.has-form-input select,.mobile-cards tbody tr td.has-form-input textarea {min-width:0;max-width:100%;width:100%;}
}

/* RS8 v3 - responsive usability overhaul (all pages) */
:root{--tap:44px;--topbar-height:72px}
html{scroll-padding-top:88px}body{min-width:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #e85d6c;outline-offset:3px}
.topbar{position:sticky;top:0;z-index:45;min-height:var(--topbar-height);height:auto;box-shadow:0 3px 14px #1d2b4210;isolation:isolate}
.content-shell{min-width:0;max-width:100%}.main-content{min-width:0}.sidebar{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#56627a transparent}
.sidebar-bottom{flex-shrink:0;margin-top:24px}.nav-link{min-height:44px;flex-shrink:0}.btn,.rs8-modal-trigger{min-height:42px;line-height:1.45;padding:11px 16px;white-space:normal;text-align:center;vertical-align:middle}
.btn.small-btn{padding:9px 13px;min-height:38px;line-height:1.4}.btn+.btn,.table-link+.btn{margin-left:0}
.card-head{min-width:0;gap:16px;align-items:flex-start}.card-head > :first-child{min-width:0}.card-head .btn{flex-shrink:0}
.card-head h3{line-height:1.4;margin-bottom:4px}.card-head p{line-height:1.6}.card > p{margin-top:9px}.card .action-row{margin-top:19px;gap:12px}
.table-wrap{overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}td{line-height:1.55;overflow-wrap:anywhere}td .btn,td .table-link,td form,td .link-button{margin:3px 6px 3px 0}td .btn{min-height:36px}td form{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}td form .btn,td form button{margin:0}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.page-header{align-items:flex-start}.page-header h1{line-height:1.23}.page-header p{line-height:1.6;margin-top:9px}.header-actions{align-self:flex-start}
.field{gap:9px}.field span{line-height:1.5}.field input,.field select,.field textarea,input.table-input,select.table-input{min-height:44px;font-size:14px}.form-grid{gap:18px}.inline-form{gap:13px}.note,.info-panel{line-height:1.7}
.rs8-swal-form-popup .swal2-title{line-height:1.35}.rs8-dialog-form .action-row{display:flex;flex-wrap:wrap;gap:12px}.rs8-dialog-form .btn{min-height:44px}.swal2-container{padding:10px!important}.rs8-fallback-dialog{overscroll-behavior:contain}
/* Only desktop holds the sidebar in place. */
@media(min-width:921px){.sidebar{height:100dvh;position:sticky;top:0}.topbar{top:0}}
@media(max-width:1100px){.main-content{padding:24px}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{gap:12px}.card{padding:18px}}
@media(max-width:920px){
 .sidebar{position:fixed!important;top:0!important;left:0!important;bottom:0;width:min(310px,86vw)!important;min-width:0!important;height:100dvh!important;max-height:100dvh;padding:20px 14px 22px;overflow-y:auto;transform:translateX(-105%);transition:transform .22s ease;z-index:100!important;box-shadow:none}
 .sidebar.visible{transform:translateX(0);box-shadow:0 0 40px #07111f65}.sidebar-backdrop.visible{position:fixed;inset:0;display:block;background:#06101bb8;z-index:99}
 .nav-toggle{display:grid;place-items:center;flex:0 0 44px;min-width:44px;height:44px;padding:0;font-size:22px;color:#1d293d}
 .topbar{height:64px;min-height:64px;padding:0 18px;gap:10px}.sidebar .logo-row{position:sticky;top:-20px;z-index:2;background:var(--navy);padding-top:15px;padding-bottom:16px}
 .sidebar .workspace-label{padding:17px 13px 13px}.menu-heading{padding-top:16px}.sidebar-bottom{margin-top:18px}
 .breadcrumb{min-width:0;flex:1}.topbar-right{flex:none}.system-indicator{display:none}.account-shortcut .user-caption{display:none}
 .app-shell,.content-shell{width:100%;min-width:0}.sidebar-is-open{overflow:hidden!important}
}
@media(max-width:720px){
 :root{--topbar-height:62px}html{scroll-padding-top:74px}.topbar{top:0;z-index:45;min-height:62px;height:62px;padding:0 13px}.breadcrumb{font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.breadcrumb span{padding:0 5px}
 .topbar-right{gap:5px}.account-shortcut{padding:3px}.logout{min-height:42px;min-width:42px;font-size:21px;padding:4px}
 .main-content{padding:20px 14px 30px}.page-header{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:22px}.page-header h1{font-size:23px}.page-header p{font-size:13px;margin-top:7px}.eyebrow{font-size:10px}
 .header-actions{width:100%;display:flex}.header-actions .btn{width:100%}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px;margin-bottom:18px}.stat-card{min-width:0;padding:17px 14px;min-height:122px}.stat-card .stat-label{line-height:1.5;max-width:calc(100% - 15px)}.stat-card .stat-icon{right:9px;top:10px;font-size:16px}.stat-card .stat-num{font-size:26px}.stat-card .stat-sub{line-height:1.45}
 .grid-2,.grid-3{grid-template-columns:minmax(0,1fr)!important;gap:0}.card{padding:18px 15px;margin-bottom:16px;border-radius:14px}.card-head{gap:12px;margin-bottom:17px;display:flex;flex-wrap:wrap;align-items:flex-start}.card-head h3{font-size:15px}.card-head p{font-size:12px;line-height:1.55}.card-head>.btn,.card-head>.action-row{max-width:100%}
 .card-head input.search-box{min-width:0;width:100%}.btn,.rs8-modal-trigger{font-size:13px;min-height:44px;padding:11px 14px}.btn.small-btn{font-size:12px;min-height:40px;padding:9px 11px}
 .action-row{display:flex;align-items:stretch;gap:10px}.action-row>.btn,.action-row>form{flex:1 1 auto}.action-row>form>.btn{width:100%}.inline-form{gap:10px}
 .table-wrap{overflow:visible!important}.table-wrap:has(.no-card-table){overflow-x:auto!important}.mobile-cards{width:100%;min-width:0}.mobile-cards tbody{gap:13px}.mobile-cards tbody tr{padding:9px 15px;border:1px solid #e1e7f0;border-radius:14px;box-shadow:0 3px 12px #1320360b}
 .mobile-cards tbody tr td{min-height:37px;align-items:center;padding:12px 0;line-height:1.55;gap:10px}.mobile-cards tbody tr td::before{flex:0 0 37%;font-size:10px;line-height:1.5;letter-spacing:.055em}.mobile-cards tbody tr td form{margin:0 0 0 6px}.mobile-cards tbody tr td .btn,.mobile-cards tbody tr td .table-link{margin:4px 5px 4px 0}.mobile-cards tbody tr td:last-child:has(.btn,.table-link,form){justify-content:flex-start;text-align:left;gap:8px}.mobile-cards tbody tr td:last-child:has(.btn,.table-link,form)::before{flex-basis:100%;margin-bottom:0}
 .mobile-cards tbody tr td .inline-form{justify-content:flex-start;width:100%;gap:9px}.table-wrap .mobile-cards tbody tr td[colspan]{width:100%;text-align:center}.table-wrap .mobile-cards tbody tr td[colspan]::before{display:none}
 .form-grid,.form-grid.third{grid-template-columns:minmax(0,1fr)}.item-line,.item-line.receiving-line{grid-template-columns:minmax(0,1fr)!important;gap:12px}.item-line .field:first-child{grid-column:auto!important}.line-remove{min-height:43px}
 .meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.document-head{flex-direction:column;gap:12px}.stepper{margin:0 -4px;padding:5px 4px 16px}.footer{padding:18px 15px;line-height:1.65;text-align:center}
 .rs8-swal-form-popup{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 20px);padding:19px 14px!important}.rs8-swal-form-content{max-height:calc(100dvh - 113px);-webkit-overflow-scrolling:touch}.rs8-dialog-form{gap:16px}.rs8-dialog-form .table-wrap{overflow-x:auto!important}.rs8-dialog-form .table-wrap table{min-width:560px}.rs8-fallback-dialog{width:calc(100vw - 18px);padding:17px}
}
@media(max-width:390px){.topbar{padding:0 9px}.main-content{padding:15px 10px}.card{padding:15px 11px}.stat-card{padding:14px 10px}.breadcrumb{font-size:10px}}
@media(max-width:340px){.stats-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.sidebar,.btn{transition:none!important}html{scroll-behavior:auto}}
@media print{.topbar{position:static!important}.sidebar{display:none!important}.content-shell{width:100%}.main-content{padding:0}}


/* v4 - reliable fixed mobile header and comfortable CRUD sections */
:root { --mobile-header-height: 64px; }
@media screen and (max-width: 920px) {
  html, body { max-width:100%; overflow-x:clip; }
  .app-shell { display:block; min-height:100dvh; width:100%; }
  .content-shell { display:flex; flex-direction:column; min-height:100dvh; width:100%; padding-top:var(--mobile-header-height); }
  .topbar { position:fixed!important; top:0!important; left:0!important; right:0!important; width:100%!important; height:var(--mobile-header-height)!important; min-height:var(--mobile-header-height)!important; z-index:90!important; background:#fff; box-shadow:0 3px 13px rgba(18,30,50,.12); }
  .sidebar { z-index:110!important; }
  .sidebar-backdrop.visible { z-index:105!important; }
  .main-content { flex:1 0 auto; }
  body.sidebar-is-open { overflow:hidden!important; }
}
@media screen and (max-width: 720px) {
  :root { --mobile-header-height: 62px; }
  .card > h3 { line-height:1.45; margin-bottom:12px!important; }
  .card > h3 + .stack-form, .card > h3 + form, .card > .note + .stack-form, .card > .note + form { margin-top:16px!important; }
  .card > h3 + .note { margin-top:9px!important; margin-bottom:15px!important; }
  .card > .stack-form, .card > form.stack-form { row-gap:16px; }
  .card > .stack-form > .btn, .card > form.stack-form > .btn { justify-self:start; margin-top:8px; }
  .card > h3 + .btn, .card > h3 + .rs8-modal-trigger { margin-top:15px; }
  .grid-2 > div > .card { margin-bottom:20px; }
  .btn, .rs8-modal-trigger { min-height:44px; border-radius:10px; }
  .page-header { scroll-margin-top:72px; }
}
@media print { .content-shell { padding-top:0!important; } .topbar {position:static!important;} }


/* RS8 v4.1 - desktop create-card spacing (mobile styles remain untouched).
   Modal openers are inserted after the heading/note by assets/app.js;
   treat the opener as a real block-row with consistent breathing room. */
@media screen and (min-width: 721px) {
  .crud-cta-card > h3 {
    line-height: 1.5;
    margin: 0;
  }
  .crud-cta-card > p.note {
    margin: 12px 0 0;
    line-height: 1.7;
  }
  .crud-cta-card > .rs8-modal-trigger {
    display: flex;
    width: fit-content;
    max-width: 100%;
    margin: 20px 0 0;
    align-items: center;
    justify-content: center;
  }
  /* If JS is unavailable, keep native forms visibly separated too. */
  .crud-cta-card > form.stack-form:not([hidden]) {
    margin-top: 20px;
  }
}
