:root{--g:#2f8f2f;--gd:#1f6b1f;--gl:#eaf5e4;--ink:#222;--mut:#666;--bd:#d7dde3;--pri:#0b6bcb}
*{box-sizing:border-box}
body{margin:0;font:14px/1.4 "Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:#f4f6f8}
main{max-width:1200px;margin:18px auto;padding:0 16px}
.topbar{display:flex;align-items:center;justify-content:space-between;background:#16351a;color:#fff;padding:10px 20px}
.brand{font-weight:700;font-size:16px}.brand span{font-weight:400;opacity:.8;margin-left:6px}
.topbar nav a{color:#dfe;text-decoration:none;margin-left:18px;padding:4px 0}.topbar nav a.on{border-bottom:2px solid #8fd18f;color:#fff}
.card{background:#fff;border:1px solid var(--bd);border-radius:8px;padding:14px;margin-bottom:14px}
.btn{border:1px solid #bbb;background:#fff;border-radius:6px;padding:7px 12px;cursor:pointer;font:inherit;text-decoration:none;color:inherit;display:inline-block}
.btn.primary{background:var(--g);border-color:var(--g);color:#fff}.btn.danger{color:#b00020;border-color:#e3a3ad}
input,select,textarea{font:inherit}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.toolbar input,.toolbar select{padding:7px 8px;border:1px solid #bbb;border-radius:6px}.toolbar .grow{flex:1 1 320px}
.count{color:var(--mut);margin:4px 2px 8px}
table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--bd)}
table.list th,table.list td{padding:8px 10px;border-bottom:1px solid #eceff2;text-align:left;vertical-align:top}
table.list th{background:#f0f4f0;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#355;white-space:nowrap}
table.list th[data-s]{cursor:pointer}table.list th.sorted::after{content:" ▲"}table.list th.sorted.desc::after{content:" ▼"}
table.list tbody tr{cursor:pointer}table.list tbody tr:hover{background:#f6fbf4}
.r{text-align:right}.pill{display:inline-block;padding:1px 8px;border-radius:10px;background:#eef;font-size:12px}
.due-late{color:#b00020;font-weight:600}.due-soon{color:#b86e00;font-weight:600}
.mat{display:inline-block;background:var(--gl);border:1px solid #cfe6c4;border-radius:4px;padding:0 6px;font-size:12.5px}
.drop{border:2px dashed #9bc79b;text-align:center;padding:36px;background:#fbfffa;transition:.15s}.drop.over{background:#e9f7e4;border-color:var(--g)}
.drop .big{font-size:22px;font-weight:600;color:var(--gd);margin-bottom:6px}.drop .hint{color:var(--mut);margin-top:10px;font-size:13px}.link{color:var(--pri);cursor:pointer;text-decoration:underline}
.status{margin:8px 0;color:var(--mut)}
.order{border-left:4px solid var(--g)}.order h3{margin:0 0 8px;font-size:16px}.order .file{color:var(--mut);font-weight:400;font-size:12px}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 12px}.fgrid label{font-size:11px;color:#456;text-transform:uppercase;display:block}
.fgrid input,.fgrid textarea{width:100%;padding:5px 7px;border:1px solid #ccc;border-radius:4px}.fgrid .w2{grid-column:span 2}
.warn{background:#fff7e0;border:1px solid #f0d58a;border-radius:6px;padding:6px 10px;margin:8px 0;font-size:13px}
table.edit{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px}table.edit th{font-size:11px;text-transform:uppercase;color:#456;text-align:left;padding:4px}
table.edit td{padding:2px 3px;vertical-align:top}table.edit input,table.edit textarea{width:100%;padding:4px 5px;border:1px solid #ccc;border-radius:4px;font-size:13px}
table.edit tr.grp td{background:var(--gl);font-weight:600;color:var(--gd);padding:5px 6px;border-top:6px solid #fff}
.groups{margin-top:8px;font-size:13px}.groups b{color:var(--gd)}
.savebar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;box-shadow:0 -2px 8px rgba(0,0,0,.08)}
.result a{margin-right:8px}
.login{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{max-width:380px;margin:40px auto;display:flex;flex-direction:column;gap:10px}
.login-card input{padding:9px;border:1px solid #bbb;border-radius:6px}.err{color:#b00020}
.cost-card h3{margin:0 0 8px;font-size:15px}.cost-card small{color:var(--mut);font-weight:400}tr.svc td{color:#555;font-style:italic}

/* ===================== JOB TICKET (replicates Tony's template) ===================== */
.docket-main{max-width:800px}
.docket-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.docket-actions select{padding:6px;border-radius:6px}
.sib{font-size:12px}.sib a{margin-left:6px;color:var(--pri)}.sib a.on{font-weight:700;color:var(--ink)}
#saveMsg{color:var(--g);font-weight:600}
.ticket{background:#fff;width:760px;margin:0 auto;padding:10px 12px;font-family:"Segoe UI",Arial,sans-serif;font-size:12px;color:#111}
.ticket input,.ticket textarea{border:0;background:transparent;font:inherit;color:inherit;width:100%;padding:1px 2px;outline:none}
.ticket input:focus,.ticket textarea:focus{background:#fffbe0}
.ticket input[type=checkbox]{width:13px;height:13px;margin:0 3px 0 0;vertical-align:-2px;accent-color:#1a73e8}
.t-head{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:center;margin-bottom:4px}
.t-date{font-weight:700;font-size:15px;color:var(--gd);display:flex;gap:6px;align-items:center}.t-date input{color:#111;font-size:15px;font-weight:700;width:130px}
.t-title{text-align:center;font-weight:700;font-size:19px;color:var(--gd);letter-spacing:.02em}
.t-docket{font-weight:700;font-size:15px;color:var(--gd);display:flex;gap:6px;align-items:center;justify-content:center}.t-docket input{color:#111;font-size:14px;width:120px}
.tbox{width:100%;border:1.5px solid var(--g);border-collapse:collapse;margin-bottom:7px;table-layout:fixed}
.tbox td{border:1px solid var(--g);padding:0;vertical-align:top}
.tbox label{display:block;background:var(--gl);color:var(--gd);font-size:11.5px;padding:1px 3px;text-transform:none}
.tbox td>input,.tbox td>textarea{padding:3px 3px 4px;min-height:20px;display:block}
.ticket textarea.auto{resize:none;overflow:hidden;line-height:1.35}
.plus{display:inline-block;background:var(--g);color:#fff;font-weight:700;width:12px;height:12px;line-height:11px;text-align:center;font-size:12px;border-radius:2px}
.qtyrow td{vertical-align:middle}.qtyrow td.inline{display:flex;align-items:center;background:linear-gradient(90deg,var(--gl) 0 38%,#fff 38%)}
.lbl-inline{background:none!important;width:38%;flex:none;line-height:1.1}.qtyrow td.inline input{flex:1}
.qtyrow td.cb label{background:none;color:var(--gd);font-weight:700;font-size:12px;padding:5px 4px}
td.nopad .lw{display:flex;align-items:center}.lw span{padding:0 4px;color:var(--gd);background:var(--gl);align-self:stretch;display:flex;align-items:center}.lw input{flex:1}
label.b,.b{font-weight:700}
.dates td{width:20%}
.sect{border:1.5px solid var(--g);padding:0 0 4px}
.sect-h{background:var(--gl);color:var(--gd);font-weight:700;font-size:12px;padding:1px 3px;border-bottom:1px solid var(--g)}
.cbgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px 6px;padding:2px 16px}
.tbox .cbgrid label,.cbgrid label{background:none;padding:0;color:var(--gd);font-size:12px;white-space:nowrap;display:flex;align-items:center}
.cbgrid .line-only{display:none}
.cbgrid .other{grid-column:1/3}.uline{border-bottom:1px solid #333!important;margin-left:6px}
.cbgrid.pk{grid-template-columns:1fr 1fr 1fr 1fr}.cbgrid.pk .bundle{grid-column:1/3}
.ship-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:6px;padding:2px 3px}
.tbox .ship-grid label,.ship-grid label{background:none;padding:0;color:var(--gd);font-size:11.5px;display:flex;gap:4px;align-items:center}.ship-grid label input{flex:1}
.ship-grid textarea{resize:vertical;font-size:13px;min-height:44px}.ship-grid .ref{margin-top:18px}
.notes-box{border:1.5px solid var(--g);min-height:120px}
.notes-ta{resize:vertical;padding:3px 4px!important;font-size:12.5px!important}
table.items{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11.5px}
table.items th{background:var(--gl);color:var(--gd);font-weight:600;text-align:left;padding:1px 3px;border:1px solid #b9d9ad}
table.items td{border:1px solid #d5e8cd;padding:0 1px;vertical-align:top}table.items textarea{resize:none;overflow:hidden;min-height:18px;line-height:1.3}
table.items td:first-child{text-align:center;color:var(--gd)}
.pv{display:none;white-space:pre-wrap;word-break:break-word;padding:1px 2px}
@media print{
  .ticket textarea{display:none!important}.ticket .pv{display:block}.tbox td>.pv{padding:3px 3px 4px;min-height:20px}
  .ship-grid .pv{font-size:13px}.notes-box>.pv{padding:3px 4px;font-size:12.5px}
  @page{size:letter portrait;margin:0.4in}
  body{background:#fff}.no-print,.topbar{display:none!important}
  main,.docket-main{margin:0;padding:0;max-width:none}
  .ticket{width:100%;padding:0}
  .ticket input:focus,.ticket textarea:focus{background:none}
  .ticket textarea{resize:none}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media (max-width:820px){.ticket{width:100%}.fgrid{grid-template-columns:1fr 1fr}}
[hidden]{display:none!important}
