/* PRTY OS — events screen styles. Screen-specific layout only; reuse components.css for everything else. */

/* ---------- Toolbar ---------- */
.ev-toolbar { display: flex; flex-direction: column; gap: var(--s-3); padding-bottom: var(--s-4); }
.ev-toolbar__row { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.ev-selects { display: flex; gap: var(--s-2); flex-wrap: wrap; }
.ev-select { height: 30px; width: auto; min-width: 118px; font-size: var(--fs-12); padding-left: 9px; }
.ev-select--venue { min-width: 168px; }
.ev-search { margin-left: auto; width: 260px; }
.ev-search .input { height: 30px; }
.ev-search .input::-webkit-search-cancel-button { filter: grayscale(1) opacity(0.6); }
.ev-chips { gap: 6px; }
.ev-chip { display: inline-flex; transition: opacity var(--dur-2) var(--ease); }
.ev-chip.is-empty { opacity: 0.45; }
.ev-chip.is-empty:hover { opacity: 0.8; }
.ev-clear { margin-left: 4px; }

/* ---------- Table ---------- */
.ev-panel { overflow: hidden; }
.ev-tbl td { height: 42px; }
.ev-tbl th { padding: 0 10px; }
.ev-tbl td { padding: 0 10px; }
.ev-tbl th:first-child, .ev-tbl td:first-child { padding-left: var(--s-4); }
.ev-tbl th:last-child, .ev-tbl td:last-child { padding-right: var(--s-4); }

.ev-c-date { width: 116px; color: var(--text-2); }
.ev-datecell__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1 1 auto; }
.ev-c-event { min-width: 180px; }
.ev-name { display: block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-weight: 500; }
.ev-name:hover { text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; }
.is-muted .ev-name { color: var(--text-2); font-weight: 400; }
.ev-c-venue > span { display: block; max-width: 140px; }
.ev-c-status { width: 1%; }
.ev-c-lineup > span { display: block; max-width: 220px; font-size: var(--fs-12); }
.ev-c-pct { width: 150px; }

.ev-pct { display: grid; grid-template-columns: minmax(64px, 1fr) 36px; align-items: center; gap: 10px; }
.ev-pct .num { text-align: right; font-size: var(--fs-12); color: var(--text-2); }
.ev-pct .num.c-green { color: var(--green); }
.ev-pct .num.c-amber { color: var(--amber); }

.ev-be { display: inline-flex; align-items: center; gap: 4px; justify-content: flex-end; white-space: nowrap; }
.ev-be.is-reached { color: var(--text-2); }
.ev-be.is-reached .icon { color: var(--green); }
.ev-be__sep { color: var(--text-4); margin: 0 1px; }
.ev-be__pct { display: inline-block; min-width: 30px; text-align: right; font-size: var(--fs-12); color: var(--text-3); }
.ev-be__pct.c-amber { color: var(--amber); }
.ev-be__pct.c-red { color: var(--red); }

/* Brand filter: a dropdown styled like the neighbouring selects (ui.Menu popover, so it is never clipped) */
.ev-brandfilter { display: inline-flex; align-items: center; text-align: left; cursor: pointer; min-width: 132px; max-width: 200px; color: var(--text); }
.ev-brandfilter.is-active { border-color: var(--text-3); background-color: var(--surface-2); }

.ev-net { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 6px; white-space: nowrap; }
.ev-net__tag { font-size: var(--fs-10); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-4); font-weight: 500; }
.ev-th-note { font-size: var(--fs-10); color: var(--text-4); letter-spacing: 0.04em; margin-left: 2px; }

.ev-warn { display: inline-flex; align-items: center; gap: 4px; color: var(--c); font-size: var(--fs-12); font-weight: 500; }
.ev-warn .icon { color: var(--c); }
.is-muted .ev-warn { opacity: 0.7; }

.ev-group { display: inline-flex; align-items: center; gap: 10px; }
.ev-group__count { color: var(--text-4); font-weight: 500; letter-spacing: 0.04em; text-transform: none; font-size: var(--fs-11); }

/* ---------- Status colour coding ----------
   Each row carries its event-status tone (--c): a 3px edge on the first cell (dashed for Pencil)
   and a very faint wash, so the lifecycle reads down the table at a glance. */
.ev-row > td:first-child { box-shadow: inset 3px 0 0 var(--c); }
.ev-row.is-dashed > td:first-child {
  box-shadow: none;
  background-image: repeating-linear-gradient(to bottom, var(--c) 0 5px, transparent 5px 9px);
  background-size: 3px 100%; background-repeat: no-repeat;
}
.ev-row > td { background-color: color-mix(in srgb, var(--c) 3.5%, transparent); }
.ev-row:hover > td { background-color: color-mix(in srgb, var(--c) 7%, var(--hover)); }
.ev-row.is-muted > td { background-color: transparent; }
.ev-row.is-muted > td:first-child { box-shadow: inset 3px 0 0 color-mix(in srgb, var(--c) 55%, transparent); }
.ev-row .ev-c-date { color: var(--text); }
.ev-row.is-muted .ev-c-date { color: var(--text-3); }

.ev-mix { display: inline-flex; align-items: center; gap: 12px; margin-left: 8px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.ev-mix__item { display: inline-flex; align-items: center; gap: 5px; color: var(--text-3); font-size: var(--fs-11); }
.ev-mix__label { color: var(--text-4); }
@media (max-width: 1280px) { .ev-mix__label { display: none; } }

.ev-mrow { box-shadow: inset 3px 0 0 var(--c); }
.ev-mrow.is-dashed { box-shadow: none; background-image: repeating-linear-gradient(to bottom, var(--c) 0 5px, transparent 5px 9px); background-size: 3px 100%; background-repeat: no-repeat; }
.ev-mrow.is-muted { box-shadow: inset 3px 0 0 color-mix(in srgb, var(--c) 55%, transparent); }

.ev-note { padding-top: var(--s-3); }

/* ---------- Mobile list ---------- */
.ev-mobile .panel { overflow: hidden; }
.ev-mgroup {
  display: flex; align-items: center; justify-content: space-between;
  height: 32px; padding: 0 var(--s-4);
  background: var(--bg-2);
  border-bottom: 1px solid var(--line-soft);
  font-size: var(--fs-11); font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-3);
}
.ev-mrow { align-items: flex-start; padding-top: 12px; padding-bottom: 12px; color: inherit; }
.ev-mrow.is-muted .list-row__title { color: var(--text-2); font-weight: 400; }
.ev-mrow .dateblock { padding-top: 2px; }
.ev-mrow__main { display: flex; flex-direction: column; gap: 4px; }
.ev-mrow__top { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); min-width: 0; }
.ev-mrow__foot { display: flex; align-items: center; gap: var(--s-3); margin-top: 4px; min-width: 0; }
.ev-mrow__sold { flex: 1; display: flex; align-items: center; gap: 8px; min-width: 0; }
.ev-mrow__sold .capbar { flex: 1; min-width: 40px; }
.ev-mtotals { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: var(--s-3) 2px 0; font-size: var(--fs-12); color: var(--text-3); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .ev-search { margin-left: 0; width: 100%; order: -1; }
}
@media (max-width: 720px) {
  .ev-toolbar__row { gap: var(--s-2); }
  .ev-toolbar__row .seg { flex: 1 1 auto; }
  .ev-toolbar__row .seg__opt { flex: 1; justify-content: center; height: 32px; }
  .ev-selects { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ev-select, .ev-select--venue { min-width: 0; width: 100%; height: 38px; }
  .ev-toolbar__row > div:has(> span > .ev-brandfilter) { flex: 1 1 auto; }
  .ev-toolbar__row > div:has(> span > .ev-brandfilter) > span { flex: 1; }
  .ev-brandfilter { width: 100%; max-width: none; height: 32px; }
  .ev-search .input { height: 38px; }
  .ev-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--page-pad)); padding: 2px var(--page-pad); scrollbar-width: none; }
  .ev-chips::-webkit-scrollbar { display: none; }
  .ev-chips .chip { height: 32px; }
}
/* Lineup planning and its single event-owned task. */
.ev-c-lineup { min-width: 240px; max-width: 320px; }
.ev-c-lineupbar { min-width: 150px; }
.ev-lineup-names { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-12); }
.ev-mrow__names { min-width: 0; margin-top: 2px; }
.ev-c-lineuptask { min-width: 105px; }
.ev-lineupstate, .ev-lineuptask { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.ev-lineupstate > div { display: flex; align-items: center; gap: 6px; min-width: 0; }
.ev-lineupstate__count { color: var(--text-2); font-size: var(--fs-11); white-space: nowrap; }
.ev-lineupstate__announce { color: var(--text-3); font-size: var(--fs-11); white-space: nowrap; }
.ev-mrow__lineup { display: flex; flex-direction: column; gap: 2px; margin-top: 5px; font-size: var(--fs-11); }

.ev-mrow__lineup .lineupbar, .ew-lineup-plan__status .lineupbar { max-width: none; width: 100%; }
@media (min-width: 721px) { .ew-lineup-plan__status .lineupbar { max-width: 320px; } }

/* Advancing progress cell, column chooser, dragged header */
.ev-c-adv { min-width: 130px; }
.ev-adv { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ev-adv > :first-child { flex: 1 1 56px; min-width: 40px; }
.ev-adv__crit { color: var(--red, #d64545); font-size: var(--fs-11); font-weight: 600; }
.ev-tbl th[draggable="true"] { cursor: grab; }
.ev-tbl th.is-dragging { opacity: .45; }
.ev-colmenu { position: relative; display: inline-flex; }
.ev-colmenu__panel { position: absolute; left: 0; right: auto; top: calc(100% + 6px); max-width: calc(100vw - 32px); z-index: 30; width: 280px; max-height: 70vh; overflow: auto; padding: 12px; box-shadow: var(--shadow-3, 0 8px 24px rgba(0,0,0,.35)); }
.ev-colmenu__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 0; }
.ev-colmenu__btn { min-width: 28px; min-height: 28px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); cursor: pointer; }
.ev-colmenu__btn:disabled { opacity: .35; cursor: default; }

/* ---------- Year Plan: table layout, pinned + resizable columns ---------- */
.ev-yp .ev-tbl { table-layout: fixed; }
.ev-yp .ev-tbl th, .ev-yp .ev-tbl tr.ev-row td, .ev-yp .ev-tbl tfoot td { overflow: hidden; text-overflow: ellipsis; }
.ev-yp .ev-tbl th.is-pinned, .ev-yp .ev-tbl td.is-pinned { position: sticky; z-index: 3; background-color: var(--surface); }
.ev-yp .ev-tbl th.is-pinned { z-index: 4; }
.ev-yp .ev-tbl td.is-pinned { background-image: linear-gradient(color-mix(in srgb, var(--c, transparent) 4%, transparent), color-mix(in srgb, var(--c, transparent) 4%, transparent)); }
.ev-yp .ev-tbl tr.is-muted td.is-pinned { background-image: none; }
.ev-yp .ev-tbl tfoot td.is-pinned { background-image: none; }
.ev-yp .ev-tbl td.is-pinned + td.is-pinned, .ev-yp .ev-tbl td.is-pinned:last-of-type { box-shadow: none; }
.ev-yp .ev-tbl th .th-sort { max-width: calc(100% - 10px); }
.ev-resize { position: absolute; top: 0; right: -3px; width: 10px; height: 100%; cursor: col-resize; touch-action: none; z-index: 2; }
.ev-resize::after { content: ''; position: absolute; top: 25%; bottom: 25%; left: 4px; width: 2px; border-radius: 1px; background: var(--line); }
.ev-resize:hover::after, .ev-resize:active::after { background: var(--text-3); }
@media (pointer: coarse) { .ev-resize { width: 18px; right: -8px; } }
.ev-info { display: inline-flex; margin-left: 4px; }
.ev-info__btn { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; border: 0; background: none; color: var(--text-3); cursor: pointer; border-radius: 50%; }
.ev-info__btn:hover, .ev-info__btn[aria-expanded="true"] { color: var(--text); background: var(--hover); }
@media (pointer: coarse) { .ev-info__btn { width: 32px; height: 32px; } }
.ev-tip__pop { z-index: 1000; width: 260px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); font-size: var(--fs-12); line-height: 1.45; font-weight: 400; text-transform: none; letter-spacing: 0; white-space: normal; box-shadow: var(--shadow-3, 0 8px 24px rgba(0,0,0,.35)); }

/* ---------- Inline editors ---------- */
.ev-inline { width: 100%; height: 30px; font-size: var(--fs-12); background-color: transparent; border-color: transparent; text-overflow: ellipsis; }
.ev-inline:hover, .ev-inline:focus { background-color: var(--surface-2, var(--bg-2)); border-color: var(--line); }
input.ev-inline { padding-left: 8px; }
.ev-targets { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-height: 30px; padding: 0 8px; border: 1px dashed transparent; border-radius: 6px; background: none; color: var(--text-2); font-size: var(--fs-12); cursor: pointer; }
.ev-targets:hover { border-color: var(--line); background: var(--surface-2, var(--bg-2)); }
.ev-eventcell { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ev-eventcell .ev-name { min-width: 0; max-width: none; flex: 0 1 auto; }
.ev-brandcell { display: inline-flex; align-items: center; gap: 6px; }
.ev-nrgchip { display: inline-flex; align-items: center; height: 18px; padding: 0 6px; border-radius: 9px; font-size: var(--fs-10); font-weight: 600; letter-spacing: 0.05em; color: var(--orange); border: 1px solid color-mix(in srgb, var(--orange) 55%, transparent); }
.ev-review { display: inline-flex; align-items: center; gap: 4px; flex: none; height: 20px; padding: 0 7px; border-radius: 10px; font-size: var(--fs-11); font-weight: 600; white-space: nowrap; color: var(--amber); background: color-mix(in srgb, var(--amber) 14%, transparent); border: 1px solid color-mix(in srgb, var(--amber) 45%, transparent); }
.ev-mk, .ev-contract { display: inline-flex; flex-direction: column; gap: 1px; line-height: 1.25; }
.ev-mk { font-size: var(--fs-12); }

/* ---------- Year Plan colours: Confirmed green, Pencilled orange (this screen only; global status tones are unchanged) ---------- */
.ev-yp .ev-row.ev-row--confirmed.ev-row--confirmed { --c: var(--green); }
.ev-yp .ev-row.ev-row--pencil.ev-row--pencil { --c: var(--orange); }
.ev-yp .ev-row--confirmed.ev-row--confirmed > td:first-child { box-shadow: inset 4px 0 0 var(--green); }
.ev-yp .ev-row--pencil.ev-row--pencil > td:first-child { background-image: repeating-linear-gradient(to bottom, var(--orange) 0 5px, transparent 5px 9px); background-size: 4px 100%; background-repeat: no-repeat; }
.ev-yp .ev-row--confirmed > td { background-color: color-mix(in srgb, var(--green) 6%, transparent); }
.ev-yp .ev-row--pencil > td { background-color: color-mix(in srgb, var(--orange) 6%, transparent); }
.ev-yp .ev-stwrap { display: inline-flex; align-items: center; gap: 8px; }
.ev-yp .ev-stwrap--confirmed .pill.pill.pill { --c: var(--green); }
.ev-yp .ev-stwrap--pencil .pill.pill.pill { --c: var(--orange); }
.ev-mrow.ev-row--confirmed.ev-row--confirmed { --c: var(--green); }
.ev-mrow.ev-row--pencil.ev-row--pencil { --c: var(--orange); }
.ev-confirm { display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 10px; border: 1px solid var(--green); border-radius: 13px; background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green); font-size: var(--fs-12); font-weight: 600; cursor: pointer; white-space: nowrap; }
.ev-confirm:hover { background: color-mix(in srgb, var(--green) 26%, transparent); }
.ev-confirm--big { height: 44px; min-width: 44px; padding: 0 18px; border-radius: 22px; font-size: var(--fs-14, 14px); margin-left: auto; }

/* ---------- Available dates (dashed, muted) vs planning rows (solid blue edge) ---------- */
.ev-free-row td, .ev-plan-row td { padding-block: 6px; font-size: var(--fs-12); }
.ev-free-row td { color: var(--text-4); border-bottom: 1px dashed var(--line); background: transparent; }
.ev-plan-row td { color: var(--text-2); border-bottom: 1px solid var(--line-soft); background: color-mix(in srgb, var(--blue) 7%, transparent); box-shadow: inset 4px 0 0 var(--blue); }
.ev-free-row.is-important td { color: var(--text-3); }
.ev-daterow { position: sticky; left: var(--s-4); display: flex; align-items: center; gap: 12px; width: min(92vw, 1100px); min-height: 28px; }
.ev-daterow__date { min-width: 76px; }
.ev-daterow__tag { flex: none; letter-spacing: 0.04em; text-transform: uppercase; font-size: var(--fs-11); color: var(--green); }
.ev-daterow__tag.is-pencil_idea { color: var(--blue); }
.ev-daterow__tag.is-enquiry { color: var(--purple); }
.ev-daterow__tag.is-available { color: var(--text-3); }
.ev-daterow__label { flex: none; padding: 1px 8px; border-radius: 10px; background: var(--surface-2, var(--bg-2)); color: var(--text-2); font-size: var(--fs-11); font-weight: 500; }
.ev-daterow__summary { flex: 1 1 auto; min-width: 0; color: var(--text-2); }
.ev-daterow__act { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; flex: none; }
.ev-daterow__add { display: inline-flex; align-items: center; gap: 4px; color: var(--text-3); }
.ev-free-row:hover .ev-daterow__add, .ev-free-row:focus-visible .ev-daterow__add { color: var(--text); }
.ev-free-row.is-clickable:hover td, .ev-free-row.is-clickable:focus-visible td, .ev-plan-row.is-clickable:hover td { background-color: var(--surface-2, var(--bg-2)); }
.ev-freetoggle { display: inline-flex; align-items: center; gap: 6px; color: var(--text-3); white-space: nowrap; }
.ev-adddate { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ---------- "+ idea" trigger on an event row's date cell, and the idea row it opens for a date that already has an event ---------- */
.ev-ideabtn { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; padding: 0; border: none; border-radius: 50%; background: transparent; color: var(--text-4); cursor: pointer; flex: none; }
.ev-ideabtn:hover, .ev-ideabtn:focus-visible { color: var(--purple); background: color-mix(in srgb, var(--purple) 14%, transparent); }
.ev-ideabtn.has-idea { color: var(--purple); }
.ev-plan-row--taken td { background: color-mix(in srgb, var(--purple) 7%, transparent); box-shadow: inset 4px 0 0 var(--purple); }
.ev-plan-row--taken .ev-daterow__tag { color: var(--purple); }
.ev-plan-row--taken.ev-free-row--m { background: color-mix(in srgb, var(--purple) 7%, transparent); box-shadow: inset 4px 0 0 var(--purple); }
.ev-adddate .input { width: auto; height: 30px; }
.ev-plan-editor td { padding: 10px 0; white-space: normal; background: var(--surface); }
.ev-planform { display: flex; flex-direction: column; gap: 10px; padding: 4px 0; }
.ev-planform__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.ev-planform label { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-11); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.04em; }
.ev-planform__wide { grid-column: 1 / -1; }
.ev-planform__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ev-plan-editor--m { padding: 12px 16px; background: var(--surface); border-bottom: 1px solid var(--line-soft); }
.ev-free-row--m { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 2px 16px; border-bottom: 1px dashed var(--line); }
.ev-plan-row.ev-free-row--m { border-bottom: 1px solid var(--line-soft); background: color-mix(in srgb, var(--blue) 7%, transparent); box-shadow: inset 4px 0 0 var(--blue); }
.ev-free-row--m .ev-daterow__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 0 1 auto; }
.ev-addbtn { margin-left: auto; min-width: 64px; min-height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); color: var(--text); font-size: var(--fs-13); font-weight: 600; cursor: pointer; }

