*{box-sizing:border-box}body{margin:0;background:#f4f7f5;color:#243e35;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #b99b54;outline-offset:3px}aside{position:fixed;inset:0 auto 0 0;width:230px;background:#fff;border-right:1px solid #dde5df;padding:28px 20px;display:flex;flex-direction:column;z-index:5}aside img{width:170px;height:72px;object-fit:contain}.brand{font-size:23px;font-weight:750;margin:18px 12px 38px}aside small,.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#789184;font-weight:700}nav{display:grid;gap:7px;margin-top:14px}nav button{border:0;background:transparent;text-align:left;color:#64786d;border-radius:9px;padding:13px 14px}nav button.active{background:#e7f0e9;color:#19523e;font-weight:700}nav span{display:inline-block;width:28px}aside footer{margin-top:auto;font-size:12px;color:#7d8d82;padding:20px 12px 0}.main{margin-left:230px}header{height:80px;background:#fff;border-bottom:1px solid #dde5df;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.lang button{border:0;padding:8px 12px;border-radius:6px;background:#f1f4ef}.lang .active{background:#18523e;color:white}.avatar{background:#edf0e6;border-radius:50%;padding:10px 12px;font-size:12px;margin-left:20px}.demo{padding:10px 36px;background:#f3eddb;color:#786330;font-size:12px;display:flex;justify-content:space-between;gap:15px}.demo button{background:none;border:0;color:inherit;text-decoration:underline;padding:0}main{max-width:1440px;margin:auto;padding:30px 36px 48px}h1{font-size:32px;letter-spacing:-1px;margin:7px 0}h2{font-size:19px;margin:0 0 18px}h3{font-size:16px;margin:0 0 8px}p{margin:7px 0 20px;color:#718177}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.primary,.secondary,.danger{border:0;border-radius:8px;padding:12px 18px;font-weight:650}.primary{background:#19523e;color:#fff}.secondary{background:#edf2ed;color:#315646}.danger{background:#faede6;color:#9a4d33}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.card,.panel{background:#fff;border:1px solid #e0e7e1;border-radius:12px;padding:24px}.card small{color:#7a8980}.big{font-size:30px;font-weight:700;letter-spacing:-1px;margin:8px 0}.big em{font-style:normal;font-size:15px;font-weight:400}.muted{color:#819086;font-size:13px}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.panel{margin-bottom:22px}.panel:last-child{margin-bottom:0}.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.listrow{padding:16px 0;border-bottom:1px solid #edf0ec}.listrow:last-child{border-bottom:0}.badge{display:inline-block;border-radius:5px;padding:4px 8px;font-size:11px;white-space:nowrap;background:#eef2ec;color:#68816d}.badge.warn{background:#fbf0d6;color:#97742e}.badge.green{background:#e3f1e8;color:#2b7550}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:#809086;background:#f8faf7}td,th{padding:14px 12px;border-bottom:1px solid #edf0ea;white-space:nowrap}td strong{font-weight:650}tr[data-id]{cursor:pointer}tr[data-id]:hover{background:#f6f9f4}.filters{display:flex;gap:12px;margin-bottom:18px}.filters input{flex:1;min-width:120px}input,select,textarea{width:100%;border:1px solid #dce3dc;border-radius:7px;background:white;color:#2c4438;padding:11px 12px}label{display:block;font-size:12px;font-weight:650;color:#587062}label input,label select,label textarea{margin-top:7px}textarea{min-height:95px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.full{grid-column:1/-1}.upload{border:2px dashed #cbdace;border-radius:12px;padding:26px;background:#f9fbf8;text-align:center}.upload input{max-width:340px;font-size:12px;margin-top:12px}.upload b{display:block;font-size:18px;margin:8px}.upload .icon{font-size:32px;color:#729178}.actions{display:flex;gap:12px;justify-content:flex-end;margin-top:25px}.attachment{display:flex;gap:10px;align-items:center;background:#f3f6f1;padding:10px;margin-top:9px;border-radius:6px;font-size:12px}.attachment a{color:#1d6546;overflow-wrap:anywhere}.progress{height:6px;background:#eaf0e8;border-radius:5px;margin-top:10px;overflow:hidden}.progress div{background:#6e9577;height:100%}.contract{cursor:pointer;transition:box-shadow .15s}.contract:hover{box-shadow:0 5px 18px #21473512}.notice{background:#f4f6ef;border-left:3px solid #a4b893;padding:15px;font-size:13px;margin-bottom:20px}.empty{text-align:center;padding:40px;color:#849083}.statusline{display:flex;gap:10px;align-items:center;font-size:12px;color:#7c8b80}.dot{width:7px;height:7px;border-radius:50%;background:#6c9878}a{color:#1b674b}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#204e3a;color:white;padding:14px 24px;border-radius:10px;box-shadow:0 8px 25px #0002;z-index:20;display:none}.statnum{font-variant-numeric:tabular-nums}.back{border:0;background:none;color:#537b65;padding:0 0 20px}.contractgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.summary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.summary dt{font-size:12px;color:#829084}.summary dd{margin:4px 0;font-weight:650}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.files{margin-top:12px}.tiny{font-size:11px;color:#8b958c}.reset{font-size:11px;color:#7a897d;border:0;background:none}.mobilebrand{display:none}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.grid,.split{grid-template-columns:1fr}.contractgrid{grid-template-columns:1fr 1fr}}@media(max-width:750px){aside{position:static;width:auto;padding:12px 16px;border-bottom:1px solid #ddd}aside img,aside small,aside footer{display:none}.brand{margin:0 0 10px;font-size:20px}nav{display:flex;overflow:auto;margin:0;gap:4px}nav button{white-space:nowrap;font-size:12px;padding:8px}nav span{width:20px}.main{margin:0}header{height:58px;padding:0 18px}.demo{padding:9px 18px;display:block}main{padding:22px 16px}.heading{align-items:flex-start}h1{font-size:27px}.heading .primary{font-size:12px;padding:10px}.metrics{gap:10px}.card,.panel{padding:18px}.big{font-size:26px}.formgrid,.contractgrid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters select{width:auto}.avatar{display:none}.heading p{font-size:13px}.full{grid-column:auto}.actions{flex-wrap:wrap}.statusline{font-size:11px}}
/* Contract cards use the grid gap, never the generic panel bottom margin. */
.contractgrid{grid-auto-rows:1fr;align-items:stretch}
.contractgrid>.contract{margin:0;min-width:0;height:100%;display:flex;flex-direction:column;align-items:stretch}
.contractgrid>.contract>p{min-height:3em;margin-bottom:12px}
.contractgrid>.contract>.listrow{margin-top:auto;min-height:4.5em;padding-bottom:0;border-bottom:0}
.contractgrid>.contract>.progress{flex-shrink:0;margin-bottom:16px}
.contractgrid>.contract>.row{flex-wrap:wrap}
.login{max-width:500px;margin:8vh auto}.login label{margin-top:18px}.textlink{border:0;background:none;color:#19523e;text-decoration:underline;padding:0}.summary dd{overflow-wrap:anywhere}.filters select{width:auto}.summary div{min-width:0}
