/* Дашборд руководителя производства: план-факт по фасовке. */
.pd-wrap { padding: 16px 20px 40px; }
.pd-head { display: flex; flex-wrap: wrap; gap: 14px; align-items: center;
           justify-content: space-between; margin-bottom: 18px; }
.pd-title { margin: 0; font-size: 20px; font-weight: 650; }
.pd-filters { display: flex; gap: 10px; align-items: center; font-size: 14px; }
.pd-filters input { margin-left: 6px; padding: 4px 8px; border: 1px solid #ccd3da;
                    border-radius: 6px; }

.pd-cards { display: grid; gap: 12px; margin-bottom: 20px;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.pd-card { background: #fff; border: 1px solid #e3e8ed; border-radius: 10px;
           padding: 14px 16px; }
.pd-card-cap { font-size: 12px; text-transform: uppercase; letter-spacing: .06em;
               color: #7a848d; }
.pd-card-val { font-size: 22px; font-weight: 700; margin-top: 6px;
               font-variant-numeric: tabular-nums; }
.pd-card-sub { font-size: 12.5px; color: #7a848d; margin-top: 4px; }

.pd-tablewrap { overflow-x: auto; border: 1px solid #e3e8ed; border-radius: 10px;
                background: #fff; }
.pd-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.pd-table th { text-align: left; font-size: 11.5px; text-transform: uppercase;
               letter-spacing: .05em; color: #7a848d; font-weight: 600;
               padding: 11px 12px; border-bottom: 1px solid #e3e8ed;
               white-space: nowrap; }
.pd-table td { padding: 9px 12px; border-bottom: 1px solid #f0f3f6;
               vertical-align: top; }
.pd-table tr:last-child td { border-bottom: 0; }
.pd-table .n { text-align: right; font-variant-numeric: tabular-nums;
               white-space: nowrap; }
.pd-prod { max-width: 340px; }
.pd-sub { display: block; font-size: 11.5px; color: #8a939b; margin-top: 2px; }
.pd-dim { color: #98a1a9; }
.pd-empty { text-align: center; color: #8a939b; padding: 26px 0; }

/* Подсветка строк — только там, где план настоящий (снимок при старте). */
.pd-under { background: #fdf1ee; }
.pd-under td:first-child { box-shadow: inset 3px 0 0 #b3421f; }
.pd-over  { background: #fdf8e9; }
.pd-over td:first-child { box-shadow: inset 3px 0 0 #a6761b; }
.pd-none td { color: #6f7a83; }

.pd-caveats { margin-top: 20px; padding: 14px 16px; background: #f4f7f9;
              border: 1px solid #e3e8ed; border-radius: 10px; font-size: 13.5px;
              color: #55606a; }
.pd-caveats-h { font-weight: 650; margin-bottom: 6px; color: #37424c; }
.pd-caveats ul { margin: 0; padding-left: 20px; }
.pd-caveats li { margin-bottom: 4px; }

/* Отклонение факта от плана */
.pd-worse { color: #b3421f; font-weight: 600; }
.pd-better { color: #1f7a4d; font-weight: 600; }

/* Поле выбора периода — как на аналитике простоев */
.pd-filters-cap { font-size: 12px; color: #94a3b8; }
.pd-range { font-size: 13px; background: #fff; border: 1px solid #e2e8f0;
            border-radius: 9px; padding: 8px 12px; width: 180px; cursor: pointer;
            color: #0f172a; font-variant-numeric: tabular-nums; }

/* Подсветка по отклонению себестоимости */
.pd-worse-row { background: #fdf1ee; }
.pd-worse-row td:first-child { box-shadow: inset 3px 0 0 #b3421f; }
.pd-better-row { background: #eef7f2; }
.pd-better-row td:first-child { box-shadow: inset 3px 0 0 #1f7a4d; }
.pd-nowrap { white-space: nowrap; }

/* Непроведённый документ: виден наравне, но помечен */
.pd-unposted { display: inline-block; margin-left: 6px; font-size: 10.5px;
               font-weight: 650; color: #8a5a00; background: #fdf3dc;
               border: 1px solid #f0dfb4; border-radius: 20px; padding: 1px 7px;
               vertical-align: 1px; white-space: nowrap; }
.pd-unposted-row td { background-image: linear-gradient(
    135deg, rgba(240,223,180,.16) 25%, transparent 25%,
    transparent 50%, rgba(240,223,180,.16) 50%, rgba(240,223,180,.16) 75%,
    transparent 75%); background-size: 8px 8px; }
