/* Caliber Brand Manual colours: purple #522e90, green #007d3f, red #f04e53. */
:root{--purple:#522e90;--purple-d:#3f2370;--green:#007d3f;--green-d:#016334;--red:#f04e53;--red-d:#c83439;--orange:#ffd99a;--ink:#221a31;--mut:#706782;--line:#e5deef;--bg:#f6f4fb;--card:#fff;--font:Calibri,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px}
.hidden{display:none!important}
button,input,select,textarea{font-family:var(--font)}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fbfaff;padding:7px 9px;font-size:14px;outline:none}
input,select{height:34px} textarea{min-height:70px;resize:vertical}
label{display:block;font-size:12px;font-weight:800;color:var(--mut);margin:7px 0 3px}
.remember-row{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--ink);font-size:13px;font-weight:800}.remember-row input{width:auto;height:auto;accent-color:var(--purple)}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--purple),var(--purple-d))}
.login-card{width:390px;background:#fff;border-radius:14px;padding:32px;box-shadow:0 24px 60px rgba(44,23,80,.45);border-top:5px solid var(--purple)}
.brand{display:flex;align-items:center;gap:12px}.brand h1{font-size:22px;color:var(--purple)}.brand small{font-size:11px;letter-spacing:2px;color:var(--mut)}
.diamond{width:30px;height:30px;background:var(--purple);transform:rotate(45deg);border-radius:6px;position:relative}.diamond:after{content:"";position:absolute;inset:7px;background:var(--green);border-radius:3px}
.login-card h2{font-size:18px;margin:22px 0 12px}.hint{font-size:12px;color:var(--mut);margin-top:12px;line-height:1.35}
.btn{border:0;border-radius:8px;background:var(--purple);color:#fff;font-weight:900;padding:9px 14px;font-size:14px;cursor:pointer;margin-top:12px}
.btn:hover{background:var(--purple-d)}.btn.green{background:var(--green)}.btn.green:hover{background:var(--green-d)}.btn.ghost{background:#fff;color:var(--purple);border:1px solid var(--purple)}.btn.red{background:var(--red)}
.err{min-height:18px;color:var(--red);font-weight:800;margin-top:10px;text-align:center}
#app{display:flex;min-height:100vh}
.side{width:230px;background:var(--purple);color:#fff;padding:10px;position:sticky;top:0;height:100vh;overflow:auto;flex:none}
.nav-group{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#ffb9bd;font-weight:900;margin:12px 8px 4px}
.nav-item{display:block;width:100%;text-align:left;border:0;background:transparent;color:#eee;padding:8px 10px;border-radius:7px;font-weight:800;cursor:pointer;font-size:14px}
.nav-item:hover,.nav-item.active{background:#fff;color:var(--purple)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}.top{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px}.top b{color:var(--purple);font-size:18px}
.who{display:flex;align-items:center;gap:10px}.logout,.appbtn{border:1px solid var(--purple);background:#fff;color:var(--purple);border-radius:7px;padding:7px 12px;font-weight:800;cursor:pointer}
.content{padding:16px;overflow:auto}.page-title{font-size:24px;color:var(--purple);margin-bottom:2px}.page-sub{font-size:13px;color:var(--mut);margin-bottom:14px}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;margin-bottom:14px}.kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--purple);border-radius:9px;padding:12px;cursor:pointer}.kpi .lab{font-size:11px;color:var(--mut);text-transform:uppercase;font-weight:900}.kpi .val{font-size:24px;font-weight:900;margin-top:5px}.kpi.orange{border-left-color:#e28a00}.kpi.orange .val{color:#b76d00}.kpi.red{border-left-color:var(--red)}.kpi.red .val{color:var(--red)}
.panel{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:14px}.panel h3{padding:11px 14px;border-bottom:1px solid var(--line);font-size:16px;color:var(--purple)}.body{padding:13px 14px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px}.grid .wide{grid-column:span 2}.grid .full{grid-column:1/-1}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.actions .btn{margin-top:0;width:auto}
table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}th{background:var(--purple);color:#fff;text-align:left;padding:9px;font-size:13px}td{border-bottom:1px solid var(--line);padding:8px 9px;vertical-align:top}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr:hover td{background:#faf8fd}
tr.orange td{background:var(--orange)!important;color:#3b2600}.status{font-weight:900;border-radius:6px;padding:3px 8px;font-size:12px;display:inline-block}.status.SUBMITTED{background:#e8e0f6;color:var(--purple)}.status.MAKER2_VERIFIED{background:var(--orange);color:#7a4b00}.status.POSTED{background:#dff4e8;color:var(--green-d)}.status.REJECTED_MAKER2,.status.REJECTED_CHECKER{background:#fde2e4;color:var(--red-d)}
.note{font-size:13px;color:var(--mut);margin-top:8px}.orange-note{background:var(--orange);font-weight:900;color:#704300;padding:8px 10px;border-radius:8px;display:inline-block}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--green);color:#fff;padding:20px 30px;border-radius:14px;box-shadow:0 18px 45px rgba(44,23,80,.26);font-size:24px;font-weight:900;opacity:0;pointer-events:none;transition:.25s;z-index:90;max-width:min(92vw,1120px);text-align:center}
.toast.show{opacity:1;pointer-events:auto}.toast.bad{background:var(--red)}.toast button{margin-left:24px;border:0;background:#fff;color:var(--ink);font-size:20px;font-weight:900;border-radius:10px;padding:12px 22px}
.modal{position:fixed;inset:0;background:rgba(44,23,80,.55);display:flex;align-items:center;justify-content:center;z-index:80}.modal-card{width:min(720px,92vw);background:#fff;border-radius:14px;padding:30px;border-top:6px solid var(--purple);box-shadow:0 24px 60px rgba(44,23,80,.45)}.modal-card h2{font-size:28px;color:var(--purple);margin-bottom:12px}.modal-card p{font-size:18px;line-height:1.4;margin:8px 0;white-space:pre-line}
@media(max-width:1000px){#app{display:block}.side{width:100%;height:auto;position:static;display:flex;flex-wrap:wrap}.nav-group{flex-basis:100%;margin-top:8px}.nav-item{width:auto}.grid,.kpis{grid-template-columns:1fr 1fr}.toast{font-size:18px;padding:16px}}
