/* ==========================================================================
   PLANS — Стратегическая карта MeKola 2026-2030
   Однострочные проектные блоки, max-width 1280px, CRUD UI
   ========================================================================== */
:root{
  --p-bg:#090b10;--p-panel:#0f1219;--p-card:#151b28;--p-card2:#1a2133;
  --p-line:#222c3e;--p-txt:#edf1f7;--p-muted:#7e8ea6;
  --p-accent:#6b8aff;--p-glow:rgba(107,138,255,.25);
  --p-green:#38cc6c;--p-yellow:#f0a830;--p-red:#f05050;--p-purple:#a259f7;
}
.pl{background:var(--p-bg);color:var(--p-txt);min-height:100vh;font:15px/1.55 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}

/* ---- container ---- */
.pl-w{max-width:1280px;margin:0 auto;padding:0 24px;box-sizing:border-box}

/* ==================== HERO ==================== */
.pl-hero{background:linear-gradient(180deg,#121830 0%,var(--p-bg) 100%);border-bottom:1px solid var(--p-line);padding:32px 0 22px}
.pl-hero__top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:20px;margin-bottom:22px}
.pl-hero__h1{font-size:28px;font-weight:800;margin:0 0 6px;color:#fff;letter-spacing:-.3px}
.pl-hero__sub{color:var(--p-muted);font-size:14px;margin:0;max-width:780px}
.pl-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pl-badge{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;padding:4px 12px;border-radius:18px;background:rgba(107,138,255,.1);color:var(--p-accent);border:1px solid rgba(107,138,255,.3);display:inline-flex;align-items:center;gap:5px}
.pl-badge--own{background:rgba(56,204,108,.12);color:var(--p-green);border-color:rgba(56,204,108,.35)}
.pl-pills{display:flex;gap:10px;flex-wrap:wrap}
.pl-pill{background:var(--p-panel);border:1px solid var(--p-line);padding:10px 16px;border-radius:12px;display:flex;flex-direction:column;min-width:100px}
.pl-pill b{font-size:20px;color:#fff;line-height:1.15}
.pl-pill span{font-size:11px;color:var(--p-muted)}
.pl-pill--hi{border-color:rgba(107,138,255,.35);background:linear-gradient(135deg,#141c32,var(--p-panel))}
.pl-pill--hi b{color:var(--p-accent)}

/* toolbar */
.pl-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:16px;border-top:1px solid rgba(34,44,62,.6)}
.pl-filters{display:flex;gap:6px;flex-wrap:wrap}
.pl-fbtn{background:var(--p-card);border:1px solid var(--p-line);color:var(--p-txt);padding:7px 14px;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:.15s}
.pl-fbtn:hover{border-color:var(--p-accent);background:var(--p-card2)}
.pl-fbtn.active{background:var(--p-accent);border-color:var(--p-accent);color:#fff;box-shadow:0 0 10px var(--p-glow)}
.pl-legend{display:flex;gap:14px;font-size:12px;color:var(--p-muted);flex-wrap:wrap}
.pl-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}
.pl-dot--g{background:var(--p-green);box-shadow:0 0 5px var(--p-green)}
.pl-dot--b{background:var(--p-accent);box-shadow:0 0 5px var(--p-accent)}
.pl-dot--y{background:var(--p-yellow)}
.pl-dot--r{background:var(--p-red);box-shadow:0 0 5px var(--p-red)}

/* ==================== MAIN ==================== */
.pl-main{padding:28px 0 60px}

/* ---- branch block ---- */
.pl-branch{background:var(--p-panel);border:1px solid var(--p-line);border-radius:16px;margin-bottom:22px;overflow:hidden;transition:border-color .2s}
.pl-branch:hover{border-color:rgba(107,138,255,.3)}
.pl-branch__head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:linear-gradient(90deg,#111828,var(--p-panel));border-bottom:1px solid var(--p-line);flex-wrap:wrap;gap:14px}
.pl-branch__left{display:flex;align-items:center;gap:14px}
.pl-branch__num{font-size:20px;font-weight:900;color:var(--p-accent);background:rgba(107,138,255,.08);border:1px solid rgba(107,138,255,.2);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}
.pl-branch__title{font-size:17px;font-weight:800;color:#fff;margin:0;letter-spacing:.3px}
.pl-branch__sub{font-size:12px;color:var(--p-muted);margin:2px 0 0}
.pl-branch__right{display:flex;align-items:center;gap:16px}
.pl-branch__avg{text-align:right;min-width:80px}
.pl-branch__avg-val{font-size:15px;font-weight:800;color:var(--p-accent)}
.pl-branch__avg-bar{height:4px;background:#1f293e;border-radius:3px;margin-top:4px;overflow:hidden}
.pl-branch__avg-bar i{display:block;height:100%;background:var(--p-accent);border-radius:3px;transition:width .3s}
.pl-branch__cnt{font-size:12px;color:var(--p-muted);white-space:nowrap}

/* ---- tasks container ---- */
.pl-tasks{padding:6px 16px 16px}

/* ---- task card ---- */
.pl-task{background:var(--p-card);border:1px solid var(--p-line);border-radius:12px;padding:16px 20px;margin:10px 0;transition:.15s;position:relative}
.pl-task:hover{border-color:#3a4c6b;background:var(--p-card2);box-shadow:0 4px 16px rgba(0,0,0,.25)}
.pl-task.hide{display:none!important}
.pl-task__row1{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.pl-task__info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pl-task__title{font-size:15px;font-weight:700;color:#fff}
.pl-task__desc{font-size:13px;color:var(--p-muted);margin:0 0 8px;line-height:1.5}
.pl-task__actions{display:flex;align-items:center;gap:6px}
.pl-task__pct{font-size:14px;font-weight:800;color:var(--p-accent);min-width:36px;text-align:right}

/* tag */
.pl-tag{font-size:10px;font-weight:800;padding:3px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.tag--active{background:rgba(56,204,108,.12);color:var(--p-green);border:1px solid rgba(56,204,108,.25)}
.tag--planned{background:rgba(107,138,255,.12);color:var(--p-accent);border:1px solid rgba(107,138,255,.25)}
.tag--later{background:rgba(240,168,48,.12);color:var(--p-yellow);border:1px solid rgba(240,168,48,.25)}
.tag--blocked{background:rgba(240,80,80,.12);color:var(--p-red);border:1px solid rgba(240,80,80,.25)}
.tag--goal{background:rgba(162,89,247,.12);color:var(--p-purple);border:1px solid rgba(162,89,247,.25)}
.tag--danger{background:rgba(240,80,80,.18);color:#ff8585;border:1px solid rgba(240,80,80,.3)}

/* progress */
.pl-task__prog{margin-top:8px}
.pl-prog{height:5px;background:#1f283a;border-radius:4px;overflow:hidden}
.pl-prog i{display:block;height:100%;background:var(--p-accent);border-radius:4px;transition:width .15s}
.pl-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:4px;background:#1c2536;outline:none;cursor:pointer;margin-top:8px;transition:background .15s}
.pl-range:hover{background:#263042}
.pl-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--p-accent);border:2px solid #fff;box-shadow:0 0 8px var(--p-glow);cursor:pointer;transition:.15s}
.pl-range::-webkit-slider-thumb:hover{transform:scale(1.2)}
.pl-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--p-accent);border:2px solid #fff;cursor:pointer}

/* subtasks */
.pl-subs{margin-top:10px;padding:8px 0 4px;border-top:1px dashed rgba(34,44,62,.8)}
.pl-sub{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:13px}
.pl-sub__check{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--p-muted)}
.pl-sub__check input[type="checkbox"]{accent-color:var(--p-accent);width:15px;height:15px;cursor:pointer}
.pl-sub--done{text-decoration:line-through;opacity:.55}

/* add buttons */
.pl-add-sub-btn,.pl-add-task-btn,.pl-add-branch-btn{background:none;border:1px dashed var(--p-line);color:var(--p-muted);font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.15s;margin-top:8px}
.pl-add-sub-btn:hover,.pl-add-task-btn:hover,.pl-add-branch-btn:hover{border-color:var(--p-accent);color:var(--p-accent)}
.pl-add-branch-btn{margin-bottom:20px;padding:10px 18px;font-size:14px}

/* icon buttons */
.pl-icon-btn{background:none;border:none;color:var(--p-muted);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:6px;transition:.15s;line-height:1}
.pl-icon-btn:hover{color:var(--p-accent);background:rgba(107,138,255,.1)}
.pl-icon-btn--del:hover{color:var(--p-red);background:rgba(240,80,80,.1)}
.pl-icon-btn--sm{font-size:12px;padding:2px 4px}

/* ==================== MODAL ==================== */
.pl-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);z-index:9990;display:none;justify-content:center;align-items:center}
.pl-modal-overlay.open{display:flex}
.pl-modal{background:var(--p-panel);border:1px solid var(--p-line);border-radius:16px;width:560px;max-width:94vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.pl-modal__head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--p-line)}
.pl-modal__head h3{margin:0;font-size:17px;font-weight:800;color:#fff}
.pl-modal__body{padding:18px 22px}
.pl-modal__body label{display:block;font-size:12px;font-weight:700;color:var(--p-muted);margin:12px 0 4px;text-transform:uppercase;letter-spacing:.5px}
.pl-modal__body label:first-child{margin-top:0}
.pl-modal__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.pl-input{width:100%;background:var(--p-card);border:1px solid var(--p-line);color:var(--p-txt);padding:10px 12px;border-radius:8px;font-size:14px;box-sizing:border-box;outline:none;transition:.15s}
.pl-input:focus{border-color:var(--p-accent);box-shadow:0 0 8px var(--p-glow)}
.pl-textarea{min-height:80px;resize:vertical;font-family:inherit}
.pl-range--modal{margin-top:4px}
.pl-modal__foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--p-line)}
.pl-btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:700;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.pl-btn--cancel{background:var(--p-card);color:var(--p-muted)}
.pl-btn--cancel:hover{background:var(--p-card2);color:var(--p-txt)}
.pl-btn--save{background:var(--p-accent);color:#fff}
.pl-btn--save:hover{background:#8aa4ff;box-shadow:0 0 12px var(--p-glow)}

/* ==================== TOAST ==================== */
.pl-toast{position:fixed;bottom:24px;right:24px;background:#141c2e;border:1px solid var(--p-accent);color:#fff;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 8px 25px rgba(0,0,0,.5),0 0 12px var(--p-glow);z-index:9999;opacity:0;transform:translateY(18px);transition:.3s;pointer-events:none;display:flex;align-items:center;gap:8px}
.pl-toast.show{opacity:1;transform:translateY(0)}

/* ==================== RESPONSIVE ==================== */
@media(max-width:768px){
  .pl-hero__top{flex-direction:column}
  .pl-branch__head{flex-direction:column;align-items:flex-start}
  .pl-modal__row{grid-template-columns:1fr}
  .pl-hero__h1{font-size:22px}
}