/* ---------- Edit columns menu ---------- */
.ev-colmenu__presets { display: flex; flex-wrap: wrap; gap: 6px; }
.ev-preset { min-height: 32px; padding: 0 12px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--text-2); font-size: var(--fs-12); cursor: pointer; }
.ev-preset.is-active { border-color: var(--text-3); color: var(--text); background: var(--surface-2, var(--bg-2)); }
.ev-colmenu__pin { min-width: 40px; font-size: var(--fs-11); }
.ev-colmenu__btn.is-on { border-color: var(--text-3); background: var(--surface-2, var(--bg-2)); }
.ev-colmenu__panel { width: 320px; }

/* ---------- Mobile (375 / 390 px): large one-tap rows, no horizontal scroll ---------- */
.ev-mrow { cursor: pointer; }
.ev-mrow__foot { flex-wrap: wrap; gap: var(--s-2); }
.ev-mrow__meta { min-width: 0; margin-top: 2px; }
@media (max-width: 720px) {
  .ev-toolbar__row { flex-wrap: wrap; }
  .ev-toolbar__row .ev-colmenu, .ev-toolbar__row .ev-freetoggle { min-height: 40px; }
  .ev-colmenu__panel { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; width: auto; max-height: 75vh; }
  .ev-adddate { width: 100%; }
  .ev-adddate .input { flex: 1 1 120px; min-width: 0; }
  .ev-mobile .ev-mrow { min-height: 72px; padding-top: 12px; padding-bottom: 12px; }
  .ev-mrow .list-row__title { white-space: normal; }
  .ev-mobile, .ev-mobile .panel { max-width: 100%; overflow-x: hidden; }
  /* Compact first screen: the top bar already has New event, and the meta/next line and action row push the list below the fold */
  .ev-yp .page-head__actions, .ev-yp .page-head__meta .t-3 { display: none; }
  .ev-yp .page-head { margin-bottom: 8px; }
}

