*{box-sizing:border-box}
body{margin:0;font:16px/1.4 system-ui,sans-serif;background:#f4f5f7;color:#1c1f24}
header{background:#1f3a5f;color:#fff;padding:10px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
header b{flex:1}
main{max-width:1180px;margin:0 auto;padding:12px}
.card{background:#fff;border-radius:10px;padding:12px;margin-bottom:12px;box-shadow:0 1px 3px #0002}
button,input,select,textarea{font:inherit;min-height:44px;padding:8px 10px;border-radius:8px;border:1px solid #b9bec6;background:#fff;color:inherit}
button{background:#1f3a5f;color:#fff;border:0;cursor:pointer}
button.light{background:#e4e8ee;color:#1c1f24}
button.danger{background:#b00020}
button.sm{min-height:36px;padding:4px 10px;font-size:14px}
input,select{width:100%}
label{display:block;font-size:13px;color:#555}
label input,label select{margin-top:2px;color:#1c1f24;font-size:16px}
table{width:100%;border-collapse:collapse}
td,th{padding:8px;border-bottom:1px solid #e3e6ea;text-align:left;vertical-align:top}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.err{color:#b00020;min-height:1.4em}
.ok{color:#1b7a3a}
.login{max-width:360px;margin:12vh auto}
nav{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
nav button{flex:0 0 auto}
.off{opacity:.5}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.bar>*{flex:0 0 auto;width:auto}
.bar label{min-width:140px}
.sum{display:flex;gap:18px;flex-wrap:wrap;font-weight:600;margin-bottom:10px}
.sum span small{display:block;font-weight:400;color:#555}
.mhead{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#e9eef5;border-radius:8px;padding:6px 10px;margin:12px 0 6px;font-weight:600}
.row{display:grid;grid-template-columns:2fr .8fr .8fr .6fr .8fr 1.5fr 1.5fr .9fr 1.2fr 44px;gap:6px;align-items:start;padding:6px 0;border-bottom:1px solid #e3e6ea}
.row>div>small{display:block;color:#555;font-size:12px}
.row input,.row select{min-height:40px}
.row .calc{padding-top:10px;font-variant-numeric:tabular-nums}
.info{grid-column:1/-1;font-size:13px;color:#445}
.loss{color:#b00020;font-weight:600}
.badge{display:inline-block;background:#e4e8ee;border-radius:10px;padding:0 8px;margin-left:4px;font-size:13px}
.ocard{border:1px solid #dde1e6;border-radius:10px;padding:10px;margin-bottom:8px;display:grid;grid-template-columns:1fr auto;gap:8px}
.ocard .acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
dialog{border:0;border-radius:12px;padding:16px;max-width:92vw}
dialog::backdrop{background:#0006}
@media (max-width:760px){
  main{padding:8px}
  button,input,select{min-height:44px}
  .row{grid-template-columns:1fr 1fr;border:1px solid #dde1e6;border-radius:10px;padding:8px;margin-bottom:8px}
  .row>div:first-child,.row .wide{grid-column:1/-1}
  .ocard{grid-template-columns:1fr}
  .bar label{min-width:calc(50% - 8px);flex:1}
  table.resp thead{display:none}
  table.resp tr{display:block;border:1px solid #dde1e6;border-radius:8px;margin-bottom:6px;padding:4px}
  table.resp td{display:flex;justify-content:space-between;border:0;padding:3px 6px}
  table.resp td::before{content:attr(data-l);color:#555;margin-right:10px}
}
