/* Generated bundle. Edit source modules in assets/src/frontend-css and rebuild this file as needed. */
/* GravityVision Frontend Styles */

.gv-frontend{display:flex;flex-direction:column;gap:12px;}
.gv-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0;
  padding:0;
  align-items:stretch;
}

.gv-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  padding:10px;
  box-sizing:border-box;
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:100%;
}

.gv-title{margin:0 0 6px;font-size:20px;font-weight:700;}
.gv-value{font-size:34px;font-weight:800;line-height:1;}

.gv-w-12{flex:0 0 100%;}
.gv-w-6{flex:0 0 calc(50% - 6px);}
.gv-w-4{flex:0 0 calc(33.333% - 8px);}
.gv-w-3{flex:0 0 calc(25% - 9px);}
.gv-w-2{flex:0 0 calc(16.666% - 10px);}
.gv-w-5th{flex:0 0 calc(20% - 9.6px);}
.gv-w-auto{flex:1 1 0; min-width: 160px;}

@media (max-width:900px){
  .gv-w-6,
  .gv-w-4,
  .gv-w-3,
  .gv-w-2,
  .gv-w-5th,
  .gv-w-auto{flex:0 0 100%;}
}

/* List table (DataTables-ish) */
.gv-list-wrap{width:100%;}