/* ---------- Event projects (one parent row over several event days) ---------- */
.ev-projrow--tr > td { background-color: var(--bg-2); border-bottom: 1px solid var(--line-soft); }
.ev-projrow--tr:hover > td { background-color: var(--hover); }
.ev-projrow--cancelled { opacity: 0.65; }
.ev-projrow__inner { gap: 14px; flex-wrap: wrap; }
.ev-projrow__chev { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--line-soft); border-radius: var(--r-2, 6px); background: transparent; color: var(--text-2); cursor: pointer; }
.ev-projrow__chev:hover { background: var(--hover); color: var(--text); }
.ev-projrow__name { flex: none; font-size: var(--fs-14, 14px); }
.ev-projrow__type { flex: none; padding: 2px 8px; border: 1px solid var(--line-soft); border-radius: 999px; }
.ev-projrow__dates { flex: none; }
.ev-projrow__place { flex: 0 1 220px; min-width: 0; }
.ev-projrow__status, .ev-projrow__days, .ev-projrow__pill { display: inline-flex; align-items: center; gap: 6px; }
.ev-projrow__days { gap: 10px; flex-wrap: wrap; }
.ev-projrow__tag { letter-spacing: 0.04em; text-transform: uppercase; font-size: var(--fs-11); color: var(--text-4); }
.ev-row--child > td:first-child { padding-left: calc(var(--s-4) + 18px); }
.ev-mrow--child { margin-left: 14px; border-left: 1px dashed var(--line-soft); }
.ev-projtoggle { display: inline-flex; gap: 4px; }
@media (max-width: 720px) {
  .ev-projrow--m { flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px var(--s-4); min-height: 44px; cursor: pointer; }
  .ev-projrow--m .ev-projrow__chev { width: 36px; height: 36px; }
  .ev-projrow--m .ev-projrow__name { flex: 1 1 60%; min-width: 0; }
  .ev-projrow--m .ev-projrow__type { flex: none; }
  .ev-projrow--m .ev-projrow__place { flex: 1 1 100%; }
  .ev-projrow--m .ev-projrow__dates { flex: 1 1 100%; }
  .ev-projtoggle { flex: 1 1 100%; }
}

