/* Print Pack & Dispatch Control (v1.4) */

/* ---------- Print menu ---------- */
.pp-menu{position:relative;display:inline-block}
.pp-menu>summary{list-style:none;cursor:pointer}
.pp-menu>summary::-webkit-details-marker{display:none}
.pp-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:60;width:330px;max-width:88vw;background:#fff;border:1px solid var(--pw-line,#E4E7EE);border-radius:14px;box-shadow:0 18px 40px rgba(17,24,39,.18);padding:6px;display:flex;flex-direction:column;gap:2px;text-align:left}
.pp-mi{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:10px;color:#1F2937;text-decoration:none}
.pp-mi:hover{background:#F3F5FA}
.pp-mi svg{flex:0 0 auto;margin-top:2px;color:#6B7280}
.pp-mi b{display:block;font-size:13.5px;font-weight:700}
.pp-mi small{display:block;font-size:11.5px;color:#6B7280;font-weight:500;line-height:1.35}
.pp-mi.is-main{background:linear-gradient(135deg,#EEF2FF,#FDF2F8)}
.pp-mi.is-main svg{color:#4F46E5}
.pp-mi.is-vault{border-top:1px dashed #E4E7EE;margin-top:4px;padding-top:11px}
.pp-mi.is-vault svg{color:#059669}
.pw-table .pp-menu-list{right:0}
.pp-autosave{position:absolute;width:1px;height:1px;border:0;left:-9999px;top:0;opacity:0}

/* ---------- Common doc bits ---------- */
.pp-page{position:relative;background:#fff;color:#111;font-family:Arial,Helvetica,sans-serif}
.pp-t{width:100%;border-collapse:collapse;font-size:11.5px}
.pp-t th,.pp-t td{border:1px solid #111;padding:4px 6px;vertical-align:top}
.pp-t th{font-weight:700;text-align:left;background:#fff}
.pp-t .pp-dk,.pp-t tr.pp-dk th{background:#111;color:#fff;text-align:center;font-weight:700}
.pp-t .c{text-align:center}.pp-t .r{text-align:right}
.pp-muted{color:#6B7280}
.pp-h4{margin:14px 0 6px;font-size:13px}
.pp-page svg{max-width:100%}
.pp-part+.pp-part{break-before:page;page-break-before:always}
.pp-a4-stack .pp-page+.pp-page{break-before:page;page-break-before:always}

/* ---------- A4 · 3 AWB slips ---------- */
.pp-awb3{display:flex;flex-direction:column;gap:26px}
.pp-slip{border:1.5px solid #111;border-radius:6px;height:372px;display:flex;flex-direction:column;overflow:hidden;break-inside:avoid;page-break-inside:avoid;position:relative}
.pp-slip+.pp-slip:before{content:"✂";position:absolute;top:-22px;left:8px;font-size:13px;color:#9CA3AF}
.pp-slip+.pp-slip{box-shadow:0 -14px 0 -13px #fff}
.pp-slip-top{display:grid;grid-template-columns:1.1fr 1.3fr .9fr;gap:8px;align-items:center;padding:6px 10px;border-bottom:1.5px solid #111}
.pp-slip-brand{display:flex;flex-direction:column;gap:2px}
.pp-slip-brand img{max-height:38px;max-width:170px;border-radius:6px}
.pp-slip-brand small{font-size:9.5px;color:#374151}
.pp-slip-bar{text-align:center}
.pp-slip-bar svg{height:40px;width:100%}
.pp-slip-bar b{display:block;font:700 15px/1.1 "Courier New",monospace;letter-spacing:.5px}
.pp-slip-copy{text-align:right;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.pp-slip-copy span{font-size:10px;font-weight:800;letter-spacing:.8px;border:1px solid #111;padding:2px 6px;border-radius:4px}
.pp-st{font-style:normal;font-size:12px;font-weight:800;padding:4px 8px;border-radius:6px;background:#EEF2FF;color:#3730A3;border:1px solid #C7D2FE}
.pp-st-success{background:#ECFDF5;color:#065F46;border-color:#A7F3D0}
.pp-st-warn{background:#FFFBEB;color:#92400E;border-color:#FDE68A}
.pp-st-danger{background:#FEF2F2;color:#991B1B;border-color:#FECACA}
.pp-st-primary{background:#EFF6FF;color:#1E40AF;border-color:#BFDBFE}
.pp-slip-body{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 10px;flex:1}
.pp-box{border:1px solid #9CA3AF;border-radius:4px;padding:5px 7px;font-size:11px;line-height:1.35;display:flex;flex-direction:column;overflow:hidden}
.pp-box h6{margin:0 0 2px;font-size:9.5px;letter-spacing:.6px;color:#374151}
.pp-box b{font-size:12.5px}
.pp-grid{grid-column:1/-1;width:100%;border-collapse:collapse;font-size:10.5px}
.pp-grid th,.pp-grid td{border:1px solid #9CA3AF;padding:3px 5px;text-align:left}
.pp-grid th{background:#F3F4F6;width:13%;font-weight:700}
.pp-slip-foot{border-top:1.5px solid #111;padding:5px 10px;display:flex;justify-content:space-between;gap:10px;align-items:flex-end;font-size:10.5px}
.pp-slip-sign{display:flex;gap:18px}
.pp-slip-sign span{border-top:1px solid #111;padding-top:2px;min-width:118px;text-align:center;font-size:9.5px;margin-top:16px}

/* ---------- Airway bill ---------- */
.pp-awbill .pp-t{border:1.5px solid #111}
.pp-awbill-head td{vertical-align:middle}
.pp-awbill-co img{max-height:44px;max-width:210px;border-radius:6px;display:block}
.pp-awbill-co small{display:block;font-size:9.5px;margin-top:3px}
.pp-awbill-br{font-size:11px}.pp-awbill-br span{display:block;margin-top:3px}
.pp-awbill-awb{width:33%}.pp-awbill-awb div{font-size:15px}.pp-awbill-awb svg{height:38px;width:100%}
.pp-party p{margin:0 0 5px;font-size:11.5px;line-height:1.4}
.pp-chk{font-size:11px;line-height:1.55}
.pp-awbill-main th.pp-dk:last-child,.pp-awbill-main td:last-child{width:24%}
.pp-small{font-size:10px;line-height:1.35}
.pp-big{font-size:14px;font-weight:800}
.pp-sig{text-align:center;vertical-align:bottom!important;height:54px;font-size:10.5px}
.pp-awbill-inv td{height:19px}
.pp-awbill-mid,.pp-awbill-inv,.pp-awbill-foot,.pp-awbill-main{margin-top:-1.5px}

/* ---------- Thermal 4x6 ---------- */
.pp-thermals{display:flex;flex-direction:column;align-items:center;gap:18px}
.pp-therm{width:4in;height:6in;box-sizing:border-box;border:1.5px dashed #9CA3AF;padding:8px 10px;display:flex;flex-direction:column;gap:5px;font-family:Arial,Helvetica,sans-serif;color:#111;break-inside:avoid;page-break-inside:avoid;background:#fff}
.pp-th-head{display:flex;justify-content:space-between;align-items:flex-start;color:#065F46}
.pp-th-head b{display:block;font-size:14px;line-height:1.15}
.pp-th-head small{display:block;font-size:11px;font-weight:700}
.pp-th-head span{font-weight:800;font-size:12px}
.pp-th-awb{text-align:center;font-size:17px;font-weight:800}
.pp-th-bar{text-align:center}.pp-th-bar svg{height:44px;width:92%}.pp-th-bar small{display:block;font-size:10px;font-weight:700}
.pp-th-parties{display:grid;grid-template-columns:1fr 1fr;border:1px solid #111;font-size:10px;line-height:1.3}
.pp-th-parties>div{padding:4px 5px;display:flex;flex-direction:column}
.pp-th-parties>div+div{border-left:1px solid #111}
.pp-th-parties h6{margin:0 0 2px;font-size:9px}
.pp-th-grid{width:100%;border-collapse:collapse;font-size:10.5px;text-align:center}
.pp-th-grid th,.pp-th-grid td{border:1px solid #111;padding:2px}
.pp-th-grid td{font-weight:800;font-size:12px}
.pp-th-sort{background:#111;color:#fff;text-align:center;padding:4px 4px 6px;border-radius:2px}
.pp-th-sort small{display:block;font-size:9px;font-weight:700;letter-spacing:.5px}
.pp-th-sort b{font-size:22px;letter-spacing:1px}
.pp-th-foot{font-size:8px;text-align:center;color:#374151;margin-top:auto}
.pp-thermals.is-pack{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:14px}
.pp-thermals.is-pack .pp-therm{width:420px;height:630px}
@media print{.pp-therm{border:0}}

/* ---------- Stickers ---------- */
.pp-stickers{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pp-stk{border:1.5px solid #111;border-radius:8px;padding:6px 10px;height:176px;box-sizing:border-box;display:flex;flex-direction:column;gap:3px;break-inside:avoid;page-break-inside:avoid}
.pp-stk svg{height:36px;width:100%}
.pp-stk-top{display:flex;justify-content:space-between;font-size:12px}
.pp-stk-top span{font-weight:800;background:#111;color:#fff;padding:1px 7px;border-radius:4px}
.pp-stk-awb{text-align:center;font:700 14px "Courier New",monospace}
.pp-stk-row{display:flex;justify-content:space-between;font-size:11px;gap:6px}
.pp-stk-name{font-size:11px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- KYC ---------- */
.pp-kyc-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}
.pp-kyc-title{text-align:right}.pp-kyc-title h2{margin:0 0 4px;font-size:18px;letter-spacing:.5px}.pp-kyc-title span{display:block;font-size:12px}.pp-kyc-title svg{height:34px;width:220px}
.pp-kyc-t th{width:26%;background:#F3F4F6}
.pp-kyc-docs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pp-kyc-docs figure{margin:0;border:1px solid #D1D5DB;border-radius:8px;padding:6px;text-align:center}
.pp-kyc-docs img{max-width:100%;max-height:260px;object-fit:contain}
.pp-kyc-docs figcaption{font-size:11px;margin-top:4px}
.pp-kyc-file{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#6B7280}
.pp-kyc-paste{margin-top:14px;height:220px;border:2px dashed #9CA3AF;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#6B7280;font-size:13px}
.pp-kyc-decl{margin-top:14px;border:1px solid #111;padding:8px 10px;font-size:11.5px}
.pp-kyc-decl p{margin:4px 0 0;line-height:1.45}

/* ---------- Pack page ---------- */
.pp-pack-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#EEF2FF,#FDF2F8);border:1px solid #E0E7FF;border-radius:14px;padding:12px 14px;margin-bottom:18px}
.pp-pack-bar b{display:block;font-size:15px}.pp-pack-bar small{color:#6B7280;font-size:12px}
.pp-pack-act{display:flex;gap:8px;flex-wrap:wrap}
.pp-pack-msg{flex-basis:100%;margin:0;font-size:12.5px;color:#374151}
.pp-pack-msg.is-ok{color:#047857;font-weight:600}.pp-pack-msg.is-err{color:#B91C1C;font-weight:600}
.pp-part{padding-top:4px}
body.pw-print .pwb-dock,body.pw-print .pw-bot,body.pw-print .pw-wa-float,body.pw-print .pwb-launcher{display:none!important}

/* ---------- Dispatch manifest sheet ---------- */
.pp-man{padding:4px;overflow:hidden}
.pp-man-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:8px}
.pp-man-co{display:flex;gap:10px;align-items:flex-start}
.pp-man-co img{max-height:46px;max-width:190px;border-radius:6px}
.pp-man-co b{display:block;font-size:14px}.pp-man-co span{display:block;font-size:10.5px;color:#374151;line-height:1.35}
.pp-man-title{text-align:right}.pp-man-title h2{margin:0 0 4px;font-size:20px;letter-spacing:1px}.pp-man-title svg{height:34px;width:230px}
.pp-man-meta th{background:#F3F4F6;width:16%}
.pp-man-rows{margin-top:8px;font-size:10.5px}
.pp-man-rows thead th{background:#111;color:#fff;text-align:center;font-size:10px}
.pp-man-rows td small{display:block;color:#6B7280;font-size:9.5px}
.pp-man-rows tfoot th{background:#F3F4F6}
.pp-man-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.pp-man-sign div{display:flex;flex-direction:column;align-items:center;font-size:11px;text-align:center}
.pp-man-sign span{display:block;width:100%;border-top:1px solid #111;margin-bottom:4px}
.pp-man-sign small{color:#6B7280}
.pp-wm{position:absolute;top:42%;left:0;right:0;text-align:center;transform:rotate(-18deg);font-size:64px;font-weight:900;color:rgba(220,38,38,.12);pointer-events:none;letter-spacing:4px;z-index:2}

/* ---------- Carrier dispatch console page ---------- */
.pp-dsp-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.pp-dsp-filters .pw-field{margin:0;min-width:140px}
.pp-dsp-filters .pw-field label{font-size:11.5px}
.pp-dsp-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;align-items:start}
.pp-dsp-list{max-height:720px;overflow:auto}
.pp-dsp-row{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid #EEF0F4;cursor:pointer}
.pp-dsp-row:hover{background:#F8FAFC}
.pp-dsp-row.is-on{background:#EEF2FF}
.pp-dsp-row b{font-family:ui-monospace,Menlo,monospace;font-size:13px}
.pp-dsp-row small{display:block;color:#6B7280;font-size:12px}
.pp-dsp-row .r{text-align:right;font-size:12.5px}
.pp-dsp-row.is-blocked{opacity:.6}
.pp-dsp-row em{font-style:normal;font-size:11px;color:#B91C1C;display:block}
.pp-dsp-sheet{background:#E9EBF0;border-radius:14px;padding:14px;overflow:auto}
.pp-dsp-sheet .pp-man{background:#fff;padding:14px;border-radius:6px;box-shadow:0 10px 30px rgba(17,24,39,.12)}.pp-dsp-sheet .pp-man-rows{font-size:9.5px}.pp-dsp-sheet .pp-man-rows th,.pp-dsp-sheet .pp-man-rows td{padding:3px}.pp-dsp-sheet .pp-wm{font-size:38px}.pp-dsp-sheet .pp-man-title h2{font-size:16px}.pp-dsp-sheet .pp-man-title svg{width:160px}
.pp-dsp-head{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid #EEF0F4}
.pp-dsp-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.pp-flow{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;margin:4px 0 0}
.pp-flow span{padding:3px 9px;border-radius:999px;background:#F3F4F6;color:#374151;font-weight:600}
.pp-flow span.is-on{background:#4F46E5;color:#fff}
@media(max-width:1100px){.pp-dsp-split{grid-template-columns:1fr}}

/* ---------- Daily report ---------- */
.pp-day{font-family:Arial,Helvetica,sans-serif}
.pp-day-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:stretch;border:2px solid #111;margin-bottom:10px}
.pp-day-head>div:first-child{padding:10px 12px;display:flex;flex-direction:column;justify-content:center}
.pp-day-head h2{margin:0;font-size:22px;letter-spacing:1px}
.pp-day-head p{margin:2px 0 0;font-size:12px;letter-spacing:2px;font-weight:700}
.pp-day-box{border-left:2px solid #111;font-size:12px;min-width:250px}
.pp-day-box div{display:grid;grid-template-columns:90px 10px 1fr;padding:6px 10px;border-bottom:1px solid #111}
.pp-day-box div:last-child{border-bottom:0}
.pp-day h3{margin:12px 0 4px;font-size:13px;background:#111;color:#fff;padding:5px 8px}
.pp-day .pp-t{font-size:10.5px}
.pp-day .pp-t thead th{background:#F3F4F6;text-align:center;font-size:10px}
.pp-day .pp-t td{height:17px}
.pp-day .pp-t tfoot th{background:#F3F4F6}
.pp-day-pl{margin-top:10px}
.pp-day-pl td.r b{font-size:12px}
.pp-day-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px;font-size:11px;text-align:center}
.pp-day-sign span{display:block;border-top:1px solid #111;padding-top:3px}
.pp-exp-grid{width:100%;border-collapse:collapse}
.pp-exp-grid th{font-size:11.5px;text-align:left;color:#6B7280;padding:4px}
.pp-exp-grid td{padding:3px}
.pp-exp-grid input,.pp-exp-grid select{width:100%;min-width:0}
.pp-awbill-ttl{font-size:12px!important;font-weight:800;letter-spacing:2px;text-align:right}
.pp-th-grid2 td{font-size:10.5px;font-weight:700}.pp-th-bar2 svg{height:30px;width:70%}
.pp-stk-big{display:flex;align-items:center;gap:10px;border-top:1px dashed #9CA3AF;padding-top:3px}.pp-stk-big b{font-size:26px;line-height:1;background:#111;color:#fff;padding:2px 8px;border-radius:4px}.pp-stk-big span{font-weight:800;font-size:13px}
.pp-mi,.pp-mi:hover{color:#1F2937!important;text-decoration:none!important}.pp-mi b{color:#111827}.pp-mi small{white-space:normal}.pp-menu-list{width:310px}.pw-table-wrap:has(details.pp-menu[open]){overflow:visible}.pp-row-act{white-space:nowrap}.pp-row-act .pp-menu{vertical-align:middle}
/* Pack / PDF fit */
.pp-pack .no-print,.pp-pack .pwd-tool{display:none!important}
.pp-slip{height:352px}
.pp-awb3{gap:20px}
.pp-thermals.is-pack{gap:10px}
.pp-thermals.is-pack .pp-therm{width:400px;height:600px;padding:7px 9px}
/* html2pdf renders at the A4 inner width (~748px): fit 3 slips / 2 labels per page */
.pp-slip{height:336px}
.pp-awb3{gap:16px}
.pp-thermals.is-pack .pp-therm{width:364px;height:546px;padding:6px 8px;gap:4px}
.pp-thermals.is-pack .pp-th-sort b{font-size:19px}
.pp-thermals.is-pack .pp-th-bar svg{height:38px}
