.pl-workspace { max-width:1600px; min-width:0; margin:0 auto; }
.pl-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.pl-heading h1 { font-size:25px; margin:0 0 5px; }
.pl-heading p { font-size:12px; color:var(--muted); margin:0; }
.pl-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.pl-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:0 0 16px; }
.pl-toolbar label { display:grid; gap:5px; font-size:11px; color:var(--muted); }
.pl-toolbar input,.pl-toolbar select { min-height:38px; padding:8px 10px; }
.pl-toolbar .pl-range { max-width:160px; }
.pl-tabs { display:flex; flex-wrap:wrap; gap:4px; }
.pl-tabs button { min-height:34px; padding:6px 11px; font-size:12px; }
.pl-tabs button.active { color:var(--teal); background:var(--teal-soft); border-color:#9cb9aa; }
.pl-subline { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; color:var(--muted); font-size:12px; margin:12px 0; }
.pl-summary { display:flex; align-items:stretch; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--surface); margin-bottom:16px; }
.pl-summary > button { flex:1; min-width:0; text-align:left; padding:12px 16px; border:0; border-right:1px solid var(--line); border-radius:0; background:transparent; }
.pl-summary > button:last-child { border-right:0; }
.pl-summary strong { display:block; font-size:20px; }
.pl-summary span { font-size:11px; color:var(--muted); }
.pl-summary > button.active { background:var(--teal-soft); }
.pl-scroll { max-width:100%; min-width:0; overflow:auto; border:1px solid var(--line); background:var(--surface); border-radius:8px; overscroll-behavior-x:contain; }
.pl-table { width:100%; border-collapse:separate; border-spacing:0; font-size:12px; }
.pl-table th,.pl-table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.pl-table th { background:#eef2ec; font-size:11px; color:#53695e; font-weight:600; white-space:nowrap; }
.pl-table tbody tr:last-child > * { border-bottom:0; }
.pl-table tbody tr:hover { background:#f6f9f3; }
.pl-table small { display:block; color:var(--muted); font-size:10px; line-height:1.55; margin-top:3px; }
.pl-table .ghost { color:var(--teal); min-height:28px; padding:0; text-align:left; }
.pl-daily-table { width:max-content; min-width:100%; }
.pl-daily-table th:first-child { min-width:170px; max-width:220px; position:sticky; left:0; z-index:3; border-right:1px solid var(--line); }
.pl-daily-table thead th:first-child { z-index:4; }
.pl-daily-table td { min-width:98px; border-right:1px solid #e9eee6; }
.pl-daily-table thead th:not(:first-child) { min-width:98px; text-align:center; }
.pl-day-cell { display:flex; flex-direction:column; align-items:stretch; gap:3px; font-size:11px; }
.pl-day-cell b { font-weight:600; color:var(--ink); }
.pl-day-cell button { font-size:10px; padding:0; min-height:24px; text-align:left; border:0; background:transparent; color:var(--teal); }
.pl-day-cell em { font-size:10px; font-style:normal; color:var(--danger); }
.pl-closed-day { background:#f1f2ee; }
.pl-overload { background:#fff0e8; }
.pl-unknown { background:#fff8e9; }
.pl-load-meter { height:4px; border-radius:3px; background:#e5ebe3; overflow:hidden; }
.pl-load-meter span { display:block; height:100%; background:#4b8777; }
.pl-overload .pl-load-meter span { background:#ae6747; }
.pl-unknown .pl-load-meter span { background:#b8934b; }
.pl-footnote { color:var(--muted); font-size:11px; margin:10px 0 18px; }
.pl-section { margin-top:22px; }
.pl-section h3 { margin:0 0 12px; font-size:15px; }
.pl-empty { padding:35px 22px; text-align:center; color:var(--muted); background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.pl-empty h3 { color:var(--ink); margin:0 0 6px; }
.pl-empty p { font-size:12px; margin:0 0 12px; }
.pl-panel { border:1px solid var(--line); padding:18px; background:var(--surface); border-radius:9px; min-width:0; }
.pl-panel h3 { margin:0 0 12px; font-size:15px; }
.pl-state { display:inline-block; padding:2px 6px; border-radius:4px; background:#edf1e9; font-size:10px; color:#576c60; white-space:nowrap; }
.pl-state.error { background:#fae7dd; color:#a14d36; }
.pl-state.warning { background:#f8eed4; color:#926e2c; }
.pl-baseline-line { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pl-baseline-line select { max-width:300px; min-height:36px; }
.pl-delta { color:var(--danger); font-weight:600; }
.pl-modal { width:min(1020px,100%); }
.pl-modal .modal-body > h3 { margin:20px 0 10px; font-size:15px; }
.pl-modal .modal-body > h3:first-child { margin-top:0; }
.pl-modal .modal-footer { flex-wrap:wrap; }
.pl-modal .modal-footer .muted { flex:1; }
.pl-modal .notice { font-size:12px; }
.pl-field { display:grid; gap:6px; margin-bottom:16px; font-size:12px; }
.pl-field small { font-weight:400; color:var(--muted); font-size:11px; }
.pl-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.pl-form-grid > * { min-width:0; }
.pl-check { display:flex; align-items:flex-start; gap:8px; font-weight:400; font-size:12px; margin:10px 0; }
.pl-check input { margin-top:3px; }
.pl-day-inputs { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.pl-day-inputs label { font-size:11px; text-align:center; color:var(--muted); display:grid; gap:5px; }
.pl-day-inputs input { padding:8px 4px !important; min-height:38px !important; text-align:center; }
.pl-calendar-days { display:flex; flex-wrap:wrap; gap:7px 16px; }
.pl-calendar-days label { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:400; }
.pl-exception-row { display:grid; grid-template-columns:130px minmax(0,1fr) 100px auto; gap:9px; align-items:center; margin:10px 0; }
.pl-exception-row input,.pl-exception-row select { min-height:38px; padding:8px; }
.pl-preview-intro { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.pl-preview-intro .pl-state { font-size:11px; }
.pl-preview-changes th:first-child { min-width:200px; }
.pl-preview-changes td { min-width:120px; }
.pl-preview-changes td p { margin:0; font-size:11px; }
.pl-preview-changes .pl-table { min-width:600px; }
.pl-form-error:not(:empty) { padding:12px; border-radius:7px; background:#fff0e9; margin-top:14px; font-size:12px; }
.pl-preserved-note { margin-top:12px; padding:10px 12px; border-left:3px solid #86a898; color:var(--muted); font-size:11px; }
.pl-task-picker { max-height:250px; overflow:auto; padding:7px 10px; border:1px solid var(--line); border-radius:8px; }
.pl-task-picker .pl-check { margin:9px 0; }
@media(max-width:850px) { .pl-summary > button { padding:10px 12px; } .pl-day-inputs { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:540px) {
  .pl-heading { gap:12px; margin-bottom:16px; }
  .pl-heading h1 { font-size:23px; }
  .pl-toolbar { gap:10px; }
  .pl-toolbar > label { flex:1; min-width:125px; }
  .pl-toolbar .pl-range { max-width:none; }
  .pl-summary { flex-wrap:wrap; }
  .pl-summary > button { flex:1 1 50%; border-bottom:1px solid var(--line); }
  .pl-summary > button:nth-child(even) { border-right:0; }
  .pl-daily-table th:first-child { min-width:120px; max-width:150px; }
  .pl-daily-table td,.pl-daily-table thead th:not(:first-child) { min-width:90px; }
  .pl-form-grid { grid-template-columns:1fr; gap:0; }
  .pl-modal { max-height:calc(100dvh - 20px); }
  .pl-modal .modal-header,.pl-modal .modal-body,.pl-modal .modal-footer { padding:16px; }
  .pl-modal .modal-footer { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .pl-modal .modal-footer .muted { grid-column:1 / -1; }
  .pl-modal .modal-footer button { min-width:0; width:100%; }
  .pl-modal [data-plan-form="commit"] .modal-footer .primary { grid-column:1 / -1; }
  .pl-day-inputs { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .pl-exception-row { grid-template-columns:1fr 1fr; padding:10px 0; border-bottom:1px solid var(--line); }
  .pl-exception-row input,.pl-exception-row select { min-width:0; }
  .pl-baseline-line select { max-width:100%; }
}
.pl-snapshot { max-width:100%; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; font-size:10px; line-height:1.65; background:#f1f4ed; padding:14px; border-radius:6px; }
.pl-quota-row { display:grid; grid-template-columns:minmax(150px,1fr) 150px 120px auto; gap:10px; margin:12px 0; }
.pl-quota-row input,.pl-quota-row select { min-width:0; }
.pl-exception-block { border-top:1px solid var(--line); padding-top:5px; margin-top:14px; }
.pl-budget { display:grid; grid-template-columns:180px 1fr; gap:8px 16px; margin:18px 0 24px; font-size:12px; }
.pl-budget dt { color:var(--muted); }
.pl-budget dd { margin:0; font-weight:600; }
.pl-modal .pl-form-error:empty { display:none; }
.pl-modal p,.pl-modal small,.pl-table td,.pl-table th { overflow-wrap:anywhere; }
.pl-scroll input[type=number] { width:80px; min-width:70px; padding:7px; }
.pl-modal .modal-body { min-width:0; }
.pl-modal input,.pl-modal textarea,.pl-modal select { max-width:100%; }
@media(max-width:540px) {
  .pl-quota-row { grid-template-columns:1fr 1fr; padding:12px 0; border-bottom:1px solid var(--line); }
  .pl-budget { grid-template-columns:140px minmax(0,1fr); gap:8px; }
}
.pl-request-summary { display:grid; grid-template-columns:150px minmax(0,1fr); gap:9px 16px; font-size:12px; padding:14px 0; }
.pl-request-summary dt { color:var(--muted); }
.pl-request-summary dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.pl-baseline-quality p { font-size:12px; }
.pl-modal .pl-form-error { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:540px) { .pl-request-summary { grid-template-columns:1fr; gap:5px; } .pl-request-summary dd { margin-bottom:10px; } }
.pl-timeline-table { width:max-content; min-width:100%; }
.pl-timeline-table thead th:not(:first-child),.pl-timeline-table td { min-width:72px; width:72px; text-align:center; white-space:nowrap; border-right:1px solid #e5eae1; vertical-align:middle; }
.pl-timeline-table th:first-child { min-width:220px; max-width:250px; position:sticky; left:0; z-index:2; border-right:1px solid var(--line); }
.pl-timeline-table .pl-allocated { background:#deeee2; color:#235a46; font-weight:600; }
.pl-timeline-table .pl-range-only { background:linear-gradient(0deg,#f1f3ed 60%,transparent 60%); color:#829087; }
@media(max-width:540px) { .pl-timeline-table th:first-child { min-width:160px; max-width:180px; } }
.pl-quota-zone { grid-column:1 / -1; color:var(--muted); font-size:11px; }
.pl-exception { background:#f0e9d8; color:#72592b; }
.pl-exception.warning { background:#f7e4da; color:#a34d34; }
.pl-exception-preview { border:1px solid #d7cba8; border-radius:7px; margin:18px 0; padding:15px; background:#fbf8ee; }
.pl-exception-preview article + article { border-top:1px solid #ddd2b5; margin-top:15px; padding-top:15px; }
.pl-exception-preview p { font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.pl-exception-preview .pl-request-summary { padding:5px 0; }
.pl-affected-tasks { display:flex; flex-direction:column; gap:5px; max-height:200px; overflow:auto; padding:9px; background:#fff; border:1px solid #e3ddcb; font-size:12px; }
.pl-affected-tasks span { overflow-wrap:anywhere; }
.pl-fixed-text { white-space:pre-wrap; overflow-wrap:anywhere; max-height:180px; overflow:auto; }
@media(max-width:540px) { .pl-exception-preview { padding:12px; } }
