.ship-page{max-width:1500px;margin:0 auto;padding-bottom:80px}.ship-page .title{align-items:flex-end}.ship-page h1,.ship-page h2{margin:0}.ship-page p{margin:.35rem 0 0;color:#66736f}.ship-page input,.ship-page select,.ship-page button{border-radius:9px}.ship-page input,.ship-page select{border:1px solid #d6dfdc;background:#f7f9f8;padding:9px 11px}.ship-page button{min-height:38px}.ship-page #shipUpload{display:flex;gap:8px;align-items:center}.ship-toolbar{display:flex;justify-content:space-between;align-items:end;margin:14px 0}.ship-toolbar label{display:grid;gap:4px;font-size:12px;font-weight:700}.ship-toolbar select{min-width:380px}.ship-toolbar span{color:#66736f;font-size:13px}.ship-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.ship-kpis>div{background:#fff;border:1px solid #dde5e2;border-radius:13px;padding:14px 16px;display:grid;gap:3px}.ship-kpis b{font:700 25px Georgia,serif;color:#174f42}.ship-kpis span{font-size:12px;color:#66736f}.ship-kpis .danger b{color:#a8322a}.ship-kpis .warn b{color:#a96700}.ship-card{background:#fff;border:1px solid #dde5e2;border-radius:15px;padding:14px;margin:12px 0;box-shadow:0 5px 18px rgba(26,54,47,.05)}.ship-section-head{margin-bottom:10px}.ship-section-head h2{font-size:20px}.ship-vendors{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:7px}.ship-vendors button{text-align:left;background:#f5f8f7;border:1px solid #dbe5e1;padding:10px 12px;display:grid;gap:3px}.ship-vendors button:hover{border-color:#8b0a7e;background:#fbf5fa}.ship-vendors span{font-size:11px;color:#66736f}.ship-vendors strong{color:#a8322a}.ship-filters{display:grid;grid-template-columns:1.6fr 1fr 1fr auto;gap:8px;margin-bottom:10px}.ship-table-wrap{overflow:auto;max-height:620px;border:1px solid #dfe7e4;border-radius:12px}.ship-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.ship-table thead{position:sticky;top:0;z-index:2}.ship-table th{background:#edf4f1;color:#173b33;text-align:left;padding:9px;border-bottom:1px solid #cfdcd7;white-space:nowrap}.ship-table td{padding:8px 9px;border-bottom:1px solid #e5ebe9;vertical-align:top}.ship-table td small{display:block;color:#72807b;margin-top:2px}.ship-table .num{text-align:right;font-weight:700}.ship-po{cursor:pointer}.ship-po:hover td{background:#faf7fa}.ship-detail td{background:#f7faf9;padding:7px 12px}.ship-detail td>div{display:grid;gap:5px}.ship-detail article{display:grid;grid-template-columns:1.3fr 1.5fr 1fr 1fr;gap:12px;padding:6px 9px;background:#fff;border-radius:8px}.ship-status{display:inline-block;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;white-space:nowrap;background:#e7efec;color:#275448}.ship-status.past_due_unbooked{background:#fde9e7;color:#9d2c25}.ship-status.past_due_not_departed{background:#fff0d9;color:#8e5800}.ship-status.due_7_days_unbooked,.ship-status.booking_pending,.ship-status.no_booking_activity{background:#fff7cc;color:#785d00}.ship-status.departed{background:#e2f4e9;color:#16633c}.ship-message{margin:8px 0;border-radius:9px;padding:10px 12px}.ship-message.good{background:#e7f5ec;color:#175c38}.ship-message.bad{background:#fdeceb;color:#9d2c25}.ship-page .empty{text-align:center;padding:28px;color:#72807b}@media(max-width:1000px){.ship-kpis{grid-template-columns:1fr 1fr}.ship-filters{grid-template-columns:1fr 1fr}.ship-page #shipUpload{align-items:stretch;flex-direction:column}.ship-toolbar{align-items:stretch;gap:8px;flex-direction:column}.ship-toolbar select{min-width:0;width:100%}}
/* Expanded FS operational fields and compact shortage review. */
.ship-page{width:min(96vw,1900px);max-width:1900px}
.ship-table-expanded{min-width:1780px}
.ship-table-expanded th,.ship-table-expanded td{padding:7px 8px}
.ship-table-expanded th:nth-child(4){min-width:190px}
.ship-table-expanded th:nth-child(6){min-width:125px}
.ship-table-expanded th:nth-child(13){min-width:105px}
.ship-detail article{grid-template-columns:1.1fr 1.5fr .8fr 1.2fr 1fr}
.ship-detail article.shortage{background:#fff6e8;border:1px solid #f0d29d}
.ship-detail article.shortage strong{color:#8d5700}
.ship-status.shortage_not_shipping{background:#fff0d9;color:#8d5700}