.gv-list-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;}
.gv-list-search__input{flex:1 1 240px;min-width:180px;max-width:100%;padding:9px 12px;border:1px solid #d0d7de;border-radius:10px;background:#fff;font:inherit;line-height:1.3;}
.gv-list-search__select{flex:0 0 auto;min-width:170px;max-width:100%;padding:9px 34px 9px 12px;border:1px solid #d0d7de;border-radius:10px;background:#fff;font:inherit;line-height:1.3;}
.gv-list-search__button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid #d0d7de;border-radius:10px;background:#fff;color:#1d2327;text-decoration:none;font:inherit;cursor:pointer;text-transform:none;letter-spacing:normal;}
.gv-list-search__button:hover{background:#f8fafc;}
.gv-list-search__button.is-reset{text-decoration:none;}
@media (max-width:700px){.gv-list-search{align-items:stretch;}.gv-list-search__select,.gv-list-search__input,.gv-list-search__button{width:100%;min-width:0;}}
.gv-list-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid #e5e7eb;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.gv-list-table thead th{
  background: var(--gv-list-head-bg, #f8fafc);
  color:#1d2327;
  font-weight:700;
  font-size:16px;
  text-align:left;
  padding:8px 10px;
  border-bottom:1px solid #e5e7eb;
  white-space:nowrap;
}
.gv-list-table tbody td{
  font-size:16px;
  padding:7px 10px;
  border-bottom:1px solid #eef2f7;
  vertical-align:top;
}
.gv-list-table tbody tr:last-child td{border-bottom:none;}
.gv-list-table tbody tr:hover td{background:#dddddd;}
.gv-list-table tbody tr:nth-child(4n+1) td,
.gv-list-table tbody tr:nth-child(4n+2) td{
  background: var(--gv-list-row-odd-bg, transparent);
}

.gv-list-table tbody tr:nth-child(4n+3) td,
.gv-list-table tbody tr:nth-child(4n+4) td{
  background: var(--gv-list-row-even-bg, #eeeeee);
}

.gv-list-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap;}
.gv-list-count{font-size:12px;color:#50575e;}
.gv-list-pager{display:flex;gap:6px;flex-wrap:wrap;}
.gv-page{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  height:30px;
  padding:0 8px;
  border:1px solid #dcdcde;
  border-radius:8px;
  background:#fff;
  color:#1d2327;
  text-decoration:none;
  font-size:12px;
}
.gv-page.is-active{background:#2271b1;border-color:#2271b1;color:#fff;}

.gv-edit-link{text-decoration:none;font-weight:700;}

/* Collapsible rows should not show on desktop */
.gv-list-wrap.gv-mobile-collapsible th.gv-col-toggle,
.gv-list-wrap.gv-mobile-collapsible td.gv-col-toggle,
.gv-list-wrap.gv-mobile-collapsible .gv-row-details-tr{
  display:none;
}

/* Mobile table behavior */
@media (max-width:700px){

  /* ---- COLLAPSIBLE (default) ---- */
  .gv-list-wrap.gv-mobile-collapsible .gv-col-collapsible-hide{display:none !important;}

  .gv-list-wrap.gv-mobile-collapsible th.gv-col-toggle,
  .gv-list-wrap.gv-mobile-collapsible td.gv-col-toggle{
    display:table-cell;
    width:44px;
    text-align:center;
    padding:0;
    vertical-align:middle;
    white-space:nowrap;
  }

  .gv-list-wrap.gv-mobile-collapsible .gv-row-details-tr{
    display:none;
  }

  .gv-list-wrap.gv-mobile-collapsible .gv-row-details-tr:not([hidden]){
    display:table-row;
  }

  .gv-row-toggle{
    width:28px;
    height:28px;
    border-radius:999px;
    border:1px solid #dcdcde;
    background:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:16px;
    line-height:1;
    cursor:pointer;
  }

  .gv-list-wrap.gv-mobile-collapsible .gv-row-details-tr[hidden]{display:none !important;}
  .gv-row-details-td{
    padding:0;
    border-top:0;
  }
  .gv-row-details-inner{
    padding:10px 12px 12px;
    border-top:1px solid #eef2f7;
  }
  .gv-row-detail{
    display:flex;
    gap:10px;
    padding:6px 0;
    border-bottom:1px dashed #eef2f7;
  }
  .gv-row-detail:last-child{border-bottom:none;}
  .gv-row-detail-label{
    width:40%;
    font-size:12px;
    font-weight:700;
    color:#50575e;
  }
  .gv-row-detail-val{
    width:60%;
    font-size:13px;
    color:#1d2327;
    word-break:break-word;
  }

  /* ---- STACK mode (optional) ---- */
  .gv-list-wrap.gv-mobile-stack thead{display:none;}
  .gv-list-wrap.gv-mobile-stack .gv-list-table,
  .gv-list-wrap.gv-mobile-stack .gv-list-table tbody,
  .gv-list-wrap.gv-mobile-stack .gv-list-table tr,
  .gv-list-wrap.gv-mobile-stack .gv-list-table td{
    display:block;
    width:100%;
  }
  .gv-list-wrap.gv-mobile-stack .gv-list-table tr{
    border-bottom:1px solid #eee;
    padding:10px 12px;
  }
  .gv-list-wrap.gv-mobile-stack .gv-list-table tr:last-child{border-bottom:none;}
  .gv-list-wrap.gv-mobile-stack .gv-list-table td{
    border:none;
    border-bottom:1px dashed #eee;
    padding:8px 0;
  }
  .gv-list-wrap.gv-mobile-stack .gv-list-table td:last-child{border-bottom:none;}
  .gv-list-wrap.gv-mobile-stack .gv-list-table td:before{
    content: attr(data-label);
    display:block;
    font-size:11px;
    font-weight:700;
    color:#646970;
    margin-bottom:4px;
  }

  /* keep legacy hide class */
  .gv-col-hide-mobile{display:none !important;}
}

/* Board filter nav */
.gv-board-filter-nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:6px;
}

.gv-board-filter-nav__label{
  font-size:14px;
  font-weight:700;
  color:#1d2327;
}

.gv-board-filter-nav__current{
  font-weight:800;
}

.gv-board-filter-nav__items{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.gv-board-filter-nav--links .gv-board-filter-nav__items{
  gap:8px;
}

.gv-board-filter-nav--links .gv-board-filter-nav__item{
  color:#0ea5a8;
  text-decoration:none;
  padding:2px 0;
}

.gv-board-filter-nav--links .gv-board-filter-nav__item.is-active{
  font-weight:800;
}

.gv-board-filter-nav--tabs .gv-board-filter-nav__items{gap:0;border-bottom:1px solid #dcdcde;}
.gv-board-filter-nav--tabs .gv-board-filter-nav__item{
  text-decoration:none;
  color:#1d2327;
  background:#f8fafc;
  border:1px solid #dcdcde;
  border-bottom:none;
  border-radius:10px 10px 0 0;
  padding:8px 14px;
  margin-right:6px;
  position:relative;
  top:1px;
}

.gv-board-filter-nav--tabs .gv-board-filter-nav__item.is-active{
  background:#fff;
  color:#0f766e;
  font-weight:800;
}

.gv-board-filter-nav--buttons .gv-board-filter-nav__item{
  text-decoration:none;
  color:#1d2327;
  background:#f4f6f8;
  border:1px solid #d6dbe1;
  border-radius:999px;
  padding:6px 12px;
}

.gv-board-filter-nav--buttons .gv-board-filter-nav__item.is-active{
  background:#eef7f7;
  border-color:#0ea5a8;
  color:#0ea5a8;
  font-weight:800;
}

.gv-board-filter-nav__dropdown{
  min-width:180px;
  padding:6px 10px;
}

@media (max-width:700px){
  .gv-board-filter-nav{
    align-items:flex-start;
    flex-direction:column;
  }
}
.gv-board-filter-nav__sep{color:#64748b;font-weight:600;}
.gv-board-filter-nav--links .gv-board-filter-nav__items{gap:0;}
.gv-board-filter-nav--links .gv-board-filter-nav__item{padding:2px 0;}


/* v72 fixes */
.gv-list-table tbody tr:hover td{background:#dddddd !important;}
.gv-board-filter-nav__sep{white-space:pre;}

.gv-card-clickable{
  position:relative;
}

.gv-card-clickable-link{
  display:flex;
  flex-direction:column;
  justify-content:inherit;
  align-items:stretch;
  color:inherit;
  text-decoration:none;
  width:100%;
  height:100%;
  flex:1 1 auto;
}

.gv-icon-block{
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}

.gv-icon-block .dashicons{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.gv-icon-block i,
.gv-icon-block .dashicons{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}

.gv-delete-link,
.gv-cell-edit-link,
.gv-edit-link{
  text-decoration:none;
}
.gv-delete-link{color:#b42318;font-weight:700;}
.gv-delete-link:hover,
.gv-cell-edit-link:hover,
.gv-edit-link:hover{
  text-decoration:underline;
}

.gv-list-table thead th.gv-sortable-col{
  cursor:pointer;
  user-select:none;
  position:relative;
}
.gv-list-table thead th.gv-sortable-col .gv-sort-label{
  display:inline-block;
  vertical-align:middle;
}
.gv-list-table thead th.gv-sortable-col .gv-sort-indicator{
  display:inline-block;
  margin-left:6px;
  width:10px;
  text-align:center;
  vertical-align:middle;
}
.gv-list-table thead th.gv-sortable-col.is-sorted-asc .gv-sort-indicator::before{
  content:'▲';
  font-size:10px;
}
.gv-list-table thead th.gv-sortable-col.is-sorted-desc .gv-sort-indicator::before{
  content:'▼';
  font-size:10px;
}

.gv-entry-table{display:flex;flex-direction:column;gap:10px;}
.gv-entry-table__row{display:grid;gap:10px;align-items:start;}
.gv-entry-table__row--two_column,.gv-entry-table--two_column .gv-entry-table__row{grid-template-columns:minmax(120px,220px) 1fr;}
.gv-entry-table--stacked .gv-entry-table__row,.gv-entry-table__row--stacked{grid-template-columns:1fr;gap:4px;}
.gv-entry-table__label{font-weight:600;color:#1d2327;}
.gv-entry-table__value{min-width:0;word-break:break-word;}
.gv-entry-table__list-item + .gv-entry-table__list-item{margin-top:4px;}
.gv-entry-table__divider{border:0;border-top:1px solid #dcdcde;margin:4px 0;}
.gv-entry-table__spacer--small{height:8px;}
.gv-entry-table__spacer--medium{height:16px;}
.gv-entry-table__spacer--large{height:28px;}
.gv-entry-table__html{word-break:break-word;}


/* Entry Table polish */
.gv-entry-table{display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.45;color:#334155;}
.gv-entry-table__row{display:grid;gap:12px;align-items:start;padding:8px 0;border-bottom:1px solid #eef2f7;}
.gv-entry-table__row:last-child{border-bottom:0;}
.gv-entry-table__row--two_column,.gv-entry-table--two_column .gv-entry-table__row{grid-template-columns:minmax(120px,200px) 1fr;}
.gv-entry-table--stacked .gv-entry-table__row,.gv-entry-table__row--stacked{grid-template-columns:1fr;gap:4px;}
.gv-entry-table__label{font-weight:700;color:#0f172a;}
.gv-entry-table__value{min-width:0;word-break:break-word;color:#334155;}
.gv-entry-table__html{word-break:break-word;padding:2px 0;color:#0f172a;}
.gv-entry-table__divider{border:0;border-top:1px solid #d7dee8;margin:6px 0;}
.gv-entry-table__list-item + .gv-entry-table__list-item{margin-top:4px;}

.gv-value.gv-html-value{font-size:16px;font-weight:400;line-height:1.6;}
.gv-value.gv-html-value p{margin:0 0 1em;}
.gv-value.gv-html-value p:last-child{margin-bottom:0;}

.gv-list-empty{padding:16px;text-align:center;color:#646970;font-style:italic;}

.gv-edit-readonly{opacity:.85}.gv-edit-readonly input:not([type=hidden]):disabled,.gv-edit-readonly select:disabled,.gv-edit-readonly textarea:disabled,.gv-edit-readonly input[readonly],.gv-edit-readonly textarea[readonly]{background:#f6f7f7!important;cursor:not-allowed}

.gv-board-filter-nav button{background:#f3f5f7;border-color:#d6d9dd;}
.gv-board-filter-nav button:hover{background:#eceff2;}

/* Chart block */
.gv-chart-block{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;width:100%}
.gv-chart-stage{flex:999 1 340px;min-width:min(100%,320px);background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border:1px solid rgba(79,70,229,.08);border-radius:20px;padding:16px;box-shadow:0 14px 34px rgba(15,23,42,.05);overflow:hidden}
.gv-chart-svg--pie,.gv-chart-svg--pie_full,.gv-chart-svg--radial_histogram,.gv-chart-svg--rose,.gv-chart-svg--radial_bar,.gv-chart-svg--pack{max-width:320px;margin:0 auto}
.gv-chart-stage{display:flex;align-items:center;justify-content:center}

.gv-chart-svg{width:100%;height:auto;display:block;max-width:100%;overflow:visible}
.gv-chart-center-label,.gv-chart-axis-label{fill:#64748b;font-size:12px;font-family:inherit}
.gv-chart-center-value,.gv-chart-value-label{fill:#0f172a;font-weight:700;font-size:13px;font-family:inherit}
.gv-chart-center-value{font-size:24px}
.gv-chart-empty{min-height:220px;display:flex;align-items:center;justify-content:center;border:1px dashed #dbe4ff;border-radius:20px;background:#f8fbff;color:#64748b;font-weight:600}
.gv-chart-legend{flex:1 1 220px;min-width:min(100%,220px);display:grid;gap:4px;align-content:start}
.gv-chart-legend-item{display:grid;grid-template-columns:10px 1fr auto;gap:6px;align-items:center;padding:4px 6px;border:1px solid rgba(15,23,42,.06);border-radius:10px;background:#fff;box-shadow:0 4px 10px rgba(15,23,42,.03);font:inherit;color:inherit;line-height:inherit}
.gv-chart-legend-swatch{width:10px;height:10px;border-radius:999px;display:block}
.gv-chart-legend-label,.gv-chart-legend-value{min-width:0;font:inherit;color:inherit;line-height:inherit}
.gv-chart-legend-value{text-align:right}
.gv-card .gv-chart-value{width:100%}
@media (max-width: 980px){.gv-chart-stage{padding:12px}.gv-chart-legend{grid-template-columns:1fr}}
.gv-chart-block.is-stacked{flex-direction:column}
.gv-chart-block.is-stacked .gv-chart-stage,.gv-chart-block.is-stacked .gv-chart-legend{flex:1 1 100%;min-width:100%;width:100%}

.gv-chart-overlay-text{font-family:inherit;paint-order:stroke fill;stroke:rgba(15,23,42,.18);stroke-width:2px;letter-spacing:.01em;pointer-events:none}
.gv-chart-overlay-text tspan{dominant-baseline:middle}

.gv-kanban{display:flex;flex-direction:column;gap:18px}.gv-kanban-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.gv-kanban-col{border-radius:18px;padding:0;overflow:hidden;min-height:220px}.gv-kanban-col-head{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;font-weight:700;font-size:14px;line-height:1.25}.gv-kanban-col-count{font-size:12px;opacity:.92}.gv-kanban-col-cards{padding:12px;display:flex;flex-direction:column;gap:12px;min-height:160px}.gv-kanban-col-cards.is-over{outline:2px dashed #6366f1;outline-offset:-4px}.gv-kanban-card{border-radius:16px;overflow:hidden;box-shadow:0 8px 20px rgba(15,23,42,.08);background:#fff}.gv-kanban-card.is-dragging{opacity:.55}.gv-kanban-card-head{padding:10px 12px;font-weight:700}.gv-kanban-card-title-link,.gv-kanban-card-title-link:hover{color:inherit;text-decoration:none}.gv-kanban-card-body{padding:12px}.gv-kanban-card-line{font-size:13px;line-height:1.4;margin:0 0 8px}.gv-kanban-card-actions{display:flex;justify-content:space-between;gap:6px;padding:10px 12px;background:#fff;border-top:1px solid rgba(15,23,42,.08)}.gv-kanban-card-actions button{border:1px solid #d1d5db;background:#fff;border-radius:999px;min-width:34px;height:34px;cursor:pointer}.gv-kanban-card-actions button:disabled{opacity:.35;cursor:not-allowed}.gv-kanban-assignee{margin-top:8px;font-size:12px;font-weight:600;color:#475569}.gv-kanban-pool{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff}.gv-kanban-pool-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:12px}.gv-kanban-pool-head label{font-size:13px}.gv-kanban-pool-list{display:flex;flex-direction:column;gap:10px}.gv-kanban-pool-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}.gv-kanban-pool-main{flex:1 1 auto;min-width:0}.gv-kanban-pool-title{font-size:14px;font-weight:700;line-height:1.3;margin:0 0 4px}.gv-kanban-pool-content{font-size:12px;line-height:1.45;color:#334155;margin:0 0 4px}.gv-kanban-pool-meta{font-size:11px;color:#64748b}.gv-kanban-pool-actions{display:flex;gap:8px;flex:0 0 auto;align-self:center}.gv-kanban-pool-actions button{border:1px solid #cbd5e1;background:#fff;border-radius:10px;min-width:34px;height:34px;cursor:pointer}.gv-kanban-modal{position:fixed;inset:0;z-index:99999}.gv-kanban-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45)}.gv-kanban-modal-card{position:relative;max-width:440px;margin:10vh auto;background:#fff;border-radius:18px;box-shadow:0 30px 60px rgba(15,23,42,.2);overflow:hidden}.gv-kanban-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #e5e7eb}.gv-kanban-modal-head button{border:0;background:transparent;font-size:24px;cursor:pointer}.gv-kanban-modal-body{padding:18px}.gv-kanban-modal-row{margin-bottom:14px;display:flex;gap:12px;flex-wrap:wrap}.gv-kanban-modal select{width:100%;max-width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:10px}

.gv-kanban{position:relative}
.gv-kanban-notes{position:sticky;bottom:16px;align-self:flex-end;width:min(360px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.14);overflow:hidden;z-index:5}.gv-kanban-notes-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #e5e7eb;font-weight:700}.gv-kanban-notes-close{border:0;background:transparent;font-size:22px;cursor:pointer}.gv-kanban-notes-body{max-height:260px;overflow:auto;padding:12px 14px;background:#fff}.gv-kanban-note-item{padding:8px 0;border-bottom:1px solid #f1f5f9}.gv-kanban-note-item:last-child{border-bottom:0}.gv-kanban-note-meta{font-size:11px;color:#64748b;margin-bottom:4px}.gv-kanban-note-message{font-size:13px;line-height:1.45}.gv-kanban-notes-form{padding:12px 14px;border-top:1px solid #e5e7eb;background:#f8fafc}.gv-kanban-note-input{width:100%;max-width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px;margin-bottom:8px;min-height:72px}.gv-kanban-card{cursor:pointer}


/* Kanban pool compact list */
.gv-kanban-pool-heading{margin:0;font-size:20px;font-weight:700;line-height:1.2}
.gv-kanban-pool-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.gv-kanban-pool-head label{font-size:12px}
.gv-kanban-col-head{font-size:15px;line-height:1.2;padding:10px 12px}
.gv-kanban-col-head span:first-child{font-size:inherit;font-weight:700}
.gv-kanban-pool-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;min-height:40px}
.gv-kanban-pool-main{flex:1 1 auto;min-width:0}
.gv-kanban-pool-line{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}
.gv-kanban-pool-title{font-size:13px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gv-kanban-pool-sep{font-size:12px;color:#64748b;flex:0 0 auto}
.gv-kanban-pool-content{font-size:12px;line-height:1.25;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gv-kanban-pool-meta{display:none}
.gv-kanban-pool-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;align-self:center}
.gv-kanban-pool-actions [role="button"]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:pointer;text-decoration:none}
.gv-kanban-pool-actions .dashicons{font-size:18px;width:18px;height:18px;line-height:18px}
.gv-kanban-add{color:#16a34a}
.gv-kanban-ignore{color:#dc2626}
.gv-kanban-assign,.gv-kanban-unignore,.gv-kanban-uncomplete{color:#111827}
.gv-kanban-pool-actions [role="button"]:hover{opacity:.82}
.gv-kanban-pool-actions [role="button"]:focus{outline:2px solid #2563eb;outline-offset:2px;border-radius:3px}


.gv-kanban-pool-heading{font-size:var(--gv-title-size,18px);line-height:1.2}
.gv-kanban-pool-actions [role="button"]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;cursor:pointer;text-decoration:none}
.gv-kanban-col-row .gv-col-top-open{align-items:flex-end}
.gv-kanban-col-row .gv-col-actions{align-self:flex-start}
.gv-kanban-pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px}
.gv-kanban-page-btn{border:1px solid #cbd5e1;background:#fff;border-radius:8px;min-width:30px;height:30px;padding:0 8px;cursor:pointer;font-size:12px;line-height:28px}
.gv-kanban-page-btn.is-active{background:#111827;color:#fff;border-color:#111827}


.gv-kanban-col-row .gv-kanban-col-top-open{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px 14px;align-items:end}
.gv-kanban-col-row .gv-kanban-col-title-field{grid-column:1 / -1;min-width:0}
.gv-kanban-col-row .gv-kanban-col-title-field input{width:100%}
.gv-kanban-col-row .gv-kanban-col-color-field{min-width:0}
.gv-kanban-col-row .gv-kanban-col-limit-field{max-width:160px}
.gv-kanban-pool-item{align-items:center}
.gv-kanban-pool-line{display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden}
.gv-kanban-pool-title,.gv-kanban-pool-content{display:inline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.gv-kanban-pool-title{flex:0 1 auto;max-width:48%}
.gv-kanban-pool-content{flex:1 1 auto;min-width:0}
.gv-kanban-pool-sep{flex:0 0 auto;color:#475569}


/* Kanban pool compact single-line rows */
.gv-kanban-pool-item{padding:8px 10px;min-height:42px;align-items:center}
.gv-kanban-pool-main{display:flex;align-items:center;min-width:0}
.gv-kanban-pool-line{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden}
.gv-kanban-pool-title,.gv-kanban-pool-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gv-kanban-pool-title{font-size:13px;font-weight:700;line-height:1.25;margin:0}
.gv-kanban-pool-content{font-size:12px;line-height:1.25;color:#334155;margin:0}
.gv-kanban-pool-actions{display:flex;align-items:center;gap:10px;align-self:center}
.gv-kanban-pool-actions [role="button"]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;cursor:pointer;text-decoration:none}
.gv-kanban-pool-actions .dashicons{font-size:18px;width:18px;height:18px;line-height:18px}

.gv-kanban-pool-heading{font-size:14px;line-height:1.2;margin:0}.gv-kanban-pool-line{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}.gv-kanban-pool-title,.gv-kanban-pool-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gv-kanban-pool-title{font-size:13px;font-weight:700;margin:0}.gv-kanban-pool-content{font-size:12px;color:#334155;margin:0}.gv-kanban-pool-actions{display:flex;gap:10px;align-items:center;flex:0 0 auto}.gv-kanban-icon-btn{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;margin:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none}.gv-kanban-icon-btn .dashicons{width:18px;height:18px;font-size:18px;line-height:18px}.gv-kanban-add{color:#16a34a}.gv-kanban-ignore{color:#dc2626}.gv-kanban-assign,.gv-kanban-unignore,.gv-kanban-uncomplete{color:#111827}.gv-kanban-page-btn{min-width:28px;height:28px;border:1px solid #d1d5db;background:#fff;border-radius:8px;cursor:pointer}.gv-kanban-page-btn.is-active{background:#111827;color:#fff;border-color:#111827}

.gv-kanban-card-head,.gv-kanban-card-title,.gv-kanban-card-title-link{font-size:14px;line-height:1.25}
.gv-kanban-card-actions{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-top:1px solid rgba(15,23,42,.08)}
.gv-kanban-card-actions-side{display:flex;align-items:center}.gv-kanban-card-actions-left{justify-content:flex-start}.gv-kanban-card-actions-right{justify-content:flex-end}.gv-kanban-card-actions-center{display:flex;align-items:center;justify-content:center;gap:12px}
.gv-kanban-icon-btn{appearance:none;-webkit-appearance:none;border:0!important;background:transparent!important;padding:0;margin:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none!important;text-decoration:none}
.gv-kanban-icon-btn:focus{outline:none;box-shadow:none}
.gv-kanban-icon-btn[aria-disabled="true"]{opacity:.35;pointer-events:none}
.gv-kanban-icon-btn.dashicons{font-size:20px;line-height:20px;width:20px;height:20px}
.gv-kanban-pool-actions{display:flex;gap:10px;align-items:center;flex:0 0 auto}

.gv-kanban-pool-list[hidden],
.gv-kanban-pool-item[hidden],
.gv-kanban-pager[hidden],
.gv-kanban-modal[hidden],
.gv-kanban-notes[hidden]{display:none !important;}


.gv-kanban-card.is-priority {
  border: 2px solid #dc2626;
}
.gv-kanban-card.is-priority .gv-kanban-priority {
  color: #dc2626;
}


.gv-kanban-pool-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.gv-kanban-pool-toggle{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;cursor:pointer;color:inherit}
.gv-kanban-pool-toggle .dashicons{width:18px;height:18px;font-size:18px;transition:transform .18s ease}
.gv-kanban.is-pool-collapsed .gv-kanban-pool-toggle .dashicons{transform:rotate(-90deg)}
.gv-kanban-pool-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.gv-kanban-pool-controls label{font-size:13px}
.gv-kanban-pool-body[hidden]{display:none !important}
@media (max-width: 782px){.gv-kanban-pool-head{align-items:flex-start}.gv-kanban-pool-controls{width:100%}}

/* Kanban pool collapse and assignments modal */
.gv-kanban-pool-toggle{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;cursor:pointer;color:inherit}
.gv-kanban-pool-toggle .dashicons{width:18px;height:18px;font-size:18px;transition:transform .18s ease}
.gv-kanban.is-pool-collapsed .gv-kanban-pool-toggle .dashicons{transform:rotate(-90deg)}
.gv-kanban-pool-body[hidden]{display:none!important}
.gv-kanban-pool-sep{flex:0 0 auto;color:#475569}
.gv-kanban-assign-modal-card{max-width:560px}
.gv-kanban-assign-builder{display:flex;flex-direction:column;gap:10px}
.gv-kanban-assign-row{display:grid;grid-template-columns:120px minmax(0,1fr) 34px;gap:10px;align-items:center}
.gv-kanban-assign-row select{width:100%;max-width:none;height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;font-size:13px}
.gv-kanban-assign-remove{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:#d63638;text-decoration:none;font-size:20px;line-height:1}
.gv-kanban-assign-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}
.gv-kanban-modal-head strong{font-size:16px}
@media (max-width:640px){.gv-kanban-assign-row{grid-template-columns:1fr}.gv-kanban-assign-remove{justify-self:end}}


.gv-kanban-assign-picker .gv-inline-pick{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:10px;align-items:center}
.gv-kanban-pick-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.gv-kanban-pick-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #dcdcde;border-radius:10px;background:#fff}
.gv-kanban-pick-label{font-weight:500}
.gv-kanban-assign-builder .button-link-delete{color:#d63638;text-decoration:none}
@media (max-width:640px){.gv-kanban-assign-picker .gv-inline-pick{grid-template-columns:1fr}}

.gv-kanban-assign-list-label{font-size:12px;line-height:1.2;font-weight:600;display:block;margin:0 0 6px}
.gv-kanban-assign-empty{font-size:12px;line-height:1.3}
.gv-kanban-pick-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}
.gv-kanban-pick-row:last-child{border-bottom:0}
.gv-kanban-pick-label{font-size:12px;line-height:1.3;font-weight:500}
.gv-kanban-assign-remove{font-size:12px;line-height:1.2}

.gv-kanban-notes-block{display:flex;flex-direction:column;gap:12px}.gv-kanban-notes-block-list{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:12px}.gv-kanban-notes-block-form{display:flex;flex-direction:column;gap:8px}.gv-kanban-notes-block-input{width:100%;max-width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px;min-height:72px}.gv-kanban-notes-block-save{display:inline-flex;align-items:center;gap:6px;align-self:flex-start}.gv-kanban-note-meta{display:flex;gap:10px;flex-wrap:wrap}.gv-kanban-note-datetime{color:#64748b}.gv-kanban-note-user{font-weight:600}.gv-note-log .gv-kanban-note-message{opacity:.92}


.gv-list-wrap.is-loading{opacity:.65;transition:opacity .15s ease;}
.gv-list-wrap.is-loading .gv-list-search__button,.gv-list-wrap.is-loading .gv-page{pointer-events:none;}

.gv-related-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.gv-related-card-link{text-decoration:none;color:inherit}.gv-related-card{position:relative;display:flex;min-height:120px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;overflow:hidden}.gv-related-card-accent{width:6px;flex:0 0 6px}.gv-related-card-body{padding:14px 16px;flex:1 1 auto}.gv-related-card-title{font-weight:700;margin-bottom:8px}.gv-related-card-content{font-size:.95em;color:#374151}
/* ---- Export bar ---- */
.gv-export-bar {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
    justify-content: flex-end;
}
.gv-export-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 4px;
    text-decoration: none;
    border: 1px solid;
    cursor: pointer;
    transition: opacity 0.15s;
}
.gv-export-btn:hover { opacity: 0.8; }
.gv-export-btn--csv {
    background: #f0fdf4;
    color: #166534;
    border-color: #86efac;
}
.gv-export-btn--excel {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #93c5fd;
}

/* Metric unique_list — lines display mode */
.gv-metric-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.gv-metric-list li {
  padding: 2px 0;
  border-bottom: 1px solid var(--gv-border2, #eef2f7);
  font-size: inherit;
  line-height: 1.5;
}
.gv-metric-list li:last-child { border-bottom: none; }

/* ============================================================
   KANBAN — DUE DATE BADGE
   ============================================================ */
.gv-kanban-due {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px 4px;
  border-top: 1px solid rgba(0,0,0,.06);
  color: #4b5563;
  background: rgba(0,0,0,.03);
}
.gv-kanban-due .dashicons {
  font-size: 13px;
  width: 13px;
  height: 13px;
  line-height: 1;
  flex-shrink: 0;
}
.gv-kanban-due-label {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Overdue */
.gv-kanban-due.gv-kanban-due--overdue {
  background: #fee2e2;
  color: #b91c1c;
  border-top-color: #fca5a5;
}
.gv-kanban-card.is-overdue {
  box-shadow: inset 0 0 0 2px #ef4444;
}

/* Due soon */
.gv-kanban-due.gv-kanban-due--soon {
  background: #fef9c3;
  color: #92400e;
  border-top-color: #fde68a;
}
.gv-kanban-card.is-due-soon {
  box-shadow: inset 0 0 0 2px #f59e0b;
}

/* ============================================================
   CALENDAR BLOCK
   ============================================================ */

.gv-calendar { width: 100%; }
.gv-calendar-shell { width: 100%; }
.gv-calendar-loading { padding: 24px; text-align: center; color: #9ca3af; font-size: 13px; }

/* Nav bar */
.gv-cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0 14px;
}
.gv-cal-nav-label {
  font-size: 16px;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -.01em;
}
.gv-cal-nav-btn {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  width: 34px;
  height: 34px;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  color: #374151;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, border-color .15s;
  padding: 0;
}
.gv-cal-nav-btn:hover:not(:disabled) { background: #f3f4f6; border-color: #d1d5db; }
.gv-cal-nav-btn:disabled { opacity: .35; cursor: not-allowed; }

/* Grid header (day names) */
.gv-cal-grid-head {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 2px;
}
.gv-cal-grid-day-head {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6b7280;
  padding: 4px 0;
}

/* ── Month view ── */
.gv-cal-month { width: 100%; }

.gv-cal-week-row {
  position: relative;
  margin-bottom: 2px;
}

/* Span bar overlay */
.gv-cal-span-layer {
  position: absolute;
  top: 0; left: 0; right: 0;
  pointer-events: none;
  z-index: 2;
}
.gv-cal-span-bar {
  position: absolute;
  height: 20px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  padding: 0 8px;
  pointer-events: auto;
  overflow: hidden;
  white-space: nowrap;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s;
}
.gv-cal-span-bar:hover { opacity: .85; }
.gv-cal-span-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Day cells row */
.gv-cal-day-cells {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.gv-cal-day-cell {
  min-height: 80px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 10px;
  padding: 6px;
  cursor: pointer;
  transition: background .12s;
}
.gv-cal-day-cell:hover { background: #f9fafb; }
.gv-cal-day-other-month { opacity: .38; }
.gv-cal-day-today { background: #eff6ff !important; border-color: #bfdbfe !important; }

.gv-cal-day-num {
  font-size: 12px;
  font-weight: 700;
  color: #374151;
  margin-bottom: 4px;
  text-align: right;
}
.gv-cal-today-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: #2271b1;
  color: #fff;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
}

/* Event pill (month/week single-day) */
.gv-cal-event-pill {
  display: flex;
  align-items: center;
  gap: 5px;
  border-radius: 6px;
  padding: 2px 6px;
  margin-bottom: 2px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  text-decoration: none;
  transition: opacity .12s;
}
.gv-cal-event-pill:hover { opacity: .85; }
.gv-cal-event-pill-dot {
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,.6);
}
.gv-cal-event-pill-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.gv-cal-more {
  font-size: 10px;
  color: #6b7280;
  font-weight: 600;
  padding: 1px 4px;
  cursor: pointer;
}

/* ── Week view ── */
.gv-cal-week { width: 100%; }
.gv-cal-week-spans { overflow: hidden; margin-bottom: 4px; }
.gv-cal-week-cells {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  border-top: 1px solid #e5e7eb;
}
.gv-cal-week-col {
  min-height: 60px;
  padding: 6px 4px;
  border-right: 1px solid #f3f4f6;
  cursor: pointer;
  transition: background .12s;
}
.gv-cal-week-col:last-child { border-right: none; }
.gv-cal-week-col:hover { background: #f9fafb; }
.gv-cal-week-col.gv-cal-day-today { background: #eff6ff; }
.gv-cal-week-date { font-weight: 700; font-size: 14px; }
.gv-cal-week-empty { min-height: 40px; }

/* ── Agenda view ── */
.gv-cal-agenda { display: flex; flex-direction: column; gap: 0; }
.gv-cal-agenda-day {
  border-bottom: 1px solid #f3f4f6;
  padding: 10px 0;
  cursor: pointer;
}
.gv-cal-agenda-day:hover .gv-cal-agenda-events { background: #fafafa; }
.gv-cal-agenda-day.gv-cal-day-today .gv-cal-agenda-date-head { color: #2271b1; }
.gv-cal-agenda-date-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 8px;
}
.gv-cal-agenda-dow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #9ca3af;
  width: 28px;
}
.gv-cal-agenda-date {
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
}
.gv-cal-agenda-events { display: flex; flex-direction: column; gap: 6px; padding-left: 38px; }
.gv-cal-agenda-event {
  border-radius: 8px;
  padding: 8px 12px;
  background: #f9fafb;
  border-left-width: 4px;
  border-left-style: solid;
  font-size: 13px;
  font-weight: 600;
  transition: background .12s;
}
.gv-cal-agenda-event:hover { background: #f3f4f6; }
.gv-cal-agenda-event a { color: inherit; text-decoration: none; }
.gv-cal-agenda-event a:hover { text-decoration: underline; }
.gv-cal-agenda-content {
  font-size: 12px;
  font-weight: 400;
  color: #4b5563;
  margin-top: 4px;
  line-height: 1.5;
}

/* ── Card view ── */
.gv-cal-card-view { display: flex; flex-direction: column; gap: 10px; }
.gv-cal-card {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(15,23,42,.08);
  background: #fff;
}
.gv-cal-card-head {
  padding: 10px 12px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.25;
}
.gv-cal-card-title-link,
.gv-cal-card-title-link:hover { color: inherit; text-decoration: none; }
.gv-cal-card-title { font-size: 14px; font-weight: 700; line-height: 1.25; }
.gv-cal-card-body {
  padding: 12px;
}
.gv-cal-card-line {
  font-size: 13px;
  line-height: 1.4;
  margin: 0 0 8px;
  color: #334155;
}
.gv-cal-card-line:last-child { margin-bottom: 0; }
.gv-cal-card-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 8px;
}
.gv-cal-card-counter {
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
}

/* ── Stacked mobile view ── */
.gv-cal-stacked { display: flex; flex-direction: column; gap: 2px; }
.gv-cal-stacked-day {
  border: 1px solid #f3f4f6;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
}
.gv-cal-stacked-day.gv-cal-day-today { border-color: #bfdbfe; background: #eff6ff; }
.gv-cal-stacked-day .gv-cal-agenda-date-head { padding: 8px 10px 4px; }
.gv-cal-stacked-events { padding: 0 10px 8px; display: flex; flex-direction: column; gap: 3px; }
.gv-cal-stacked-empty { height: 20px; }

/* Empty message */
.gv-cal-empty-msg {
  text-align: center;
  padding: 32px 16px;
  color: #9ca3af;
  font-size: 14px;
  font-weight: 500;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .gv-cal-day-cell { min-height: 52px; padding: 4px; }
  .gv-cal-grid-day-head { font-size: 10px; }
  .gv-cal-event-pill { font-size: 10px; padding: 1px 4px; }
}

/* Calendar nav — pagination disabled */
.gv-cal-nav--no-pagination {
  justify-content: center;
}
.gv-cal-nav--no-pagination .gv-cal-nav-btn {
  display: none;
}

/* Calendar style settings — applied via inline CSS custom properties */
.gv-calendar .gv-cal-card {
  border-radius: var(--gv-cal-card-radius, 16px);
  box-shadow: var(--gv-cal-card-shadow, 0 8px 20px rgba(15,23,42,.08));
}
.gv-calendar .gv-cal-card-head {
  padding: var(--gv-cal-head-padding, 10px 12px);
  font-size: var(--gv-cal-head-font-size, 14px);
}
.gv-calendar .gv-cal-nav-label {
  color: var(--gv-cal-nav-color, #1f2937);
}
.gv-calendar .gv-cal-nav-btn {
  background: var(--gv-cal-nav-btn-bg, #fff);
  border-color: var(--gv-cal-nav-btn-border, #e5e7eb);
}

/* ── Calendar value wrapper reset ─────────────────────────────
   .gv-value has metric styles (34px/800/line-height:1) that
   collapse calendar layout. Reset via explicit class.        */
.gv-calendar-value {
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
.gv-card:has(.gv-calendar-value) {
  justify-content: flex-start;
}
.gv-calendar {
  width: 100%;
}

/* Calendar card - fit title in one line */
.gv-cal-fit-title .gv-cal-card-head {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gv-cal-fit-title .gv-cal-card-title,
.gv-cal-fit-title .gv-cal-card-title-link {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

/* ── Goal metric ── */
.gv-metric-goal-wrap { width: 100%; }
.gv-metric-goal-label { font-size: 13px; color: #6b7280; margin: 4px 0; }
.gv-metric-bar { overflow: hidden; }
.gv-metric-bar--horizontal { margin: 6px 0; }
.gv-metric-bar--vertical { min-height: 80px; }
.gv-metric-bar-fill { transition: width .5s ease, height .5s ease; }
.gv-metric-bar-pct { pointer-events: none; line-height: 1; }

/* ── Heatmap block ─────────────────────────────────────────────────────── */
.gv-heatmap { width: 100%; }
.gv-heatmap-grid { display: block; overflow-x: auto; }
.gv-heatmap-body { width: fit-content; }
.gv-heatmap-month-row { width: fit-content; }

/* Classic week grid (dates_year / dates_month) */
.gv-heatmap-month-row {
  display: flex;
  padding-left: calc(var(--hm-cell, 13px) + 4px); /* align with body after DOW col */
  margin-bottom: 3px;
  gap: var(--hm-gap, 2px);
}
.gv-heatmap-month-head {
  width: var(--hm-cell, 13px);
  font-size: 10px;
  color: #9ca3af;
  white-space: nowrap;
  overflow: visible;
}
.gv-heatmap-body { display: flex; gap: var(--hm-gap, 2px); align-items: flex-start; }
.gv-heatmap-dow-col { display: flex; flex-direction: column; gap: var(--hm-gap, 2px); padding-right: 4px; }
.gv-heatmap-dow-row-label { height: var(--hm-cell, 13px); font-size: 9px; color: #9ca3af; display: flex; align-items: center; }
.gv-heatmap-col { display: flex; flex-direction: column; gap: var(--hm-gap, 2px); }

/* Single-row modes (weeks_year, dow, months_year) */
.gv-heatmap-row { display: flex; gap: var(--hm-gap, 2px); align-items: flex-end; flex-wrap: wrap; }
.gv-heatmap-col { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.gv-heatmap-dow-label,
.gv-heatmap-month-label { font-size: 10px; color: #6b7280; }

/* Cell */
.gv-heatmap-cell {
  width: var(--hm-cell, 13px);
  height: var(--hm-cell, 13px);
  border-radius: var(--hm-radius, 3px);
  display: block;
  flex-shrink: 0;
  cursor: default;
  transition: opacity .1s;
}
.gv-heatmap-cell:hover { outline: 1px solid rgba(0,0,0,.3); outline-offset: 1px; }
.gv-heatmap-today { outline: 2px solid #1d4ed8; outline-offset: 1px; position: relative; z-index: 2; }

/* Legend */
.gv-heatmap-legend {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  font-size: 11px;
  color: #6b7280;
}
.gv-heatmap-legend-label { }
.gv-heatmap-legend-cell { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }
