:root{--teal:#0F6B5C;--ink:#1c2230;--mut:#6b7380;--line:#e3e6ea;--bg:#f5f6f8;--side:#14181F;--red:#b3261e;--amber:#a15c00;--green:#17794a}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--teal)}
.shell{display:flex;min-height:100vh}
.side{width:210px;background:var(--side);color:#cfd5de;padding:20px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.brand{font-weight:700;color:#fff;font-size:17px;padding:0 8px}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav a{color:#cfd5de;text-decoration:none;padding:8px 10px;border-radius:7px}
.side nav a:hover{background:#222833}.side nav a.on{background:var(--teal);color:#fff}
.logout{margin-top:auto;padding:0 8px}.who{font-size:13px;color:#8d96a5}
button.link{background:none;border:0;color:#9fd6cb;cursor:pointer;padding:0;font:inherit}
.main{flex:1;padding:28px 32px;max-width:1100px;min-width:0}
h1{font-size:22px;margin:0 0 16px}h2{font-size:16px;margin:24px 0 10px}
.head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.head h1{margin:0}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}.stat b{display:block;font-size:20px;margin-top:2px}.stat span{color:var(--mut);font-size:13px}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);background:#fafbfc}
tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.btn,button.btn{display:inline-block;background:var(--teal);color:#fff;border:0;border-radius:8px;padding:9px 14px;font:inherit;cursor:pointer;text-decoration:none}
.btn.sec{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:#fff;color:var(--red);border:1px solid #e8c4c1}
.btn.sm{padding:5px 9px;font-size:13px}
label{display:block;font-size:13px;color:var(--mut);margin-bottom:10px}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid #cfd4db;border-radius:7px;font:inherit;color:var(--ink);background:#fff}
input[type=checkbox]{display:inline;width:auto;margin:0 6px 0 0}
textarea{min-height:70px}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px}.flash.ok{background:#e4f3ec;color:#14543a}.flash.err{background:#fbe9e7;color:#8a1c14}
.errors{background:#fbe9e7;color:#8a1c14;border-radius:8px;padding:10px 14px 10px 30px;margin-bottom:14px}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;background:#eceff3;color:#444}
.chip.paid{background:#e4f3ec;color:var(--green)}.chip.overdue{background:#fbe9e7;color:var(--red)}.chip.partial,.chip.issued{background:#fff1d9;color:var(--amber)}
.chip.draft{background:#eceff3}.chip.credit,.chip.credited{background:#e8eefc;color:#2a4fa0}
.muted{color:var(--mut)}.right{text-align:right}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.actions form{display:inline}
.bar{height:8px;background:var(--teal);border-radius:4px;min-width:2px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.filters input,.filters select{width:auto;margin:0}
.tot{margin-left:auto;width:320px}.tot div{display:flex;justify-content:space-between;padding:4px 0}.tot .big{font-weight:700;font-size:18px;border-top:1px solid var(--line);margin-top:4px;padding-top:8px}
.lines td{padding:6px}.lines input,.lines select{margin:0}
.lines .rm{background:none;border:0;color:var(--red);cursor:pointer;font-size:18px}
body.bare{display:flex;align-items:center;justify-content:center;min-height:100vh}.login{width:340px}
.doc{background:#fff;max-width:820px;margin:0 auto;padding:36px;border:1px solid var(--line);border-radius:10px}
.doc h1{font-size:26px}.doc .two{display:flex;justify-content:space-between;gap:24px;margin:18px 0}
.doc table{border-radius:0;border-left:0;border-right:0}.small{font-size:13px}
.print-only{display:none}
@media (max-width:820px){.shell{flex-direction:column}.side{width:auto;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center}.side nav{flex-direction:row;flex-wrap:wrap}.logout{margin:0 0 0 auto}.main{padding:18px 14px}.g2,.g3,.g4{grid-template-columns:1fr 1fr}.tot{width:100%}table{display:block;overflow-x:auto}}
@media print{.side,.noprint,.flash{display:none!important}.shell{display:block}.main{padding:0;max-width:none}.doc{border:0;padding:0;max-width:none}body{background:#fff}}

.langs{display:flex;gap:8px;padding:0 8px;font-size:13px}.langs a{color:#8d96a5;text-decoration:none}.langs a.on{color:#fff;font-weight:700}
.login .langs{padding:12px 0 0;justify-content:center}.login .langs a{color:var(--mut)}.login .langs a.on{color:var(--ink)}
@media (max-width:820px){
  .side{padding:10px 12px;gap:6px}
  .side .brand{padding:0}
  .side nav{flex-wrap:nowrap;overflow-x:auto;width:100%;order:3;-webkit-overflow-scrolling:touch}
  .side nav a{white-space:nowrap;padding:8px 12px}
  .langs{padding:0}.logout{display:flex;align-items:center;gap:10px;margin:0 0 0 auto}.logout .who{display:none}
  .side{align-items:center}.brand{flex:1}
  th,td{white-space:nowrap}.lines td{white-space:normal}
  .lines input,.lines select{min-width:84px}.lines td:nth-child(2) input{min-width:170px}
  .doc{padding:18px}.doc .two{flex-direction:column}.doc .right{text-align:left}
  .head h1{font-size:19px}.stat b{font-size:17px}
  .g4,.g3,.g2{grid-template-columns:1fr 1fr}
  .btn,button.btn{padding:10px 14px}input,select,textarea{font-size:16px}
}
@media (max-width:480px){.g4,.g3,.g2{grid-template-columns:1fr}.filters input,.filters select{flex:1}}
@media (max-width:600px){.hide-sm{display:none}}
/* staff login */
body.bare{display:block}
.signin{display:grid;grid-template-columns:minmax(300px,42%) 1fr;min-height:100vh}
.signin-side{background:var(--side);color:#cfd5de;padding:36px;display:flex;flex-direction:column;justify-content:space-between;background-image:radial-gradient(500px 300px at 0% 0%,rgba(15,107,92,.55),transparent 70%)}
.signin-side .logo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;text-decoration:none}
.signin-side .mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--teal);color:#fff}
.signin-side h2{color:#fff;font-size:30px;margin:0 0 8px;letter-spacing:-.02em}.signin-side p{margin:0;max-width:22em}
.signin-side .back{color:#9fd6cb;text-decoration:none;font-size:14px}
.signin-main{display:flex;align-items:center;justify-content:center;padding:32px 20px}
.signin-form{width:100%;max-width:360px}.signin-form h1{font-size:28px;margin:0 0 4px}.signin-form p.muted{margin:0 0 20px}
.signin-form .btn{width:100%;margin-top:6px;padding:12px}
.signin-form .langs{padding:18px 0 0;justify-content:center}.signin-form .langs a{color:var(--mut)}.signin-form .langs a.on{color:var(--ink)}
@media (max-width:760px){.signin{grid-template-columns:1fr}.signin-side{min-height:0;padding:22px;gap:18px}.signin-side h2{font-size:22px}.signin-side .back{display:none}}

.side .who{color:#cfd5de;text-decoration:none;display:block}.side .who:hover{color:#fff}.side .role{font-size:12px;color:#8d96a5}
.chip.owner{background:#e8eefc;color:#2a4fa0}.chip.staff{background:#eceff3}.chip.off{background:#fbe9e7;color:var(--red)}
.actions input:not([type=checkbox]):not([type=file]),.actions select{width:auto;flex:1 1 150px;min-width:0}.actions input[type=file]{width:auto;flex:1 1 200px;min-width:0;max-width:100%}
.tr-row{margin-bottom:10px;padding:14px}.tr-row textarea{width:100%;margin:6px 0 8px}.tr-src{font-weight:600;word-break:break-word}
.tr-chip{font-size:.75rem;padding:2px 9px;border-radius:99px;border:1px solid var(--line);margin-right:auto}
.tr-reviewed{background:#e4f3ec;color:#14543a;border-color:#bfe3d0}.tr-edited{background:#fff4d6;color:#7a5a00;border-color:#f0dc9c}.tr-missing{background:#fbe9e7;color:#8a1c14;border-color:#f1c4bf}.tr-unreviewed{background:#eef0f3;color:#46505c}
.tr-bar{height:8px;border-radius:99px;background:#e6e9ee;overflow:hidden}.tr-bar span{display:block;height:100%;background:#1a8a63}
.tr-stat:hover{border-color:#1a8a63}
@media (max-width:700px){.g4{grid-template-columns:repeat(2,1fr)}}
