:root{--bg:#f2f4f8;--card:#fff;--ink:#16233a;--muted:#637085;--line:#dbe1ea;--brand:#004087;--accent:#f08100;--ok:#1f8a4c;--err:#c0392b}
*{box-sizing:border-box}
body{margin:0;font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand)}
h1{font-size:1.35rem;margin:.2rem 0 .6rem}
h2{font-size:1.05rem;margin:1.6rem 0 .6rem}
main{max-width:1000px;margin:0 auto;padding:14px}
.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.grow{flex:1}
.top{background:#fff;color:var(--ink);border-bottom:3px solid var(--accent);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:8px 14px}
.top a{color:var(--brand);text-decoration:none;font-weight:600}
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{height:38px;width:auto;display:block}
.logo{height:56px;width:auto;margin-bottom:8px}
.brand span{font-size:.8rem;color:var(--muted);font-weight:400;border-left:1px solid var(--line);padding-left:10px}
.top nav{display:flex;gap:14px;flex-wrap:wrap;flex:1}
.top nav a{padding:4px 0}
.top nav a:hover{color:var(--accent)}
.idbox{display:flex}
.idbox input{border:1px solid #c5ccd4;border-right:0;margin:0;border-radius:6px 0 0 6px;padding:8px 10px;width:190px;font-size:.95rem}
.idbox button{border:0;border-radius:0 6px 6px 0;background:var(--brand);color:#fff;padding:0 12px;font-size:.95rem;cursor:pointer}
.who{display:flex;gap:10px;align-items:center;font-size:.85rem;margin:0}
.who{color:var(--muted)}
.who .link{color:var(--brand)}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:14px}
.narrow{max-width:400px;margin:6vh auto 0}
body.plain{background:var(--brand)}
label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:12px}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:10px;font:inherit;color:var(--ink);background:#fff;border:1px solid #c5ccd4;border-radius:7px}
input:focus,select:focus,textarea:focus{outline:2px solid #8fb4dd;border-color:#8fb4dd}
label.check{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:1rem}
label.check input{width:auto;margin:0}
.btn{display:inline-block;padding:10px 16px;border-radius:7px;border:1px solid #c5ccd4;background:#fff;color:var(--ink);font:inherit;text-decoration:none;cursor:pointer}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:#00346e}
.btn.wide{display:block;width:100%;text-align:center}
.link{background:none;border:0;padding:0;color:var(--err);font:inherit;text-decoration:underline;cursor:pointer}
.flash{padding:10px 12px;border-radius:7px;margin-bottom:12px}
.flash.ok{background:#e3f4ea;color:#14613a}.flash.err{background:#fbe6e3;color:#8f2518}
.captcha{display:flex;align-items:center;gap:12px;margin-top:4px}
.captcha img{border:1px solid var(--line);border-radius:7px}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto auto;gap:8px;margin-bottom:10px}
.filters input,.filters select{margin:0}
.bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.bar h1{margin:0}
.rows{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rows>p{padding:14px;margin:0}
.row{display:grid;grid-template-columns:110px 1.4fr 1fr 110px;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.row:last-child{border-bottom:0}.row:hover{background:#f7f9fb}
.row .main{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .where{color:var(--muted);font-size:.9rem}
.uid{font-family:ui-monospace,Consolas,monospace;font-weight:600;white-space:nowrap}
.uid.big{font-size:1.25rem}
.st{display:inline-block;padding:2px 9px;border-radius:20px;font-size:.8rem;white-space:nowrap;justify-self:start;background:#e8eaed;color:#444}
.st-0{background:#e3f4ea;color:#14613a}.st-1{background:#e4eefb;color:#1b4f8f}.st-2{background:#fbe6e3;color:#8f2518}.st-3{background:#fdf1d8;color:#7a5200}
.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:14px}
.head{display:flex;justify-content:space-between;gap:14px}
.head .model{margin:0;color:var(--muted)}
.qr{width:110px;flex:none}.qr svg{width:100%;height:auto;display:block}
.qr-missing{font-size:.75rem;color:var(--muted);border:1px dashed var(--line);padding:20px 6px;text-align:center}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px;margin:16px 0}
.facts .full{grid-column:1/-1}
.facts dt{font-size:.78rem;color:var(--muted)}.facts dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.facts .due{color:var(--err)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
details{margin-top:14px}details summary{cursor:pointer;color:var(--brand)}details form{margin-top:12px}
.timeline .item{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px;margin-bottom:8px}
.timeline .when{font-size:.85rem;color:var(--muted)}
.timeline .by{font-size:.8rem;color:var(--muted);margin-top:2px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid2 .full{grid-column:1/-1}
.grid2.top-align{align-items:start;gap:14px}
.danger{margin:6px 4px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.refrow{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.refrow input{margin:0;flex:1;min-width:0}.refrow .btn{padding:8px 10px}.refrow span{white-space:nowrap}
.refrow.add{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.labels{display:flex;flex-wrap:wrap;gap:2mm}
.label{width:50mm;height:30mm;background:#fff;border:1px dashed #b9bfc7;display:flex;align-items:center;gap:1.5mm;padding:1.5mm;overflow:hidden;break-inside:avoid}
.lqr{width:26mm;flex:none}.lqr svg{width:100%;height:auto;display:block}
.ltxt{display:flex;flex-direction:column;font-size:7pt;line-height:1.2;min-width:0}
.ltxt .logo{height:auto;width:19mm;margin:0 0 1mm}.luid{font-family:ui-monospace,Consolas,monospace;font-weight:700;font-size:9pt;margin-top:1mm;white-space:nowrap}
@media(max-width:720px){
  .filters{grid-template-columns:1fr 1fr}.filters input[name=q]{grid-column:1/-1}
  .row{grid-template-columns:1fr auto;gap:2px 10px}.row .main,.row .where{grid-column:1/-1;white-space:normal}
  .facts{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}
  .idbox{order:5;width:100%}.idbox input{flex:1;width:auto}
  .actions .btn{flex:1 1 45%;text-align:center}
}
@media print{
  .no-print{display:none!important}body{background:#fff}main{max-width:none;padding:0}
  .label{border:1px solid #ccc}@page{margin:8mm}
}
.thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.thumb{width:120px;text-align:center}
.thumb img{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.upload input[type=file]{flex:1;min-width:200px;margin:0;padding:7px}.upload select{width:auto;margin:0}
.audit-banner{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fdf1d8;border:1px solid #ecd28f;border-radius:10px;padding:10px 14px;margin-bottom:12px}
.audit-banner.done{background:#e3f4ea;border-color:#a9d9bd}
.kitrow{grid-template-columns:110px 1.4fr 1fr auto}
.progress{height:10px;background:#e8eaed;border-radius:6px;overflow:hidden;margin:8px 0 14px}
.progress i{display:block;height:100%;background:var(--ok)}
.act{background:#fff;padding:24px;border:1px solid var(--line);border-radius:10px}
.act h1{text-align:center;font-size:1.2rem}
.act table{width:100%;border-collapse:collapse;margin:14px 0}
.act th,.act td{border:1px solid #888;padding:6px 8px;text-align:left;font-size:.9rem;vertical-align:top}
.act .signs{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px}
.act .line{border-bottom:1px solid #000;height:34px;margin-bottom:4px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:6px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;text-decoration:none;color:inherit}
.tile b{display:block;font-size:1.6rem}.tile span{color:var(--muted);font-size:.85rem}
@media print{.act{border:0;padding:0}}
@media(max-width:720px){.kitrow{grid-template-columns:1fr auto}}
.badge{background:var(--accent);color:#fff;border-radius:10px;padding:0 7px;font-size:.78rem}
.timeline .item.open{border-left-color:var(--err)}.timeline .item.closed{border-left-color:#b9bfc7}
a.tile:hover{border-color:var(--accent)}
h1{color:var(--brand)}
.act .logo{height:44px;margin:0}
.uid{color:var(--brand)}
@media print{.uid{color:#000}}
.top nav{flex:1 1 100%;order:10;gap:4px 18px;border-top:1px solid var(--line);padding-top:6px}
.top .idbox{margin-left:auto}
.upload input:not([type=file]){flex:1;min-width:180px;width:auto;margin:0}
@media(max-width:720px){
  .top nav{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;padding-bottom:4px}
  .top .idbox{margin-left:0}
  .who{margin-left:auto}.who span{display:none}
  .brand .logo{height:32px}
}
