/* projects-manage.css — Project Management Page Styles v2 */

/* ── Header & Stats ── */
.pm-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px; }
.pm-stats { display:flex;gap:10px;flex-wrap:wrap; }
.pm-stat { background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 18px;min-width:80px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,0.04); }
.pm-stat-queue { cursor:pointer;border-color:#c7d2fe;background:#eef2ff; }
.pm-stat-queue:hover { background:#e0e7ff; }
.pm-stat-num { font-size:22px;font-weight:800;line-height:1.1;font-family:'JetBrains Mono','SF Mono',monospace; }
.pm-stat-label { font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:0.5px;margin-top:2px;font-weight:600; }

/* ── Buttons ── */
.pm-btn { border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;padding:8px 16px;transition:all 0.15s;font-family:inherit; }
.pm-btn-primary { background:#276749;color:#fff; }
.pm-btn-primary:hover { background:#1e5239; }
.pm-btn-sm { padding:5px 12px;font-size:11px;border-radius:6px; }
.pm-btn-ghost { background:transparent;color:#64748b;border:1px dashed #cbd5e1; }
.pm-btn-ghost:hover { background:#f8fafc;border-color:#94a3b8; }
.pm-btn-danger { background:transparent;color:#ef4444;border:1px solid #fecaca; }
.pm-btn-danger:hover { background:#fef2f2; }
.pm-btn-recalc { background:#eef2ff;color:#6366f1;border:1px solid #c7d2fe; }
.pm-btn-recalc:hover { background:#e0e7ff; }
.pm-icon-btn { background:none;border:none;cursor:pointer;padding:2px 6px;font-size:13px;opacity:0.3;transition:opacity 0.15s;border-radius:4px; }
.pm-icon-btn:hover { opacity:1;background:#fee2e2; }

/* ── Project Cards ── */
.pm-projects { display:flex;flex-direction:column;gap:12px; }
.pm-project { background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,0.04);transition:box-shadow 0.2s; }
.pm-project:hover { box-shadow:0 2px 8px rgba(0,0,0,0.08); }
.pm-project-done { opacity:0.55; }
.pm-project-done:hover { opacity:0.85; }

.pm-project-head { display:flex;justify-content:space-between;align-items:center;padding:14px 18px;cursor:pointer;gap:16px;transition:background 0.15s; }
.pm-project-head:hover { background:#f8fafc; }
.pm-project-left { display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0; }
.pm-expand-icon { font-size:14px;color:#94a3b8;margin-top:3px;width:14px; }
.pm-project-title { font-size:15px;font-weight:700;color:#1e293b; }
.pm-project-meta { font-size:11px;color:#94a3b8;margin-top:2px; }
.pm-cat-row { display:flex;gap:5px;margin-top:5px;flex-wrap:wrap; }
.pm-cat-chip { display:inline-block;padding:1px 7px;border-radius:5px;font-size:9px;font-weight:700;border:1px solid;background:#fff;text-transform:uppercase;letter-spacing:0.3px; }

.pm-project-right { text-align:right;min-width:90px; }
.pm-pct-group { margin-bottom:2px; }
.pm-pct { font-size:24px;font-weight:800;font-family:'JetBrains Mono','SF Mono',monospace;line-height:1; }
.pm-pct-sub { font-size:11px;font-weight:600; }
.pm-dh-badge { font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;border:1px solid;display:inline-block;margin-bottom:4px; }
.pm-pbar { height:4px;background:#e2e8f0;border-radius:3px;overflow:hidden;width:80px; }
.pm-pbar-fill { height:100%;border-radius:3px;transition:width 0.5s ease; }

/* ── Project Body ── */
.pm-body { border-top:1px solid #e2e8f0;padding:16px 18px;background:#fafbfc; }
.pm-section-label { font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px; }
.pm-detail-bar { display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px; }
.pm-field label { display:block;font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px; }
.pm-field select,.pm-field input[type="date"],.pm-field input[type="number"],.pm-field input[type="text"] {
    width:100%;padding:5px 7px;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;font-family:inherit;background:#fff;color:#334155;transition:border-color 0.15s;box-sizing:border-box;
}
.pm-field select:focus,.pm-field input:focus { border-color:#6366f1;outline:none; }
.pm-full-field { margin-bottom:14px; }
.pm-full-field textarea { width:100%;padding:6px 8px;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;font-family:inherit;resize:vertical;background:#fff;color:#334155;box-sizing:border-box; }

/* ── Manual Progress Override ── */
.pm-override-bar { display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:14px; }
.pm-override-label { font-size:11px;font-weight:600;color:#64748b;white-space:nowrap; }
.pm-proj-slider { flex:1;max-width:300px; }

/* ── Milestones ── */
.pm-ms-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-top:4px; }
.pm-ms-title { font-size:12px;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:0.5px; }
.pm-mat-summary { font-weight:500;text-transform:none;letter-spacing:0;margin-left:8px;font-size:11px; }

.pm-ms-colhead {
    display:grid;grid-template-columns:30px 1fr 70px 95px 50px 120px 80px 90px 40px 30px;
    gap:3px;padding:5px 8px;font-size:9px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:0.5px;
    border-bottom:2px solid #e2e8f0;background:#f1f5f9;border-radius:6px 6px 0 0;
}

.pm-ms-row { border-bottom:1px solid #f1f5f9;background:#fff; }
.pm-ms-row:last-child { border-bottom:none; }
.pm-ms-overdue { background:#fff5f5; }

.pm-ms-main {
    display:grid;grid-template-columns:30px 1fr 70px 95px 50px 120px 80px 90px 40px 30px;
    gap:3px;padding:7px 8px;align-items:center;cursor:pointer;transition:background 0.1s;font-size:12px;
}
.pm-ms-main:hover { background:#f8fafc; }

.pm-col-seq { font-size:10px;color:#94a3b8;font-weight:600;text-align:center; }
.pm-col-name { display:flex;align-items:center;gap:3px;min-width:0;overflow:hidden; }
.pm-ms-expand { font-size:10px;color:#94a3b8;width:12px;text-align:center;flex-shrink:0; }
.pm-ms-name-text { white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;color:#334155; }
.pm-comp-count { flex-shrink:0;font-size:9px;background:#eef2ff;color:#6366f1;padding:0px 4px;border-radius:3px;font-weight:700; }

/* Date Health badges */
.pm-dh { display:inline-block;font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;white-space:nowrap; }
.pm-dh-done { color:#22c55e;background:#f0fdf4; }
.pm-dh-ahead { color:#3b82f6;background:#eff6ff; }
.pm-dh-upcoming { color:#94a3b8;background:#f8fafc; }
.pm-dh-risk { color:#f59e0b;background:#fffbeb; }
.pm-dh-behind { color:#ef4444;background:#fef2f2; }

.pm-status-sel { border:1px solid #e2e8f0;border-radius:5px;padding:2px 3px;font-size:10px;font-weight:600;background:#fff;cursor:pointer;width:100%;font-family:inherit; }
.pm-weight-input { border:1px solid #e2e8f0;border-radius:5px;padding:2px 4px;font-size:11px;width:44px;text-align:center;font-family:inherit;background:#fff;font-weight:600;color:#6366f1; }
.pm-owner-sel { border:1px solid #e2e8f0;border-radius:5px;padding:2px 3px;font-size:10px;width:100%;background:#fff;cursor:pointer;font-family:inherit; }
.pm-date-input { border:1px solid #e2e8f0;border-radius:5px;padding:2px 3px;font-size:10px;width:100%;font-family:inherit;background:#fff;color:#334155; }

/* Progress slider */
.pm-progress-slider { width:70px;height:4px;accent-color:#6366f1;cursor:pointer;-webkit-appearance:none;appearance:none;background:#e2e8f0;border-radius:2px;outline:none; }
.pm-progress-slider::-webkit-slider-thumb { -webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#6366f1;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.2); }
.pm-ms-slider { width:60px; }
.pm-slider-val { font-size:10px;font-weight:700;margin-left:3px;min-width:28px;font-family:'JetBrains Mono',monospace; }

.pm-col-progress { display:flex;align-items:center; }
.pm-col-days { text-align:center; }

/* Expected progress indicator */
.pm-expected-bar { padding:2px 8px 6px 42px; }
.pm-expected-track { position:relative;height:3px;background:#e2e8f0;border-radius:2px;overflow:visible; }
.pm-expected-fill { height:100%;border-radius:2px;transition:width 0.3s; }
.pm-expected-marker { position:absolute;top:-3px;width:2px;height:9px;background:#1e293b;border-radius:1px;transform:translateX(-1px); }
.pm-expected-label { font-size:9px;color:#94a3b8;margin-top:2px;display:block; }

/* Blocker & dates */
.pm-ms-blocker { padding:2px 8px 6px 42px; }
.pm-blocker-input { width:100%;padding:4px 7px;border:1px solid #e2e8f0;border-radius:5px;font-size:11px;font-family:inherit;color:#ef4444;background:#fff;box-sizing:border-box; }
.pm-blocker-input::placeholder { color:#cbd5e1; }
.pm-ms-dates { padding:4px 8px 8px 42px;display:flex;align-items:center;gap:8px;font-size:11px; }
.pm-ms-dates label { font-size:10px;color:#94a3b8;font-weight:600; }

/* ── Sub-components ── */
.pm-comps { padding:0 8px 8px 42px; }
.pm-comp-row { display:grid;grid-template-columns:6px 1fr 90px 48px 120px 80px 24px;gap:5px;align-items:center;padding:4px 6px;border-bottom:1px solid #f1f5f9;font-size:11px;background:#fafbfc;border-radius:3px;margin-bottom:1px; }
.pm-comp-row:hover { background:#f1f5f9; }
.pm-comp-dot { width:6px;height:6px;border-radius:50%;flex-shrink:0; }
.pm-comp-name-input { border:none;background:transparent;font-size:11px;width:100%;font-family:inherit;color:#475569;padding:1px 3px;border-radius:3px; }
.pm-comp-name-input:focus { background:#fff;border:1px solid #e2e8f0;outline:none; }
.pm-comp-sel { font-size:9px;padding:1px 2px; }
.pm-comp-add { padding:5px 0; }

/* ── Materials ── */
.pm-mat-header { display:flex;justify-content:space-between;align-items:center;margin:14px 0 6px;padding-top:10px;border-top:1px solid #e2e8f0;cursor:pointer; }
.pm-mat-table { margin-bottom:12px; }
.pm-mat-head { display:grid;grid-template-columns:1fr 55px 60px 65px 55px 70px 75px 28px;gap:3px;padding:4px 6px;font-size:9px;font-weight:700;color:#94a3b8;text-transform:uppercase;border-bottom:1px solid #e2e8f0;background:#f8fafc;border-radius:4px 4px 0 0; }
.pm-mat-row { display:grid;grid-template-columns:1fr 55px 60px 65px 55px 70px 75px 28px;gap:3px;padding:4px 6px;border-bottom:1px solid #f1f5f9;align-items:center;font-size:11px; }
.pm-mat-row:hover { background:#f8fafc; }
.pm-mat-input { border:none;background:transparent;font-size:11px;width:100%;font-family:inherit;padding:2px 3px; }
.pm-mat-input:focus { background:#fff;border:1px solid #e2e8f0;outline:none;border-radius:4px; }
.pm-mat-num { border:1px solid #e2e8f0;border-radius:4px;padding:2px 4px;font-size:11px;width:100%;text-align:right;font-family:inherit;box-sizing:border-box; }
.pm-mat-sel { border:1px solid #e2e8f0;border-radius:4px;padding:2px 3px;font-size:10px;font-weight:600;width:100%;background:#fff;font-family:inherit; }

/* ── Progress Queue Modal ── */
.pm-queue-overlay { position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px; }
.pm-queue-modal { background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,0.2); }
.pm-queue-head { display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0; }
.pm-queue-head h3 { margin:0;font-size:16px;color:#1e293b; }
.pm-queue-item { padding:12px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:10px;background:#fafbfc; }
.pm-queue-project { font-weight:700;color:#1e293b;font-size:13px;margin-bottom:4px; }
.pm-queue-from { font-size:11px;color:#64748b;margin-bottom:6px; }
.pm-queue-text { font-size:12px;color:#475569;background:#fff;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;margin-bottom:6px;font-style:italic; }
.pm-queue-suggest { font-size:12px;color:#6366f1;margin-bottom:8px; }
.pm-queue-actions { display:flex;gap:8px; }

/* ── Project Actions ── */
.pm-project-actions { margin-top:14px;padding-top:10px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end; }

/* ── Responsive ── */
@media (max-width:1100px) {
    .pm-ms-colhead,.pm-ms-main { grid-template-columns:24px 1fr 60px 85px 45px 100px 30px; }
    .pm-col-owner,.pm-col-date,.pm-col-days { display:none; }
    .pm-comp-row { grid-template-columns:6px 1fr 80px 45px 100px 24px; }
    .pm-comp-own { display:none; }
    .pm-mat-head,.pm-mat-row { grid-template-columns:1fr 50px 55px 60px 70px 28px; }
    .pm-mat-c-used,.pm-mat-c-cost { display:none; }
}
@media (max-width:700px) {
    .pm-ms-colhead,.pm-ms-main { grid-template-columns:1fr 85px 90px 30px; }
    .pm-col-seq,.pm-col-health,.pm-col-weight,.pm-col-owner,.pm-col-date,.pm-col-days { display:none; }
    .pm-detail-bar { grid-template-columns:1fr 1fr; }
    .pm-stat { min-width:65px;padding:8px 10px; }
    .pm-stat-num { font-size:18px; }
    .pm-comp-row { grid-template-columns:6px 1fr 80px 90px 24px; }
    .pm-comp-wt,.pm-comp-own { display:none; }
    .pm-mat-head,.pm-mat-row { grid-template-columns:1fr 55px 70px 28px; }
    .pm-mat-c-unit,.pm-mat-c-proc,.pm-mat-c-used,.pm-mat-c-cost { display:none; }
}
