/* =====================================================================
   exec.css — контур панели Главы округа (.exec-*)
   Надстройка ПОВЕРХ mpr-core.css. Только токены --mpr-*, без хардкода.
   Скопировано из эталона portfolio-glava-redesign.html (раздел «СТРАНИЦА
   ПОРТФЕЛЬНЫЙ КОНТРОЛЬ ГЛАВЫ ОКРУГА»). Подключать после mpr-core.css.
   ===================================================================== */

/* Фоновое «масляное» фото Боровска (наследует «зиму» по карте фонов).
   В этом ките подставляется реальное фото инлайном на .mpr-page. */
.mpr-page{
  --mpr-bg-photo:
    radial-gradient(120% 80% at 50% 0%, rgba(143,149,80,.18), transparent 60%),
    linear-gradient(160deg,#cdd2bd 0%,#b9c0a6 38%,#a7ad8f 72%,#9aa07f 100%);
}

/* Шапка: подпись округа рядом с гербом */
.exec-head{display:flex;align-items:center;gap:9px;min-width:0}
.exec-head__name{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.exec-head__name b{font-size:13px;font-weight:600;color:var(--mpr-forest);white-space:nowrap}
.exec-head__name span{font-size:11px;color:var(--mpr-muted);white-space:nowrap}
.mpr-header__bar .mpr-nav{margin-left:auto}

/* ---- Геро-полоса заголовка ---- */
.exec-hero{margin-top:6px}
.exec-hero__row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.exec-hero__date{font-size:12px;color:var(--mpr-muted);font-family:var(--mpr-mono)}
.exec-hero__sub{margin-top:8px;max-width:62ch}

/* ---- Сводка-светофор (KPI = фильтры) ---- */
.exec-kpi{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}
@media(min-width:560px){.exec-kpi{grid-template-columns:repeat(4,1fr)}}
.exec-kpi__tile{
  position:relative;text-align:left;cursor:pointer;
  background:var(--mpr-card);border:1px solid var(--mpr-line);
  border-radius:var(--mpr-r);padding:15px 16px 14px;
  box-shadow:var(--mpr-shadow-soft);
  transition:transform .2s var(--mpr-bezier),box-shadow .2s var(--mpr-bezier),border-color .2s,background .2s;
  font-family:var(--mpr-ff);min-height:96px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.exec-kpi__tile:hover{transform:translateY(-2px);box-shadow:var(--mpr-shadow)}
.exec-kpi__tile.is-active{border-color:var(--mpr-moss);background:var(--mpr-card-strong);box-shadow:0 0 0 3px rgba(143,149,80,.16),var(--mpr-shadow-soft)}
.exec-kpi__num{font-size:clamp(26px,8vw,34px);font-weight:600;line-height:1;color:var(--mpr-forest)}
.exec-kpi__cap{font-size:11.5px;color:var(--mpr-muted);margin-top:8px;line-height:1.25}
.exec-kpi__tag{position:absolute;top:13px;right:13px;width:9px;height:9px;border-radius:50%}
.exec-kpi--total .exec-kpi__tag{background:var(--mpr-moss)}
.exec-kpi--attention .exec-kpi__num{color:var(--mpr-work-fg)}
.exec-kpi--attention .exec-kpi__tag{background:var(--mpr-work-fg)}
.exec-kpi--overdue .exec-kpi__num{color:var(--mpr-risk-fg)}
.exec-kpi--overdue .exec-kpi__tag{background:var(--mpr-risk-fg)}
.exec-kpi--soon .exec-kpi__num{color:var(--mpr-gold-deep)}
.exec-kpi--soon .exec-kpi__tag{background:var(--mpr-gold)}

/* ---- Секции ---- */
.exec-section{margin-top:30px}
.exec-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.exec-section__count{font-size:12.5px;color:var(--mpr-muted);font-family:var(--mpr-mono)}

/* Карточка проекта — расширяем mpr-project под нужды панели */
.mpr-project{display:flex;flex-direction:column;cursor:pointer;transition:transform .2s var(--mpr-bezier),box-shadow .2s var(--mpr-bezier)}
.mpr-project:hover{transform:translateY(-3px);box-shadow:var(--mpr-shadow)}
.mpr-project__body{display:flex;flex-direction:column;gap:10px;flex:1}
.mpr-project__fin{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:2px}
.mpr-project__cost{font-size:14px;font-weight:600;color:var(--mpr-forest)}
.mpr-project__pct{font-size:12px;color:var(--mpr-muted);font-family:var(--mpr-mono)}
.mpr-project__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:4px}
.mpr-project__deadline{font-size:12px;color:var(--mpr-muted)}
.mpr-project__deadline b{color:var(--mpr-forest);font-weight:600}
.mpr-project__open{font-size:12.5px;font-weight:600;color:var(--mpr-moss-deep);display:inline-flex;align-items:center;gap:4px}
.mpr-project.is-overdue{border-color:var(--mpr-risk-line)}
.mpr-project.is-overdue .mpr-project__deadline b{color:var(--mpr-risk-fg)}

/* ---- Контракты: горизонтальная карусель ---- */
.exec-rail{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 8px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.exec-rail::-webkit-scrollbar{height:6px}
.exec-rail::-webkit-scrollbar-thumb{background:var(--mpr-line-strong);border-radius:999px}
.exec-contract{scroll-snap-align:start;flex:0 0 240px;background:var(--mpr-card-strong);border:1px solid var(--mpr-line);border-radius:var(--mpr-r);padding:15px 16px;box-shadow:var(--mpr-shadow-soft);cursor:pointer;transition:transform .2s var(--mpr-bezier),box-shadow .2s var(--mpr-bezier)}
.exec-contract:hover{transform:translateY(-2px);box-shadow:var(--mpr-shadow)}
.exec-contract__supplier{font-size:13.5px;font-weight:600;color:var(--mpr-forest);line-height:1.3;margin:9px 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exec-contract__num{font-size:11px;color:var(--mpr-muted);font-family:var(--mpr-mono)}
.exec-contract__sum{font-size:16px;font-weight:600;color:var(--mpr-forest);margin-top:8px}
.exec-contract__meta{font-size:11.5px;color:var(--mpr-muted);margin-top:3px}

/* ---- Нижние панели ---- */
.exec-cols{display:grid;grid-template-columns:1fr;gap:var(--mpr-gap)}
@media(min-width:880px){.exec-cols{grid-template-columns:1.05fr .95fr}}

.exec-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.exec-controls .mpr-input{flex:1;min-width:160px}
.exec-chip{height:36px;padding:0 14px;border-radius:var(--mpr-r-pill);border:1px solid var(--mpr-line);background:rgba(255,253,247,.6);color:var(--mpr-muted);font-family:var(--mpr-ff);font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s var(--mpr-bezier)}
.exec-chip.is-active{background:var(--mpr-forest);color:var(--mpr-cream);border-color:var(--mpr-forest)}

/* Ответственные */
.exec-owner{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--mpr-line-soft)}
.exec-owner:last-child{border-bottom:none}
.exec-owner__ava{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--mpr-moss),var(--mpr-gold));color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}
.exec-owner__main{flex:1;min-width:0}
.exec-owner__name{font-size:13.5px;font-weight:600;color:var(--mpr-forest);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exec-owner__role{font-size:11.5px;color:var(--mpr-muted)}
.exec-owner__load{flex-shrink:0;width:96px}
.exec-owner__loadnum{font-size:11px;color:var(--mpr-muted);text-align:right;margin-bottom:4px}

/* Контроль сроков — компактная сетка точек */
.exec-cp{display:flex;align-items:center;gap:11px;padding:11px 4px;border-bottom:1px solid var(--mpr-line-soft)}
.exec-cp:last-child{border-bottom:none}
.exec-cp__date{flex-shrink:0;width:54px;text-align:center;font-family:var(--mpr-mono);font-size:11px;line-height:1.2;color:var(--mpr-muted)}
.exec-cp__date b{display:block;font-size:17px;color:var(--mpr-forest)}
.exec-cp__bar{flex-shrink:0;width:3px;align-self:stretch;border-radius:2px;background:var(--mpr-line-strong)}
.exec-cp.is-risk .exec-cp__bar{background:var(--mpr-risk-fg)}
.exec-cp.is-soon .exec-cp__bar{background:var(--mpr-gold)}
.exec-cp.is-done .exec-cp__bar{background:var(--mpr-done-fg)}
.exec-cp__main{flex:1;min-width:0}
.exec-cp__title{font-size:13px;font-weight:500;color:var(--mpr-forest);line-height:1.3}
.exec-cp__proj{font-size:11px;color:var(--mpr-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* =====================================================================
   МОДАЛКА КАРТОЧКИ ПРОЕКТА (длинный скролл):
   обзор → паспорт → фото → контракты → план-график
   ===================================================================== */
.exec-modal{position:fixed;inset:0;z-index:1000;display:none}
.exec-modal.is-open{display:block}
.exec-modal__backdrop{position:absolute;inset:0;background:rgba(40,46,38,.46);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:execFade .3s var(--mpr-bezier)}
.exec-modal__panel{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(1040px,calc(100vw - 28px));max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:hidden;
  background:var(--mpr-cream);border:1px solid rgba(255,255,255,.6);
  border-radius:var(--mpr-r-xl);box-shadow:0 40px 90px rgba(40,40,20,.4);
  display:flex;flex-direction:column;animation:execPop .42s var(--mpr-bezier)
}
@keyframes execFade{from{opacity:0}to{opacity:1}}
@keyframes execPop{from{opacity:0;transform:translate(-50%,-46%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes execSheet{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* — Шапка карточки (sticky) — */
.pc-head{flex-shrink:0;padding:20px clamp(16px,2.4vw,30px) 16px;border-bottom:1px solid var(--mpr-line);background:linear-gradient(180deg,rgba(255,253,247,.7),rgba(247,242,231,.4))}
.pc-head__row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pc-close{height:42px;padding:0 20px;border-radius:var(--mpr-r-pill);border:1px solid var(--mpr-line-strong);background:var(--mpr-card-strong);color:var(--mpr-forest);font-family:var(--mpr-ff);font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:var(--mpr-shadow-soft);transition:all .2s var(--mpr-bezier)}
.pc-close:hover{background:#fff;transform:translateY(-1px);box-shadow:var(--mpr-shadow)}
.pc-close:active{transform:scale(.97)}
.pc-head__title{margin:14px 0 0;font-size:clamp(22px,3vw,34px);font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--mpr-forest)}
.pc-head__sub{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--mpr-muted)}

.exec-modal__body,.pc-body{padding:clamp(16px,2.4vw,28px);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:30px}

/* — Поле-карточка (используется в обзоре, паспорте, контрактах) — */
.exec-field{background:var(--mpr-card-strong);border:1px solid var(--mpr-line);border-radius:var(--mpr-r-sm);padding:13px 15px;min-width:0}
.exec-field__k{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mpr-muted)}
.exec-field__v{font-size:14px;color:var(--mpr-forest);margin-top:5px;line-height:1.4;font-weight:500;word-wrap:break-word;overflow-wrap:anywhere}
.pc-field__sub{display:block;font-size:12px;font-weight:400;color:var(--mpr-muted);margin-top:4px;line-height:1.35}
.pc-np{display:flex;align-items:center;gap:9px}
.pc-np .mpr-np{flex-shrink:0}

/* — Обзор: готовность + фото + ключевые поля — */
.pc-overview{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:880px){.pc-overview{grid-template-columns:minmax(300px,38%) 1fr;align-items:start}}
.pc-overview__left{background:var(--mpr-card);border:1px solid var(--mpr-line);border-radius:var(--mpr-r-lg);padding:18px}
.pc-readiness__k{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mpr-muted)}
.pc-readiness__pct{font-size:clamp(28px,5vw,40px);font-weight:600;line-height:1;color:var(--mpr-forest)}
.pc-readiness__near{font-size:13px;color:var(--mpr-muted)}
.pc-readiness__near b{color:var(--mpr-forest);font-weight:600}
.pc-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.pc-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 13px;border-radius:var(--mpr-r-pill);font-size:12px;font-weight:600}
.pc-pill--risk{background:var(--mpr-risk-bg);color:var(--mpr-risk-fg);border:1px solid var(--mpr-risk-line)}
.pc-pill--soon{background:var(--mpr-work-bg);color:var(--mpr-work-fg);border:1px solid var(--mpr-work-line)}
.pc-pill--ok{background:var(--mpr-done-bg);color:var(--mpr-done-fg);border:1px solid var(--mpr-done-line)}
.pc-photo{position:relative;margin-top:16px;height:230px;border-radius:var(--mpr-r);background-size:cover;background-position:center;border:1px solid var(--mpr-line);overflow:hidden}
.pc-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,38,21,.02),rgba(20,38,21,.45))}
.pc-photo__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 16px;color:#fff;display:flex;flex-direction:column;gap:2px}
.pc-photo__cap b{font-size:18px;font-weight:600;letter-spacing:-.02em;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.pc-photo__cap span{font-size:12px;opacity:.9}
.pc-overview__grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:560px){.pc-overview__grid{grid-template-columns:1fr 1fr}}
@media(min-width:880px){.pc-overview__grid{grid-template-columns:1fr 1fr 1fr}}

/* — Секция — */
.pc-section{display:flex;flex-direction:column;gap:6px}
.pc-section__title{margin:0;font-size:clamp(20px,2.2vw,26px);font-weight:600;letter-spacing:-.03em;color:var(--mpr-forest)}
.pc-section__sub{margin:0 0 8px;font-size:13px;color:var(--mpr-muted);line-height:1.45}
.pc-section__count{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mpr-muted)}