/* ---------- Project page ---------- */
.epj .epj-panel { display: flex; flex-direction: column; gap: var(--s-3); }
.epj-note { margin: 0; padding: var(--s-2) 0; }
.epj-day { text-decoration: none; color: inherit; }
.epj-pills { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 0 var(--s-1); }
.epj-pill { display: inline-flex; align-items: center; gap: 4px; }
.epj-notes { width: 100%; min-height: 96px; resize: vertical; }
.epj-readnotes { white-space: pre-wrap; }
.epj-cost { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; padding: var(--s-3) 0; border-bottom: 1px solid var(--line-soft); }
.epj-f { display: flex; flex-direction: column; gap: 4px; min-width: 110px; font-size: var(--fs-11); color: var(--text-3); }
.epj-f--grow { flex: 1 1 200px; }
.epj-f--num { width: 120px; min-width: 100px; }
.epj-f--vat { width: 84px; min-width: 72px; }
.epj-f--ccy { width: 110px; }
.epj-f--chk { flex-direction: row; align-items: center; gap: 6px; min-width: 0; padding-bottom: 6px; }
.epj-cost__actions { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.epj-chip { font-size: var(--fs-11); color: var(--amber); }
.epj-excl { margin: 0; padding-left: var(--s-4); display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-12, 12px); }
@media (max-width: 720px) {
  .epj-cost { flex-direction: column; align-items: stretch; }
  .epj-f, .epj-f--num, .epj-f--vat, .epj-f--ccy { width: 100%; min-width: 0; }
  .epj-cost__actions { margin-left: 0; justify-content: flex-end; }
  .epj .table-wrap { overflow-x: auto; }
}