/* — Паспорт — */
.pc-passport{display:grid;grid-template-columns:1fr;gap:12px;margin-top:6px}
@media(min-width:560px){.pc-passport{grid-template-columns:1fr 1fr}}
@media(min-width:880px){.pc-passport{grid-template-columns:1fr 1fr 1fr}}

/* — Фото-галерея — */
.pc-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:6px}
@media(min-width:560px){.pc-gallery{grid-template-columns:repeat(3,1fr)}}
.pc-gallery__img{position:relative;aspect-ratio:4/3;border-radius:var(--mpr-r);background-size:cover;background-position:center;border:1px solid var(--mpr-line);overflow:hidden}
.pc-gallery__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(20,38,21,.5))}
.pc-gallery__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:11px 12px;color:#fff;display:flex;flex-direction:column;gap:1px}
.pc-gallery__cap b{font-size:13px;font-weight:600}
.pc-gallery__cap span{font-size:11px;opacity:.85;background:rgba(45,60,49,.5);align-self:flex-start;padding:2px 8px;border-radius:999px;margin-top:4px}

/* — Контракты — */
.pc-ghost{height:38px;padding:0 16px;border-radius:var(--mpr-r-pill);border:1px solid var(--mpr-line-strong);background:var(--mpr-card-strong);color:var(--mpr-forest);font-family:var(--mpr-ff);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s var(--mpr-bezier)}
.pc-ghost:hover{background:#fff;transform:translateY(-1px)}
.pc-contract{background:var(--mpr-card);border:1px solid var(--mpr-line);border-radius:var(--mpr-r-lg);padding:16px;margin-top:6px}
.pc-contract__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.pc-contract__kick{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mpr-moss-deep)}
.pc-contract__title{font-size:15px;font-weight:600;color:var(--mpr-forest);margin-top:4px;line-height:1.3;max-width:60ch}
.pc-contract__btns{display:flex;gap:8px;flex-wrap:wrap}
.pc-contract__grid{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:560px){.pc-contract__grid{grid-template-columns:1fr 1fr}}
@media(min-width:880px){.pc-contract__grid{grid-template-columns:1fr 1fr 1fr 1fr}}
.pc-contract__ikz{margin-top:12px;font-family:var(--mpr-mono);font-size:11px;color:var(--mpr-muted);word-break:break-all}

/* — План-график: фильтры — */
.pc-plan__controls{display:grid;grid-template-columns:1fr;gap:10px;margin-top:6px}
@media(min-width:760px){.pc-plan__controls{grid-template-columns:1fr auto auto}}
.pc-plan__search{width:100%}
.pc-select{height:48px;padding:0 16px;border-radius:var(--mpr-r);border:1px solid var(--mpr-line-strong);background:var(--mpr-card-strong);color:var(--mpr-forest);font-family:var(--mpr-ff);font-size:13.5px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236f725f' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.pc-plan__tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.pc-plan__tab{height:38px;padding:0 15px;border-radius:var(--mpr-r-pill);border:1px solid var(--mpr-line);background:rgba(255,253,247,.6);color:var(--mpr-muted);font-family:var(--mpr-ff);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s var(--mpr-bezier)}
.pc-plan__tab b{font-weight:600;color:var(--mpr-forest);margin-left:4px}
.pc-plan__tab.is-active{background:rgba(143,149,80,.14);border-color:var(--mpr-moss);color:var(--mpr-moss-deep)}
.pc-plan__tab.is-active b{color:var(--mpr-moss-deep)}

/* — Таблица контрольных точек — */
.cp-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 12px;border-radius:var(--mpr-r-pill);font-size:11.5px;font-weight:600;white-space:nowrap}
.cp--done{background:var(--mpr-done-bg);color:var(--mpr-done-fg);border:1px solid var(--mpr-done-line)}
.cp--risk{background:var(--mpr-risk-bg);color:var(--mpr-risk-fg);border:1px solid var(--mpr-risk-line)}
.cp--work{background:var(--mpr-work-bg);color:var(--mpr-work-fg);border:1px solid var(--mpr-work-line)}
.cp--soon{background:var(--mpr-work-bg);color:var(--mpr-work-fg);border:1px solid var(--mpr-work-line)}
.cp--none{background:#f0ece2;color:#6f725f;border:1px solid var(--mpr-line-strong)}
.pc-table{border:1px solid var(--mpr-line);border-radius:var(--mpr-r);overflow:hidden;background:var(--mpr-card-strong)}
.pc-table__head{display:grid;grid-template-columns:48px 2.2fr .9fr .9fr 1.3fr .9fr 2fr;gap:14px;padding:13px 16px;background:rgba(143,149,80,.08);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mpr-muted)}
.pc-table__row{display:grid;grid-template-columns:48px 2.2fr .9fr .9fr 1.3fr .9fr 2fr;gap:14px;padding:14px 16px;border-top:1px solid var(--mpr-line-soft);font-size:13px;line-height:1.4;align-items:start}
.pc-table__row b{font-weight:600;color:var(--mpr-forest)}
.pc-table__id{font-family:var(--mpr-mono);color:var(--mpr-muted)}
.pc-table__name{font-weight:600;color:var(--mpr-forest)}
.pc-table__sub{display:block;font-size:11px;color:var(--mpr-muted);margin-top:3px}
.pc-table__note{color:var(--mpr-muted);font-size:12px}
.pc-table__file{display:inline-flex;align-items:center;height:26px;padding:0 12px;margin-top:6px;border-radius:var(--mpr-r-pill);background:var(--mpr-card-strong);border:1px solid var(--mpr-line-strong);color:var(--mpr-moss-deep);font-weight:600;font-size:11px;cursor:pointer}
.pc-table__empty{padding:24px 16px;text-align:center;color:var(--mpr-muted);font-size:13px}

/* мобильная таблица → карточки */
@media(max-width:760px){
  .pc-table__head{display:none}
  .pc-table__row{grid-template-columns:1fr;gap:8px;padding:15px 16px}
  .pc-table__row>div{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:baseline}
  .pc-table__row>div::before{content:attr(data-k);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mpr-muted)}
  .pc-table__sub{margin-top:2px}
}

/* — мобильная модалка → нижний лист на весь экран — */
@media(max-width:620px){
  .exec-modal__panel{left:0;top:auto;bottom:0;transform:none;width:100vw;max-height:94vh;max-height:94dvh;border-radius:24px 24px 0 0;animation:execSheet .42s var(--mpr-bezier)}
  .pc-head__row{flex-wrap:wrap}
  .pc-close{height:38px;padding:0 16px}
}

/* Кроссплатформенность: без задержки тапа и серого флеша на touch */
.exec-kpi__tile,.exec-chip,.exec-contract,.pc-plan__tab,.pc-close,.pc-ghost,.pc-table__file,.pc-select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

body.exec-locked{overflow:hidden}
